Filed by the domain:skills execution seat (session_01Gqi43smmqjJ5sUrhfoPeKu, seat post #7623) out of the #18798 round (PR #18809, two rounds), from the dev's out-of-scope findings in both rounds, re-measured by the seat before filing. ⛔ Filed bare: finding only, domain:* / type / priority are triage's (lane self-triage exception noted — the seat did not grade its own filing). ⛔ The seat is the instance: its round-1 dispatch for #18798 excluded SKILL.md for a hot-file serial, PR #18809's first commit landed core-rules.md :46 with no SKILL.md twin, and nothing mechanical said so — the round-1 dev read SKILL.md :43 / :44 back to the seat, and round 2 added the twin.
Dedupe words: 核心条款 同 PR 同改 · core-rules SKILL.md 无镜像门禁 · 本文不新增规则 · twin line SKILL.md:44 · digest subset drift · check-skill-line-ratchet counts lines only.
The reading, on origin/main a7bafc29af
Shape (⛔ a proposal, not a prescription)
The relation is checkable by text: every core-rules bullet (151 lines) must be stated by SKILL.md — byte-identical twins exist today (SKILL.md :159 = core-rules :43; after PR #18809, SKILL.md :165 = core-rules :46), but the digest also compresses several 细则 lines into one row, so a byte-identity check would read false on rows that are legitimately fused. The cheapest mechanical demand that survives that: a declared twin map (digest row → the SKILL.md line(s) it compresses, by anchor text), held in the ratchet script or beside it, and a gate that (a) refuses a core-rules diff whose new or changed row has no twin entry pointing at a SKILL.md line present in the same tree, and (b) refuses a SKILL.md diff that deletes a line a twin entry points at unless the same diff changes the digest row. Both legs are diff-local and cost nothing on an unrelated PR. ⚠️ The map itself is a new declaration surface — whether it is worth its upkeep against the two measured near-misses is the triage's call; the alternative is to leave the obligation to attention and accept the shape PR #18809 measured.
⛔ Not measured
- How many digest rows today have NO SKILL.md statement (the subset relation's current truth) — round 2 checked the two retired lines and the two refused ones against the digest, not the whole 151 against the whole 812.
- Whether any earlier PR on this pair landed one half only (the two reference PRs carried both; the rest were not re-read).
Refs: #18798 · PR #18809 · PR #18511 · PR #18481 · SKILL.md :43–:44 · references/core-rules.md :3 · scripts/pm/check-skill-line-ratchet.mjs :1126
domain:skills execution seat · seat post #7623 · readings taken on origin/main a7bafc29af
Generated by Claude Code
Filed by the
domain:skillsexecution seat (session_01Gqi43smmqjJ5sUrhfoPeKu, seat post #7623) out of the #18798 round (PR #18809, two rounds), from the dev's out-of-scope findings in both rounds, re-measured by the seat before filing. ⛔ Filed bare:findingonly,domain:*/ type / priority are triage's (lane self-triage exception noted — the seat did not grade its own filing). ⛔ The seat is the instance: its round-1 dispatch for #18798 excluded SKILL.md for a hot-file serial, PR #18809's first commit landedcore-rules.md:46 with no SKILL.md twin, and nothing mechanical said so — the round-1 dev read SKILL.md :43 / :44 back to the seat, and round 2 added the twin.Dedupe words:
核心条款 同 PR 同改·core-rules SKILL.md 无镜像门禁·本文不新增规则·twin line SKILL.md:44·digest subset drift·check-skill-line-ratchet counts lines only.The reading, on
origin/maina7bafc29afreferences/core-rules.md,是本文的子集;细则是本文其余各节与其它 references。」; SKILL.md :44 「一条规则在本文与核心条款一处改动,另一处同 PR 同改。」; core-rules :3 「…本文不新增规则。」.git grep -l core-rules -- scripts/ .github/ package.jsonreads 2 files —check-skill-line-ratchet.mjs(counts lines and the widest row) anddispatch-gates.mjs(derives families);git grep -n 核心条款 -- scripts/ .github/reads ONE line, a COMMENT atscripts/pm/check-skill-line-ratchet.mjs:1126 quoting the rule (seat re-read; lit controls in the dev's round-1 report:platform-readings7 files,SKILL.md40 files; absent control 0).check:skill-frame-syncjudges the four-axis decision frame's coherence, not the rule rows.Shape (⛔ a proposal, not a prescription)
The relation is checkable by text: every core-rules bullet (151 lines) must be stated by SKILL.md — byte-identical twins exist today (SKILL.md :159 = core-rules :43; after PR #18809, SKILL.md :165 = core-rules :46), but the digest also compresses several 细则 lines into one row, so a byte-identity check would read false on rows that are legitimately fused. The cheapest mechanical demand that survives that: a declared twin map (digest row → the SKILL.md line(s) it compresses, by anchor text), held in the ratchet script or beside it, and a gate that (a) refuses a core-rules diff whose new or changed row has no twin entry pointing at a SKILL.md line present in the same tree, and (b) refuses a SKILL.md diff that deletes a line a twin entry points at unless the same diff changes the digest row. Both legs are diff-local and cost nothing on an unrelated PR.⚠️ The map itself is a new declaration surface — whether it is worth its upkeep against the two measured near-misses is the triage's call; the alternative is to leave the obligation to attention and accept the shape PR #18809 measured.
⛔ Not measured
Refs: #18798 · PR #18809 · PR #18511 · PR #18481 · SKILL.md :43–:44 ·
references/core-rules.md:3 ·scripts/pm/check-skill-line-ratchet.mjs:1126domain:skillsexecution seat · seat post #7623 · readings taken onorigin/maina7bafc29afGenerated by Claude Code