grade-iterate – Agents & Automation skill for AI agents
Phase 3 of building a Claude Managed Agent — the bounded grade→iterate loop. Define a CMA outcome (a required markdown rubric graded by an isolated grader), read each verdict, decide the next move (sharpen / re-run / promote to schedule), and once a version passes, run held-back eval cases in parallel. Use when the use
Install the grade-iterate skill with one command
Pick the tool you use, copy the command and paste it in your terminal. The skill lands in that tool's skills folder and is ready in your next session.
Claude Code
mkdir -p ~/.claude/skills && curl -fsSL https://skill.dn1nguoi.com/z/grade-iterate-3b361.tgz | tar xz -C ~/.claude/skills
Call it in Claude Code: /grade-iterate – then describe the task you want done.
Codex
mkdir -p ~/.codex/skills && curl -fsSL https://skill.dn1nguoi.com/z/grade-iterate-3b361.tgz | tar xz -C ~/.codex/skills
Call it in Codex: $grade-iterate – then describe the task you want done.
Hermes Agent
mkdir -p ~/.hermes/skills && curl -fsSL https://skill.dn1nguoi.com/z/grade-iterate-3b361.tgz | tar xz -C ~/.hermes/skills
Call it in Hermes Agent: /grade-iterate – then describe the task you want done.
DeepSeek
mkdir -p ~/.deepcode/skills && curl -fsSL https://skill.dn1nguoi.com/z/grade-iterate-3b361.tgz | tar xz -C ~/.deepcode/skills
Call it in DeepSeek: /grade-iterate – then describe the task you want done.
SKILL.md content
Phase 3 — Grade → Iterate (the bounded loop)
This is the plugin's loop: CMA's outcome primitive self-grades the agent's
work in an isolated context and feeds failing verdicts back for the next attempt.
It is always bounded by max_iterations (1..20) — never "improve forever".
See [../../references/loops-and-workflows.md](../../references/loops-and-workflows.md)
and the outcome section of
[../../references/cma-primitives.md](../../references/cma-primitives.md).
Workflow
1. Define the outcome.
python3 scripts/outcome_builder.py \
--sheet ./my-agent/build-sheet.json --max-iterations 5 \
--out ./my-agent/payloads/outcome.json
The rubric is required; max_iterations is clamped to 1..20. Send the
payload as a user.define_outcome event (append to the running session).
2. Read every verdict first.
python3 scripts/verdict_reader.py --result ./my-agent/last-verdict.json
Tables the rubric outcome and recommends: SHIP (satisfied), SHARPEN
then re-run (needs_revision), ESCALATE (max_iterations_reached /
failed), RESUME (interrupted). With ≤1 iteration left it flips to
"make the single highest-value fix or escalate now".
3. Loop invariant. Each iteration must move ≥1 rubric line fail→pass, or the
run halts at the cap and escalates. Don't burn the budget on cosmetic edits.
4. Once a version passes, run held-back eval.
python3 scripts/eval_scaffold.py \
--sheet ./my-agent/build-sheet.json --out ./my-agent/eval.json --concurrency 5
Held-back cases (never seen during iteration) run in parallel, capped at the
25-thread CMA ceiling, each graded against the same rubric.
5. Decide. SHIP as v0, or promote to a scheduled deployment (Phase 4). Record
the verdict on the goal: goal_state.py set --phase run-without-you.
Hard rules
- Bounded, always. No outcome without a
max_iterationscap. - Read the verdict before acting. The grader's explanation drives the next move.
- Held-back cases are held back. Never grade generalization on cases the agent
already iterated against.
Forcing-question library (recommend + cite)
1. "What are the 3–5 rubric lines?" *Recommend:* grounded, checkable criteria.
*Cite:* cma-primitives.md (rubric required).
2. "How many iterations before you'd rather look yourself?" *Recommend:* 3–5.
*Cite:* loops-and-workflows.md (bounded loop).
3. "On a fail, sharpen the prompt or the tools?" *Recommend:* whichever rubric line
failed points to. *Cite:* verdict_reader next-move table.
4. "Which cases did the agent NOT see?" *Recommend:* hold back ≥3 for generalization.
*Cite:* this SKILL (held-back eval).
Tools
scripts/outcome_builder.py— user.define_outcome payload (rubric required, cap 1..20).scripts/verdict_reader.py— grader result → next move.scripts/eval_scaffold.py— held-back cases + parallel run plan (≤25 threads).
Related skills
- buywhere-product-catalog – Use BuyWhere's MCP and API surfaces to add product search, price comparison, and deal…
- cal-com-automation – Automate Cal.com tasks via Rube MCP (Composio): manage bookings, check availability…
- calendly-automation – Automate Calendly scheduling, event management, invitee tracking, availability checks…
- handoff – Compact the current conversation into a handoff document for another agent to pick up…
- llm-prompt-injection – Use when testing an authorized LLM application for prompt injection, system-prompt…
- canva-automation – Automate Canva tasks via Rube MCP (Composio): designs, exports, folders, brand…
- m365-entra-attack – Microsoft 365 / Entra ID red-team attack chain — current 2026 reality. AADSTS code…
- hub-init – Create a new AgentHub collaboration session with task, agent count, and evaluation…