## Code Analysis ### Registry parsing treats repeated IDs as new records `scripts/test-contract-claims.sh:91-95` ```bash r_id=""; r_contract=""; r_section=""; r_status=""; r_issue=""; r_quote=""; r_check="" records=0 enforced=0 divergent=0 failed=0 ``` The parser initializes the per-record fields and aggregate counters, but there is no collection of previously seen claim IDs. `scripts/test-contract-claims.sh:232-253` ```bash while IFS= read -r line || [[ -n "$line" ]]; do case "$line" in ''|'#'*) continue ;; 'claim id: '*) finish_record r_id="${line#claim id: }" ;; 'contract: '*) r_contract="${line#contract: }" ;; 'section: '*) r_section="${line#section: }" ;; 'status: '*) r_status="${line#status: }" ;; 'issue: '*) r_issue="${line#issue: }" ;; 'quote: '*) r_quote="${line#quote: }" ;; 'check: '*) r_check="${line#check: }" ;; esac done < "$REGISTRY" finish_record ``` On a repeated `claim id:`, the loop validates the preceding record and assigns the same ID to the next record. `finish_record` validates fields and the check, but does not compare the current ID with earlier IDs, so a valid duplicate reaches the normal success path. ### Observed duplicate run The test used disposable registry copies and appended the exact original complete record before running the gate: ```bash rm -rf /tmp/boris-duplicate-claim-exact && cp -R . /tmp/boris-duplicate-claim-exact && { printf '\n'; sed -n '40,45p' test/contract-claims.txt; } >> /tmp/boris-duplicate-claim-exact/test/contract-claims.txt && set +e; (cd /tmp/boris-duplicate-claim-exact && bash scripts/test-contract-claims.sh) > /tmp/boris-duplicate-claim-exact/result.log 2>&1; rc=$?; set -e; printf 'exit_status=%s\n' "$rc"; printf '%s\n' '--- output ---'; printf '%s\n' "$(< /tmp/boris-duplicate-claim-exact/result.log)" ``` ```text exit_status=0 ==> contract claims: test/contract-claims.txt OK frontmatter.parent-legacy-keys-rejected OK graph.parent-must-exist OK cli.usage-error-exit-2 OK diagnostics.pure-io-failure-exit-3 OK cli.version-query OK cooklang.name-termination-adjacency (known divergence https://github.com/drawmeanelephant/boris/issues/907 — still reproduces) OK frontmatter.parent-legacy-keys-rejected ==> 6 enforced, 1 known divergence(s), 7 record(s) total contract-claims: all assertions passed ``` The exact duplicate is reported twice, the total increases to seven records, and the gate exits successfully. The focused evidence also records the other mutation's exit status as `1` with contract prose drift, rather than a duplicate-ID diagnostic; the exact-record run isolates the duplicate acceptance. ### Result The source path and captured run support the reported failure: duplicate claim IDs are accepted as separate coverage records and do not cause the gate to fail. ### Test context The mutation was performed only in disposable copies under `/tmp`; no repository files, mocks, authentication changes, or service restarts were used.