No Stripe objects, draft status flag set in SKILL.md frontmatter and index.json. Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
61 lines
2.4 KiB
JSON
61 lines
2.4 KiB
JSON
{
|
|
"name": "Research Loop (research -> verify -> approve -> act -> learn -> monitor)",
|
|
"description": "A self-supervising research loop: gathers evidence, verifies it against an independent check, then stops at a human approval gate before anything leaves the sandbox. Draft template - wire tool_slug values to your own tools.",
|
|
"min_tier": "growth",
|
|
"steps": [
|
|
{
|
|
"stage": "research",
|
|
"tool_slug": "web-research",
|
|
"params": {"query": "<your research question>", "max_sources": 8},
|
|
"hil": false,
|
|
"note": "Broad gather. No side effects. Runs unattended."
|
|
},
|
|
{
|
|
"stage": "verify",
|
|
"tool_slug": "evidence-checker",
|
|
"params": {"require_independent_source": true, "min_sources": 2},
|
|
"hil": false,
|
|
"note": "Cross-check the research stage's claims against at least one independent source before anything is proposed. A single self-reported source is not evidence."
|
|
},
|
|
{
|
|
"stage": "propose",
|
|
"tool_slug": "draft-proposal",
|
|
"params": {"format": "one-paragraph recommendation + evidence links"},
|
|
"hil": false,
|
|
"note": "Drafting is free - still no side effects."
|
|
},
|
|
{
|
|
"stage": "approve",
|
|
"tool_slug": "approval-gate",
|
|
"params": {
|
|
"surface": "act.outward",
|
|
"scope": "<name the exact target this run may act on>",
|
|
"ttl_minutes": 60,
|
|
"reason_required": true
|
|
},
|
|
"hil": true,
|
|
"note": "APPROVAL GATE. Nothing downstream of this step runs without a scoped, time-limited, human-granted permission naming this exact target. This step alone blocks on a person."
|
|
},
|
|
{
|
|
"stage": "act",
|
|
"tool_slug": "execute-action",
|
|
"params": {"mode": "paper_or_draft_first"},
|
|
"hil": false,
|
|
"note": "Only reachable once the approval-gate step above has granted a live, matching permission. Prefer a reversible/paper mode over the real action wherever one exists."
|
|
},
|
|
{
|
|
"stage": "learn",
|
|
"tool_slug": "outcome-scorer",
|
|
"params": {"attribute_to_run_tag": true},
|
|
"hil": false,
|
|
"note": "Score the outcome and tag it to this exact run, so it can be re-graded later under updated logic."
|
|
},
|
|
{
|
|
"stage": "monitor",
|
|
"tool_slug": "loop-watchdog",
|
|
"params": {"alert_on_silence_minutes": 120},
|
|
"hil": false,
|
|
"note": "A monitor that stops reporting is itself an alert-worthy event, not silence-as-health."
|
|
}
|
|
]
|
|
}
|