Skip to content

fix(contracts): tighten Architecture Documentation diagram and format rules#486

Merged
rdmueller merged 1 commit into
LLM-Coding:mainfrom
raifdmueller:fix/architecture-contract-plantuml-strict
May 15, 2026
Merged

fix(contracts): tighten Architecture Documentation diagram and format rules#486
rdmueller merged 1 commit into
LLM-Coding:mainfrom
raifdmueller:fix/architecture-contract-plantuml-strict

Conversation

@raifdmueller
Copy link
Copy Markdown
Contributor

@raifdmueller raifdmueller commented May 15, 2026

Summary

Follow-up to #485. The previous wording left enough room that an LLM-generated arc42 set produced four problems we want to prevent:

  1. §-prefixed section headings in the output (## §3 Context …) — the § symbol was meant only as a reference to arc42 sections, not as the prescribed notation.
  2. Most diagrams in Mermaid even though Docs-as-Code prescribes PlantUML — the §3.2 bullet read "(PlantUML/Mermaid)" and §5/§6 named no format at all, so the agent defaulted to Mermaid for GitHub inline rendering.
  3. C4 diagrams that aren't actually C4 — generic flowchart TB/flowchart LR boxes instead of the C4-PlantUML stdlib with Person() / System() / Container() / Component() / Rel().
  4. arc42, ADRs, PRD and specification authored in Markdown despite the Docs-as-Code contract.

Changes

  • Architecture Documentation: arc42-native section numbering (no § prefix); explicit file-format rules (AsciiDoc for arc42/ADRs/PRD/specs, Markdown stays only where the AIUP-reverse-engineer skill produces it); all diagrams PlantUML; §5.x must use the C4-PlantUML stdlib with proper stereotypes — generic shapes do not satisfy the requirement.
  • Docs-as-Code: one explicit line about shipping the dtcw wrapper and docToolchainConfig.groovy so the implicit infrastructure dependency is visible to anyone selecting the contract.
  • Crosscutting Concepts: unchanged.

Test plan

  • npm run build succeeds; both contracts appear in dist/contracts/index.html
  • llms.txt lists all 14 contracts with the new template
  • On the live /contracts page, the Architecture Documentation card shows the new PlantUML/C4-PlantUML rules

🤖 Generated with Claude Code

Summary by CodeRabbit

Versionshinweise

  • Dokumentation
    • Aktualisierte Anforderungen für Architektur-Dokumentation mit präzisierten Richtlinien zu Nummerierung, Dateiformaten und Diagramm-Standards.
    • Klarere Vorgaben für PlantUML- und AsciiDoc-Nutzung in der technischen Dokumentation.
    • Neue Anforderungen für Dokumentations-Toolchain-Komponenten zur korrekten Wiedergabe von Diagrammen und Inhalten.

Review Change Stack

… rules

Drives explicit choices the previous wording left open, which led an LLM-
generated arc42 set to produce '§'-prefixed headings, Mermaid diagrams
where PlantUML was implied, generic 'flowchart TB' boxes labelled "C4",
and Markdown arc42 sections alongside the Docs-as-Code contract.

- Section numbering: arc42 native (`1.`, `1.1`), no `§` prefix in output.
- File formats: arc42 / ADRs / PRD / specs in AsciiDoc; use-case files +
  entity model stay in whatever AIUP-reverse-engineer emits; Question
  Tree / Open Questions in AsciiDoc.
- Diagrams: all PlantUML. §5.x building blocks must use the C4-PlantUML
  stdlib with proper stereotypes (Person/System/Container/Component/Rel);
  generic shapes do not satisfy the requirement.
- Docs-as-Code contract gains an explicit line about shipping `dtcw` and
  `docToolchainConfig.groovy` so the implicit infrastructure dependency
  is visible to anyone selecting the contract.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@coderabbitai
Copy link
Copy Markdown

coderabbitai Bot commented May 15, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yml

Review profile: CHILL

Plan: Pro

Run ID: e1f7e4a4-67e5-4312-a661-2c60d096911a

📥 Commits

Reviewing files that changed from the base of the PR and between 3ffb6d7 and 2b72353.

📒 Files selected for processing (2)
  • website/public/data/contracts.json
  • website/public/llms.txt

Walkthrough

Die Semantic-Contracts in website/public/data/contracts.json und website/public/llms.txt werden präzisiert: Der architecture-documentation-Contract erhält detaillierte Vorgaben zu arc42-Nummerierung, AsciiDoc-Formaten und C4-PlantUML-Standards. Der documentation-style-Contract wird um die Anforderung der dtcw-Wrapper- und docToolchainConfig.groovy-Konfiguration ergänzt.

Changes

Dokumentations-Contract-Spezifikationen

Layer / File(s) Zusammenfassung
Architektur-Dokumentation Contract: arc42 und PlantUML-Standards
website/public/data/contracts.json, website/public/llms.txt
Der architecture-documentation-Contract wird um strikte arc42-Nummerierung (ohne §), AsciiDoc-Dateiformate (arc42/ADRs/PRDs/Spezifikationen), C4-PlantUML-!include-Standards, erforderliche Stereotypen sowie explizite ADR-Nygard- und Pugh-Matrix-Regeln (Accepted/inferred, ?-Handling) erweitert; Crosscutting-Concepts-Verweis wird hinzugefügt.
Dokumentationsstil Contract: dtcw- und docToolchainConfig-Anforderung
website/public/data/contracts.json, website/public/llms.txt
Der documentation-style-Contract wird um die verbindliche Anforderung ergänzt, dass dtcw-Wrapper und docToolchainConfig.groovy vorhanden sein müssen, um PlantUML/AsciiDoc-Rendering zu ermöglichen; die Template-Formulierungen werden sprachlich harmonisiert.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~8 minutes

Possibly related PRs

  • LLM-Coding/Semantic-Anchors#485: Konkretisiert die in #485 eingeführten/aufgesplitteten Architecture-Documentation-Contract-Anforderungen durch detaillierte Templates für arc42-Struktur, PlantUML und ADR-Regeln.
  • LLM-Coding/Semantic-Anchors#366: Modifiziert die gleichen Contract-Einträge (architecture-documentation und documentation-style) in website/public/data/contracts.json mit aktualisierter Template-Normalisierung.
  • LLM-Coding/Semantic-Anchors#369: Aktualisiert die gleichen Dokumentations-Contracts (architecture-documentation und documentation-style) durch Neuformulierung von PlantUML/AsciiDoc-Anforderungen und Template-Inhalten.
🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed Der Titel bezieht sich auf die Hauptänderung: Verschärfung der Anforderungen für die Architecture-Documentation bezüglich Diagramm- und Formatregeln, was dem Kern der Pull Request entspricht.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@rdmueller rdmueller merged commit abe0ed9 into LLM-Coding:main May 15, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants