| name | verification-loop |
| description | Formalizes agent-core's make check/type-check/test/fix pipeline into a structured 6-phase verification skill. |
| disable-model-invocation | true |
Verification Loop
Runs the full verification pipeline before every meaningful commit.
Use this skill whenever you have completed a feature, fixed a bug, or
are about to submit a PR.
When to Run
- Before every commit (or
git push)
- After any significant change spanning multiple modules
- After dependency changes (
pyproject.toml, requirements*.txt)
- Before marking a PR as ready for review
6-Phase Verification
Run each phase in order. Stop immediately on failure.
Phase 1 — Build Check
Verify all modules compile without syntax errors:
python -m py_compile openjiuwen/
Phase 2 — Type Check
make type-check
Address all error: messages. warning: messages are acceptable but
should be reduced over time.
Phase 3 — Lint
make check
Fix Ruff violations. If a rule is a false positive, add a per-line
suppression comment, not a blanket disable in the config.
Phase 4 — Tests + Coverage
make test
If any test fails, fix the test or the implementation before proceeding.
For @pytest.mark.slow tests, run selectively:
pytest -m "not slow"
Verify coverage stays above 80% for all modules under openjiuwen/core/
and openjiuwen/harness/. If coverage dropped, add tests for the
missing paths.
Phase 5 — Security Scan
bandit -r openjiuwen/ -ll
Address all HIGH and CRITICAL findings. SECURITY-level findings require
a code change, not a suppression. Only suppress with a documented reason.
Phase 6 — Diff Review
git diff --stat
git diff openjiuwen/
Review every changed line. Check for:
- No unintended changes (stale debug code, accidental formatting changes)
- All new public APIs have corresponding tests
- Commit message accurately describes the change
Structured Verification Report
After running the full loop, report the result:
Verification Report
==================
Build: PASS
TypeCheck: PASS (2 warnings)
Lint: PASS (0 errors)
Tests: PASS (142 passed, 3 skipped)
Coverage: PASS (84.3% overall)
Security: PASS (0 HIGH/CRITICAL)
Diff: 3 files changed, +47 -12
Status: READY
Continuous Mode (CI)
In CI pipelines, run the full loop without stopping on the first failure.
Collect all failures and report them together:
set +e
make type-check 2>&1 | tee /tmp/typecheck.log
make check 2>&1 | tee /tmp/lint.log
make test 2>&1 | tee /tmp/test.log
bandit -r openjiuwen/ -ll 2>&1 | tee /tmp/bandit.log
set -e
Partial Verification
For small, isolated changes, you may skip phases 1-2 if they are clearly
unaffected. Use judgment:
| Change type | Can skip phase 1-2? |
|---|
| Doc-only change | Yes (phases 3, 4, 5, 6) |
| Test-only change | Yes (phases 3, 4, 6) |
| Source code change | No (all phases) |
| Dependency change | No (all phases, especially 5) |
When skipping phases, state which ones were skipped and why in the
verification report.