docs(architecture): NFR-COMP-01 — split retention floor from WORM substrate by shelf#246
Conversation
…strate by shelf The row fused the retention floor with the WORM Object-Lock substrate in one clause with no shelf qualifier, readable as "Object-Lock mandatory on every shelf" — which the minimal one-click-solo shelf (no object store) cannot meet. Reworded as one row (ID preserved, retention stays the headline noun so the four NFR-COMP-01 cross-refs stay valid): the 7y/10y retention floor is machine-enforced on BOTH shelves; the WORM Object-Lock cold tier is the full shelf realization; the minimal shelf holds the floor on a plain file system with hash-chain + signed Merkle-head tamper-evidence (NFR-SEC-03) — tamper- evident, not WORM-immutable. Only the substrate is shelf-conditional; the floor is not relaxed. Mirrors the host-local/HSM shelf split of NFR-SEC-03. Unblocks ADR-0009 (audit pipeline pluggable-by-contract), which cannot cite an unsplit NFR-COMP-01 as if it cleanly maps to the WORM seam. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
|
Wondering what really moved? Review this PR in Change Stack to inspect semantic changes, definitions, and references. No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: Path: .coderabbit.yaml Review profile: CHILL Plan: Pro Plus Run ID: 📒 Files selected for processing (1)
WalkthroughUpdated the NFR manifesto document with a clarified audit-log retention requirement. The revision explicitly describes the two-shelf tiering strategy: hot-to-cold tiering windows, WORM immutability on the full shelf, and tamper-evidence via hash-chaining and signed Merkle-head on the minimal shelf. The document review date was also refreshed. ChangesArchitecture Manifesto Updates
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~3 minutes Possibly related 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 |
#247) Draw the build/buy line for the whole audit tract in one decision. OCU delivers the chain of custody and a local durable commit (the NFR-REL-03 RPO=0 forcer); the bus product, WORM store, SIEM sink, transparency-log endpoint, and signing-key custody are pluggable seams, each a contract with a one-click-solo reference default, none an OCU CVE responsibility. Descends from the build-scope principle (03-non-negotiables, #245) and the NFR-COMP-01 retention/WORM-substrate split (#246). Resolves the two component-07 Shelf-delta picks and anchors 02-trust-boundaries §10 to an ADR for the first time. Records one role per the ADR-0005 precedent. Same-PR canon edits (one-source-of-truth): ADR index row; spec-07 adr: [0009] + Shelf-delta back-link; trust-boundaries §10 ADR anchor. Per-seam transport stays open (#150, #151). Co-authored-by: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
What
Rewords
NFR-COMP-01(one row, ID preserved) to separate two things the current cell fuses:Why
The current row reads "Audit-log retention … WORM (S3 Object Lock Compliance or equivalent) … hot→cold" with no shelf qualifier. A reviewer can read it as Object-Lock mandatory on every shelf — which the one-click-solo minimal shelf (no object store) cannot satisfy, breaking the one-click-solo non-negotiable. The split keeps retention mandatory everywhere while making only the substrate shelf-conditional, mirroring the host-local/HSM split already in NFR-SEC-03.
The preventive-vs-detective distinction (full-shelf WORM is immutable; minimal-shelf hash-chain detects tampering after the fact) is stated in-cell so a bank InfoSec reviewer is not misled.
Consistency
ID preserved and retention stays the headline noun, so the four NFR-COMP-01 cross-refs stay valid unchanged:
02-trust-boundaries.md§10, AP-13, and07-audit-pipeline.mdConfig/Capacity rows all anchor on retention.07-audit-pipeline.mdShelf-delta (line 102) already defers the WORM substrate to an ADR — now matched, not contradicted.Sequence
PR-B of three. PR-A (build-scope principle, #245) merged. PR-C is ADR-0009 "Audit pipeline is pluggable-by-contract", which cites this split.
🤖 Generated with Claude Code
Summary by CodeRabbit