Quality Requirements
The quality goals from [section-introduction-and-goals] drive every architecture decision in docToolchain v4. This section refines those goals into a structured quality tree and concrete, measurable scenarios that serve as acceptance criteria for the architecture.
Quality scenarios QS-1 through QS-8 were derived from v3 codebase analysis. Quality scenarios QS-9 through QS-19 were derived from the v4 architecture requirements.
Quality Requirements Overview
The quality tree organizes requirements by ISO 25010 categories.
Each leaf maps to one or more quality scenarios below.
Each leaf is annotated as either concretising one of the five Chapter 1.2 top quality goals ([goal N]) or as a [derived] quality requirement that elaborates beyond the top goals — this is correct arc42, not a defect.
Quality Scenarios
The following scenarios are the evaluation framework for all architecture decisions (Section 09).
Each ADR must state which quality scenarios it supports or compromises.
Each scenario is written in the six-part quality-attribute-scenario form (Source, Stimulus, Artifact, Environment, Response, Response Measure) and annotated with the Chapter 1.2 top goal it concretises, or marked derived.
Carried forward from v3
| ID | Goal | Source | Stimulus | Artifact | Environment | Response | Response Measure |
|---|---|---|---|---|---|---|---|
QS-1 |
derived (extensibility) |
Contributor |
Wants to add a new export feature (e.g., export to Notion). |
|
Development |
They create one Groovy script and register it; no build-system knowledge required. |
No compilation step needed; the new task appears in |
QS-2 |
goal 3 (cross-platform) |
User |
Runs |
Generated HTML |
Docker vs. local |
Docker execution produces the same HTML output as local execution. |
Output files byte-identical (excluding timestamps in HTML meta tags). |
QS-3 |
goal 5 (ease of adoption) |
New developer |
Clones a project containing |
|
Fresh workstation |
They get rendered documentation, including automatic Java and docToolchain installation. |
Time from first command to viewing HTML under 5 minutes. |
QS-4 |
derived (reliability) |
Author / CI |
Triggers Confluence publishing twice for unchanged documentation. |
Confluence pages |
Network, Confluence reachable |
The second run detects unchanged content (MD5 hash) and skips the update. |
No new page versions created; attachments and labels preserved. |
QS-5 |
derived (headless CI) |
CI/CD pipeline |
Runs |
|
Headless CI (no TTY) |
|
Exit code 0 on success, non-zero on failure; no process hangs awaiting input. |
QS-6 |
goal 5 (ease of adoption) |
User |
Runs |
|
Workstation without JDK |
|
No manual Java install; installed JDK reused on later runs. |
QS-7 |
derived (stable test suite) |
Developer / CI |
Executes the test suite. |
Spock / BATS test suites |
Local or CI |
All tests pass; environment-dependent tests skip gracefully. |
Zero test failures; execution under 15 seconds. |
QS-8 |
goal 2 (performance) |
User |
Runs |
Document generation pipeline |
Local, docToolchain installed |
HTML output is generated. |
Generation completes in under 20 seconds. |
New for v4
| ID | Goal | Source | Stimulus | Artifact | Environment | Response | Response Measure |
|---|---|---|---|---|---|---|---|
QS-9 |
goal 2 (performance) |
User |
Runs |
|
Local, warm install |
Task starts immediately, with no build-framework init, dependency resolution, daemon negotiation, or build-graph computation. |
Startup under 3 seconds; end-to-end for 50 pages under 10 seconds. |
QS-10 |
goal 3 (cross-platform) |
User |
Runs |
Custom site generator ( |
macOS ARM64 |
Site generation completes without errors or platform-specific workarounds. |
No JNI/native-library issues; same output as on x86_64. |
QS-11 |
derived (script-first) |
Contributor |
Wants to fix a bug in the Confluence publishing logic. |
Groovy scripts |
Development |
They edit a Groovy script directly and re-run; no compilation, no JAR rebuild. |
Change-to-test cycle under 5 seconds; no |
QS-12 |
derived (LLM friendliness) |
LLM agent (via daCLI) |
Needs to read, navigate, and modify generated documentation. |
daCLI MCP server (10 tools) |
MCP over stdio |
daCLI provides structured access; docs follow Semantic Anchor conventions. |
Any section located with at most 3 tool calls; token usage under 10% of full-file reading. |
QS-13 |
derived (modern UI) |
Reader |
Opens a docToolchain-generated microsite in a browser. |
Generated microsite |
Modern browser |
The site shows responsive layout, dark mode, fast full-text search, and clear navigation. |
Visual quality comparable to Starlight/Nextra/Diataxis; page load under 1 second. |
QS-14 |
derived (v3 compatibility) |
Upgrading user |
Moves from v3 to v4 without changing |
|
Existing v3 project |
v4 |
Zero config changes for basic usage; deprecated features warn but do not fail. |
QS-15 |
derived (LLM-managed config) |
User via LLM |
Asks an LLM to configure Confluence publishing. |
|
LLM editing session |
The LLM adds only the necessary deviating settings; the config stays minimal. |
Config contains only explicit deviations from defaults; LLM reads, explains, and edits it correctly without hallucinating defaults. |
QS-16 |
goal 1 (no implicit cloud processing) |
User |
Runs |
Diagram rendering (asciidoctor-diagram) |
External service configured |
docToolchain prints a clear warning ("Diagramm-Quelltexte werden an kroki.io gesendet. Für lokale Verarbeitung setze |
Zero external API calls unless an external |
QS-17 |
goal 4 (actionable error guidance) |
User |
Hits a fixable failure (locked file, missing config, wrong credentials, unreachable API, missing tool). |
|
Any environment |
docToolchain prints what to do next — which file to close, which config to set, which command to run — not a diagnosis. |
Every user-recoverable error carries a remediation step; zero stack traces except for bugs (exit code 99). |
QS-18 |
derived (minimal repo footprint) |
User |
Adds docToolchain to an existing project repository. |
Project repository |
Any |
Only |
Exactly 2 files added (plus optional |
QS-19 |
derived (clean uninstallation) |
User |
Decides to remove docToolchain from their system. |
|
Any |
Deleting |
Zero side effects after |
Feedback
Was this page helpful?
Glad to hear it! Please tell us how we can improve.
Sorry to hear that. Please tell us how we can improve.