Captures project-specific patterns and anti-patterns into the project's CLAUDE.md. Loaded by other skills (bug-killer, feature-dev, etc.) when they discover project-specific knowledge worth encoding for future sessions.
Captures project-specific patterns and anti-patterns into CLAUDE.md for smarter future sessions.
/plugin marketplace add sequenzia/agent-alchemy/plugin install agent-alchemy-dev-tools@agent-alchemyThis skill is limited to using the following tools:
Capture project-specific patterns and anti-patterns into the project's CLAUDE.md. This creates a self-improving feedback loop where discoveries from debugging, development, and review make future Claude sessions smarter.
CRITICAL: Only project-specific knowledge qualifies. Generic programming advice does not belong in CLAUDE.md.
Determine if the finding qualifies as project-specific. The finding must pass at least ONE of these criteria:
| Criteria | Example That Qualifies | Example That Doesn't |
|---|---|---|
| Would a developer unfamiliar with this project likely hit this issue? | "The processOrder() function expects amounts in cents, not dollars" | "Always validate function inputs" |
| Is this pattern specific to this codebase's architecture, APIs, or conventions? | "The UserProfile type has an optional metadata field that is always present at runtime" | "Use TypeScript strict mode" |
| Is it something Claude's training data wouldn't cover? | "Never call db.query() without the timeout option — the default is infinite" | "Use async/await instead of callbacks" |
If NO to all criteria → STOP. Do not add generic programming knowledge to CLAUDE.md. Return to the calling skill and report that no project-specific learning was found.
If YES to any → proceed to Step 2.
Find the project's CLAUDE.md:
.claude/ directoryParse existing content:
If a similar entry already exists → STOP. Report to the calling skill that this knowledge is already captured. Do not create duplicates.
Identify placement:
## Known Gotchas or ## Project-Specific Patterns)Write a concise, actionable instruction following these rules:
Format:
Templates:
For bug patterns:
- **[Area/Component]**: [What to do/avoid] — [why, with specific details]
For API gotchas:
- `functionName()` in `path/to/file`: [What's surprising about it] — [consequence if ignored]
For architectural constraints:
- [Constraint description] — [why it exists and what breaks if violated]
Examples of well-formatted learnings:
processOrder() — it expects cents, not dollarsdb.query() in src/database.ts: Always pass the timeout option — the default is infinite and has caused production hangs (30 second timeout recommended)internal/ directories in src/api/ — the build system treats these as separate compilation units and circular dependencies will silently break HMRPresent the proposed addition via AskUserQuestion:
Show:
Options:
If the user confirmed (or provided edited text):
If the user chose "Skip":
Activates when the user asks about AI prompts, needs prompt templates, wants to search for prompts, or mentions prompts.chat. Use for discovering, retrieving, and improving prompts.
Search, retrieve, and install Agent Skills from the prompts.chat registry using MCP tools. Use when the user asks to find skills, browse skill catalogs, install a skill for Claude, or extend Claude's capabilities with reusable AI agent components.
Expert guidance for Next.js Cache Components and Partial Prerendering (PPR). **PROACTIVE ACTIVATION**: Use this skill automatically when working in Next.js projects that have `cacheComponents: true` in their next.config.ts/next.config.js. When this config is detected, proactively apply Cache Components patterns and best practices to all React Server Component implementations. **DETECTION**: At the start of a session in a Next.js project, check for `cacheComponents: true` in next.config. If enabled, this skill's patterns should guide all component authoring, data fetching, and caching decisions. **USE CASES**: Implementing 'use cache' directive, configuring cache lifetimes with cacheLife(), tagging cached data with cacheTag(), invalidating caches with updateTag()/revalidateTag(), optimizing static vs dynamic content boundaries, debugging cache issues, and reviewing Cache Component implementations.