feat(conformance): add normative clause inventory (021)#360
Merged
Conversation
The prose companion to the schema constraint inventory (020): a machine-canonicalized inventory of every normative clause in the 18 ratified upstream devcontainers/spec prose documents (pinned at 113500f4), classified under deacon's consumer-only scope, with move-aware drift detection and a certify gate. No LLM or network in any CI-facing command. - Vendor the byte-exact pinned prose under conformance/spec/113500f4/ (14 consumer + 4 authoring docs) with a fingerprinted manifest. - Machine-owned conformance/inventory/clauses.json (clu- units, substance-anchored ids: hash8 over document + normalize_substance, location excluded so a pure move keeps its id/disposition). - Hand-authored clc- clause classifications: per-clause for consumer docs, document-scope not-applicable defaults for authoring docs plus per-clause behavior-mapped overrides for the consumer install/apply clauses inside features/templates. - New prose model (ATX heading reader, deterministic substance normalizer, RFC-2119 strength detection) and clause generate / check / diff / scaffold CLI subcommands. - Generalize validate V11-V14 from constraint units to inventory units and add V15 (clause-source integrity); wire the clause join into validate, certify, and report. - Retire three redundant src-spec-* prose source units now that their behaviors back-trace through behavior-mapped clause classifications. clause diff: pair a removed and an added clause under a shared heading into a "changed" entry only on an unambiguous 1:1 match. When a heading carries more than one removed or added clause the correspondence is ambiguous, so leave them as distinct removed/new entries instead of pairing positionally, which would fabricate a spurious rewrite and hide the genuine add/remove of unrelated clauses that merely share a heading. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019vhr7Tcf8ybvSZSE1owqBT
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
Adds the normative clause inventory (feature 021) — the prose companion to the schema constraint inventory (020). A machine-canonicalized inventory of every normative clause in the 18 ratified upstream
devcontainers/specprose documents (pinned at113500f4), classified under deacon's consumer-only scope, with move-aware drift detection and acertifygate. No LLM or network in any CI-facing command.What's included
conformance/spec/113500f4/(14 consumer + 4 authoring docs) with a SHA-256-fingerprintedmanifest.json; re-vendored only on a pin bump.conformance/inventory/clauses.json(clu-units, substance-anchored ids:hash8overdocument ‖ normalize_substance, location excluded so a pure move keeps its id/disposition).clc-classifications: per-clause for consumer docs, document-scopenot-applicabledefaults for authoring docs, plus per-clausebehavior-mappedoverrides for the consumer install/apply clauses insidefeatures/templates.deacon-conformance):clause generate/check/diff/scaffold.validate,certify, andreport.src-spec-*prose source units retired now that their behaviors back-trace throughbehavior-mappedclause classifications.Notes
clause diff'spair_changed: a removed + added clause under a shared heading are paired into achangedentry only on an unambiguous 1:1 match; multi-clause headings are left as distinctremoved/newentries rather than mispaired (which would fabricate a spurious rewrite and hide genuine add/removes). Regression test added.Verification (local, hermetic)
cargo fmt --all -- --checkclean;cargo clippy --all-targets --all-features -D warningsclean.deacon-conformancesuite: 261/261 passing.clause checkbyte-identical regeneration;validateclean;certifyclean (0 blocking, 10 waived).The
parity / live-certificationlane is not in scope here (dev-only-crate change; needs Docker + the pinned oracle, which don't run in the authoring workspace).🤖 Generated with Claude Code
https://claude.ai/code/session_019vhr7Tcf8ybvSZSE1owqBT