From compound-teams
Knowledge management for compound engineering. Use when adding learnings to CLAUDE.md, reviewing past patterns, or deciding how to structure project memory. Covers entry format, section organization, and maintenance.
npx claudepluginhub tbdng/compound-teams-plugin --plugin compound-teamsThis skill uses the workspace's default tool permissions.
The compound learning system turns each build/review cycle into accumulated project knowledge via CLAUDE.md.
Creates isolated Git worktrees for feature branches with prioritized directory selection, gitignore safety checks, auto project setup for Node/Python/Rust/Go, and baseline verification.
Executes implementation plans in current session by dispatching fresh subagents per independent task, with two-stage reviews: spec compliance then code quality.
Dispatches parallel agents to independently tackle 2+ tasks like separate test failures or subsystems without shared state or dependencies.
The compound learning system turns each build/review cycle into accumulated project knowledge via CLAUDE.md.
Every project has a CLAUDE.md that Claude reads at the start of each session. The /ct:compound command appends learnings after each cycle. Over time, Claude becomes increasingly effective at working in this specific codebase.
Every learning entry must be:
[2026-02-07] Always use server actions for mutations in Next.js App Router
[2026-02-07] The Stripe webhook handler at /app/api/webhooks/stripe/route.ts
needs `export const config = { api: { bodyParser: false } }` — without raw
body, constructEvent() throws "No signatures found"
Future Claude should know what to DO, not just what happened:
✅ "Use prisma.$transaction() when updating both the user and subscription tables"
❌ "Had a bug with Prisma transactions"
CLAUDE.md should have these sections (created by /ct:setup):
Patterns, libraries, approaches that proved effective:
[2026-02-07] Zod schemas as single source of truth: define once in /lib/schemas/,
use for API validation, form validation, and TypeScript types via z.infer<>
Approaches tried and abandoned, with reasons:
[2026-02-07] tRPC added too much boilerplate for our API surface (3 endpoints).
Switched to plain route handlers with Zod validation. Revisit if API grows past 15 endpoints.
Errors that show up repeatedly — prevent them proactively:
[2026-02-08] Forgetting "use server" directive causes: "Error: Functions cannot be
passed directly to Client Components unless you explicitly expose it by marking it
with 'use server'." Always add to files in /app/actions/.
If a new learning overlaps with an existing one, UPDATE the existing entry rather than adding a duplicate. Add the new date.
Remove entries about tech that's been removed from the project. Dead patterns create noise.
If CLAUDE.md exceeds ~500 lines:
.claude/docs/auth-patterns.md, .claude/docs/api-conventions.md.claude/docs/auth-patterns.md for auth conventions"If a new learning contradicts an old one, update the old entry:
[2026-02-07] ~~Use REST for all endpoints~~ [2026-02-15] Use REST for CRUD,
WebSockets for real-time features (chat, notifications). See /lib/ws/ for setup.
| Good | Bad |
|---|---|
| References specific files/functions | Vague generalities |
| Includes error messages | "Had an error" |
| Says what TO DO | Says what happened |
| Includes WHY | Just states facts |
| Has context for when it applies | Universal claims |