Skip to content

Conversation

@aviflombaum
Copy link

Problem

The compound-engineering plugin ships with 27 agents, 14 skills, and 23 commands. This comprehensiveness is great for covering diverse workflows, but it means ~9,000 tokens of context overhead before a user types anything.

For a Ruby developer, the Python and TypeScript reviewers are wasted context. Someone who doesn't use Figma doesn't need the design sync agents. This "context bloat" reduces the effective context window for actual work.

Solution

Add user-configurable plugin preferences that:

  1. Persist across plugin updates - Config stored in ~/.claude/ survives marketplace updates
  2. Auto-apply on update - SessionStart hook detects version changes and rebuilds automatically
  3. Default to additive - New features are enabled by default; only explicitly disabled items stay off

What's Added

New files:

  • hooks/hooks.json - SessionStart hook to trigger auto-rebuild
  • bin/auto-rebuild - Script that detects version changes and applies saved config

Modified:

  • _source/commands/configure.md - Rewritten to save config externally and modify plugin in-place
  • commands/configure.md - Updated copy

How It Works

  1. User runs /compound:configure
  2. Answers 5 questions about their workflow (language, Figma, browser automation, image gen, Every style)
  3. Config saved to ~/.claude/compound-engineering.config.json
  4. Plugin rebuilt in-place with only enabled components
  5. Version marker written to ~/.claude/compound-engineering.last-build-version

On future plugin updates:

  1. SessionStart hook runs bin/auto-rebuild
  2. Script compares plugin version to saved marker
  3. If different: copies config, runs build, updates marker
  4. User's preferences automatically applied - no manual action needed

User Impact

For a Ruby-focused developer who disables Python/TS reviewers, Figma tools, and image generation:

Component Before After Reduction
Agents 27 21 22%
Skills 14 12 14%
Est. tokens ~9,000 ~7,200 ~20%

Config Format

{
  "agents": {
    "enabled": ["*"],
    "disabled": ["kieran-python-reviewer", "figma-design-sync"]
  },
  "skills": {
    "enabled": ["*"],
    "disabled": ["gemini-imagegen"]
  }
}

The enabled: ["*"] with disabled: [...] pattern means new components are enabled by default.

Testing

  • Fresh install -> /compound:configure -> preferences applied
  • Restart -> config persists
  • Simulate version bump -> auto-rebuild runs
  • Add new skill -> appears in context (not in disabled list)
  • Previously disabled skills stay disabled after update

aviflombaum and others added 2 commits January 21, 2026 16:08
- Add hooks/hooks.json with SessionStart hook
- Add bin/auto-rebuild script to detect version changes
- Rewrite configure.md to modify plugin in-place
- Config persists at ~/.claude/compound-engineering.config.json
- Auto-rebuilds when plugin updates from marketplace

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
@kieranklaassen
Copy link
Collaborator

Super cool. Let me look at this since it's a pretty big pull request. Try it out locally

@kieranklaassen kieranklaassen self-assigned this Jan 21, 2026
@tmchow
Copy link
Contributor

tmchow commented Jan 22, 2026

Is the 9k token overhead only the frontmatter? I thought CC did a great job with not loading everything and discovering and loading skills and agents when needed.

@kieranklaassen
Copy link
Collaborator

yeah i want to make sure we are using the tools, and we might even go to skills for more if that is a problem.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants