Add `--to windsurf` target for the converter CLI with full spec compliance
per docs/specs/windsurf.md:
- Claude agents → Windsurf skills (skills/{name}/SKILL.md)
- Claude commands → Windsurf workflows (workflows/{name}.md, flat)
- Pass-through skills copy unchanged
- MCP servers → mcp_config.json (merged with existing, 0o600 permissions)
- Hooks skipped with warning, CLAUDE.md skipped
Global scope support via generic --scope flag (Windsurf as first adopter):
- --to windsurf defaults to global (~/.codeium/windsurf/)
- --scope workspace for project-level .windsurf/ output
- --output overrides scope-derived paths
Shared utilities extracted (resolveTargetOutputRoot, hasPotentialSecrets)
to eliminate duplication across CLI commands.
68 new tests (converter, writer, scope resolution).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add proof skill for collaborative document editing via Proof's web API
and local bridge. Integrate Proof uploads into brainstorm and plan
workflows so outputs get a shareable URL automatically.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Strengthen brainstorm intake: thorough read, carry ALL content, reference source inline
- Add origin: frontmatter field to all three plan templates (MINIMAL, MORE, A LOT)
- Rename References to Sources sections, add brainstorm as first entry
- Add brainstorm cross-check checklist in final review step
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Add System-Wide Test Check to work command task execution loop (5 questions: callbacks, real chain coverage, orphaned state, API parity, error alignment)
- Add integration test guidance to Test Continuously section
- Add System-Wide Impact sections to plan templates (MORE + A LOT)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- fix(lfg, slfg): make ralph-loop step optional — graceful fallback
when ralph-wiggum skill not installed (#154); add explicit
"do not stop" instruction across all pipeline steps (#134)
- fix(plan): add mandatory "Write Plan File" step with explicit Write
tool instructions before post-generation options — plan always
written to disk even in LFG/SLFG pipeline context (#155, #134)
- fix(plan): use full qualified agent name for spec-flow-analyzer
to prevent Claude prepending wrong 'workflows:' prefix (#193)
Closes#154, #155, #193
Contributing to #134
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Plan templates now include `status: active` in YAML frontmatter
- /workflows:work updates plan status to `completed` after shipping
- Agents can grep frontmatter to distinguish current vs historical plans
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(commands): add /compound-engineering-setup for configurable agents
Adds a new setup command that allows users to configure which review
agents to use instead of hardcoding them in workflows. This enables:
- Multi-step onboarding with AskUserQuestion for easy setup
- Auto-detection of project type (Rails, Python, TypeScript, etc.)
- Three setup modes: Quick (smart defaults), Advanced, and Minimal
- Configuration stored in .claude/compound-engineering.json
- Support for both global (~/.claude/) and project-specific config
Updated workflows to read from config:
- /workflows:review - reads reviewAgents from config
- /plan_review - reads planReviewAgents from config
- /workflows:work - references config for reviewer agents
- /workflows:compound - references config for specialized agents
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat: auto-trigger setup when no config exists
Workflows now detect missing config and offer inline quick setup:
- "Quick Setup" - auto-detect project type, create config, continue
- "Full Setup" - run /compound-engineering-setup for customization
- "Skip" - use defaults just this once
This ensures users get onboarded automatically when running any
workflow for the first time, without needing to know about the
setup command beforehand.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* feat(review): wire all conditionalAgents categories
Extended /workflows:review to invoke conditional agents for:
- migrations (existing)
- frontend (new): JS/TS/Stimulus changes
- architecture (new): structural changes, 10+ files
- data (new): model/ActiveRecord changes
Each category reads from conditionalAgents.* config key and
runs appropriate specialized agents when file patterns match.
Resolves: todos/001-ready-p2-conditional-agents-not-invoked.md
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: mark todo #001 as complete
* feat(setup): add custom agent discovery and modify flow
- Auto-detect custom agents in .claude/agents/ and ~/.claude/agents/
- Add modify existing config flow (add/remove agents, view config)
- Include guide for creating custom review agents
- Add customAgents mapping in config to track agent file paths
- Update changelog with new config schema including customAgents
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* chore: remove completed todos directory
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* [2.29.1] Improve /workflows:brainstorm question flow
- Add "Ask more questions" option at handoff phase
- Clarify that Claude should ask the user questions (not wait for user)
- Require resolving ALL open questions before offering to proceed
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* Simplify plugin settings: replace 486-line wizard with .local.md pattern
- Rewrite setup.md (486 → 95 lines): detect project type, create
.claude/compound-engineering.local.md with smart defaults
- Make review.md and work.md config-aware: read agents from .local.md
frontmatter, fall back to auto-detected defaults
- Wire schema-drift-detector into review.md migrations conditional block
- Delete technical_review.md (duplicated /plan_review)
- Add disable-model-invocation to setup.md
- Bump to v2.32.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Rewrite .claude/ paths for OpenCode/Codex targets, add npm publish workflow
- Converters now rewrite .claude/ → .opencode/ (OpenCode) and .codex/ (Codex)
in command bodies and agent bodies so .local.md settings work cross-platform
- Apply transformContentForCodex to agent bodies (was only commands before)
- Add GitHub Action to auto-publish to npm on version bump merge to main
- Bump to v0.4.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(workflows-work): require post-deploy monitoring section
Add a mandatory Post-Deploy Monitoring & Validation section to the /workflows:work PR template, include no-impact fallback guidance, and enforce it in the quality checklist.
* Add learnings-researcher to review workflow, fix docs site counts
- Add learnings-researcher as parallel agent #14 in /workflows:review
so past solutions from docs/solutions/ are surfaced during code review
- Make /release-docs command invocable (remove disable-model-invocation)
- Fix stale counts across docs site (agents 28→29, commands 19→24,
skills 15→18, MCP servers 2→1)
- Bump version to 2.32.1
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Move /release-docs to local .claude/commands/, bump to 2.32.2
Repo maintenance command doesn't need to be distributed to plugin users.
Update command count 24 → 23 across plugin.json, marketplace.json, and docs.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Move settings to project root: compound-engineering.local.md
Tool-agnostic location — works for Claude, Codex, OpenCode without
path rewriting. No global fallback, just project root.
Update commands (setup, review, work) and converter tests.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Make /compound-engineering-setup interactive with auto-detect fast path
Two paths: "Auto-configure" (one click, smart defaults) or "Customize"
(pick stack, focus areas, review depth). Uses AskUserQuestion throughout.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Replace /compound-engineering-setup command with setup skill
Setup is now a skill invoked on-demand when compound-engineering.local.md
doesn't exist. Review and work commands just say "invoke the setup skill"
instead of inlining the full setup flow.
- Remove commands/setup.md (command)
- Add skills/setup/SKILL.md (skill with interactive AskUserQuestion flow)
- Simplify review.md and work.md to reference the skill
- Counts: 29 agents, 22 commands, 19 skills
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Prepare v2.33.0 release: setup skill, configurable review agents
- Bump version to 2.33.0
- Consolidate CHANGELOG entries for this branch
- Fix README: update counts (29/22/19), add setup + resolve-pr-parallel skills
- Remove stale /compound-engineering-setup command reference
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Document Droid as third converter target alongside OpenCode and Codex
- Bump package version 0.3.0 → 0.4.0 for new target feature
- Add CHANGELOG entry for 2.32.0 with Droid details
- Add GitHub Actions workflow to publish to npm on release
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Rewrite all reference files, asset templates, and SKILL.md to use
current API patterns (.call(), result.field, T::Enum classes,
Tools::Base). Add two new reference files (toolsets, observability)
covering tools DSL, event system, and Langfuse integration.
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
* Update create-agent-skills to match 2026 official docs, add /triage-prs command
- Rewrite SKILL.md to document that commands and skills are now merged
- Add new frontmatter fields: disable-model-invocation, user-invocable, context, agent
- Add invocation control table and dynamic context injection docs
- Fix skill-structure.md: was incorrectly recommending XML tags over markdown headings
- Update official-spec.md with complete 2026 specification
- Add local /triage-prs command for PR triage workflow
- Add PR triage plan document
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* [2.31.0] Reduce context token usage by 79%, include recent community contributions
The plugin was consuming 316% of Claude Code's description character budget
(~50,500 chars vs 16,000 limit), causing components to be silently excluded.
Now at 65% (~10,400 chars) with all components visible.
Changes:
- Trim all 29 agent descriptions (move examples to body)
- Add disable-model-invocation to 18 manual commands
- Add disable-model-invocation to 6 manual skills
- Include recent community contributions in changelog
- Fix component counts (29 agents, 24 commands, 18 skills)
Contributors: @trevin, @terryli, @robertomello, @zacwilliams,
@aarnikoskela, @samxie, @davidalley
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix: keep disable-model-invocation off commands called by /lfg, rename xcode-test
- Remove disable-model-invocation from test-browser, feature-video,
resolve_todo_parallel — these are called programmatically by /lfg and /slfg
- Rename xcode-test to test-xcode to match test-browser naming convention
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* Fix: keep git-worktree skill auto-invocable (used by /workflows:work)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
* feat(converter): support disable-model-invocation frontmatter
Parse disable-model-invocation from command and skill frontmatter.
Commands/skills with this flag are excluded from OpenCode command maps
and Codex prompt/skill generation, matching Claude Code behavior where
these components are user-only invocable.
Bump converter version to 0.3.0.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
---------
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
The /workflows:compound command was inconsistently creating intermediary
files during research phase instead of having subagents return text data
to the orchestrator.
Changes:
- Add <critical_requirement> block explicitly forbidding subagent file writes
- Restructure into clear two-phase orchestration (research → assembly)
- Remove Documentation Writer as parallel subagent (was incorrectly parallel)
- Add Phase 3 for optional enhancement agents with proper sequencing
- Add Common Mistakes table for quick reference
- Update success output to reflect new structure
Co-authored-by: Kieran Klaassen <kieranklaassen@users.noreply.github.com>
Add optional review and refine step to workflows:brainstorm and workflows:plan
that checks documents for clarity, completeness, user intent, and YAGNI.
- New document-review skill with review questions and evaluation criteria
- Brainstorm Phase 4 offers "Review and refine" option
- Plan post-generation offers "Review and refine" after technical review
- Includes YAGNI-based simplification guidance
- Max 2 iteration rounds before suggesting to proceed
Co-authored-by: Kieran Klaassen <kieranklaassen@users.noreply.github.com>
In git worktrees, .git is a regular file containing a gitdir: pointer
back to the main repository — not a directory. The -d check caused
list and cleanup to silently skip all worktrees, reporting "No
worktrees found". Changed to -e (exists) which handles both cases.
Fixes#158
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- New skill: orchestrating-swarms — comprehensive guide to multi-agent
swarm orchestration with TeammateTool operations, spawn backends,
task dependencies, and orchestration patterns
- New command: /slfg — swarm-enabled variant of /lfg that parallelizes
review + browser tests after work phase, then resolves and records video
- Updated /workflows:work with optional Swarm Mode section
- Added missing skills (brainstorming, orchestrating-swarms) to README
- Added missing commands (/lfg, /slfg) to README
Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
- New agent: schema-drift-detector for catching unrelated schema.rb changes in PRs
- Compares schema.rb diff against migrations in the PR
- Detects columns, indexes, tables from other branches
- Provides clear fix instructions
- Essential pre-merge check for database changes
Also updates component counts in README (were outdated)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
* fix: protect plan and solution files from review/resolve deletion
The review/resolve pipeline could flag docs/plans/*.md and
docs/solutions/*.md files for deletion, contradicting /workflows:work
which treats them as living documents.
Adds protection at three layers:
- review.md: Protected Artifacts section + synthesis filter
- code-simplicity-reviewer.md: YAGNI exception for pipeline artifacts
- resolve_todo_parallel.md: Safety check to skip/wont_fix such todos
Fixes#140
* fix: protect plan and solution files from review/resolve deletion
The review/resolve pipeline could flag docs/plans/*.md and
docs/solutions/*.md files for deletion, contradicting /workflows:work
which treats them as living documents.
Adds protection at four layers:
- review.md: Protected Artifacts section and synthesis filter
- code-simplicity-reviewer.md: YAGNI exception for pipeline artifacts
- resolve_todo_parallel.md: Skip and wont_fix todos targeting these paths
- git-history-analyzer.md: Note not to characterize them as unnecessary
Fixes#140
---------
Co-authored-by: Axl Ottle <axl@Axls-Virtual-Machine.local>
The plugin had hardcoded references to 'CORA' (Every's internal project)
throughout the documentation workflow, making it project-specific rather
than generic. This affected users trying to use the plugin on non-CORA
projects.
Changes:
- Replace 'cora-critical-patterns.md' with 'critical-patterns.md'
- Replace 'Which CORA module' with 'Which module or component'
- Replace 'CORA-Specific Resources' with 'Project-Specific Resources'
- Replace 'CORA-MODULES.md' with 'modules documentation'
- Replace 'CORA system' with 'System-wide' in templates
- Update cora-test-reviewer description to be generic
Files modified:
- learnings-researcher.md: Fixed critical patterns file reference
- compound-docs/SKILL.md: Removed module and filename hardcoding
- compound-docs/assets/*.md: Generalized template references
- workflows/compound.md: Changed 'CORA schema' to 'solution schema'
- workflows/work.md: Made test reviewer description generic
This makes the plugin truly project-agnostic as advertised.
- Bump version to 2.28.0 in plugin.json and marketplace.json
(CHANGELOG was updated but version numbers were missed)
- Fix all repo URLs from kieranklaassen/* to EveryInc/compound-engineering-plugin
- Update component counts in docs: 28 agents, 24 commands, 15 skills, 1 MCP
Co-Authored-By: Claude <noreply@anthropic.com>
* fix(compound-docs): correct severity enum in validation example
The example error message referenced [critical, moderate, minor] but
the yaml-schema.md defines severity as [critical, high, medium, low].
* refactor(agents): standardize search tool recommendations
- Update repo-research-analyst to recommend built-in Grep tool instead
of CLI rg (Grep uses ripgrep under the hood)
- Add TypeScript example for ast-grep alongside Ruby
- Update pattern-recognition-specialist to use built-in Grep tool
- Keep ast-grep for AST-based structural matching (language-specific)
* feat(agents): add learnings-researcher for institutional knowledge
Add new research agent that efficiently searches docs/solutions/ for
relevant past solutions before implementing features or fixing bugs.
Key features:
- Grep-first filtering strategy for efficiency with 100+ files
- Category-based narrowing to reduce search scope
- Parallel Grep calls with synonym support (OR patterns)
- Frontmatter-only reads before full document reads
- Always checks critical patterns file
- Uses haiku model for speed (structured task, recipe-based)
Integrates with /workflows:plan to run in parallel with
repo-research-analyst during local research phase.
Closes the loop on compound engineering: solutions documented via
/workflows:compound are now discoverable during planning.
- Move plans from `plans/` to `docs/plans/` for consistency with other artifacts
- Add date prefix (YYYY-MM-DD) to both plans and brainstorms for chronological sorting
- Add self-documenting suffixes: `-plan` and `-brainstorm` to identify artifact type
- Update filename derivation to extract title from content, not filename
- Clarify deepened plan naming: append `-deepened` after `-plan` suffix
New conventions:
- Brainstorms: `docs/brainstorms/YYYY-MM-DD-<topic>-brainstorm.md`
- Plans: `docs/plans/YYYY-MM-DD-<type>-<name>-plan.md`
- Deepened: `docs/plans/YYYY-MM-DD-<type>-<name>-plan-deepened.md`
* feat(workflows:plan): Add smart research decision logic
Previously, /workflows:plan always ran all 3 research agents (repo-research,
best-practices, framework-docs) regardless of task complexity. This wasted
tokens and time for simple tasks like UI tweaks or bug fixes with clear causes.
Now the workflow:
- Always runs repo research first (fast, local)
- Makes an informed decision about external research based on:
- Signals gathered during idea refinement (familiarity, intent, risk)
- Repo research findings (existing patterns, CLAUDE.md guidance)
- High-risk topics (security, payments, external APIs) always trigger research
- Strong local context allows skipping external research
- Announces the decision and proceeds, user can redirect if needed
This makes the planning workflow smarter about when web research adds value.
* feat: Add /workflows:brainstorm command and skill
Add brainstorming workflow to explore requirements and approaches
before planning implementation:
- New `/workflows:brainstorm` command for collaborative dialogue
- New `brainstorming` skill with process knowledge and techniques
- Update `/workflows:plan` to detect brainstorm output and skip
idea refinement when relevant brainstorm exists
- Add brainstorm to README workflow commands table
The brainstorm → plan flow enables:
- Phase 0: Assess requirement clarity
- Phase 1: Understand the idea via repo research + dialogue
- Phase 2: Explore 2-3 approaches with trade-offs
- Phase 3: Capture design to docs/brainstorms/
- Phase 4: Handoff to /workflows:plan
Add deprecation/sunset checks to research agents before they recommend
external APIs, OAuth flows, or third-party services.
Changes:
- framework-docs-researcher: Added step 2 "Deprecation/Sunset Check"
and updated Quality Standards
- best-practices-researcher: Added Phase 1.5 "MANDATORY Deprecation Check"
This prevents wasted development time on deprecated APIs. For example,
Google Photos Library API scopes were deprecated in March 2025, and
without validation, developers can spend hours debugging OAuth errors
on dead APIs.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
Add two new phases to improve plan quality through user collaboration:
- Phase 0: Idea Refinement - Refines feature ideas through dialogue
before running research agents. Asks questions one at a time,
prefers multiple choice, focuses on purpose/constraints/success
criteria. Skip option for detailed descriptions.
- Research Validation - After research completes, summarizes findings
and validates alignment before drafting the full plan.
Both phases are optional and can be skipped, ensuring the workflow
remains lightweight while catching misunderstandings early.
- Update "current year is 2025" to 2026 in 4 research agents
- Update year ranges to 2024-2026 for content searches in deepen-plan
and create-agent-skills workflows
- Change "currency" to "recency" for clarity in domain expertise skill
- Add branch detection at start of Setup Environment step
- Support continuing on existing feature branch or creating new
- Require explicit confirmation to commit to default branch
- Add incremental commit guidance with decision criteria table
- Include heuristic: "Can I write a meaningful commit message?"
- Generalize test commands to be framework-agnostic
- Remove quotes from the routing table's Response column
- Add blank line after <routing> tag to allow markdown parsing
GitHub treats custom XML tags as HTML, requiring a blank line
before markdown content to render correctly.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
- Renamed every-marketplace to compound-marketplace
- Updated all EveryInc references to kieranklaassen
- Updated owner info in marketplace.json
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
Added step to update original plan document with completed checkboxes
([ ] → [x]) after each task is finished. Keeps the plan as a living
document showing progress.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Updated PR template to include badge at bottom linking to plugin repo
- Added badge requirement to quality checklist
- Badge provides attribution and link to the plugin
Co-Authored-By: Claude <noreply@anthropic.com>
Skills are auto-loaded in context, no need to manually cat files.
Simplified Step 0 to just reference loaded skill context.
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Added "Step 0: Discover and Load Design Skills (MANDATORY)"
- Discovers skills from all locations (plugin, global, project)
- Maps user context to relevant skills (Swiss → swiss-design, etc.)
- Changed iteration approach: ONE change per iteration, not 3-5
- Updated output format: focus on single most impactful change
- Added rule: "If you can't identify ONE clear improvement, stop"
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
- Add Phase 1: Discover and read relevant SKILL.md files before going online
- Add skill mappings for common technologies (Rails, Frontend, AI, etc.)
- Only proceed to online research if skills don't provide enough coverage
- Prioritize skill-based guidance with clear source attribution
- Synthesize findings from skills + online sources
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Orchestrates: plan → deepen-plan → work → review → resolve todos → test-browser → feature-video
- Uses ralph-loop for autonomous completion
- Migrated from local command
- Updated to use /test-browser instead of /playwright-test
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Add Step 0 asking user if they want to watch browser tests
- Headed mode opens visible browser window
- Headless mode runs faster in background
- Bump version to 2.25.0
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
- Remove Playwright MCP server from plugin
- Add new agent-browser skill for CLI-based browser automation
- Rename /playwright-test to /test-browser command
- Update all commands and agents to use agent-browser CLI
- Update README and plugin.json
agent-browser is Vercel's headless browser CLI designed for AI agents.
It uses ref-based selection (@e1, @e2) from accessibility snapshots
and provides a simpler CLI interface compared to MCP tools.
Key benefits:
- No MCP server required
- Simpler Bash-based workflow
- Same ref-based element selection
- Better for quick automation tasks
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>