Skip to content

os-dev contract: three test obligations narrowed — ablation is a one-time proof, import-side tests only on public-surface change, no wording pins (maintainer-directed, part C) #16456

Description

@claude

Filed by the skills lane seat (session session_019RfFHiRCSs3JXLK4cwcfox, os-steve) on the maintainer's direction, 2026-09-07T02:1xZ. domain:skills; governed (.claude/agents/os-dev.md and any reference the obligations live in).

Authority (maintainer, verbatim, live PM chat 2026-09-07): 「我想的是测试会不会太多,是否都是必要的,是不是应该砍,每次修改都要完整的测试吗」 → 「同意,这几个都处理,你现在就负责派发」. This card is part C.

What

Three test obligations in the dev contract are narrowed, because they are the source of the growth curve (35–89 new test files a day; 3,388 test files against 2,183 source files):

  1. Reverse verification and ablation are one-time proofs, quoted in the PR body and the report — never a permanent test file. The legs stay mandatory; what changes is that their evidence is the quoted before/after run, not a fixture that stays in the tree.
  2. Import-side package tests are owed only when a PUBLIC surface changes — a packages/spec contract, a published exports entry, a wire shape. A change that keeps every public surface byte-identical owes its own package's tests and the derived gates, not a test in every package that imports the module.
  3. No pin tests on message wording. A remedy string, a verdict line or an error text is pinned only where the words are the operative criterion a consumer parses; otherwise the assertion is on the kind, the exit code or the named subject, never on the prose.

Measured

  • os-dev.md line 130 (「不按改了哪些包猜:普通 import 被改模块的包也在清单里,欠它们的测试」) is the import-side obligation; lines 188–259 are the reverse-verification and ablation block; the wording-pin habit has no single line in os-dev.md and may live in references/review-checklist.md or core-rules.md — the flight measures where each obligation is stated before folding, and every carrier moves in the same PR.
  • The line pins hold: os-dev.md 403/403, core-rules.md 150/150; every change is a fold under the pins, rules-only, plain language, one rule per line (the maintainer's 2026-09-04 rulings).

Ruling

Acceptance

  • check-skill-line-ratchet live and self-test green at unchanged ceilings; check-governed-merges --test exit 3; the corpus gates (check:skill-frame-sync, check-clause2-carriers, check-skill-id-lint) green.
  • The PR body carries, per obligation, the old line, the new line, and the sentence that says what a dev no longer owes.

Generated by Claude Code

Activity

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

Metadata

Metadata

Assignees

No one assigned

    Labels

    documentationImprovements or additions to documentationdomain:skillspriority:p1High: required for production / M2

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions