spec: bind signature mode to the signer allowlist in the normative text - #645
Merged
Conversation
CommitLore — record lintTrailers: clean — 1 commit in Trailer violations fail this check. Active constraints are informational — they are what the repository already decided, not a verdict on this PR. |
#642(#597)가 requireSignedDirective 모드에 trustedSigner allowlist를 추가했다. README 4개·docs/cli.md·docs/capture.md·ADR-0005는 새 계약을 담고 있는데 SPEC §7만 옛 계약(Git G 상태만 요구)에 머물러 있었다. 정본이 구현보다 약한 게이트를 서술하면, 스펙만 보고 만든 구현은 CommitLore가 claim으로 등급하는 레코드를 directive로 등급한다. #631이 다루는 경로별 등급 불일치와 같은 종류이며, 여기서는 스펙과 구현 사이에서 벌어진다. 문구는 ADR-0005의 이미 승인된 서술을 옮긴 것이고 새 결정을 담지 않는다. Limit: SPEC §7은 구현이 실제로 강제하는 것보다 약한 조건을 서술할 수 없다 Ruled-out: README·docs만 고치고 SPEC은 두기 | 정본이 규범이라 독립 구현자는 SPEC을 읽지 README를 읽지 않는다 Record-Id: r-signspec645 Blast: module Undo: easy Certainty: firm X-Claude-Session: https://claude.ai/code/session_01Go54NtZpaoNMRtmYtPLX6R
MongLong0214
force-pushed
the
spec/signer-allowlist
branch
from
August 14, 2026 04:35
80dfdc5 to
feaf59a
Compare
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.
The normative spec describes a weaker gate than the implementation enforces
#642(#597) made signature mode require two things: Git'sGstatus and an exact%GFfingerprint in the repository-localcommitlore.trustedSignerallowlist. Every user-facing surface picked that up. The normative text did not.README.md,README.ko.md,README.ja.md,README.zh-CN.mddocs/cli.md(lines 29–31, 143)docs/capture.md(line 150)docs/adr/ADR-0005-trust-minimal.mdspec/SPEC.md§7Gstatus onlyWhy this is worth a PR rather than a follow-up note
SPEC is what an independent implementer reads; the README is not. Building to §7 as written produces a verifier that grades a record
[directive]where CommitLore grades it[claim]— a signed commit from a key in Git's trust store but absent from the repository's allowlist.That is the same class of defect as #631, where one record graded differently through the CLI and through MCP. Here the divergence is between the spec and the implementation rather than between two routes, and it is the more durable of the two: a runtime skew is fixed by converging runtimes, while a spec that understates a security condition keeps producing under-built verifiers for as long as it stands.
What changed
Two sentences in §7. The wording is transcribed from ADR-0005, which is already merged — this carries no new decision, and the missing pieces are the ones that change behaviour:
%GFfingerprint must appear incommitlore.trustedSigner;The closing "minimum, not a solution" sentence now names the allowlist alongside Git's trust store.
Verification
§3 is untouched, so the README↔SPEC vocabulary check is unaffected.
Raised as a PR rather than pushed, since §7 is the CTO's contract surface — if the intended reading differs from ADR-0005's, the ADR is the text to reconcile against.