compound-engineering-plugin
CLI ToolEveryInc/compound-engineering-plugin
Plugin for AI coding tools that compounds engineering knowledge and skills.
Overview
Provides 37 skills and 51 agents for Claude Code, Cursor, Codex, and other AI coding tools. Focuses on thorough planning, review, and knowledge codification to make each engineering unit easier than the last, reducing technical debt over time.
README Preview
# Compound Engineering\n\n[](https://github.com/EveryInc/compound-engineering-plugin/actions/workflows/ci.yml)\n[](https://www.npmjs.com/package/@every-env/compound-plugin)\n\nAI skills and agents that make each unit of engineering work easier than the last.\n\n## Philosophy\n\n**Each unit of engineering work should make subsequent units easier -- not harder.**\n\nTraditional development accumulates technical debt. Every feature adds complexity. Every bug fix leaves behind a little more local knowledge that someone has to rediscover later. The codebase gets larger, the context gets harder to hold, and the next change becomes slower.\n\nCompound engineering inverts this. 80% is in planning and review, 20% is in execution:\n\n- Plan thoroughly before writing code with `/ce-brainstorm` and `/ce-plan`\n- Review to catch issues and calibrate judgment with `/ce-code-review` and `/ce-doc-review`\n- Codify knowledge so it is reusable with `/ce-compound`\n- Keep quality high so future changes are easy\n\nThe point is not ceremony. The point is leverage. A good brainstorm makes the plan sharper. A good plan makes execution smaller. A good review catches the pattern, not just the bug. A good compound note means the next agent does not have to learn the same lesson from scratch.\n\n**Learn more**\n\n- [Full component reference](plugins/compound-engineering/README.md) - all agents and skills\n- [Compound engineering: how Every codes with agents](https://every.to/chain-of-thought/compound-engineering-how-every-codes-with-agents)\n- [The story behind compounding engineering](https://every.to/source-code/my-ai-had-already-fixed-the-code-before-i-saw-it)\n\n## Workflow\n\n`/ce-strategy` is upstream of the loop -- it captures the product's target problem, approach, persona, metrics, and tracks as a short durable anchor at `STRATEGY.md`. Ideate, brainstorm, and plan read it as grounding when present, so strategy choices flow into feature conception, prioritization, and spec.\n\nThe co
FAQ (5)
TroubleshootingHow to install the Compound Engineering plugin in VS Code Copilot after the --to copilot option was removed?
Use the built-in VS Code command: Press Cmd+Shift+P (Mac) or Ctrl+Shift+P (Windows/Linux), select 'Chat: Install Plugin from source', enter 'EveryInc/compound-engineering-plugin' as repository URL, then choose 'compound-engineering-plugin' from the list. The skills will appear in the Copilot agent chat. This avoids the need for the old --to copilot converter.
TroubleshootingWhy does ce-code-review fail with 'scripts/resolve-base.sh not found' error?
Pass an explicit base ref to bypass the missing helper script. For example, use: /ce-code-review base:origin/main. This bug exists in compound-engineering v3.7.3 because SKILL.md uses a relative path that resolves against the project root instead of the skill directory. Track issue #811 for a permanent fix.
TroubleshootingWhy does the ce-resolve-pr-feedback skill say 'No new items' even when there are unanswered bot reviews on a PR with many threads?
This is a known bug in compound-engineering 3.7.0 where the GraphQL query in scripts/get-pr-comments uses fixed 'first: N' page sizes (reviewThreads: 50, comments: 100, reviews: 50) without following pageInfo.hasNextPage cursors. On PRs with more than 50 review threads or 100 comments, items beyond the first page are silently dropped, leading the skill to incorrectly report no work. As a workaround, manually check for unanswered findings with: npx agent-reviews --bots-only --unanswered --expanded. A fix is being tracked to add pagination loops in the script.
TroubleshootingWhy does extract-skeleton.py crash with 'TypeError: unhashable type: 'slice'' when processing Claude session history?
The crash occurs in summarize_claude_tool when slicing a dict-shaped value from input.get('command'), input.get('query'), or input.get('prompt') — e.g., dict[:80] raises TypeError: unhashable type: 'slice'. Fix: add type checks before slicing. In extract-skeleton.py, replace the chained .get(...)[:N] with a helper like:
def _safe_slice(value, n):
return value[:n] if isinstance(value, str) else ""Then use
_safe_slice(inp.get("query"), 80) etc. This handles both string and non-string inputs safely. Apply same guard to file_path/path if they can be sliced later. Patch the script or update to a version containing the type-guard fix to restore full session extraction.TroubleshootingHow to fix Codex cross-model review failing with 'model is not supported when using Codex with a ChatGPT account' error?
The default model gpt-6-luna requested by cross-model-adversarial-review.sh is rejected under ChatGPT account login (400 error), and no same-family fallback is attempted, so the peer review silently falls back to the in-process reviewer. Workaround: override the model with a supported one such as gpt-5.6-sol. Either set environment variables CROSS_MODEL_MODEL_OVERRIDE_TARGET=codex and CROSS_MODEL_MODEL_OVERRIDE=gpt-5.6-sol, or add cross_model_model: gpt-5.6-sol to .compound-engineering/config.local.yaml. Verify with --emit-adapter codex, which should show -m gpt-5.6-sol. You can test model availability directly: codex exec -m gpt-5.6-sol -c 'model_reasoning_effort="xhigh"' --sandbox read-only --skip-git-repo-check "Reply OK".