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). |