- 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>
Stop stripping namespace prefixes when converting commands to Copilot
skills. `workflows:plan` now becomes `workflows-plan` instead of just
`plan`, avoiding clashes with Copilot's own features in the chat UI.
Also updates slash command references in body text to match:
`/workflows:plan` → `/workflows-plan`.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add copilot case to resolveTargetOutputRoot so `install --to copilot`
writes to .github/ in the current directory instead of falling through
to the opencode default (~/.config/opencode).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
The copilot entry in the targets record was missing its closing `},`
after merging with the gemini target branch, causing a parse error.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
- Extract named GeminiMcpServer type (eliminates NonNullable indexing)
- Deep-merge mcpServers in settings.json (preserves existing entries)
- Warn when existing settings.json cannot be parsed
- Add test for uniqueName dedup (agent/skill name collision)
- Add test for TOML triple-quote escaping
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add `--to gemini` support for both `convert` and `install` commands,
converting Claude Code plugins into Gemini CLI-compatible format.
- Agents convert to `.gemini/skills/*/SKILL.md` with description frontmatter
- Commands convert to `.gemini/commands/*.toml` with TOML prompt format
- Namespaced commands create directory structure (workflows:plan -> workflows/plan.toml)
- Skills pass through unchanged (identical SKILL.md standard)
- MCP servers written to `.gemini/settings.json` with merge support
- Content transforms: .claude/ paths, Task calls, @agent references
- Hooks emit warning (different format in Gemini)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Add Copilot as the 6th converter target, transforming Claude Code plugins
into Copilot's native format: custom agents (.agent.md), agent skills
(SKILL.md), and MCP server configuration JSON.
Component mapping:
- Agents → .github/agents/{name}.agent.md (with Copilot frontmatter)
- Commands → .github/skills/{name}/SKILL.md
- Skills → .github/skills/{name}/ (copied as-is)
- MCP servers → .github/copilot-mcp-config.json
- Hooks → skipped with warning
Also adds `compound sync copilot` support and fixes YAML quoting for
the `*` character in frontmatter serialization.
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>
- Add sync --target droid (skills to ~/.factory/skills/)
- Add sync --target cursor (skills + MCP to .cursor/)
- Extract expandHome/resolveTargetHome to src/utils/resolve-home.ts
- Remove duplicated path helpers from convert.ts and install.ts
- Bump version to 0.6.0
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
normalizeModel() turned bare aliases like 'haiku' into 'anthropic/haiku',
which is not a valid OpenCode model ID. This caused
ProviderModelNotFoundError when agents using model: haiku (e.g.
learnings-researcher, lint) were invoked during workflows like /plan.
Add CLAUDE_FAMILY_ALIASES map to resolve haiku, sonnet, and opus to their
full model IDs (e.g. anthropic/claude-haiku-4-5). A console.warn alerts
during conversion so the map can be updated when new versions release.