Skip to content

os-dev contract: two measured updates — dedup route is dead as prescribed, and a gate script's own pin suite is invisible to the derived-family discipline #12367

Description

@os-litant

Two contract-text updates to .claude/agents/os-dev.md (governed surface — draft + human merge when implemented), both measured on 2026-08-25 R6 dev runs. Filed by the PM (recording only — unassigned, awaiting triage). One card because both land in the same file with the same change form (contract prose), per the fold gates.

1. The dedup route the contract prescribes no longer exists on dev seats

The standing clause routes finding-dedup through REST list endpoints and forbids MCP list_issues/search_issues (GraphQL-pool protection). Measured on current dev seats (three independent containers today): raw REST is 403 on every repo-scoped endpoint and gh is absent — while the MCP github tools authenticate and work. The #12339 seat measured the conflict, used ONE targeted MCP search_issues call, and flagged it rather than silently picking a side — the posture to codify. Proposed text: dedup via a single targeted MCP semantic search; restate the GraphQL-pool concern as "no broad list sweeps", not "no MCP search". Full channel readings: #12123 (augments #2 and #3).

2. "Run the derived gate families" is blind to a gate script's own pin suite

Measured on PR #12339: the diff edited packages/spec/scripts/check-skill-examples.ts; its own pin suite scripts/dist-freshness-adoption.test.ts (#7181) lives in the spec vitest suite, not in any gate family, so the dispatch-gates-derived battery (34 families, all run, all green) never executed it — and CI Test Core caught three hijacked pins the local run missed. The closed derivation-blind-spot family (#11404/#11935/#11155/#10790/#10784) covers gates the DERIVATION cannot name; this is the adjacent gap: even a perfect derivation does not include the edited script's own test files. Proposed text: when a card's diff edits a gate/tooling script, running that script's own pin/test suite (glob: sibling *.test.ts naming it, plus anything git grep-ing the script's filename under the same package's tests) is an explicit, non-optional verification step alongside the derived families.

Dedup (searched 2026-08-25): the five derivation-blind-spot cards above are all closed and cover the other half of the problem; #12123 anchors the channel readings but is a platform-matrix card, not the contract change. No open card covers either contract update.

Metadata

Metadata

Assignees

Type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions