Skip to content
Examples

docToolchain v4 arc42 section 2

Architecture Constraints

Technical Constraints

Constraint Explanation
Groovy (JVM) Primary implementation language (ADR-1). All scripts, the site generator, and integration logic are written in Groovy. This requires a JVM runtime — currently Java 17, but v4 should support Java 21+.
No build framework Gradle is removed (ADR-3). No build system sits between dtcw and the Groovy scripts. This means dependency management, classpath construction, and task invocation are handled by dtcw and the scripts themselves.
AsciiDoc format All documentation sources must be in AsciiDoc. This is a fundamental design decision. Markdown sources can be converted as a preprocessing step.
PlantUML + Graphviz Diagram rendering requires PlantUML (via asciidoctor-diagram gem) and optionally Graphviz. Installed alongside AsciiDoctor as external tools (ADR-6).
Cross-platform including Apple Silicon Must run on Linux, macOS (x86_64 and ARM64/Apple Silicon), and Windows. No native/JNI dependencies that break on ARM64 (this is why jBake/OrientDB is replaced — ADR-4).
Backward-compatible configuration docToolchainConfig.groovy from v3 projects must work in v4 without changes (QS-14). Config.groovy is the template, docToolchainConfig.groovy is the user’s config — this is not a dual-config problem; it only appears that way because docToolchain is installed as a tool inside its own repo.

Organizational Constraints

Constraint Explanation
MIT License Open-source license. All dependencies must be compatible. No proprietary libraries in the core distribution.
Community-driven development Contributions come from volunteers. The architecture must be approachable — script-first, no compilation step, fast feedback loop.
GitHub as development platform Source code, issues, pull requests, CI/CD, and releases hosted on GitHub. CI/CD uses GitHub Actions.
Docs-as-code philosophy Documentation is treated as source code: version-controlled, peer-reviewed, built automatically.
Ecosystem coherence docToolchain is part of an ecosystem: daCLI (MCP server), Bausteinsicht (architecture-as-code), LLM-Prompts (interaction patterns). Architectural decisions must consider cross-project impact.

Conventions

Convention Explanation
Architecture Decision Records Significant decisions are documented as ADRs with Pugh Matrix evaluation against quality goals.
Groovy as scripting language ADR-1. Exception: Visual Basic for Windows COM automation.
Semantic Versioning v3 is current production. v4 is the next major version with breaking changes (Gradle removal).
Groovy SimpleTemplate Template engine for microsite generation (ADR-4). Existing templates from v3 are reused.
Semantic Anchors and Contracts Anchors are precise reference terms (“arc42”, “SOLID”, “Docs-as-Code”) that activate rich knowledge in LLMs. Contracts (in CLAUDE.md) bundle anchors into reusable working agreements for consistent LLM collaboration.
Scripts as primary code artifacts No compiled modules. Groovy scripts are executed directly. Change-to-test cycle under 5 seconds (QS-11).