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
2 changes: 1 addition & 1 deletion .claude/skills/spec-first-ternary-nn.md
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ The stack on master (`specs/ternary/`): `activation_quantizer.t27` (#1738) → `
## Ship discipline (t27)

- `t27c seal <spec> --save` after every spec change; `--verify` must MATCH. Trust CI `validate` (the seal oracle), not local `seal --verify` (local binary can differ).
- Every PR: prepend a `docs/NOW.md` entry dated today-UTC + `Closes #N` in the PR body. **One clean commit** — the `Check L1 TRACEABILITY` gate fails *any* commit (incl. merge/docs) lacking an issue ref.
- Every PR: add one `docs/now/<YYYY-MM-DD>-<slug>.md` entry file dated today-UTC (`docs/NOW.md` is a frozen archive -- do not add entries there) + `Refs #N` in the PR body. **One clean commit** — the `Check L1 TRACEABILITY` gate fails *any* commit (incl. merge/docs) lacking an issue ref.
- master has a ruleset: merge with `gh pr merge --merge` (or `--auto`), **never** `--admin`, never force-push.

## What's next (roadmap)
Expand Down
20 changes: 16 additions & 4 deletions docs/loop/LOOP-RULES.md
Original file line number Diff line number Diff line change
Expand Up @@ -225,10 +225,22 @@ Violating any of these fails the tick.

## R12 -- Before opening a PR

Add a `## <topic> (Closes #N)` section to the top of `docs/NOW.md`, set
`Last updated:` to the current UTC date (the gate accepts yesterday / today /
tomorrow UTC), and put a literal `Closes #N` line in the PR body -- `Refs #N`
does NOT satisfy `check-linked-issue`.
Add one entry FILE, `docs/now/<YYYY-MM-DD>-<slug>.md`, dated inside the window
the gate prints (yesterday / today / tomorrow UTC). `docs/NOW.md` is a FROZEN
ARCHIVE and says so on its first line: do not add entries there. It was frozen
in `f5be7dc1c` (#2298) precisely because one file per PR is what stops every
concurrent PR colliding on its first line, and this rule went on naming it for
sixteen days.

Reference the issue in the PR body. `Refs #N` DOES satisfy `check-linked-issue`:
the matcher is `(Closes?|Fixes?|Resolves?|Refs?|Updates?)\s*#[0-9]+` at
`.github/workflows/issue-gate.yml:69`, and seven readers in this tree carry that
same dictionary. Prefer `Refs #N` over `Closes #N` whenever the issue is one R11
forbids closing -- which is most of them, since `Closes` autocloses on merge.

Do not re-transcribe that dictionary anywhere: a hand-copied copy missing `Refs`
once matched 4 references where the gate matched 33, and this sentence was the
next copy to go wrong. Read it out of `issue-gate.yml`.

Four required checks: `check`, `validate`, `check-now-freshness`,
`check-linked-issue`.
Expand Down
2 changes: 1 addition & 1 deletion docs/loop/LOOP-RULES.sha256
Original file line number Diff line number Diff line change
@@ -1 +1 @@
b6d5a074c11147ee7dd29441958a0ce5c4d82aa24cece964ae584b38ff5a9743 docs/loop/LOOP-RULES.md
f4c3c52eb779142edd011d3ce39faf71f12a4a69a677ecb5b42ca8b8e7b6fbd9 docs/loop/LOOP-RULES.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
# NOW -- Two rules that were wrong on the day they were written (2026-09-06)

## Two rules that were wrong on the day they were written (Closes #3368)

- LOOP-RULES R12 said `Refs #N` does NOT satisfy `check-linked-issue`. The gate's matcher has carried `Refs?` since 2026-07-07; the sentence was written 2026-08-20 -- 44 days late on arrival. Seven readers in the tree accept it; R12 was the sole dissenter, and it demanded the one spelling R11 forbids nineteen lines above.
- R12 also still told authors to write to `docs/NOW.md`, frozen since #2298 with 'do not add entries here' on its first line. Same instruction in `.claude/skills/spec-first-ternary-nn.md:62`.
- The dictionary is NOT re-transcribed in the repair -- R12 now points at `issue-gate.yml:69`, because a hand-copied copy missing `Refs` once matched 4 references where the gate matched 33, and this sentence was the next copy to go wrong.
- The obvious guard is declined by measurement: over 600 commits since the freeze, 2 touched `docs/NOW.md` and one REPAIRS damaged entries, so 'fail any diff containing it' would have blocked a legitimate repair. The narrow rule -- fail an ADDED `## ` heading -- is a required-gate change and is filed, not done.
Loading