> CP-4 integration verify (full) → CP-5 acceptance. Worker never grades its own homework; evidence rows trace back to AC-n. Use via /execute.
npx skills add https://github.com/huytieu/COG-second-brain --skill closed-loop
Mechanical verification pipeline. Every verify step emits evidence rows tied to acceptance criterion IDs (AC-n).
/execute <task> or /execute <spec-path>normal+ lane after implementationbash .claude/lib/lane-classify.sh explain "<task>"
bash .claude/lib/checkpoint.sh init 04-projects/harness/runs/<YYYY-MM-DD-HHmm>
| Lane | Checkpoints |
|---|---|
| tiny | CP-3 → CP-5 (if mutating) |
| normal | CP-1 → CP-2 → CP-3 → CP-3v → CP-5 |
| full | + CP-4 + claim-verifier + CP-6 |
| bug | root-cause ledger (CP-0) before CP-3 |
Record: checkpoint.sh record <run-dir> CP-0 PASS|SKIP "<lane>"
If spec exists, use its ## Acceptance criteria + traceability matrix. Else write:
04-projects/harness/runs/<id>/criteria.md using 04-projects/harness/templates/SPEC-template.md (criteria + matrix only).
Each criterion: falsifiable + AC-n ID + verify method.
Record: checkpoint.sh record <run-dir> CP-1 PASS "N criteria"
Map tasks → AC IDs in evidence/CP-2-plan.md. Update matrix status to pending.
Record: checkpoint.sh record <run-dir> CP-2 PASS
Worker implements. Returns deliverable path only.
retry=0
loop:
spawn task-verifier (fresh context, read-only)
merge EVIDENCE rows into evidence/ledger.md
if PASS → break
if FAIL:escalate → record CP-3v FAIL, escalate
if FAIL:fixable && retry < 2 → fix-agent → retry++
else → escalate
Copy verifier EVIDENCE rows into evidence/CP-3v-component.md.
Record: checkpoint.sh record <run-dir> CP-3v PASS|FAIL
full or multi-task)Spawn integration-verifier (read-only). Append rows to ledger.
Skip for single-task normal.
Record: checkpoint.sh record <run-dir> CP-4 PASS|SKIP
For each mutation, observe artifact (curl, screenshot, re-fetch). Emit:
EVIDENCE AC-n | CP-5 | PASS | <observation> | <artifact>
UI/UX flow changes: the post-condition is *visual*. Capture with browser-harness (evidence_shot per state; FlowRecorder→.save_gif() for a flow; pixel_diff against the intended/prior state), then read the image and confirm no overflow/misalignment/clipping/wrong-color/broken-responsive before PASS. The Observation must describe what you saw; the artifact is the screenshot/GIF in evidence/. Fix any visual defect and re-capture. See CLAUDE.md → Visual Verification.
Write evidence/CP-5-acceptance.md. Traceability closure: every AC in matrix has ≥1 PASS row in ledger.
Record: checkpoint.sh record <run-dir> CP-5 PASS|FAIL
.claude/logs/loop-ledger.tsvverifiedfull lane / big task: generate an HTML rollup from 04-projects/harness/templates/report.html → 04-projects/harness/runs/<id>/report.html, filled from criteria.md + evidence/ledger.md (criteria, AC traceability, verifier verdicts, post-condition observations). Self-contained; SendUserFile it or publish as an Artifact. Skip for normal/tiny./retro <run-dir> for CP-7| Skill | Lane | CP-4 |
|---|---|---|
| ultragoal | full per phase (never downgraded) | integration-verifier + north-star acceptance |
| team-brief | full | claim-verifier |
| dogfood-release | full | Playwright cross-verify |
| blog-publish | normal | skip |
| content-factory | normal | skip |
ESCALATED — <task>
Lane: <lane> | Last CP: <CP-n>
Evidence bundle: 04-projects/harness/runs/<id>/evidence/
Open AC IDs: <list without PASS rows>
Decision needed: <one question>
Take huytieu/cog-second-brain-closed-loop from the repository into ~/.claude/skills for personal
use, or into .claude/skills inside a project.
The agent identifies a skill by the name field in its header. Two skills with the
same name cannot sit side by side — one of them will be ignored.