Skip to content

feat(protocol): validate requirement-id uniqueness in CI (#2050)#2098

Merged
glennmichael123 merged 1 commit into
mainfrom
feat/protocol-requirement-id-uniqueness-2050
Jul 22, 2026
Merged

feat(protocol): validate requirement-id uniqueness in CI (#2050)#2098
glennmichael123 merged 1 commit into
mainfrom
feat/protocol-requirement-id-uniqueness-2050

Conversation

@glennmichael123

Copy link
Copy Markdown
Member

Implements one concrete acceptance criterion of #2050 - "Requirement IDs are unique and validated in CI." Nothing enforced it: sync-suite.ts only digest-checked the vendored suite.

  • checkCatalog() added to the protocol:check path (protocol-conformance CI): loads the vendored catalog.json, requires a non-empty string id on every requirement, fails on any duplicate.
  • Pure unit-tested duplicateRequirementIds helper; dispatch guarded behind import.meta.main.

protocol:check prints Protocol catalog: 47 requirement ids, all unique; 4 unit tests; pickier clean. Scope: the code-enforceable slice; the whitepaper authoring + ratification in #2050 remain open.

🤖 Generated with Claude Code

Protocol 1.0 ratification requires requirement ids to be unique and validated in
CI (#2050), but nothing enforced it — `sync-suite.ts` only checked
the vendored suite's file digests against the lock, and the catalog schema has no
uniqueness constraint. A duplicate id arriving from the RFC source would go
unnoticed.

Add `checkCatalog()` to the `protocol:check` path: it loads the vendored
`catalog.json`, asserts every requirement has a non-empty string id, and fails on
any duplicate. Extracted `duplicateRequirementIds` as a pure, unit-tested helper,
and guarded the CLI dispatch behind `import.meta.main` so the module is
importable (matching the sibling protocol scripts).

Scopes only the "unique + validated in CI" acceptance criterion of #2050; the
normative inventory, profile/badge ratification, and whitepaper authoring live in
the rfcs/whitepaper repos and remain open.
@glennmichael123
glennmichael123 merged commit c6cf3f7 into main Jul 22, 2026
5 of 9 checks passed
@glennmichael123
glennmichael123 deleted the feat/protocol-requirement-id-uniqueness-2050 branch July 22, 2026 23:23
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.

1 participant