Use this skill for queued per-stage coach reviews from .cocoplus/sentinel/coach-requests.jsonl.
Objective
Evaluate completed CocoFlow stages with a separate coach model so generator and critic remain structurally separated.
Workflow
- Verify
.cocoplus/exists. - Read
.cocoplus/sentinel/coach-requests.jsonl. - For each queued request, collect:
- stage role and task brief from
.cocoplus/flow.json - declared
artifacts.readsandartifacts.writes - produced artifact paths under
.cocoplus/flow/artifacts/<run-id>/ - downstream missing artifact status
- stage role and task brief from
- Verify
coach_modeldiffers from the executor model. If not, write.cocoplus/sentinel/known-gaps.jsonland skip the request. - Run an external coach evaluation using the configured coach model.
- Write
.cocoplus/sentinel/stage-quality.jsonl:
{
"ts": "...",
"stage_id": "function-designer",
"score": 7,
"reasoning": "Specific evidence-backed rationale.",
"attributed_to": "function-designer",
"coach_model": "haiku"
}
- Mark consumed requests as processed by writing
.cocoplus/sentinel/coach-requests.processed.jsonl.
Scoring
8-10: usable output with clear artifact handoff5-7: core output exists but a declared contract, evidence item, or handoff is incomplete<5: missing required output, ungrounded result, or downstream blocker attributable to this stage
Exit Criteria
- Each score cites produced or missing artifacts.
- The coach never evaluates its own generation.
- Missing artifacts are attributed to the stage that declared them.
- Console-readable
stage-quality.jsonlis updated.
Anti-Rationalization
| Shortcut / Temptation | Why It Fails |
|---|---|
| Treat the skill as complete because the file exists | Skill contracts must describe observable behavior and verification, not just command names. |
| Skip artifact and safety checks for a small command | Small commands still mutate state or guide execution; preserve the same gates. |