Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
12 changes: 12 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -347,6 +347,18 @@ than smoothed over:
disclosed rather than hidden. Sentence extraction is heuristic (terminal
punctuation + capitalization); the receipt quotes clauses verbatim, so a
mis-split is visible in the receipt itself.
- **MUST clauses have no probe-carrying path — measured, not neglected.**
Binding a clause to a test needs a join signal a test can mechanically
name. Measured across every qualifying corpus: the one real RFC's 58
keyword clauses contain zero spec identifiers and zero requirement labels,
only 5 carry a backticked code token, and that repository's tests are
shell/C infrastructure suites correctful has no runner for. A fuzzy
textual join would mint false bindings — the same class the doc-comment
binding was cut for — so clauses stay honestly in the remainder. The
bindable form is explicit: a document that labels its requirements
(`R-007`-style) with tests naming the label gets binding through the
existing test-name reconciliation; support lands when a corpus adopts
labels.

## Layout

Expand Down
14 changes: 10 additions & 4 deletions internal/harvest/rfcmust.go
Original file line number Diff line number Diff line change
Expand Up @@ -40,10 +40,16 @@ var docExts = map[string]bool{".md": true, ".markdown": true, ".txt": true}
// - The RFC 2119 / BCP 14 interpretation boilerplate is never a claim: it
// declares the keywords, it doesn't use them.
//
// Clauses carry no probes in v0 — binding a MUST clause to a test is the
// proof-carrying-binding increment, not a name trick. Every clause lands in
// the remainder, which is the point: the receipt now states the normative
// surface nothing checks instead of silently not knowing it exists.
// Clauses carry no probes — and that is a MEASURED state, not a deferral.
// Binding a clause to a test needs a join signal a test can mechanically
// name; measured across every qualifying corpus, the one real RFC's 58
// keyword clauses contain zero spec-ids and zero requirement labels, and a
// fuzzy textual join would mint false bindings (the same class the
// doc-comment binding was cut for). The bindable form is explicit clause
// labels (R-007-style) named by tests — support lands when a corpus adopts
// them. Until then every clause lands in the remainder, which is the point:
// the receipt states the normative surface nothing checks instead of
// silently not knowing it exists.
type RFCMustHarvester struct{}

func (RFCMustHarvester) Name() string { return "rfc-must" }
Expand Down
Loading