groove-utilities-memory-graduate — Claude Code skill: pin a lesson
Promotes a stable workflow insight from .groove/memory/learned/ into AGENTS.md, so the rule applies to every future session without running prime.
npx skills add andreadellacorte/groove --skill groove-utilities-memory-graduate -a claude-codeWhat groove-utilities-memory-graduate does
The skill takes an entry from .groove/memory/learned/<topic>.md and appends it to AGENTS.md as a permanent constraint. From then on every agent session sees it, not just the ones where you ran prime first.
Here is the flow. Give it a topic and it reads that file; give it nothing and it lists the *.md files in the learned folder and asks which one to work from. It prints the contents, asks which entry to graduate, then shows the exact text headed for AGENTS.md and waits for yes, edit or skip. On confirmation it writes the bullet and marks the source entry with [graduated YYYY-MM-DD] inline — the entry stays in the file, context and all. Tools used: Read, Write, Edit, Glob, AskUserQuestion.
The write goes into a <!-- groove:learned:start --> / <!-- groove:learned:end --> block under ## Graduated Learnings. No block yet? It creates one. No AGENTS.md at all? It creates the file with just that section. The block is yours — groove update leaves it alone. Nothing gets written without your confirmation of the exact wording, so a half-formed note can't slip in by accident. Keep each bullet to one actionable sentence; longer text gets sent back for trimming.
What it helps with
- pin a working lesson so it holds across every session
- move a note out of a learned file without losing the original context
- create the Graduated Learnings section when it does not exist yet
- stamp a graduated entry with its date instead of deleting it
- skip an entry that is already in the block
Example prompts for the agent
- graduate the branch naming lesson from learned into AGENTS.md
- list the topics in .groove/memory/learned/ and suggest what to promote
- graduated: run the test suite before every commit
How to install groove-utilities-memory-graduate
1Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-utilities-memory-graduate -a claude-code2Manually: put the files in place
~/.claude/skills/groove-utilities-memory-graduate/SKILL.mdCopy the whole skill folder; for one project use .claude/skills/groove-utilities-memory-graduate/
1Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-utilities-memory-graduate -a codex2Manually: put the files in place
.agents/skills/groove-utilities-memory-graduate/SKILL.mdFor all projects use ~/.agents/skills/
1Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-utilities-memory-graduate -a cursor2Manually: put the files in place
.cursor/skills/groove-utilities-memory-graduate/SKILL.mdCursor also reads .agents/skills/ and .claude/skills/
1GitHub CLI
gh skill install andreadellacorte/groove groove-utilities-memory-graduate2Manually: put the files in place
.github/skills/groove-utilities-memory-graduate/SKILL.md1Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-utilities-memory-graduate -a gemini-cli2Platform CLI
gemini skills install https://github.com/andreadellacorte/groove --path skills/groove-utilities-memory-graduateManually: put the files in place
.devin/skills/groove-utilities-memory-graduate/SKILL.mdThe legacy .windsurf/skills/ path still works
Skills CLI (Vercel)
npx skills add andreadellacorte/groove --skill groove-utilities-memory-graduate -a opencodeClaude.ai
Zip the folder and upload it in Settings → Capabilities → Skills
Step by step, with commands for each platform: How to install skills in Claude Code: five ways
Questions about groove-utilities-memory-graduate
How do I install groove-utilities-memory-graduate in Claude?
Run npx skills add andreadellacorte/groove --skill groove-utilities-memory-graduate -a claude-code. The skill lands at ~/.claude/skills/groove-utilities-memory-graduate/SKILL.md.
What does groove-utilities-memory-graduate do?
It promotes a stable insight from .groove/memory/learned/<topic>.md into the ## Graduated Learnings section of AGENTS.md, making it visible to every session without running prime.
Does it delete the source entry?
No. The entry gets an inline [graduated YYYY-MM-DD] marker and stays in the learned file with its full context.
Source text
SKILL.md · MIT
--- name: groove-utilities-memory-graduate description: "Graduate a workflow insight from learned/<topic>.md into AGENTS.md as a permanent constraint. Use when a lesson is stable enough to apply to every future session." license: MIT allowed-tools: Read Write Edit Glob AskUserQuestion metadata: author: andreadellacorte --- # groove-utilities-memory-graduate Promote a stable workflow insight from `.groove/memory/learned/` into `AGENTS.md` as a permanent constraint — visible to every agent session without needing to run prime. Use $ARGUMENTS as the topic or insight text if provided. ## Outcome The lesson is appended to a `<!-- groove:learned:start -->` / `<!-- groove:learned:end -->` section in `AGENTS.md`, making it permanently visible to all future sessions. ## Acceptance Criteria - Insight is appended to the `## Graduated Learnings` section in `AGENTS.md` - Section is created if it does not exist - User confirms the exact text before writing - Source `learned/<topic>.md` entry is marked as graduated (not deleted) ## Steps 1. Memory path is always `.groove/memory/` 2. If $ARGUMENTS names a topic, read `.groove/memory/learned/<topic>.md` and show its entries. Otherwise, list all `*.md` files in `.groove/memory/learned/` and ask which topic to graduate from. 3. Show the file contents; ask: "Which entry should be graduated? (paste or describe it)" 4. Show the exact text that will be written to AGENTS.md; ask: "Confirm? (yes / edit / skip)" 5. If confirmed: write to AGENTS.md (see section management below) 6. Mark the entry in the learned file by appending `[graduated YYYY-MM-DD]` inline after the bullet 7. Report: "Lesson graduated to AGENTS.md → ## Graduated Learnings" ## Section management in AGENTS.md Look for a `<!-- groove:learned:start -->` / `<!-- groove:learned:end -->` block: - If the block exists: append the new insight as a bullet under `## Graduated Learnings` inside the block - If the block does not exist: append the following to the end of `AGENTS.md`: ``` <!-- groove:learned:start --> ## Graduated Learnings Stable workflow insights promoted from `.groove/memory/learned/`. These apply to every session. - <insight text> <!-- groove:learned:end --> ``` Each entry is a single bullet: `- <insight text> *(from learned/<topic>.md, graduated YYYY-MM-DD)*` ## Constraints - Never graduate without explicit user confirmation of the exact text - Never delete the source entry from `learned/<topic>.md` — mark it as graduated with `[graduated YYYY-MM-DD]` inline; the full context stays in the file - The `<!-- groove:learned:* -->` section is user-owned — groove update will not overwrite it - Keep graduated lessons concise — one actionable sentence per bullet; ask user to trim if longer - If AGENTS.md does not exist: create it with just the graduated learnings section - If the same insight is already present in the block (exact match): skip and report "Already graduated."
© andreadellacorte · MIT · andreadellacorte/groove