Skip to content

chore(pm): compress the un-ratcheted instruction surface and extend the line ratchet over it - #8712

Merged
hotlong merged 1 commit into
mainfrom
claude/issue-8700-instruction-surface-compression
Aug 14, 2026
Merged

chore(pm): compress the un-ratcheted instruction surface and extend the line ratchet over it#8712
hotlong merged 1 commit into
mainfrom
claude/issue-8700-instruction-surface-compression

Conversation

@hotlong

Copy link
Copy Markdown
Contributor

Fixes#8700

ADR-class merge path per the card: draft PR, human merge, auto-merge never armed.

Deliverable 1 — one-time compression pass

Uniform rule applied: verbatim maintainer quotes keep (one line where the quote allows); measured-story narratives compress to ONE line; every normative bullet and stop-mark survives — removals below are pure duplicates whose statement survives in the named home file, under the existing cross-pointer convention (SKILL.md keeps the principle statement, references keep only the delta: quotes, parameters, full clause texts, execution steps).

filelines beforeafterstop-marks beforeafter
references/dispatch-runbook.md2912163929
references/platform-readings.md1431211515
references/review-checklist.md958298
references/landing-operations.md86821212
references/seat-post-protocol.md1141011514
.claude/agents/os-dev.md4353991111
SKILL.md (untouched)686686

References five-file total: 729 → 602. The two sections freshly compressed by the preceding PR (结论当轮执行, 座位贴活性巡查) are kept as-is per the card.

Stop-mark accounting. Every removed stop-mark is a pure duplicate; the statement survives verbatim-equivalent at the named home:

dispatch-runbook.md (10 removed):

  1. 不手工维护 (pm:blocking) — SKILL.md 标签纪律 carries 「⛔ 不手工挂」 twice
  2. 不定级、不改标签 (lane evidence) — SKILL.md 发现分诊轮 carries 「⛔ 不定级不改标」 incl. the skills-lane exception
  3. 不用 create_trigger+fire — SKILL.md 云卡四课 intro carries it verbatim with the 2026-08-07 ruling
  4. 不持续等待 (cross-lane takeover) — SKILL.md 跨车道简单阻塞项 carries it verbatim
  5. 不等任何静默阈值 (stall reset) — SKILL.md 失报与停摆 carries it verbatim
  6. 不能写成「派发词写全了就可以不探」 — SKILL.md 失报与停摆 carries it verbatim
  7. 到达不读作「还活着」/不到达也不读作「已死」 — SKILL.md 通知重放 carries it verbatim
  8. 标准非协商条款不抄进派发词 — SKILL.md 派发词原则 carries it verbatim (whole bullet was a near-verbatim duplicate; dropped)
  9. 不靠派发词临时覆盖 — same SKILL.md bullet
  10. 不从卡片/上次派发/记忆抄 — same SKILL.md bullet (the runbook keeps the un-duplicated 不让 dev 枚举全 farm)

review-checklist.md (1 removed): the gerund-parser fact (closing/fixing are not keywords) — statement home is platform-readings 闭合关键词解析, which the checklist bullet now points to.

seat-post-protocol.md (1 removed): 永不散文 (three-type shift report) — SKILL.md 全体座位的不变量 carries 「⛔ 不是散文」.

Honest miss on the numeric target: the card aimed the runbook at ~170 (prompt: 170–190); it landed at 216. The compression exhausted what the no-semantic-change rule allows: what remains is norms, verbatim ruling quotes, one-line whys, the full clause texts SKILL.md points to, and the two kept-as-is sections. Pushing to 190 would have meant deleting norms rather than prose. Ceilings are set at the achieved counts; a further thinning can lower them any time.

Deliverable 2 — ratchet extension

scripts/pm/check-skill-line-ratchet.mjs goes from the single SKILL.md ceiling to a per-file CEILINGS map covering all seven files above, ceilings = the exact post-compression counts (headroom 0 everywhere, SKILL.md stays 686). Output style and the funded-growth rule (raising requires a maintainer ruling quoted in the raising PR) are kept; the red message now also names the authoring rule. Self-test extended (7 → 11 cases: per-file map coverage, message names file/remedy/authoring-rule). The watch-hint pins in scripts/pm/dispatch-gates.mjs are re-pointed: the ratchet now claims each covered file by full-path literal (positive pin added) and still does not claim all of references/.

Deliverable 3 — authoring style rule

One line added to the runbook's 落卡与裁决记录细则: 出处一行(日期 + 原话);实测叙事至多压成一行 —— 故事住在卡上,不进操作文本。 (counted inside the runbook budget above).

Verification

Union run AFTER the final commit at HEAD c0ecfc6ab2, all green:

  • check:pm-skill-ratchet — new per-file ceilings, self-test 11 cases, all 7 files at headroom 0
  • check:pm-skill-id-lint — 9 files clean (zero issue-IDs survived the rewrite)
  • check:agent-model-declared — os-dev.md → opus
  • check:skill-frame-sync — 4 copies isomorphic, 3 axes, binding sentence present (os-dev.md frame untouched)
  • check:doc-authoring — 377 files clean
  • check:nul-bytes — 5732 files clean
  • check:doc-formula-expressions — after formula closure build; 1410 TS blocks clean
  • check:pm-dispatch-gates — 107 self-test cases (derivation addition beyond the prompt's named list, surfaced by re-deriving over the actual changed paths: this PR edits dispatch-gates.mjs watch-hint pins)

Gate families re-derived post-change with node scripts/pm/dispatch-gates.mjs over the 8 changed paths; the derivation now shows each references file matching check:pm-skill-ratchet via its own full-path literal — the extension is visible to the derivation itself.

skip-changeset: docs + pm tooling only, nothing releases (per precedent).

Generated by Claude Code


Generated by Claude Code

…he line ratchet over it (#8700)
One-time compression pass over the five pm-dispatch references files and
.claude/agents/os-dev.md: verbatim maintainer quotes keep, measured-story
narratives compress to one line, every normative bullet and stop-mark
survives (removals are pure duplicates whose statement lives in SKILL.md,
itemized in the PR body). check:pm-skill-ratchet extends from the single
SKILL.md ceiling to per-file ceilings over the whole surface, set at the
post-compression counts; its self-test grows to cover the per-file map,
and the dispatch-gates watch-hint pins are re-pointed at the new shape.
Adds the authoring style rule to the runbook: provenance is one line,
stories live on cards, not in operational text.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_018WuTtyckQa1VcXwgd52JpN
@vercel

vercelBot commented Aug 14, 2026

Copy link
Copy Markdown

The latest updates on your projects. Learn more about Vercel for GitHub.

1 Skipped Deployment
ProjectDeploymentActionsUpdated (UTC)
objectstackIgnoredIgnoredAug 14, 2026 3:40pm

Request Review

@hotlonghotlong added the skip-changeset PR has no user-facing published change; bypasses the changeset gate label Aug 14, 2026 — with Claude
@github-actionsgithub-actionsBot added the documentation Improvements or additions to documentation label Aug 14, 2026
@hotlongClaude

Copy link
Copy Markdown
ContributorAuthor

Review: ACCEPT — PM seat, session session_018WuTtyckQa1VcXwgd52JpN, fable tier (mandatory surface). Stays draft for human merge; auto-merge not armed.

Independently verified at the head (scratch worktree @ c0ecfc6ab2, == quoted union HEAD)

  • Line counts match the PR's table exactly: runbook 216 · platform-readings 121 · review-checklist 82 · landing-operations 82 · seat-post-protocol 101 · os-dev.md 399 · SKILL.md 686 untouched. References five-file total 729 → 602; whole instruction surface −163 lines.
  • Ratchet extension proven live: the gate runs green with every covered file at headroom 0, self-test 11/11, and dispatch-gates self-test 107/107 (watch-hint re-pointing held).
  • Semantic-survival sampling: four net-removed ⛔ rules traced to their surviving homes — gen:schema MERGE trap and the negated-closing-sentence rule alive verbatim in os-dev.md; pm:blocking derivation's ⛔ now in SKILL.md's own table; grading single-producer alive in SKILL.md with a one-line runbook pointer. Consistent with the PR's itemized pure-duplicate claim.
  • One bookkeeping nit, non-blocking: runbook's before-count of stop-marks reads 38 by this reviewer's grep vs 39 in the accounting (net removals 11 vs 12) — an off-by-one in the ledger, not a missing rule; all sampled removals check out.

On the honest miss

Runbook landed at 216 vs the card's ~170–190 target. Accepted: the target was the PM's rough estimate made before the file absorbed two fresh sections, the remaining text is norms not stories by inspection, and — decisively — the new per-file ceiling now pins 216, so any future growth is funded line-by-line. The mechanism matters more than the estimate.

Ready for the human merge (ADR-class). This is the last piece: once merged, the entire pm-dispatch instruction surface (SKILL.md + all references + os-dev.md) is under the line ratchet.


Generated by Claude Code

@hotlong
hotlong marked this pull request as ready for review August 14, 2026 16:32
@hotlong
hotlong added this pull request to the merge queueAug 14, 2026
Merged via the queue into main with commit e368bb3Aug 14, 2026
25 checks passed
@hotlong
hotlong deleted the claude/issue-8700-instruction-surface-compression branch August 14, 2026 16:48
Sign up for freeto join this conversation on GitHub. Already have an account? Sign in to comment

Labels

documentationImprovements or additions to documentationsize/xlskip-changesetPR has no user-facing published change; bypasses the changeset gate

Projects

None yet

Development

Successfully merging this pull request may close these issues.

pm-dispatch: compress the un-ratcheted instruction surface and extend the line ratchet over it — provenance one line, stories live on cards

2 participants

@hotlong@claude