Run the fast automated gate for the current change.
When to invoke
Use for $test, “test my changes”, or a quick pre-save validation. Use qa
for broader behavioral proof and adversarial fixtures.
Arguments: $ARGUMENTS — optional paths, --all, or explicit --graph.
Default gate
- Run
bash bin/base-branch.sh to print the configured integration branch.
Scope to supplied paths, --all, or changed files against that branch.
- Run static analysis once:
bash bin/test-changes.sh <scope>
--all scans source skills plus Runtime-neutral shell adapters. Do not treat a
missing historical .claude/commands directory as test coverage.
- Run the architectural ratchet once (source instances only — installed
instances do not ship the distribution engine and skip this step):
if [ -f bin/capability-distribution.mjs ] && [ -f capability-distribution.json ]; then
bash bin/node-run.sh bin/capability-distribution.mjs runtime-skill-audit \
--root . --strict-contract
fi
This checks the complete skill denominator, QMD/graph/control-plane/write
coupling ceilings, and migrated-skill contracts.
- Select the smallest relevant existing test suites from the changed paths
and
skill-references.json. Run independent suites in parallel where the
harness supports it. Do not rerun the same suite through multiple rituals.
- For changes to cross-harness Runtime sources or skills, run Codex/Pi/Prime
bundle parity checks.
Optional graph validation
Only when the user explicitly passed --graph or changed the graph projection
adapter itself:
- require Connected graph capability;
- extract bounded read-only Cypher fixtures from the named graph files only;
- reject
CREATE, MERGE, SET, DELETE, REMOVE, or DROP;
- validate through the optional graph projection adapter;
- report graph unavailable as an optional-check gap, not a Local test failure.
Never scan every skill for Cypher and execute it against a live database.
Result
Render one compact pass/fail report with:
- static checks;
- Runtime architecture audit;
- targeted suites and counts;
- bundle parity when applicable;
- optional graph check only when requested;
- exact failures and the safe next action.
Warnings do not block unless they represent a privacy, authorization,
canonical-order, or destructive-action risk.
Rules
- No default Neo4j, API, or network dependency.
- Tests must not modify production/live QMD, graph, control-plane, or canonical
memory state.
- Use isolated fixtures for writes and destructive/failure behavior.
- Never call graph functionality the correct default Runtime boundary.
- Do not claim “safe to save” when required suites were skipped.
Emit content-free telemetry after the gate:
bash bin/telemetry.sh emit "command" '{"command":"test"}' 2>/dev/null &