Every unit of work
should make the next one easier.
Compound Engineering is the philosophy Every developed while building Cora from scratch. Instead of accumulating technical debt, every work cycle teaches the system something, and development gets progressively faster. This guide covers everything: philosophy, the loop, adoption stages, the plugin, skills and the full playbook.
What is Compound Engineering
Compound engineering emerged while Every was building Cora, an AI chief of staff for your inbox. Battle-testing patterns, agents and workflows across many pull requests, personal productivity hacks evolved into a systematic approach to AI-assisted development.
🏗️ The problem it solves
In traditional engineering, every new feature injects complexity: after years, each feature becomes a negotiation with the old ones. Code gets harder to understand, modify and trust, and teams spend more time fighting their system than building on it.
🔄 The compound flip
In compound engineering, features don't add fragility: they teach the system new capabilities. Bug fixes eliminate entire categories of future bugs. Codified patterns become tools. Over time, the codebase gets easier to understand, modify and trust.
The proof: Every runs five products (Cora, Monologue, Sparkle, Spiral and the Every.to website) with essentially one-person engineering teams. The system that makes this possible is the four-step compound engineering loop.
The core philosophy
"Each unit of engineering work should make subsequent units easier — not harder." Everything else derives from that single sentence.
Compound returns
An hour spent creating a review agent saves ten hours of review over the year. System improvements make work progressively faster. Feature work alone doesn't.
Teaching > doing
Time spent giving agents context pays exponential dividends. Time spent typing code only solves the task in front of you.
Ship more, type less
Your output should be measured by the number of problems solved, not the number of keystrokes you logged.
This goes beyond engineering. The principles apply to design, research and even writing: any discipline where codifying taste and context makes future work faster. The steps are always the same: plan, execute, review, compound.
The main loop
Plan → Work → Review → Compound → Repeat. The first three steps are familiar to any developer. The fourth is what separates compound engineering from the rest: that's where gains accumulate. Skip it, and you've done traditional engineering with AI assistance.
The loop works the same whether you're fixing a bug in five minutes or building a feature over several days. You just spend more or less time on each step. Click each step to explore:
The 80/20 time rule
Planning and review should take 80% of the engineer's time; work and compound, the other 20%. In other words: most thinking happens before and after code gets written. Looking at the full scope of work, Every suggests the 50/50 rule: half the time building features, half improving the system.
Plans are the new code. The plan document is now the most important artifact you produce. Instead of coding first and documenting later, start with the plan: it becomes the source of truth agents use to generate, test and validate code. Fixing ideas on paper is far cheaper than fixing code later.
The 8 core principles
The beliefs that underpin this new approach to software development:
Every unit of work makes the next easier
Code, documentation and tooling should build on each other and make future work faster, never slower.
Taste belongs in systems, not in review
Bake your judgment into configuration, schemas and automated checks. If you don't, you'll spend time checking manually, which doesn't scale.
Teach the system, don't do the work
Time giving agents context pays exponential dividends; time typing code only solves the immediate task.
Build safety nets, not review processes
Trust in AI work comes from verification infrastructure, not manual gatekeeping at every step.
Make environments agent-native
Structure projects so AI agents can navigate and modify them autonomously.
Compound thinking everywhere
Every artifact (code, docs, tests, prompts) should make the next iteration move faster.
Embrace the discomfort of letting go
Delegating to AI means accepting imperfect results that scale, rather than perfect results that don't.
Ship more value, type less code
Your output is measured by problems solved, not keystrokes logged.
Beliefs to let go
We were trained to believe certain things about software development. As AI tools evolved, some of those beliefs became obstacles. Click each one to see why to abandon it:
The real requirement of your job as an engineer is to write good code: maintainable code that solves the right problem. Who types it (human or agent) doesn't matter.
Manual line-by-line review is one method to reach quality code, but automated systems that catch the same issues work too. If you don't trust the results, fix the system instead of compensating by doing everything yourself.
When AI researches approaches, analyzes tradeoffs and recommends options, the engineer's job becomes adding taste: knowing which solution fits this codebase, this team and this context.
A system that produces code is worth more than any individual piece of code. A single brilliant implementation matters less than a process that consistently produces good implementations.
The developer's job is shipping value. Code is just one input: planning, reviewing and teaching the system count too. Effective compound engineers write less code than before and ship more.
First attempts have a ~95% garbage rate; second attempts, ~50%. That's not failure, that's the process. Aim for perfection on attempt one, but focus on iterating fast enough that attempt three lands in less time than attempt one took.
The code was never really yours: it belongs to the team, the product and the users. Letting go is liberating: you take feedback better, refactor without hesitation and skip the arguments about whether code is "good enough".
Understanding matters more than muscle memory. You learn by reviewing, catching mistakes and knowing when the AI is wrong. The dev who reviews ten AI implementations understands more patterns than the one who hand-typed two.
Belief to adopt — extract your taste into the system: team taste usually lives in senior engineers' heads. Document preferences in CLAUDE.md or AGENTS.md so the agent reads them every session, build specialized agents and skills that reflect your style, and point the agent at your style guides and decision records. When AI understands how you like to write code, it produces code you approve, not code you have to fix.
The 6 adoption stages
How much of the process you let AI own depends on where you are on the familiarity ladder. Most devs who struggle with AI don't know where they sit: they hear about multi-agent systems, feel overwhelmed and try to skip stages. Skipping stages doesn't work — each rung builds the mental models and habits for the next. Figure out where you are and grow from there:
The 3 golden questions
Even without a sophisticated multi-agent review system, you capture most of the benefit by asking these three questions before approving any AI output:
Forces the AI to reveal where the tricky parts are and where it had to make judgment calls.
Shows the options it considered and helps catch bad choices.
Makes the AI admit where it might be wrong. LLMs know their weaknesses, but you have to ask.
The official plugin
The full compound engineering workflow ships as an open source plugin (MIT license), maintained by @kieranklaassen and @tmchow. It has 33 skills whose core workflows spawn specialist subagents on demand for research, review, planning and implementation, keeping everything portable across tools. The project is deliberately opinionated: its direction reflects a specific point of view about how AI-assisted engineering should work.
skills in the full inventory
specialist review agents in parallel
officially supported tools
Installation
# Claude Code claude /plugin marketplace add EveryInc/compound-engineering-plugin claude /plugin install compound-engineering
Already installed? The plugin moved to a root-native layout: update the marketplace first (/plugin marketplace update compound-engineering-plugin), then run /plugin update — running the update alone keeps you on the old version.
# No chat do Cursor Agent /add-plugin compound-engineering # ou busque por "compound engineering" no marketplace de plugins
# Codex CLI: registre o marketplace e instale o plugin codex plugin marketplace add EveryInc/compound-engineering-plugin codex plugin add compound-engineering@compound-engineering-plugin
In the Codex App: open Plugins in the sidebar → Add marketplace with source EveryInc/compound-engineering-plugin, ref main, then install and restart. The install is self-contained: reviewers and research live inside the skills as prompt assets.
# Copilot CLI /plugin marketplace add EveryInc/compound-engineering-plugin /plugin install compound-engineering@compound-engineering-plugin # ou via shell com o binário copilot copilot plugin marketplace add EveryInc/compound-engineering-plugin copilot plugin install compound-engineering@compound-engineering-plugin
In VS Code: Chat: Install Plugin from Source from the command palette, using the EveryInc/compound-engineering-plugin repository.
# opencode.json (global ou do projeto) { "plugin": ["compound-engineering@git+https://github.com/EveryInc/compound-engineering-plugin.git"] } # reinicie o OpenCode depois de alterar a config
# Kimi Code CLI (o repo tem manifest nativo .kimi-plugin) /plugins install https://github.com/EveryInc/compound-engineering-plugin # depois rode /reload ou inicie uma nova sessão
# Antigravity CLI (agy), sucessor do Gemini CLI agy plugin install https://github.com/EveryInc/compound-engineering-plugin agy plugin list
| Tool | Installation |
|---|---|
| Cline | ./.cline/scripts/install-skills.sh --global + ativar Skills nas configurações |
| Grok Build CLI | grok plugin install EveryInc/compound-engineering-plugin |
| Devin CLI | devin plugins install EveryInc/compound-engineering-plugin |
| Factory Droid | droid plugin marketplace add <repo> + droid plugin install compound-engineering@compound-engineering-plugin |
| Qwen Code | qwen extensions install EveryInc/compound-engineering-plugin:compound-engineering |
| Pi | pi install git:github.com/EveryInc/compound-engineering-plugin (+ pi-subagents para workflows com subagentes) |
| oh-my-pi (omp) | omp plugin marketplace add EveryInc/compound-engineering-plugin + omp plugin install compound-engineering@compound-engineering-plugin |
No Bun needed to install: it's only required for repo development and converter maintenance.
After installing
# em qualquer projeto: /ce-setup # reporta capacidades de ferramentas disponíveis, cria .compound-engineering/config.yaml # quando ausente, atualiza o exemplo commitado e adiciona override local ao .gitignore
Where things live
CLAUDE.md is the most important file: when something goes wrong, add a note there so the agent learns. docs/solutions/ builds your institutional knowledge — every solved problem becomes searchable documentation future sessions find automatically. And todos/ organizes review findings by priority and status.
Essential skills & commands
The core loop in the current plugin version has six steps: brainstorm → plan → work → simplify → review → compound. Each cycle compounds: /ce-compound writes learnings the next /ce-brainstorm and /ce-plan read as grounding. That return arrow is the whole point.
| Skill | Role in the loop |
|---|---|
| /ce-brainstorm core | Interactive Q&A to think through a feature or problem and write a requirements-only unified plan, before planning |
| /ce-plan core | Enriches feature ideas or requirement docs into implementation-ready plans. Spawns three research agents in parallel (codebase, framework docs, best practices) and merges everything into a structured plan |
| /ce-work core | Executes implementation-ready plans natively or through a qualified cross-model author, keeping host verification, commits and shipping |
| /ce-simplify-code core | Refines freshly written code for clarity and reuse before review |
| /ce-code-review core | Report-only multi-agent review against the plan, before merging; local apply is explicit. There's also /ce-doc-review for documents |
| /ce-compound core | Captures the learning into docs/solutions/ so the next loop starts smarter |
| /lfg | Full autonomous workflow: describe the feature and the agent plans, works, simplifies, reviews, applies fixes, runs browser tests and opens the PR. Pauses for plan approval, then runs hands-off |
| /ce-debug | For bugs instead of features: reproduces, traces root cause, fixes and prepares the fix for a PR |
| /ce-ideate | When you don't know what to build yet: researches (codebase, past learnings, prior art, open issues) and delivers ranked, grounded ideas |
| /ce-strategy | Creates and maintains STRATEGY.md, read as grounding by ideate, brainstorm and plan |
| /ce-product-pulse | Time-windowed report on what users actually experienced (usage, performance, errors) |
| /ce-pov | Decisive, grounded verdict on an adoption, document or set of approaches |
| /ce-explain | Turns a concept, diff or "what did I do this week?" into a dense, self-contained visual document |
| /ce-dogfood | Hands-off diff-scoped browser QA of the active branch, with autonomous fixes |
| /ce-babysit-pr | Watches an open PR and keeps it moving toward merge, reacting to review comments and CI as they arrive |
The full catalog has 33 skills, including /ce-commit, /ce-worktree, /ce-prototype, /ce-polish, /ce-test-browser, /ce-handoff, /ce-compound-refresh, /ce-sweep and more.
Example: the standard loop in practice
# transforme uma ideia vaga em código revisado e shippado /ce-brainstorm tornar os retries de background job mais seguros /ce-plan /ce-work /ce-simplify-code /ce-code-review /ce-compound
# ou o modo autônomo: descreva a feature, aprove o plano, volte para um PR aberto /ce-brainstorm descreva a feature aqui /lfg
/lfg is the autopilot: it runs the loop hands-off — plans, works, simplifies, reviews and applies fixes, runs browser tests and, if a remote exists, opens the PR and watches CI with a bounded repair loop (it doesn't merge on its own). Run it after /ce-brainstorm so it plans against real requirements, not a one-line prompt.
Multi-agent review
The review step spawns more than 14 specialized agents in parallel, each focused on a specific domain. Everything is combined into a single prioritized list of findings. Findings get priority:
P1 · CRITICAL must fix P2 · IMPORTANT should fix P3 · MINOR nice to fix
a single PR spawns 14+ specialist agents in parallel
🛡️ Security
security-sentinel — scans the OWASP top 10, injection attacks, authentication flaws and authorization bypasses.
⚡ Performance
performance-oracle — detects N+1 queries, missing indexes, caching opportunities and algorithmic bottlenecks.
🏛️ Architecture
architecture-strategist evaluates design decisions, component boundaries and dependency directions. pattern-recognition-specialist identifies patterns, anti-patterns and code smells.
🗄️ Data
data-integrity-guardian validates migrations, transaction boundaries and referential integrity. data-migration-expert checks ID mappings, rollback safety and production validation.
✨ Quality
code-simplicity-reviewer (YAGNI, unnecessary complexity) + language reviewers: Rails (two schools: DHH and Kieran), Python (PEP 8, type hints) and TypeScript (type safety, clean architecture).
🚀 Deploy & Frontend
deployment-verification-agent generates pre/post-deploy checklists and rollback plans. julik-frontend-races-reviewer detects race conditions in JS/Stimulus. agent-native-reviewer ensures features are accessible to agents, not just humans.
Automated resolution: the resolution command processes all findings automatically — P1s first, then P2s, each fix in isolation so they don't step on each other. You still manually review the generated fixes at the end. /triage presents each finding for human decision: approve, skip or customize.
Agent-native environment
Agent-native architecture means giving the agent the same capabilities you have. If the agent can't run tests, you have to run them. If it can't see logs, you have to debug. Every capability you withhold from AI becomes a task for you. The goal: full environmental parity between human and AI developers.
Capability checklist
Check what your agent can already do today (click to check):
- Run the application locally
- Run the test suite
- Run linters and type checkers
- Run migrations and seed dev data
- Create branches, commits and push to remote
- Create pull requests and read PR comments
- View local and production logs (read-only)
- Take screenshots of the UI
- Inspect network requests
- Access error tracking (Sentry, etc.)
The 4 agent-native maturity levels
Basic
File access, tests and git commits. The base that unlocks compound engineering.
Full local
Browser, local logs and PR creation. Enables stages 3-4 of the ladder.
Production visibility
Production logs (read-only), error tracking and dashboards. The agent debugs proactively.
Full integration
Ticket systems, deployment and external services. Enables stage 5 (parallel cloud execution).
Agent-native is also a mindset. When building features, ask: "how will the agent interact with this?". When debugging: "what would the agent need to see?". When documenting: "will the agent understand this?".
Skip permissions
By default Claude Code asks permission before every action. The --dangerously-skip-permissions flag turns those prompts off — the name is intentionally scary to make you think before using it. But at stage 3+, constant permission requests kill your flow.
✅ When to use
- You trust the process: you have a good plan and good review systems
- You're in a safe environment (sandbox, nothing affecting real users)
- You want velocity: permission requests break your flow
❌ When NOT to use
- You're learning: the prompts help you understand what's happening
- You're in production: never, because it touches real users
- You don't have good rollback: if you can't undo easily, keep the prompts
Safety without prompts
🔀 Git is the safety net
Everything the agent does is in git. git reset --hard HEAD~1 and you're back.
🧪 Tests catch mistakes
Before merging, run your tests. If the agent broke something, they catch it.
👀 Review before merge
Skip permissions skips implementation prompts, not the final PR review.
🌲 Worktrees isolate risk
Risky work happens in an isolated directory via git worktrees.
The productivity calculation: without skip permissions, a prompt every 30 seconds, each one requiring a "y" and lost focus — multiplied hundreds of times per session. With skip permissions, you maintain a flow state and unlock 5-10x faster iteration, and the time saved can dramatically exceed the risk of occasionally rolling something back.
Vibe coding
Vibe coding is for people who don't care about the code itself — they want results. Maybe a PM prototyping ideas, a designer testing an interaction, or a personal project you'll never look at again. The philosophy: skip the ladder and go straight to stage 4 — describe what you want and let the agents build it.
Perfect for
- Personal projects
- Prototypes and experiments
- "Can this even work?" investigations
- Internal tools
- UX exploration
Not great for
- Production systems with users
- Code others will maintain
- Security-sensitive apps
- Performance-critical systems
The vibe coding paradox: it can actually make your planning better. When you don't know what to build, generate prototypes, share them with users, collect feedback, click through them. Then delete everything and start over with a proper plan. The optimal split: vibe code to discover what you want, spec to build it right. The spec always wins for final implementation, but vibe coding accelerates discovery.
# sessão de exemplo: descrever → esperar → testar → corrigir → ship Você: /lfg quero um site onde colo um link do YouTube e ele extrai a transcrição ... agente trabalha por alguns minutos ... Você: funciona, mas o texto está difícil de ler. aumenta a fonte. ... agente corrige ... Você: perfeito. ship it.
Design workflow
Design is easier to iterate on in code than in mockups — you can click through it and feel the interactions. But you don't want to experiment in your production codebase. The flow: prototype in throwaway projects, test with users and capture design taste so the AI can replicate it.
The "baby app" approach
The workflow
- Create a prototype repo: mkdir baby-myapp
- Vibe-code the design without fear
- Iterate until it feels right: "more spacing, toggle more prominent"
- Capture the design system: colors, spacing, typography, patterns
- Transfer to the main app using the prototype as reference
UX discovery loop
When you don't know what to build: ask for five different versions of a screen, click through each, share with users ("would this flow confuse you?"), collect feedback on functional prototypes (unlike a Figma mockup, they can actually click around) and then delete everything and start over with a proper plan. The prototype is for learning, not shipping.
Working with designers
| Traditional flow | Compound flow | |
|---|---|---|
| Process | Designer creates mockup → dev interprets and builds → designer says "that's not quite right" → back and forth until it maybe matches | Designer creates mockup in Figma → you run /plan with the link → AI builds it → the figma-design-sync agent checks it against the mockup → designer reviews the live version, not a screenshot → iterate until perfect |
| Taste | Lives in the designer's head | Codified in a skill (colors, spacing, patterns). The AI produces designs matching the designer's taste, even without them involved |
Design agents: design-iterator screenshots the current design, analyzes what's not working, improves and repeats. figma-design-sync pulls the design from Figma, compares it with what's built and fixes differences automatically. design-implementation-reviewer checks implementations match the Figma specs before they reach users.
Team collaboration
When AI handles implementation, team dynamics shift. You need new agreements: who approves plans, who owns PRs and what humans review when agents have done the first pass.
Traditional flow
Person A writes code → Person B reviews → discussion in PR comments → merge after approval.
Compound flow
Person A creates the plan → AI implements → AI agents review → Person B reviews the AI review → merge after human approval.
✅ Plan approval
Reading a plan and agreeing with it is a decision. Silence is not approval — it's the absence of a decision. Require explicit sign-off before implementation: a comment, a commit tag or another marker.
👤 PR ownership
The person who initiated the work owns the PR, regardless of who (or what) wrote the code. You're responsible for plan quality, reviewing the work, fixing issues and the impact after merge.
🎯 Human review focus
When agents have already analyzed the PR, humans focus on intent, not implementation: does this match what we agreed? does the approach make sense? any business logic issues? Syntax errors, security and performance are already the agents' job.
Communication & scaling patterns
📬 Async by default
Plans can be created, reviewed and approved without a meeting. Instead of "let's meet to discuss", try "I've created a plan — please comment by end of day". Explicit handoffs: status, what's done, what's left, context and how to continue.
🚩 Flags + small PRs
Everyone shipping faster = more merge conflicts. Ship small pieces, use feature flags, merge to main frequently and resolve conflicts immediately. And each major feature has one owner, who updates the team asynchronously.
Compound docs = tribal knowledge. You shouldn't need to ask a colleague something that could be baked into the system. Instead of "ask Sarah, she knows how auth works", Sarah runs /compound after implementing. The solution gets documented and anyone can find it.
User research the AI can use
Structure research so AI can use it. Raw interview notes are hard to leverage: insights need a quote, an implication and a confidence level.
The research ↔ development gap
Traditional: researcher interviews → writes report → report rots in Drive → dev builds without reading it → feature doesn't match user needs.
Compound: research generates structured insights → insights become planning context → AI references insights when planning → features are informed by research → usage data validates insights → insights compound.
Structured insight
# research/interviews/user-123.md ### Insight: ritual matinal de dashboard Quote: "Primeira coisa de manhã, procuro bandeiras vermelhas." Implicação: dashboard precisa surfacar problemas rápido. Confiança: 4/5 participantes
Referable personas + research-informed planning
Create persona documents (goals, frustrations, quotes) the AI can reference, and feed plans with research context:
/ce-plan adicionar exportação agendada Contexto de pesquisa: - 3/5 usuários entrevistados mencionaram exportação semanal - a persona marketing-manager exporta toda sexta - dor atual: processo manual de exportação Desenhar para: exports semanais automáticos por e-mail
Data pattern extraction
Your users are already telling you what to build through how they use your product. Each click is a clue. You just have to pay attention:
🔥 Heavy usage
Features used way more than expected; users returning to the same page repeatedly. A signal that value (or dependency) lives there.
😤 Struggle
High dwell time on simple pages; repeated attempts at the same action; error → retry → error loops.
🛠️ Workaround
Users inventing solutions because the product doesn't do what they need: exporting from one place and importing elsewhere, copy-pasting between screens, multiple tabs open to compare.
🚪 Abandonment
Where users drop off in flows: features started but not completed.
From pattern to feature: you notice users copying data from one table and pasting it into another 50 times a week → insight: they need automation between tables → feature: a "sync to table B" button. Or you notice users creating "template" projects and duplicating them → insight: they want templates → feature: first-class template support.
Copywriting
Most teams treat copy as an afterthought — something to fill in after the feature is built. But copy is part of the user experience and deserves the same attention as code.
📋 Copy in the plan
Include copy in your plans from the start: email subject, success message, error messages. When the AI implements, the copy is already there.
🗣️ Codify your voice
Create a skill defining principles ("talk like a human, not a robot"; "errors should help, not blame") and words to avoid ("invalid" → "didn't work"; "successfully" → just say what happened).
🔎 Review copy like code
Add a copy-reviewer agent to the process: clarity (can a non-technical user understand?), helpfulness, tone (does it match the voice guide?) and consistency with similar text.
Product marketing
Congratulations, you shipped something. Now tell the world: the same system that builds features can announce them. Release notes generated from the plan, social posts, automated screenshots — everything flows from one place, nothing needs handoff and nothing slips through.
| Step in the compound flow |
|---|
| 1 · The engineer creates a plan that includes the product value proposition |
| 2 · The AI implements the feature |
| 3 · The AI generates release notes from the plan (user benefit first, one concrete example, breaking changes, under 200 words) |
| 4 · The AI generates social posts from the release notes |
| 5 · The AI generates screenshots with Playwright — no asking engineering, never out of date |
| 6 · The engineer reviews and ships everything together. For multiple features, /changelog reads recent merges and generates the changelog |
Vibe coding vs. AI engineering
Compound engineering is the structured answer to the risk of "vibe coding": code that seems to work but isn't sustainable. See the contrast:
| Vibe Coding | AI Engineering / Compound | |
|---|---|---|
| Input | Vague prompt → code that "looks ok" | Clear spec + acceptance criteria |
| Process | No spec, no tests, no review | Agent executes with repo context |
| Result | Works in the demo, breaks in production | Human review + tests |
| Debt | Technical debt grows with every PR | Documented learnings (compounding) |
The synthesis: vibe coding is great for fast prototyping; AI engineering is what scales in production. Teams that master agents deliver features in hours instead of weeks, but speed without process quickly becomes technical debt. The relevant question today is no longer "do you use AI?", but "can you orchestrate AI?".
Spec-driven & the 2026 stack
Compound engineering connects directly with another trend: Spec-Driven Development, where the specification becomes an executable contract before any line of code. The typical flow: Constitution (AGENTS.md) → SPEC.md → TASKS.md → Code + PR — exactly the spirit of /ce-brainstorm → /ce-plan → /ce-work.
Tool map
| Category | Examples | When to use |
|---|---|---|
| AI-first IDE | Cursor, Windsurf, Kiro | Day-to-day in the editor, plan + agent |
| Terminal agent | Claude Code, Codex CLI, Aider | Big refactors, multi-file, CI |
| Inline / PR | GitHub Copilot | Autocomplete + review in the PR |
| Cloud agent | Devin, Jules, Codex Cloud | Long tasks, tickets, remote PRs |
| Chat / research | Claude, ChatGPT, Gemini | Design, trade-offs, learning |
Recommended stack (2026 reference)
| Layer | Suggestion | Why |
|---|---|---|
| Main IDE | Cursor | Plan + Agent + rules + MCP |
| Terminal agent | Claude Code | Long tasks, Compound Engineering plugins |
| Chat / design | Claude ou ChatGPT | Trade-offs and specifications |
| PR / CI | Copilot + checks automáticos | Review integrated into the GitHub flow |
| Context | AGENTS.md + rules | The base of compounding in the repository |
Daily checklist
- AGENTS.md / CLAUDE.md updated in the repository
- Specific rules for sensitive areas (auth, billing, database)
- Plan mode used before big features
- Tests and typecheck run by the agent
- Diff always read before commit
- Learnings documented (compounding)
- No secrets in the chat history
When not to use AI
Better manually
- Critical architectural decisions without defined criteria
- Small hotfixes you already fully understand
- Regulated code requiring clear human accountability
- Learning a fundamental for the first time
Perfect with AI
- Boilerplate, tests and migrations
- Exploring an unknown codebase
- Mechanical refactors covered by tests
- Drafts of PR descriptions and documentation
Sources
This guide was compiled from:
- Compound Engineering: The AI-native engineering philosophy — the full guide by Kieran Klaassen at Every
- EveryInc/compound-engineering-plugin — the official plugin on GitHub (MIT, 24k+ stars)
- Internal document: AI Programming Techniques: Compound Engineering, Spec-Driven Development and the 2026 Stack