Commit Graph

96 Commits

Author SHA1 Message Date
Trevin Chow 0edecdb394 fix(legacy-cleanup): add web-researcher to stale agent cleanup list
Without this, upgrades from pre-rename installs that contain the old
`web-researcher` agent artifact leave the stale file alongside the new
`ce-web-researcher`, producing duplicate entries on Codex/OpenCode/etc.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 15:38:27 -07:00
Trevin Chow 4648a17a98 refactor(cli): harden .agent.md source parsing and cleanup indexing 2026-04-18 15:38:27 -07:00
Trevin Chow 30e0ff3638 fix(ce-prefix-rename): clean up stale refs missed in rebase
Update remaining stale references to skill/agent names after rebase:
- AGENTS.md cross-platform reference example uses ce-doc-review
- ce-compound/SKILL.md internal /compound heading and session-historian ref
- ce-code-review/references/resolve-base.sh header comment
- pi converter and codex-agents tool mapping use ce-todo-create
- pi-converter test assertion matches converter output
- release preview/components tests use ce-plan (non-beta)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 15:38:27 -07:00
Trevin Chow 7ed29869b1 fix: address PR review feedback (#503)
- Remove stray merge markers in ce-ideate/references/post-ideation-workflow.md
  that survived the last rebase. Kept the upstream v2 quality-bar bullets
  (persistence opt-in, mode defaults) and dropped the stale pre-v2 line.

- Scope isLegacyPromptWrapper to compound-owned wrappers. Body-instruction
  fingerprint alone was too permissive — renderPrompt emits the same
  boilerplate for every plugin, so a shared ~/.codex/prompts/ with a
  sibling plugin's ce-plan.md would have been deleted. Now requires
  BOTH signals: body matches the plugin-generated boilerplate AND
  description matches either the current shipped ce-* description or
  a historical alias in LEGACY_PROMPT_DESCRIPTION_ALIASES. Seeded
  alias map from shipped releases for ce-plan, ce-work, ce-work-beta,
  ce-brainstorm, ce-ideate, ce-compound, ce-compound-refresh, ce-review.
  Added regression test: foreign plugin's same-named wrapper is preserved.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 15:38:27 -07:00
Trevin Chow 44b3029396 fix(legacy-cleanup): use body fingerprint for Codex prompt wrapper ownership
The exact-description match in isLegacyPromptWrapper keeps missing real
upgrade paths because skill description text drifts (different wording
across shipped plugin versions). Two prior rounds on this file patched
the symptom by adding ce:->ce- normalization, then per-file description
aliases — but ce-plan drifted again when HEAD added a trailing
"prefer ce-brainstorm first" sentence that no shipped version contains.

Swap prompt-ownership detection to a body-instruction fingerprint:
"Use the $<skill> skill for this command and follow its instructions."
(plus pre-rename workflow-style variants). The Codex converter writes
this boilerplate deterministically and has since v2.39.0. The skill
name is embedded by reference, so the fingerprint stays accurate
across description rewordings.

Added two regression tests: drifted-description wrapper is removed,
user-authored file with the same path but a different body is preserved.

Resolves #503 review feedback on legacy-cleanup.ts:404.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 15:38:27 -07:00
Trevin Chow f873024f80 fix(ce-prefix-rename): address PR review feedback
- Unify ce-code-review artifact directory path: fixed 5 remaining stale
  references to .context/compound-engineering/ce-review/<run-id> in
  SKILL.md (Stage 4 run-id mkdir, persona dispatch, per-agent JSON write,
  Stage 6 detail-enrichment read) and the subagent-template.md output
  contract. Announced path and actual write path now match.

- Close legacy-cleanup fingerprint gap for stale names without ce-*
  counterpart: loadLegacyFingerprints previously skipped any legacy name
  whose mapped current file was missing, leaving isLegacyPluginOwned
  unable to verify ownership of orphaned entries (4 skills, 2 agents).
  Added LEGACY_ONLY_SKILL_DESCRIPTIONS and LEGACY_ONLY_AGENT_DESCRIPTIONS
  maps sourced from last-shipped frontmatter, wired as fallback. Content-
  match safety preserved — user files with same names are still protected.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-04-18 15:38:27 -07:00
Trevin Chow fe7faef1ca fix(cleanup): address PR review feedback (#503)
- scope Kiro stale agent cleanup to compound fingerprints
- clean legacy Codex workflow wrappers across pre- and post-rename formats
- remove stale OpenClaw agent-* directories during upgrades
- cover session-historian and slack-researcher cleanup regressions
2026-04-18 15:38:00 -07:00
Trevin Chow 04b01bd438 fix(cleanup): scope stale codex prompt cleanup to legacy wrappers 2026-04-18 15:38:00 -07:00
Trevin Chow cb2f8f7aca fix(cleanup): preserve legacy setup and Kiro agent migration
Teach stale cleanup about the historical setup skill description and Kiro's legacy JSON/prompt agent formats so rename cleanup still works after later wording changes and on Kiro installs.
2026-04-18 15:38:00 -07:00
Trevin Chow cca5b08f40 fix(gemini): clean legacy generated agent skills on install
Remove pre-rename agent skill directories from Gemini installs before writing generated skills so stale unprefixed agents do not remain discoverable after the ce- rename.
2026-04-18 15:38:00 -07:00
Trevin Chow 4288eee961 fix(cleanup): scope stale rename cleanup to legacy compound files
Make stale skill and agent removal fingerprint-aware so shared install roots keep user-owned files with overlapping names.

Also move Qwen cleanup ahead of agent writes and clean Pi legacy agent directories from skills/ instead of prompts, with regression tests for both cases.
2026-04-18 15:38:00 -07:00
Trevin Chow 2dc0b313a3 fix(targets): clean up stale skill/agent files from pre-rename installs
Users who previously ran `install --to codex` (or any target) have old
skill dirs (git-commit/, setup/, document-review/) and agent files
(adversarial-reviewer.md, etc.) that would coexist with the new ce-*
names after re-installing. This causes duplicate/conflicting entries
at runtime.

Add a one-time legacy cleanup module that removes known stale paths
before writing new content. Wired into all 10 target writers. Handles:
- 31 stale skill dirs (29 renamed + ce-review, ce-document-review)
- 49 stale agent files/dirs (all agents gained ce- prefix)
- 8 stale Codex prompt wrappers (removed in this release)

Cleanup is idempotent and marked with TODO(cleanup) for removal after
the v3 transition window.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 15:38:00 -07:00
Trevin Chow 9904a85d10 fix(converters): address PR review feedback — stale skill refs, alias mapping, OpenCode 2-segment rewrite
- Update ce-work and ce-work-beta to reference `ce-commit-push-pr` and
  `ce-commit` instead of old `git-commit-push-pr`/`git-commit` names
- Add WORKFLOW_ALIAS_OVERRIDES map so `workflows:review` correctly
  resolves to `ce-code-review` instead of non-existent `ce-review`
- Add 2-segment `category:ce-agent` rewrite to OpenCode transform so
  refs like `review:ce-correctness-reviewer` flatten to `ce-correctness-reviewer`

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 15:38:00 -07:00
Trevin Chow 9c3954a46a refactor!: rename all skills and agents to consistent ce- prefix
Standardize all 37 compound-engineering skills and 49 agents on a
`ce-` hyphen prefix, eliminating namespace collisions with other
plugins and removing the colon character that required filesystem
sanitization.

Key changes:
- `ce:plan` → `ce-plan`, `git-commit` → `ce-commit`, etc. (29 skill
  directory renames + 8 frontmatter-only updates)
- `adversarial-reviewer` → `ce-adversarial-reviewer`, etc. (49 agent
  file renames + frontmatter updates)
- `ce-review` → `ce-code-review` (clearer purpose)
- `ce-document-review` → `ce-doc-review` (more concise)
- Agent references simplified: `compound-engineering:review:X` → `review:ce-X`
- All bare agent names in prose now carry `ce-` prefix
- Codex converter: remove workflow prompt wrappers (skills are directly
  invocable), replace `isCanonicalCodexWorkflowSkill` prefix check with
  direct skill copying, map deprecated `workflows:*` aliases to skill
  targets instead of dead prompt targets
- Remove `codexPrompt` field from types/parser (no longer needed)
- Path sanitization tests use non-CE examples to preserve colon coverage
- New invariant test: no CE skill name contains a colon

BREAKING CHANGE: All skill and agent names changed. `/ce:plan` is now
`/ce-plan`, `/ce:review` is now `/ce-code-review`, agent references use
`<category>:ce-<name>` format instead of `compound-engineering:<category>:<name>`.

Closes #337

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-18 15:37:59 -07:00
alexph-dev ed778e62f1 fix(converters): preserve Codex config on no-MCP install (#564) 2026-04-15 10:06:42 -07:00
alexph-dev ee8e402897 fix(converters): preserve Codex agent sidecar scripts (#563) 2026-04-15 10:06:26 -07:00
Martin Kessler 2c05c43dc8 fix(openclaw): use sync plugin registration (#498)
Co-authored-by: Niemand Assistant <niemand@kessler.io>
2026-04-08 14:13:43 -07:00
Trevin Chow d37f0ed16f feat(ce-update): add plugin version check skill and ce_platforms filtering (#532)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-08 00:09:02 -07:00
Trevin Chow 3fa0c815b2 fix(cli): resolve repo-wide tsc --noEmit type errors (#512)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-05 11:30:36 -07:00
David Torres 6dcb4a3c55 fix(converters): remove invalid tools/infer from Copilot agent frontmatter (#493) 2026-04-02 13:23:40 -07:00
Trevin Chow afdd9d4465 fix(mcp): remove bundled context7 MCP server (#486)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 17:16:07 -07:00
Trevin Chow 577db53a2d fix(converters): OpenCode subagent model and FQ agent name resolution (#483)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 16:45:07 -07:00
Trevin Chow c65a698d93 fix(converters): preserve user config when writing MCP servers (#479)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 11:46:57 -07:00
Octopus e372b43d30 feat(model): add MiniMax provider prefix for cross-platform model normalization (#463) 2026-03-31 00:22:50 -07:00
Trevin Chow f93d10cf60 feat(converters): centralize model field normalization across targets (#442)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 13:08:35 -07:00
Trevin Chow b25480af9e fix: sanitize colons in skill/agent names for Windows path compatibility (#398) 2026-03-26 16:15:48 -07:00
Trevin Chow 0877b693ce fix: add strict YAML validation for plugin frontmatter (#399) 2026-03-26 14:07:28 -07:00
Trevin Chow e09a7426be feat: add branch-based plugin install for worktree workflows (#395) 2026-03-26 11:01:56 -07:00
thefutureisw0rk f819e435a5 fix: one-step codex installs by preferring bundled plugins (#383)
Co-authored-by: The Future is Work <future@Thes-Mac-Studio.local>
2026-03-25 21:39:45 -07:00
Trevin Chow 2612ed6b3d feat: rationalize todo skill names and optimize skills (#368) 2026-03-24 18:35:09 -07:00
Trevin Chow 18d22afde2 feat: redesign document-review skill with persona-based review (#359) 2026-03-24 01:51:22 -07:00
Trevin Chow 4087e1df82 feat: fix skill transformation pipeline across all targets (#334) 2026-03-21 19:45:20 -07:00
Trevin Chow 838aeb79d0 fix: add cursor-marketplace as release-please component (#315) 2026-03-18 18:47:00 -07:00
Trevin Chow 4952007cab fix: remove plugin versions from marketplace.json and fix brittle test
- Remove plugin version fields from marketplace.json -- canonical
  versions live in each plugin's plugin.json. Duplicating them created
  drift that release-please couldn't maintain.
- Remove version sync logic from metadata.ts (description sync kept)
- Fix release-preview test to compute expected versions dynamically
  from current manifests instead of hardcoding them
2026-03-18 01:45:49 -07:00
Trevin Chow 754c2a893b fix: stabilize compound-engineering component counts (#299) 2026-03-17 23:46:27 -07:00
Trevin Chow 51f906c9ff fix: enforce release metadata consistency (#297) 2026-03-17 19:17:25 -07:00
Trevin Chow 78971c9027 fix: make GitHub releases canonical for release-please (#295) 2026-03-17 18:40:51 -07:00
Trevin Chow f47f829d81 feat: migrate repo releases to manual release-please (#293) 2026-03-17 17:58:13 -07:00
Kieran Klaassen 6f561f94b4 fix: harden codex copied skill rewriting (#285) 2026-03-16 21:25:59 -07:00
Kieran Klaassen 82c1fe86df chore: remove deprecated workflows:* skill aliases (#284)
* docs: capture codex skill prompt model

* fix: align codex workflow conversion

* chore: remove deprecated workflows:* skill aliases

The workflows:brainstorm, workflows:plan, workflows:work, workflows:review,
and workflows:compound aliases have been deprecated long enough. Remove them
and update skill counts (46 → 41) across plugin.json, marketplace.json,
README, and CLAUDE.md.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Trevin Chow <trevin@trevinchow.com>
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-16 23:19:03 -05:00
Sphia Sadek dfff20e1ad fix(kiro): parse .mcp.json wrapper key and support remote MCP servers (#259)
* fix(kiro): parse .mcp.json wrapper key and support remote MCP servers

* refactor: extract unwrapMcpServers helper to deduplicate parser logic

Address review feedback by extracting the mcpServers unwrap logic
into a shared helper used by both loadMcpServers and loadMcpPaths.
2026-03-16 23:09:07 -05:00
Matt Van Horn 1886c747d0 refactor: extract shared resolveCommandPath helper for colon-splitting
Deduplicate colon-separated command name logic across all 4 targets
(opencode, droid, gemini, qwen) into a single resolveCommandPath()
helper in utils/files.ts.

Addresses review feedback on PR #251.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-13 07:08:07 -07:00
Matt Van Horn a84682cd35 fix(targets): nest colon-separated command names into directories
On Windows/NTFS, colons are reserved for alternate data streams, so
filenames like "ce:plan.md" are invalid. Split colon-separated command
names into nested directories (e.g. "ce:plan" -> "ce/plan.md"),
matching the approach already used by the Qwen target.

Applied to opencode, droid, and gemini targets.

Fixes #226

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-11 21:44:05 -07:00
Kieran Klaassen d2ab6c0768 feat(plugin): release v2.39.0 with community contributions
Bump plugin to 2.39.0 with features from Matt Van Horn (@mvanhorn):
context budget precheck, plan sequence numbers, review serial mode,
agent-browser debugging commands, test-browser port detection, lfg
phase gating, and Context7 API key auth.

Also fixes MCP server merge order so plugin servers correctly
overwrite stale entries during sync.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-10 17:02:50 -07:00
Kieran Klaassen c21fbe54e9 Merge pull request #240 from mvanhorn/osc/85-fix-pretooluse-hook-concurrency
fix(hooks): replace sys.exit(2) with non-fatal tool blocking in PreToolUse
2026-03-10 16:45:48 -07:00
Matt Van Horn 598222e11c fix(hooks): wrap PreToolUse handlers in try-catch to prevent parallel tool call crashes
When Claude makes parallel tool calls and a PreToolUse hook command
fails, the thrown error can crash the entire batch, causing API 400
errors. Wrap generated tool.execute.before handlers in try-catch so
failures are logged but non-fatal.

Fixes #85

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 21:44:59 -07:00
Matt Van Horn 1db76800f9 fix(install): merge config instead of overwriting on opencode target
The sync path's mergeJsonConfigAtKey had incoming entries overwriting
existing user entries on conflict. Reverse the spread order so user
config wins, matching the install path's existing behavior.

Also add merge feedback logging and a test for the sync merge path.

Fixes #125

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-03-08 21:43:39 -07:00
Kieran Klaassen 4e9899f346 fix(openclaw): emit empty configSchema in plugin manifests
OpenClaw rejects generated plugin manifests that omit configSchema, even for tool plugins with no user configuration. Always emit an empty object schema so converted installs boot cleanly.\n\nAdd converter and writer regression coverage for the manifest shape.\n\nFixes #224
2026-03-03 20:30:27 -08:00
Kieran Klaassen 8fd1670ee2 fix(release): automate npm releases from main 2026-03-02 21:14:12 -08:00
Kieran Klaassen 168c946033 feat(sync): add Claude home sync parity across providers 2026-03-02 21:02:21 -08:00