goal
CommandSet, check, or complete the persistent project goal stored in .goal.md. Trigger as /coco-goal or /coco:goal.
Use when built work must be checked against its spec, plan, or PRD before shipping, or the team router action is verify. Re-runs the gate from a clean checkout per requirement and grades it MET, PARTIAL, NOT MET, or UNVERIFIED.
$ npx -y skills add coco-research/coco --agent claude-code
description: "Use when built work must be checked against its spec, plan, or PRD before shipping, or the team router action is verify. Re-runs the gate from a clean checkout per requirement and grades it MET, PARTIAL, NOT MET, or UNVERIFIED."
> Called by team.md router when action is `verify`. > Checks if what was built matches what was planned/specified.
| Layer | Preferred Roles | Count | |-------|----------------|-------| | L1 | business-analyst, technical-analyst | 2 | | L2 | qa-test-architect, (domain-dependent engineers) | 2-4 | | L3 | domain-accuracy, standards-reviewer, architecture-reviewer (if `.arch/index.json` exists) | 2-3 | | L4 | principal-pm | 1 |
python3 ~/.claude/skills/team-gate/scripts/brownfield_map.py --for "<what is being verified in words>" --repo-root .
exit 0: continue; read `.team-ship/BROWNFIELD-MAP.md` before reading any code. exit 1: not used; a map is not a pass or fail judgement. exit 2: UNVERIFIED; quote the gate file's summary (gates/handoff-1-map.json).
No verify-pipeline aggregator requires this gate file; until one exists, the map is the first step by instruction.
L1 agents gather.
python3 ~/.claude/skills/team-gate/scripts/arch_gate.py --repo-root .
exit 0: continue; the index is CURRENT, quote the pin and head from `.arch/ARCH-GATE.json`. exit 1: continue; a REMOVE verdict already exists, quote the reason from `.arch/ARCH-GATE.json` and carry it to Layer 3. exit 2: continue; STALE, the index is absent (no .arch/index.json, which the script reports as not found), or drift is unreconciled, record which and carry it to Layer 3 for failure mode (e).
1. Run `verify_independent.py setup` to create a detached clean worktree at HEAD and print the exact invocation for the Layer 2 verify agent.
python3 ~/.claude/skills/team-gate/scripts/verify_independent.py setup --repo-root .
exit 0: continue; spawn the Layer 2 verify agent with the printed invocation line and nothing else, so it never reads the builder's summary, REVIEW-PACKAGE.md, or any "tests pass" claim. exit 1: BLOCK; `.team-ship/` carries tracked files inside the worktree, quote the reason and the tracked file list. exit 2: UNVERIFIED; git is unavailable or the run state cannot be read.
The worktree is a detached checkout of the same repository at HEAD, not a separate clone.
2. Each Layer 2 agent runs only the three commands the printed invocation names, `run_gate.py --repo-root . --role verifier discover`, then `run`, then `coverage`, and reports their three exit codes, nothing else. This writes gates/7-verifier.json, gates/8-verifier.json, and gates/10-verifier.json.
Provision what CI provisions inside the worktree before spawning the agent. When something cannot be provisioned, record "override integration: <reason>" in your own words as the human, and run_gate's skip rule decides the rest.
3. Run `verify_independent.py compare` to check the verifier's re-run against the builder's own gate file.
python3 ~/.claude/skills/team-gate/scripts/verify_independent.py compare --repo-root .
exit 0: continue and quote the gate file's summary (gates/11.json). exit 1: BLOCK; quote the mismatches from the gate file, the discrepancy between the builder's claim and the re-run output. exit 2: UNVERIFIED; the run directory or either gate file cannot be read.
4. Run `verify_independent.py teardown` to remove the worktree.
python3 ~/.claude/skills/team-gate/scripts/verify_independent.py teardown --repo-root .
exit 0: continue; the worktree is removed. exit 1: not used; teardown exits 0 or 2. exit 2: UNVERIFIED; the worktree or run state cannot be read.
5. Once every Layer 2 agent's re-execution is captured in the run's gate files, run `claim_evidence.py matrix` once over the whole plan to grade every requirement.
python3 ~/.claude/skills/team-gate/scripts/claim_evidence.py matrix .team-ship/PLAN.md --repo-root .
exit 0: continue; every requirement is MET, quote the gate file's summary (gates/11-matrix.json). exit 1: NOT MET exists; quote which requirements from the gate file. exit 2: UNVERIFIED exists with no NOT MET; quote which requirements from the gate file, never counts as MET.
A requirement the matrix grades MET may still be judged PARTIAL on closer inspection, and an implementation that goes beyond what the matrix can see is EXCEEDED, flag for review; both stay model judgement written after the matrix, since the matrix itself grades only MET, NOT MET, or UNVERIFIED.
**Toolkit integration:**
L3 agents verify Layer 2's claims, and explicitly check for these failure modes, any one downgrades the verdict.
495 personas across 13 departments, 229 skills[^installed] and 388 commands in the full catalog (coco 1.9.0, 2026-10-21). Agent skills, slash commands and subagents for Claude Code, Cursor, Codex and other AI coding agents.
Set, check, or complete the persistent project goal stored in .goal.md. Trigger as /coco-goal or /coco:goal.
Use when the user asks for a diagram or chart: flowchart, sequence, state, class, ER, or XY chart, as SVG, HTML, or terminal…
Show latest emails from a specific person. Usage: /email-read alice
Draft a reply to a specific email. Usage: /email-reply Project Phase 2 Contract Data
Save matching emails to a project folder for sync processing. Usage: /email-save alice to emails/
Search emails by subject keywords. Usage: /email-search github webhook
Implement tasks incrementally — build, test, verify, commit. Add "auto" to run the whole plan in one approved pass.