- 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>
Adds a new 'droid' target to the converter that outputs Claude Code plugins
in Factory Droid's format:
- Commands flattened to ~/.factory/commands/ (strips namespace prefixes)
- Agents converted to droids in ~/.factory/droids/ with proper frontmatter
- Skills copied to ~/.factory/skills/
- Content transforms: Task calls, slash commands, and @agent references
adapted to Droid conventions
This resolves the manual workaround described in issue #31 by automating
the conversion from Claude Code plugin format to Factory Droid's expected
directory structure.
Includes 13 tests covering converter logic and file writer behavior.
Co-authored-by: adamprime <adamprime@hey.com>
Co-authored-by: factory-droid[bot] <138933559+factory-droid[bot]@users.noreply.github.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>
- 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>
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>
Claude Code allows hook entries without a `matcher` field (e.g.,
SessionStart and SubagentStop hooks don't need one). The OpenCode
converter assumed `matcher.matcher` was always present, causing
"undefined is not an object (evaluating 'matcher.matcher.split')"
when converting plugins with matcher-less hooks.
Make `matcher` optional in the type and guard all accesses.
Before writing config.toml (Codex) or opencode.json (OpenCode), the CLI
attempts to create a timestamped backup of any existing config file.
This prevents accidental data loss when users have customized configs.
Backup is best-effort - if it fails (e.g., unusual permissions), the
install continues without blocking.
Backup files are named: config.toml.bak.2026-01-23T21-16-40-065Z
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>
Adds comprehensive content transformation for Codex compatibility:
1. Task agent calls: `Task agent-name(args)` → `Use the $agent-name skill to: args`
2. Slash commands: `/command-name` → `/prompts:command-name`
3. Agent references: `@agent-name` → `$agent-name skill`
This bridges the syntax gap between Claude Code and Codex:
- Claude Code uses Task tool with subagent_types
- Codex uses skills and /prompts: namespace
Transformations are applied to both skill and prompt files during conversion.
Tested with Codex CLI 0.89.0 - all transformations working correctly.
Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
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.
The OpenCode installer was writing to ~/.opencode but OpenCode expects
global configuration at ~/.config/opencode per XDG Base Directory spec.
Fixes:
- src/commands/install.ts: Change default output from ~/.opencode to
~/.config/opencode
- src/targets/opencode.ts: Recognize "opencode" basename (not just
".opencode") for direct writes without nesting
Closes#114🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-authored-by: Claude <noreply@anthropic.com>
- 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`
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(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>