feat(contracts): split Architecture Documentation, add Crosscutting Concepts#485
Conversation
…oncepts Expands the Architecture Documentation contract with per-section diagram requirements (§3.1 business context, §3.2 technical context, §5 C4 building blocks, §6 runtime view) and an "Accepted (inferred)" ADR status with `?`-marked Pugh cells for brownfield work where stakeholder rationale cannot be confirmed. Splits §8 crosscutting concepts into its own contract — five baseline concepts (Threat Model with T-IDs, Security with T-ID traceability, Test, Observability, Error Handling). Domain-specific §8.x sections (persistence, i18n, accessibility, configuration, performance) are added only when the system actually has those concerns. Adds render-contracts.js to the prebuild chain so that the static contracts.html fragment stays in sync with contracts.json on every build (was previously only regenerated manually). Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
WalkthroughDer PR aktualisiert die Build-Pipeline, um Verträge zu rendern, und erweitert die Contract-Definitionen mit präzisierten arc42- und ADR-Anforderungen. Die entsprechende LLM-Kontext-Dokumentation wird mit detaillierten Crosscutting-Concepts-Standards ergänzt. ChangesArchitektur-Dokumentations-Standards
Geschätzter Code-Review-Aufwand🎯 2 (Simple) | ⏱️ ~12 Minuten Möglicherweise verwandte PRs
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches🧪 Generate unit tests (beta)
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. Comment |
There was a problem hiding this comment.
🧹 Nitpick comments (1)
website/package.json (1)
8-10: ⚡ Quick winBuild- und Dev-Vorbereitung sollten konsistent sein.
prebuildrendert jetzt Docs + Contracts,predevaber nicht. Das kann lokal zu veraltetem/contracts-Inhalt führen. Bitte die Render-Schritte auch im Dev-Flow bündeln (z. B. gemeinsames Script).🔧 Vorschlag
"scripts": { "sync-anchors": "node ../scripts/sync-anchors.js", - "predev": "node ../scripts/sync-anchors.js", + "predev": "node ../scripts/sync-anchors.js && node ../scripts/render-docs.js && node ../scripts/render-contracts.js", "dev": "vite", "prebuild": "node ../scripts/sync-anchors.js && node ../scripts/render-docs.js && node ../scripts/render-contracts.js",🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@website/package.json` around lines 8 - 10, predev only runs sync-anchors.js while prebuild runs sync-anchors.js plus render-docs.js and render-contracts.js, causing dev to serve stale /contracts; create a single preparatory script (e.g., "prepare-docs-contracts") that runs node ../scripts/sync-anchors.js && node ../scripts/render-docs.js && node ../scripts/render-contracts.js (or add the two render calls directly) and update package.json so "predev" invokes that same script (same entry point names: predev, prebuild and the scripts sync-anchors.js, render-docs.js, render-contracts.js) to ensure dev and build flows are consistent.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Nitpick comments:
In `@website/package.json`:
- Around line 8-10: predev only runs sync-anchors.js while prebuild runs
sync-anchors.js plus render-docs.js and render-contracts.js, causing dev to
serve stale /contracts; create a single preparatory script (e.g.,
"prepare-docs-contracts") that runs node ../scripts/sync-anchors.js && node
../scripts/render-docs.js && node ../scripts/render-contracts.js (or add the two
render calls directly) and update package.json so "predev" invokes that same
script (same entry point names: predev, prebuild and the scripts
sync-anchors.js, render-docs.js, render-contracts.js) to ensure dev and build
flows are consistent.
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yml
Review profile: CHILL
Plan: Pro
Run ID: 5b0d8589-efeb-4a7a-aa75-d1867ee3a78a
📒 Files selected for processing (3)
website/package.jsonwebsite/public/data/contracts.jsonwebsite/public/llms.txt
Summary
?-marked Pugh cells for brownfield work where stakeholder rationale cannot be confirmed.render-contracts.jsis now part ofprebuildso the staticcontracts.htmlfragment stays in sync withcontracts.jsonon every build (was previously regenerated manually).Test plan
npm run buildsucceeds anddist/contracts/index.htmlcontains both contracts (verified locally: Crosscutting appears twice in the pre-rendered HTML)llms.txtlists all 14 contracts (was 13)/contractspage, both contracts are selectable and downloadable🤖 Generated with Claude Code
Summary by CodeRabbit
Release Notes
Documentation
Chores