Repository navigation
Add local:gate, pre-push-gate skill #4871
Description
Part of the agentic software factory tracker #4858, Wave 4. Proposed as S10 in docs/agent-guidance-inception.md (PR #4861) §9, from #4859.
Depends on
After Part 3 (skills infrastructure, for verify:skills:cli), Part 4 (TS gate) and Part 5 (Python gate). All three have landed, so nothing blocks this issue.
It no longer waits on #4854 and #4855. The only piece that needed them was enforcing per-file coverage, which cannot be turned on until their test suites exist. That piece has moved to them (see Out of scope), so the gate and its skill ship now and the spec refactor adds coverage to a gate that already exists.
Scope
- A root
npm run local:gate, run under the Inspector'sgate-lease.mjsso concurrent sessions queue. It chains:verify:install-freshfirst, adapted from the Inspector for the root workspace install only.local:gatenever runsnpm ci, so without it a stale localnode_moduleswould be tested against dependencies CI doesn't use- the TS
validateand the Pythonvalidate verify:skills:cli- a thin boot smoke for each server over each transport it implements: stdio for all seven, plus SSE and Streamable HTTP for
everything - Adopt MCP interface-diff CI for the everything server (decide on PR #3260) #4860's interface diff. Adopt MCP interface-diff CI for the everything server (decide on PR #3260) #4860 is independent, so whichever of this issue and Adopt MCP interface-diff CI for the everything server (decide on PR #3260) #4860 lands second adds it to
local:gate, keeping "every check CI runs" true
timeout-minuteson every CI job; none declare one today.- Assert that no tests retry.
- Remove Part 3's temporary
verify:skills:cliwiring allowance (local:gatenow runs it). - Port
scripts/lib/workflow-gate.mjsand its tests, dropping itslib/headless-browser.mjsimport along with the browser-engine rules. (gate-lease.mjsimportslib/win-shell-args.mjs, which Part 3 already ports.) The port ensures no workflow can invoke alocal:*script andlocal:gatestays exactly the lease wrapper. - Add
docs/quality-gate.mdand thepre-push-gateskill. - Add the
AGENTS.mdrule: the mandatory pre-push gate.
Out of scope: per-file coverage (moved to #4854 and #4855)
This issue used to also wire per-file ≥ 90 coverage into local:gate and CI and write the AGENTS.md coverage rule. That is test-coverage work, and it belongs with the suites that make the threshold reachable:
- Bugs, Coverage, and SDK Wave 1 Part 1: TypeScript servers: extensive unit tests + per-file 90% coverage gate #4854 (TypeScript) adds the thresholds, the parallel
coveragejob intypescript.yml, the TS coverage stage inlocal:gate, and the TS half of theAGENTS.mdrule. - Bugs, Coverage, and SDK Wave 1 Part 2: Python servers: extensive unit tests + per-file 90% coverage gate #4855 (Python) adds the per-file check script, the parallel coverage job in
python.yml, the Python coverage stage inlocal:gate, and the Python half of the rule.
local:gate is built here so that a stage can be added to it in one place; docs/quality-gate.md and the pre-push-gate skill describe the stages that exist, and each of those issues adds its stage to both.
Acceptance criteria
-
npm run local:gateruns every check CI runs. - Concurrent gates queue.
- The skill carries eval cases that pass the threshold.
- If this is the first skill-adding PR to merge, remove Part 3's empty-skills bootstrap allowance from
verify:skills.
Branch
Targets v2/main. Closes #N won't auto-close an issue on a non-default branch, so close this one by hand on merge and move the card to Done.
Activity
feat: port the skills harness (verify:skills, verify:skills:cli, skil…
[-]Agentic software factory Part 11: local:gate, per-file coverage in CI, pre-push-gate skill[/-][+]Agentic software factory Part 11: local:gate, pre-push-gate skill[/+]cliffhall commentedon Oct 1, 2026
Rescoped. This issue was sequenced after #4854 and #4855 for one reason: it wired per-file ≥ 90 coverage into
local:gateand CI, and that cannot be enforced until their test suites exist. Nothing else here depends on them.Coverage enforcement (CI job,
local:gatestage, theAGENTS.mdrule) now lives with the suites, in #4854 (TypeScript) and #4855 (Python). This issue builds the gate, the lease, the guards and thepre-push-gateskill, and is unblocked. #4872 and the tracker #4858 are updated to match; the previous bodies are in each issue's edit history.[-]Agentic software factory Part 11: local:gate, pre-push-gate skill[/-][+]Add local:gate, pre-push-gate skill[/+]feat: local:gate, the gate lease, boot smoke and the pre-push-gate skill