Loops graduate
π Claude Code skills that plan the agent loop, remember what worked, and graduate proven loops into new skills. A loop-design + Reflexion-memory flywheel.
npx -y skills add tcf-jw/plan-with-loops --skill loops-graduateAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 0 stars0 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Promote a proven agent-loop from the loop store (~/.claude/loops/) into a reusable global skill. Reads the relevant loop-record note(s), verifies the loop has actually succeeded, then scaffolds a new ~/.claude/skills/<name>/ SKILL.md that encodes the proven loop as a concrete Claude Code Workflow procedure. Triggers: /loops-graduate, "promote this loop to a skill", "graduate this loop", "make a skill from this loop", "turn this loop into a skill".
SKILL.md
3.3 KB, 726 tokens by cl100k_base, as published. Nobody here has run it
loops-graduate
Graduation step for the loop-memory subsystem. Turns a loop that has proven
itself (captured by loops-save) into a first-class reusable skill. The user is
the gatekeeper β promotion is always manual, one record at a time.
Procedure
- Find the record(s). From
$ARGUMENTS(a task-type, loop name, or record slug), search the loop store:Glob ~/.claude/loops/loop-record-*.mdthenGrep/Readfor matches. Pull the matchingloop-record-*.mdand the linkedagent-type-*.mdnotes. (Optional: alsoquery_vaultif that backend is used.) - Verify it's proven. Require
loop_outcome: worked(ignore records still markedTODOβ those haven't been judged via/loops-saveyet). Prefer repeated success β multiple worked records of the sameloop_task_type, or agentsuccess_count > 1. If only a single success exists, warn and ask the user to confirm before graduating a one-off. - Confirm naming + scope. Propose a kebab-case skill name; default scope is
global (
~/.claude/skills/<name>/). Confirm with the user. - Scaffold the skill. Write
~/.claude/skills/<name>/SKILL.mdencoding the proven loop (see template). Pull roster, pattern, termination, and lessons straight from the record β bake the lessons in as guidance. - Optionally scaffold agents. Offer to write
.claude/agents/<name>.mdfor each reused agent type (role, tools, model from its registry note). Skip if the user prefers the loop to spawn them inline via the Workflow tool. - Report the files created and how to invoke the new skill.
Generated SKILL.md template
---
name: <skill-name>
description: >
<what the proven loop does, when to use, trigger phrases>. Graduated from
loop-record <record-slug> (<N> successful runs).
---
# <skill-name>
<one-line purpose β the proven loop>
## Procedure (proven loop)
1. <phase 1 from the record's topology>
2. ...
## Workflow sketch
phase('...')
const x = await agent('...', {schema, model: '<from roster>'})
const results = await pipeline(items, stageA, stageB)
// parallel([...]) only where a barrier is genuinely needed
## Roster
| agent | role | model | tools | (from the record)
## Termination & circuit breaker
<stop condition + cap from the record>
## Baked-in lessons
- <reusable lessons carried from the loop record>
Rules
- This skill writes a new skill file β the one intended write in the loop system. Confirm the target path before writing; never overwrite an existing skill without asking.
- Don't graduate
partial/failedrecords. If the user insists on an unproven loop, say it's unproven and proceed only on explicit confirmation. - Carry the record's lessons into the generated skill so the proven knowledge isn't lost.
What ships with it
Read from the repository
Just SKILL.md. No reference files, no scripts.