Skip to content

docs: add the rule-candidate register, and put RC-1 in it unhardened - #2

Merged
Chheng64 merged 1 commit into
mainfrom
docs/rule-candidates
Aug 7, 2026
Merged

docs: add the rule-candidate register, and put RC-1 in it unhardened#2
Chheng64 merged 1 commit into
mainfrom
docs/rule-candidates

Conversation

@Chheng64

@Chheng64 Chheng64 commented Aug 7, 2026

Copy link
Copy Markdown
Owner

Why

Principle 5 says every defect becomes a rule. It does not say immediately, and until now that difference had nowhere to live — the observation from the reference run was sitting in a changelog bullet labelled "rule candidate", which is a note, not a process.

A rule is a claim about a class. One occurrence cannot establish one. Resolving that immediately fails in both directions:

Harden on sight Discard
The catalogue fills with rules written by one incident each. Every one costs a reader's attention on every run. A rule nobody can afford to read is not enforced. The second occurrence arrives with nothing recorded to match against, and reads as a first one too. The class stays invisible for as long as nobody remembers.

What this adds

docs/rule-candidates.md — the waiting room.

Promotion needs the five conditions already in CONTRIBUTING.md, plus a sixth that applies only to candidates: the class has recurred independently — a different project, a different author, or a different state reached without knowledge of the first. Two instances in one sweep are one occurrence. So are two that a single fix removes.

A candidate deliberately has no authority: no rule code, cited in no plan or gate record, checked by no tool, blocks nothing. RC-n indexes the register and is not a namespace. The failure mode being guarded against is a candidate quietly acquiring the standing of a rule.

RC-1

The observation from examples/signin: a source comment naming the APIs it claims not to use, inside the file being swept for those names. Recorded with the mechanism, why it might generalise past network APIs, what would promote it, and the workaround meanwhile.

Not hardened. Manufacturing a second instance to justify it would be exactly what this method exists to prevent.

Verified

943/943 internal links resolve · 0 findings
39 mermaid blocks · 0 findings

No workflow state, transition, guard, gate, ceiling, validation rule or tool behaviour changed.

🤖 Generated with Claude Code

Principle 5 says every defect becomes a rule. It does not say immediately,
and the difference had no home until now.

A rule is a claim about a class. One occurrence cannot establish one — it
is either the first sighting of a real class or a local quirk that never
recurs, and there is no way to tell from inside the run that produced it.
Both ways of resolving that immediately are wrong in opposite directions:
hardening on sight fills the catalogue with rules written by one incident
each, until nobody can afford to read it; discarding means the second
occurrence arrives with nothing to match against and reads as a first one
too.

docs/rule-candidates.md is the waiting room. Promotion needs the five
conditions in CONTRIBUTING plus a sixth that applies only to candidates:
the class has recurred INDEPENDENTLY — a different project, a different
author, or a different state reached without knowledge of the first. Two
instances in one sweep are one occurrence. So are two that a single fix
removes.

A candidate has no rule code, is cited in no plan or gate record, is
checked by no tool, and blocks nothing. RC-n indexes the register; it is
not a namespace. That constraint is the point: the failure mode here is a
candidate quietly acquiring the authority of a rule.

RC-1 is the observation from the reference run — a source comment naming
the APIs it claims not to use, inside the file swept for those names.
Recorded with the mechanism, why it might be a class, what would promote
it, and the workaround meanwhile. Not hardened. Manufacturing a second
instance to justify it would be the thing this method exists to prevent.

Wired into CONTRIBUTING, docs/method-rules.md, docs/README.md,
GLOSSARY.md, CHANGELOG.md and DOCS_AUDIT.md.

Verified:
  943/943 internal links resolve · 0 findings
  39 mermaid blocks · 0 findings

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
@Chheng64
Chheng64 merged commit 79ddfc2 into main Aug 7, 2026
6 checks passed
@Chheng64
Chheng64 deleted the docs/rule-candidates branch August 7, 2026 13:06
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