Skip to content

Skills optimization flight — the four small internal skills (+ objectui verify): seven dead references, three rules copied from os-dev.md / SWEEP.md / RUNNER.md, the live-elsewhere gap (#14058), and a versioned Chromium path that breaks on the next image bump #14317

Description

@os-litant

Member card of the skills catalog optimization program #14292 (maintainer mandate 2026-09-02, verbatim: 「审核所有的 skills,进行全面的优化。」). Filed by the skills lane seat (session session_01LraLgQVGq8egUwfYZpbYt1). Read-only audit at objectstack origin/main a59f78d (.claude/skills/** and scripts/pm/** byte-identical at d63c8a2) and objectui 67dadd6. The auditor's harness refused to write a findings file; the findings are recorded here (the dev posts the seat's full audit message as the audit-record comment at claim time — provided in the dispatch brief). Family dispatch: this card also closes #14058 (the live-elsewhere verdict gap in spec-property-retirement) — same file, same fix (SPR-C-05); #14058 keeps its own claim comment pointing at this branch.

Verdicts

skill ceiling (lines) verdict reducible
checklist-author 62 RESTRUCTURE ~15 of 44 body lines are a second copy of SWEEP.md
checklist-test 238 TRIM ~15 lines
dogfood-verification 157 DIET ~25 lines
spec-property-retirement 337 DIET ~35 lines + 4 dead refs + 1 blocking gap
objectui .claude/skills/verify (unpriced, unguarded) HEALTHY one fix

None is a retirement candidate. All four objectstack skills carry metadata.internal: true (enforced by packages/create-objectstack/src/template-consistency.test.ts:601). Usage cadence is not measurable on a shallow clone (dimension E recorded NOT MEASURED).

Findings (id · span · fix)

  • SPR-C-01 spec-property-retirement:329-332 — "check-generated runs behind a paths filter in ci.yml; add the path in the same PR": that job and filter were deleted (lint.yml:3949,4078 "gone (ci.yml 的 generated paths filter 是门输入集合的手工副本、无人对账——三次漂移在案,收编剩余 4 个门后应整个删除 #4291)"; ci.yml has no paths:); AGENTS.md:724-726 states the current truth. DELETE −4.
  • DOG-C-01 dogfood:66-83 (18 lines) — the ablation predict-then-mutate rule duplicates .claude/agents/os-dev.md:274-283 (same criterion, same KNOWN_UNALIASED_TEST_IMPORTS ledger, same two incidents); both texts say the rule is not dogfood's. MERGE-INTO os-dev.md (pointer, 2 lines). −16.
  • CLA-C-01 checklist-author:33-51 — opens 「本技能…不是流程的第二份拷贝」 then restates SWEEP.md:48-68 steps 2–6 one-for-one + SWEEP's angle table. REWRITE to the 3 clauses SWEEP lacks + pointer. −13.
  • SPR-D-01 spec-property-retirement:316-337 — 4 of 7 traps duplicate a binding anchor (stale-dist = AGENTS.md:764-767; | tail -1 = os-dev.md:140-141; sequential masking = AGENTS.md:725-729 and the skill's own :28-31; --check vs bare = AGENTS.md:754-758). Keep the two unique ones. −10.
  • SPR-C-05 (= [finding] spec-property-retirement skill predates the live-elsewhere verdict — its ledger-verdict discipline never names the never-remove cross-repo case #14058) — the ledger grew a fifth verdict live-elsewhere (packages/spec/liveness/README.md:63-64,262-308; gate packages/spec/scripts/liveness/elsewhere.test.ts; 1 live row of 703): the skill has zero hits for it; §0's four-question checklist and §1's 「dead 裁定是删除的输入」 predate it. ADD a fifth §0 checkbox naming the never-remove cross-repo case, paid by SPR-C-01 + SPR-C-04.
  • CLT-B-01 checklist-test:78-87 — 「解析器给出的 automated.ref」 is false: scripts/checklist-select.mjs:180 projects {id,priority,surface,since,revision}; the field lives only in areas/*.json, so the Tier-1 batching step is unexecutable as written. Fix the step to read the field from the area file.
  • SPR-C-02 spec-property-retirement:81 — the strict-delete route describes a hand-written z.core.$ZodErrorMap; superseded by [finding][spec] #6619's inventory of hand-written $ZodErrorMaps was two short — strictToolError and strictCapabilitiesError survive the fold, still invisible to alias-integrity.test.ts #6805: shared/strict-object.ts:125-137,257-312 guidance: template, audited by alias-integrity.test.ts. Rewrite to name both files.
  • SPR-C-04 spec-property-retirement:300-311 — a hand-rolled 10-name check:* loop is the "match by hand" AGENTS.md:742-750 forbids; the skill cites AGENTS.md at :255. REWRITE to check:generated + only the pure audits. −8.
  • VFY-C-01 objectui verify:26-29 — prescribes /opt/pw-browsers/chromium-1194/chrome-linux/chrome; both siblings prescribe the alias /opt/pw-browsers/chromium and warn against exactly this spelling (RUNNER.md:151-160; os-dev.md:142-143). Fix (objectui PR).
  • DOG-F-01 dogfood:31-43RUNNER.md:186-208 names dogfood §0 as the origin of the -p <port>-alone trap (self-pinging connectors dial 3000 via SHOWCASE_SELF_URLOS_PORTPORT); grep OS_PORT over dogfood → 0. ADD 2 lines, paid by DOG-C-01.
  • CLT-C-01 checklist-test:96-97 — 「派发 runner 子代理时,必须用 opus」 is a memory-sourced blanket tier; pm-dispatch requires 「档位引当次 node scripts/pm/dispatch-gates.mjs --tier 输出,⛔ 不凭记忆」. Rewrite to the --tier rule.
  • CLA-C-02 checklist-author:46-49 — 「六条 waiver 有四条已过期」 is the oldest of three disagreeing numbers; SWEEP.md:76-86 says 6 of 6 retired and check-platform-checklist.mjs reports "0 waived". Fix.
  • SPR-C-03 :313-314 lists 3 of the 5 no-generator audits AGENTS.md:765-770 names · SPR-C-06 :145 「~28 个墓碑」 vs 178 retiredKey( sites and a pin floor of 50 · SPR-F-01 §4's changeset row omits the ADR-0087 disposition marker AGENTS.md:1122-1131 requires (pnpm check:adr-0087-registration enforces) · CLT-C-02/C-03 :229-235, :102-105 re-copy RUNNER rules 1–2 despite :24-25 disclaiming a second copy (and :230 claims a precedence RUNNER.md:67 denies) · X-02 the no-subagent degradation clause is stated twice near-verbatim (checklist-author:58-62 / checklist-test:98-101, both from skills(pm): give sweep disjunct ① the drain clauses the finding box already has #14152 — keep ONE, note the maintainer provenance in the PR).
  • Dead references (positive-controlled): SPR:103 scripts/liveness/orphans.mtspackages/spec/scripts/liveness/orphans.mts · SPR:261 packages/cli/src/utils/lint-liveness-properties.tspackages/lint/src/lint-liveness-properties.ts · SPR:282 .changeset/tool-inert-keys-removed.md → consumed at release; cite a live *-retired.md carrying "The retirement kit:" · SPR:329-332 (above) · CLA:42 README's "deep-test 契约" → README.md:42 ## Item anatomy · CLT:78-87 (above). Incidental (non-skill, report only): SWEEP.md:68 "land the run record under runs/" vs runs/.gitignore = *; .claude/launch.json:18-33 pr3505-attach-3477 points at a worktree that does not exist.
  • X-01 (structural, decide in-flight by pointer): environment facts are split between checklist-test:27-29→dogfood and RUNNER.md:94-260 (7 facts dogfood lacks, incl. OS_PORT; one stated more fully). Rule: RUNNER.md is the environment anchor; dogfood §0 points at it and carries only what RUNNER does not; ⛔ no second copy.

Flight scope

IMPLEMENT: every item above, as TWO PRs — objectstack (.claude/skills/{checklist-author,checklist-test,dogfood-verification,spec-property-retirement}/SKILL.md, shrink-only under the line ratchet; ⛔ do not touch scripts/pm/check-skill-line-ratchet.mjs — it is held by PR #14236; headroom that appears is re-locked in the corpus audit's Phase 3) and objectui (.claude/skills/verify/SKILL.md, one path fix). Fixes #<this card> and Fixes #14058 both on the objectstack PR.

DEFER / report-only: the two incidental non-skill items (file as out-of-scope cards if not already carded); X-02's maintainer provenance (#14152) is noted, not re-litigated.

Flight constraints (binding)

  • Draft PRs, governed (.claude/** in both repos) ⇒ stay draft; review requests are the seat's step; skip-changeset in objectstack (docs-only); objectui: empty-frontmatter changeset only if its rule asks, ⛔ never request a label.
  • Line ratchet: no ratcheted file may grow; additions paid by deletions in the same file; ⛔ re-wrap is not payment.
  • ⛔ Do not edit os-dev.md, AGENTS.md, RUNNER.md, SWEEP.md — they are the anchors; a pointer replaces the copy.
  • Gates: pnpm check:pm-skill-ratchet, pnpm check:pm-skill-id-lint, pnpm check:skill-frame-sync, pnpm check:skill-frame-freshness, the packages/create-objectstack template-consistency test, plus node scripts/pm/dispatch-gates.mjs --commands <changed paths>; record the head sha.
  • PR body: per-item 落点 | before | after keyed by finding id; line delta per file; Clause-②: no.

Refs: #14292 · #14058 (folded) · #14232 (separate: unlocks at #12800's close) · #13597 (the pm-dispatch corpus — ⛔ not touched by this flight).

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Type

No type

Projects

No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions