learnt/SKILL.md
Extract lessons from the current session and save them to the right place so Claude gets smarter over time. Use whenever the user says "learnt", "remember that", "teach claude", "update the rules", "save that lesson", or at the end of a session where Claude was corrected or a pattern was validated. Always invoke this skill — don't just write memories ad-hoc.
npx skillsauth add paulund/skills learntInstall 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.
Review the current conversation and extract non-obvious lessons worth keeping. The goal is to make the next session smarter, not to record everything that happened.
Look for:
Ignore:
Is this true for every Next.js / TypeScript project?
├── Yes → ~/.claude/skills/nextjs-best-practices.md
│ or ~/.claude/skills/typescript-best-practices.md
└── No → Is it specific to this codebase's architecture?
├── Yes → {repo}/CLAUDE.md
└── No → Is it how Paul likes to work, or project context?
├── Working preference / correction → auto-memory (type: feedback)
├── Project fact / decision → auto-memory (type: project)
└── Personal context about Paul → auto-memory (type: user)
The project memory directory is shown in your system prompt context — look for the path ending in /memory/. This is project-specific and changes per repo.
File naming: feedback_<slug>.md, project_<slug>.md, user_<slug>.md
Frontmatter:
---
name: Short title
description: One-line hook used to decide relevance in future sessions — be specific
type: feedback | project | user
---
Body structure for feedback:
Lead with the rule. Then Why: (the reason given or inferred). Then How to apply: (when this kicks in).
Body structure for project:
Lead with the fact or decision. Then Why: (the motivation). Then How to apply: (how this should shape suggestions).
Body structure for user:
Describe what you learned about the user's role, knowledge, or preferences in plain terms.
After writing each memory file, add a one-line pointer to MEMORY.md in the same directory under the right section heading:
- [Title](filename.md) — one-line hook under 150 chars
Check MEMORY.md first — update an existing entry rather than creating a duplicate.
When a lesson is a universal rule (language, framework, or tooling pattern), append it to the relevant skill file at ~/.claude/skills/. Keep additions concise — one rule, one short explanation.
When a lesson is project-specific (this codebase's architecture, conventions, or patterns), add it to the CLAUDE.md in the current repo root. Put it in the most relevant section, or add a new one if needed.
After saving, give the user a short summary:
Keep it to a few bullet points. No waffle.
development
Use when the user wants to run the project's lint + types + build sequence as a gate before pushing, opening a PR, or merging. Invoked by chained dev skills between phases. Trigger phrases - "/quality-gate", "run the quality gate", "check it builds".
tools
Use when the user wants to verify a PR's feature works at runtime by booting the dev server, exercising the affected UI via Chrome DevTools MCP, and posting a screenshot summary back to the PR. Idempotent — skips if `verified` or `verify-failed` is already on the PR. Trigger phrases - "/pr-verify", "verify this PR", "runtime check the pr".
testing
Use when the user wants a security-focused review pass on a PR with findings actioned as commits on the same branch. Trigger phrases - "/pr-security-review", "security review and fix".
testing
Use when the user wants to open a pull request for an already-pushed branch that implements a specific issue. Idempotent — returns the existing PR if one is already open for the branch. Trigger phrases - "/pr-open", "open the pr", "create pr for this branch".