skills/knowledge-graduation/SKILL.md
Graduate validated patterns from `.context/` to reusable local skills. Use this skill when reviewing `.context/` files and noticing patterns that keep recurring across tasks, when retrospectives show the same lessons being re-learned, or during periodic context review cycles. Also use after completing 10+ tasks when patterns should be mature enough to evaluate for promotion.
npx skillsauth add maestria-co/ai-playbook knowledge-graduationInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Knowledge in .context/ starts as project-specific documentation. When a pattern
proves stable, broadly applicable, and non-obvious, it should graduate to a local
skill — making it reusable across tasks and discoverable by agents.
This skill defines the graduation criteria, process, and quality checks.
L3: Ad-hoc (chat, comments, tribal knowledge)
↓ capture
L2: Documented (.context/ files — project-specific)
↓ graduate
L1: Local skill (skills/ — reusable, discoverable)
↓ generalize (future)
L0: Shared skill (published — cross-project)
This skill handles the L2 → L1 transition.
A pattern is ready to graduate when it meets all four criteria:
The pattern has been used successfully at least 3 times without modification.
How to check: Search retrospectives and task history for references to the pattern. If it keeps changing each time it's applied, it's not stable yet.
The pattern applies to more than one specific context.
How to check: Could another team member use this pattern for a different task?
If it only works for one specific module or flow, it stays in .context/.
The pattern isn't something an experienced developer would naturally do.
How to check: Would an agent or developer new to the project make mistakes without this knowledge? If yes, it's worth graduating. If it's standard practice, it stays as documentation.
The pattern can be expressed in a single SKILL.md file (< 200 lines).
How to check: If it requires multiple files or extensive examples, it might be better as a documentation section rather than a skill.
Review these sources for graduation candidates:
.context/retrospectives/ — recurring lessons that keep coming up.context/standards.md — patterns that go beyond formatting conventions.context/architecture.md — patterns that are reusable beyond this project.context/decisions/ — decisions with implementation patterns that recurFor each candidate, check all four criteria:
| Criterion | Met? | Evidence |
| ----------- | ---- | ------------------------------------------------- |
| Stability | ✅ | Used in TASK-12, TASK-18, TASK-25 without changes |
| Breadth | ✅ | Applies to all API endpoints, not just one |
| Non-obvious | ✅ | New developers consistently miss the retry logic |
| Conciseness | ✅ | Can fit in ~80 lines |
All four must be met. If any criterion fails, the pattern stays in .context/.
skills/[skill-name]/SKILL.mdname, description.context/ source in the skill for traceabilityskills/GUIDE.md — add the new skill to the selection table.context/ source — add a note that this pattern graduated:
> **Graduated to skill:** See `skills/[skill-name]/SKILL.md` for the
> canonical version of this pattern.
.context/ entry — it provides project-specific context
that the skill may not includeskills/GUIDE.md.context/ entry references the graduated skill| Pattern | Why it stays in .context/ | | --------------------------- | ------------------------------------ | | Project-specific API quirks | Not broadly applicable | | One-time setup instructions | Single use, not recurring | | Business rules | Domain-specific, not process-related | | Tool configuration | Changes with tool versions | | Style preferences | Already covered by linter config |
Don't graduate continuously. Review for candidates:
retrospectives/ has more than 15 entriesPattern: "API error responses always include a code, message, and details field"
→ Graduate to skills/api-error-format/SKILL.md
Pattern: "The payment service requires a 500ms delay between retry attempts"
→ Stays in .context/domains/ — too narrow for a skill
.context/ entries after graduation — annotate them insteaddevelopment
Writes and runs a test suite for a piece of code, covering happy path, edge cases, error cases, and security cases. Use when: implementation is complete and needs test coverage, a bug needs a reproduction test and fix validation, or code needs coverage before a refactor. Do not use when: the code under test is not yet implemented, or the spec is still unclear.
testing
Use when creating a new skill, editing an existing skill, or helping a user author a skill for this system. Covers structure, discoverability, quality, and discipline hardening.
development
Evidence-based verification process to run before marking any task complete. Use this skill every time you're about to report that work is done — for features, bug fixes, refactoring, or any code change. This catches the most common failure mode: declaring "done" without proof. If you're finishing up and about to tell the user the task is complete, run this checklist first.
development
Teaches agents how to discover, select, and invoke skills from the skill library. Use this skill whenever you're uncertain which skill applies to a task, when composing multiple skills for complex work, or when you need to understand what skills are available. This is your go-to when facing an ambiguous task and need to figure out the right approach before diving into implementation.