Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Graduate a proven pattern from auto-memory (MEMORY.md) to CLAUDE.md or .claude/rules/ for permanent enforcement. Use when the user runs /si:promote or asks to make a learned behavior permanent.
.claude/skills/alirezarezvani-promote/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-05 | ✗→✓ | ▲ Improved | 1% | 0% |
| case-11 | ✗→✓ | ▲ Improved | 40% | 0% |
| case-13 | ✓→✗ | ▼ Worse | 278% | 0% |
| case-14 | ✓→✗ | ▼ Worse | 78% | 0% |
| case-15 | ✓→✗ | ▼ Worse | 25% | 0% |
Moves a proven pattern from Claude's auto-memory into the project's rule system, where it becomes an enforced instruction rather than a background note.
/si:promote <pattern description> # Auto-detect best target
/si:promote <pattern> --target claude.md # Promote to CLAUDE.md
/si:promote <pattern> --target rules/testing.md # Promote to scoped rule
/si:promote <pattern> --target rules/api.md --paths "src/api/**/*.ts" # Scoped with pathsParse the user's description. If vague, ask one clarifying question:
bash# Search MEMORY.md for related entries MEMORY_DIR="$HOME/.claude/projects/$(pwd | sed 's|/|%2F|g; s|%2F|/|; s|^/||')/memory" grep -ni "<keywords>" "$MEMORY_DIR/MEMORY.md"
Show the matching entries and confirm they're what the user means.
| Pattern scope | Target | Example | |---|---|---| | Applies to entire project | ./CLAUDE.md | "Use pnpm, not npm" | | Applies to specific file types | .claude/rules/<topic>.md | "API handlers need validation" | | Applies to all your projects | ~/.claude/CLAUDE.md | "Prefer explicit error handling" |
If the user didn't specify a target, recommend one based on scope.
Transform the learning from auto-memory's note format into CLAUDE.md's instruction format:
Before (MEMORY.md — descriptive): > The project uses pnpm workspaces. When I tried npm install it failed. The lock file is pnpm-lock.yaml. Must use pnpm install for dependencies.
After (CLAUDE.md — prescriptive):
markdown## Build & Dependencies - Package manager: pnpm (not npm). Use `pnpm install`.
Rules for distillation:
For CLAUDE.md:
.claude/rules/ insteadFor .claude/rules/:
paths if scopedmarkdown--- paths: - "src/api/**/*.ts" - "tests/api/**/*" --- # API Development Rules - All endpoints must validate input with Zod schemas - Use `ApiError` class for error responses (not raw Error) - Include OpenAPI JSDoc comments on handler functions
After promoting, remove or mark the original entry in MEMORY.md:
bash# Show what will be removed grep -n "<pattern>" "$MEMORY_DIR/MEMORY.md"
Ask the user to confirm removal. Then edit MEMORY.md to remove the promoted entry. This frees space for new learnings.
✅ Promoted to {{target}}
Rule: "{{distilled rule}}"
Source: MEMORY.md line {{n}} (removed)
MEMORY.md: {{lines}}/200 lines remaining
The pattern is now an enforced instruction. Claude will follow it in all future sessions.| Use CLAUDE.md for | Use .claude/rules/ for | |---|---| | Global project rules | File-type-specific patterns | | Build commands | Testing conventions | | Architecture decisions | API design rules | | Team conventions | Framework-specific gotchas |
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-04 | pass→pass | 5,085 | 7,245 | +42% | 1 | 1 | 0% | 910 | 1,996 | +119% | 0 | 0 | — |
case-01 | fail→fail | 9,627 | 6,274 | -35% | 1 | 1 | 0% | 1,214 | 1,668 | +37% | 0 | 0 | — |
case-02 | fail→fail | 6,486 | 6,612 | +2% | 1 | 1 | 0% | 1,273 | 1,574 | +24% | 0 | 0 | — |
case-03 | fail→fail | 6,563 | 5,551 | -15% | 1 | 1 | 0% | 1,144 | 1,530 | +34% | 0 | 0 | — |
case-05 | fail→pass | 11,001 | 3,532 | -68% | 1 | 1 | 0% | 1,775 | 1,794 | +1% | 0 | 0 | — |
case-06 | pass→pass | 8,807 | 4,470 | -49% | 1 | 1 | 0% | 1,554 | 1,889 | +22% | 0 | 0 | — |
case-07 | fail→fail | 2,986 | 6,326 | +112% | 1 | 1 | 0% | 546 | 1,532 | +181% | 0 | 0 | — |
case-08 | fail→fail | 5,826 | 3,658 | -37% | 1 | 1 | 0% | 1,107 | 1,565 | +41% | 0 | 0 | — |
case-09 | fail→fail | 8,632 | 6,038 | -30% | 1 | 1 | 0% | 1,694 | 1,651 | -3% | 0 | 0 | — |
case-10 | fail→fail | 1,827 | 2,944 | +61% | 1 | 1 | 0% | 284 | 1,577 | +455% | 0 | 0 | — |
case-11 | fail→pass | 7,316 | 4,240 | -42% | 1 | 1 | 0% | 1,414 | 1,982 | +40% | 0 | 0 | — |
case-12 | fail→fail | 1,638 | 6,234 | +281% | 1 | 1 | 0% | 256 | 1,586 | +520% | 0 | 0 | — |
case-13 | pass→fail | 2,650 | 4,994 | +88% | 1 | 1 | 0% | 402 | 1,519 | +278% | 0 | 0 | — |
case-14 | pass→fail | 5,123 | 7,908 | +54% | 1 | 1 | 0% | 976 | 1,734 | +78% | 0 | 0 | — |
case-15 | pass→fail | 6,967 | 7,043 | +1% | 1 | 1 | 0% | 1,328 | 1,657 | +25% | 0 | 0 | — |
case-16 | pass→pass | 6,009 | 8,560 | +42% | 1 | 1 | 0% | 1,143 | 2,368 | +107% | 0 | 0 | — |
case-17 | fail→fail | 6,616 | 4,889 | -26% | 1 | 1 | 0% | 1,223 | 2,094 | +71% | 0 | 0 | — |
case-18 | fail→fail | 4,412 | 3,248 | -26% | 1 | 1 | 0% | 285 | 1,583 | +455% | 0 | 0 | — |
case-19 | fail→fail | 3,957 | 6,229 | +57% | 1 | 1 | 0% | 649 | 1,528 | +135% | 0 | 0 | — |
case-20 | fail→fail | 4,321 | 5,833 | +35% | 1 | 1 | 0% | 636 | 1,566 | +146% | 0 | 0 | — |
case-21 | fail→fail | 11,193 | 2,830 | -75% | 1 | 1 | 0% | 2,053 | 1,584 | -23% | 0 | 0 | — |
case-22 | fail→fail | 10,913 | 9,624 | -12% | 1 | 1 | 0% | 1,456 | 1,565 | +7% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted, and 11 counted toward the lift figure. The other 11 produced results that are not comparable between the two arms, so they are excluded from the headline rather than averaged into it. The headline lift of -5 percentage points is the difference between those two pass rates over the 11 comparable cases. 6 cases got worse with the skill loaded, and they are included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.