refactor(cli)!: rename all skills and agents to consistent ce- prefix (#503)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -0,0 +1,232 @@
|
||||
---
|
||||
date: 2026-03-27
|
||||
topic: ce-skill-prefix-rename
|
||||
---
|
||||
|
||||
# Consistent `ce-` Prefix for All Skills and Agents
|
||||
|
||||
## Problem Frame
|
||||
|
||||
As the Claude Code plugin ecosystem grows, generic skill names like `setup`, `plan`, `review`, and `frontend-design` collide when users have multiple plugins installed. Typing `/plan` surfaces every plugin's plan skill, forcing users to scan descriptions. Agent names also collide across plugins — generic names like `adversarial-reviewer` or `security-reviewer` are common enough that multiple plugins could define them. The compound-engineering plugin currently uses an inconsistent mix: 8 core workflow skills have a `ce:` colon prefix, while 33 others have no prefix at all. Agents use verbose 3-segment references (`compound-engineering:<category>:<agent-name>`) that are cumbersome and can be simplified now that agents will have a unique `ce-` prefix. This creates collision risk, a confusing naming taxonomy, and unnecessarily verbose agent references.
|
||||
|
||||
Standardizing on a `ce-` hyphen prefix for all owned skills and agents eliminates collisions, creates a consistent namespace, simplifies agent references, and removes the colon character that requires filesystem sanitization on Windows.
|
||||
|
||||
Related: [GitHub Issue #337](https://github.com/EveryInc/compound-engineering-plugin/issues/337)
|
||||
|
||||
## Requirements
|
||||
|
||||
When doing renames of files and folders, you are required to use `git mv` whenever possible for simplicity and explicit intent and history preservation. You can fallback provided you notify when it happens and why.
|
||||
|
||||
### Naming Rules
|
||||
|
||||
- R1. All compound-engineering-owned skills and agents adopt a `ce-` hyphen prefix
|
||||
- R2. Skills currently using `ce:` colon prefix change to `ce-` hyphen prefix (e.g., `ce:plan` -> `ce-plan`)
|
||||
- R3. Skills and Agents currently without a prefix get `ce-` prepended (e.g., `setup` -> `ce-setup`, `frontend-design` -> `ce-frontend-design`, `repo-research-analyst` -> `ce-repo-research-analyst`)
|
||||
- R4. `git-*` skills replace the `git-` prefix with `ce-` (e.g., `git-commit` -> `ce-commit`, `git-worktree` -> `ce-worktree`)
|
||||
- R5. `report-bug-ce` normalizes to `ce-report-bug` (drops redundant suffix)
|
||||
|
||||
### Exclusions
|
||||
|
||||
- R6. `agent-browser` and `rclone` are excluded (sourced from upstream, not our skills)
|
||||
- R7. `lfg` and `slfg` are excluded from renaming (short memorable workflow entry points), but their internal skill invocations must be updated per R12
|
||||
|
||||
### Propagation
|
||||
|
||||
- R8. The skill and agent frontmatter `name:` field must match after rename (no more colon-vs-hyphen divergence). Directories need to reflect the new names as well when applicable.
|
||||
- R9. All cross-references updated: skill-to-skill invocations (`/ce:plan` -> `/ce-plan`), fully-qualified references (`/compound-engineering:todo-resolve` -> `/compound-engineering:ce-todo-resolve`), `Skill("compound-engineering:...")` programmatic invocations, prose mentions, skill `description:` frontmatter fields, and intra-skill path references (`${CLAUDE_PLUGIN_ROOT}/skills/<old-name>/...`)
|
||||
- R10. Active documentation updated: root README, plugin README, AGENTS.md. Note: the AGENTS.md "Why `ce:`?" rationale section (lines 53-60) needs a conceptual rewrite explaining the `ce-` convention, not just find-and-replace. Historical docs in `docs/` (past brainstorms, plans, solutions) are left as-is -- they are records of past decisions.
|
||||
- R11. Agent prompt files updated where they reference skill names.
|
||||
- R11b. Skill prompt files updated where they reference Agent names.
|
||||
- R11c. Agent references drop the `compound-engineering:` plugin prefix and keep the category. The agent name itself gets the `ce-` prefix. (e.g. `compound-engineering:review:adversarial-reviewer` -> `review:ce-adversarial-reviewer`)
|
||||
- R12. lfg and slfg orchestration chains updated to use new skill names (lfg/slfg themselves are not renamed per R7, but their internal skill and agent invocations must reflect new names)
|
||||
- R13. Converter infrastructure preserved: `sanitizePathName()` and colon-handling logic stays as future protection, not removed. Add a test assertion that no skill `name:` field contains a colon, so the sanitizer is defense-in-depth rather than a silent workaround.
|
||||
- R17. Codex converter's `isCanonicalCodexWorkflowSkill()` and `toCanonicalWorkflowSkillName()` in `src/converters/claude-to-codex.ts` updated to match `ce-` prefix pattern (currently hardcodes `ce:` prefix check). Related test fixtures in `tests/codex-converter.test.ts` and `tests/codex-writer.test.ts` updated accordingly.
|
||||
|
||||
### Testing
|
||||
|
||||
- R14. Path sanitization tests updated to reflect new naming (collision detection still works)
|
||||
- R15. `bun test` passes after all changes
|
||||
- R16. `bun run release:validate` passes after all changes
|
||||
- R18. Converter test fixtures that hardcode `ce:plan` etc. updated to `ce-plan` where they test compound-engineering plugin behavior. Fixtures testing abstract colon-handling for other plugins may remain.
|
||||
- R19. Sanity check and for every skill and agent name, grep to confirm new names are correct and old names do not persist except in historical planning, requirements, etc docs.
|
||||
|
||||
---
|
||||
|
||||
## Complete Rename Map
|
||||
|
||||
### Excluded (no change) - 4 skills
|
||||
|
||||
| Current Name | Reason |
|
||||
|---|---|
|
||||
| `agent-browser` | External/upstream |
|
||||
| `rclone` | External/upstream |
|
||||
| `lfg` | Exception (memorable name) |
|
||||
| `slfg` | Exception (memorable name) |
|
||||
|
||||
### `ce:` -> `ce-` (frontmatter only, dirs already match) - 8 skills
|
||||
|
||||
| Current Name | New Name | Dir Rename? |
|
||||
|---|---|---|
|
||||
| `ce:brainstorm` | `ce-brainstorm` | No |
|
||||
| `ce:compound` | `ce-compound` | No |
|
||||
| `ce:compound-refresh` | `ce-compound-refresh` | No |
|
||||
| `ce:ideate` | `ce-ideate` | No |
|
||||
| `ce:plan` | `ce-plan` | No |
|
||||
| `ce:review` | `ce-review` | No |
|
||||
| `ce:work` | `ce-work` | No |
|
||||
| `ce:work-beta` | `ce-work-beta` | No |
|
||||
|
||||
### `git-*` -> `ce-*` (replace prefix) - 4 skills
|
||||
|
||||
| Current Name | New Name | Dir Rename |
|
||||
|---|---|---|
|
||||
| `git-clean-gone-branches` | `ce-clean-gone-branches` | `git-clean-gone-branches/` -> `ce-clean-gone-branches/` |
|
||||
| `git-commit` | `ce-commit` | `git-commit/` -> `ce-commit/` |
|
||||
| `git-commit-push-pr` | `ce-commit-push-pr` | `git-commit-push-pr/` -> `ce-commit-push-pr/` |
|
||||
| `git-worktree` | `ce-worktree` | `git-worktree/` -> `ce-worktree/` |
|
||||
|
||||
### Special normalization - 1 skill
|
||||
|
||||
| Current Name | New Name | Dir Rename |
|
||||
|---|---|---|
|
||||
| `report-bug-ce` | `ce-report-bug` | `report-bug-ce/` -> `ce-report-bug/` |
|
||||
|
||||
### Standard prefix addition - 24 skills
|
||||
|
||||
| Current Name | New Name | Dir Rename |
|
||||
|---|---|---|
|
||||
| `agent-native-architecture` | `ce-agent-native-architecture` | `agent-native-architecture/` -> `ce-agent-native-architecture/` |
|
||||
| `agent-native-audit` | `ce-agent-native-audit` | `agent-native-audit/` -> `ce-agent-native-audit/` |
|
||||
| `andrew-kane-gem-writer` | `ce-andrew-kane-gem-writer` | `andrew-kane-gem-writer/` -> `ce-andrew-kane-gem-writer/` |
|
||||
| `changelog` | `ce-changelog` | `changelog/` -> `ce-changelog/` |
|
||||
| `claude-permissions-optimizer` | `ce-claude-permissions-optimizer` | `claude-permissions-optimizer/` -> `ce-claude-permissions-optimizer/` |
|
||||
| `deploy-docs` | `ce-deploy-docs` | `deploy-docs/` -> `ce-deploy-docs/` |
|
||||
| `dhh-rails-style` | `ce-dhh-rails-style` | `dhh-rails-style/` -> `ce-dhh-rails-style/` |
|
||||
| `document-review` | `ce-document-review` | `document-review/` -> `ce-document-review/` |
|
||||
| `dspy-ruby` | `ce-dspy-ruby` | `dspy-ruby/` -> `ce-dspy-ruby/` |
|
||||
| `every-style-editor` | `ce-every-style-editor` | `every-style-editor/` -> `ce-every-style-editor/` |
|
||||
| `feature-video` | `ce-feature-video` | `feature-video/` -> `ce-feature-video/` |
|
||||
| `frontend-design` | `ce-frontend-design` | `frontend-design/` -> `ce-frontend-design/` |
|
||||
| `gemini-imagegen` | `ce-gemini-imagegen` | `gemini-imagegen/` -> `ce-gemini-imagegen/` |
|
||||
| `onboarding` | `ce-onboarding` | `onboarding/` -> `ce-onboarding/` |
|
||||
| `orchestrating-swarms` | `ce-orchestrating-swarms` | `orchestrating-swarms/` -> `ce-orchestrating-swarms/` |
|
||||
| `proof` | `ce-proof` | `proof/` -> `ce-proof/` |
|
||||
| `reproduce-bug` | `ce-reproduce-bug` | `reproduce-bug/` -> `ce-reproduce-bug/` |
|
||||
| `resolve-pr-feedback` | `ce-resolve-pr-feedback` | `resolve-pr-feedback/` -> `ce-resolve-pr-feedback/` |
|
||||
| `setup` | `ce-setup` | `setup/` -> `ce-setup/` |
|
||||
| `test-browser` | `ce-test-browser` | `test-browser/` -> `ce-test-browser/` |
|
||||
| `test-xcode` | `ce-test-xcode` | `test-xcode/` -> `ce-test-xcode/` |
|
||||
| `todo-create` | `ce-todo-create` | `todo-create/` -> `ce-todo-create/` |
|
||||
| `todo-resolve` | `ce-todo-resolve` | `todo-resolve/` -> `ce-todo-resolve/` |
|
||||
| `todo-triage` | `ce-todo-triage` | `todo-triage/` -> `ce-todo-triage/` |
|
||||
|
||||
**Total: 37 skills renamed, 4 excluded (41 skills total)**
|
||||
|
||||
### Agent renames - 49 agents
|
||||
|
||||
All agents are renamed with `ce-` prefix within their existing category subdirs. The `compound-engineering:` plugin prefix is dropped from references, keeping the `<category>:ce-<agent-name>` format. Category subdirs are preserved for organization.
|
||||
|
||||
| Current File | New File | Old Reference | New Reference |
|
||||
|---|---|---|---|
|
||||
| `agents/design/design-implementation-reviewer.md` | `agents/design/ce-design-implementation-reviewer.md` | `compound-engineering:design:design-implementation-reviewer` | `design:ce-design-implementation-reviewer` |
|
||||
| `agents/design/design-iterator.md` | `agents/design/ce-design-iterator.md` | `compound-engineering:design:design-iterator` | `design:ce-design-iterator` |
|
||||
| `agents/design/figma-design-sync.md` | `agents/design/ce-figma-design-sync.md` | `compound-engineering:design:figma-design-sync` | `design:ce-figma-design-sync` |
|
||||
| `agents/docs/ankane-readme-writer.md` | `agents/docs/ce-ankane-readme-writer.md` | `compound-engineering:docs:ankane-readme-writer` | `docs:ce-ankane-readme-writer` |
|
||||
| `agents/document-review/adversarial-document-reviewer.md` | `agents/document-review/ce-adversarial-document-reviewer.md` | `compound-engineering:document-review:adversarial-document-reviewer` | `document-review:ce-adversarial-document-reviewer` |
|
||||
| `agents/document-review/coherence-reviewer.md` | `agents/document-review/ce-coherence-reviewer.md` | `compound-engineering:document-review:coherence-reviewer` | `document-review:ce-coherence-reviewer` |
|
||||
| `agents/document-review/design-lens-reviewer.md` | `agents/document-review/ce-design-lens-reviewer.md` | `compound-engineering:document-review:design-lens-reviewer` | `document-review:ce-design-lens-reviewer` |
|
||||
| `agents/document-review/feasibility-reviewer.md` | `agents/document-review/ce-feasibility-reviewer.md` | `compound-engineering:document-review:feasibility-reviewer` | `document-review:ce-feasibility-reviewer` |
|
||||
| `agents/document-review/product-lens-reviewer.md` | `agents/document-review/ce-product-lens-reviewer.md` | `compound-engineering:document-review:product-lens-reviewer` | `document-review:ce-product-lens-reviewer` |
|
||||
| `agents/document-review/scope-guardian-reviewer.md` | `agents/document-review/ce-scope-guardian-reviewer.md` | `compound-engineering:document-review:scope-guardian-reviewer` | `document-review:ce-scope-guardian-reviewer` |
|
||||
| `agents/document-review/security-lens-reviewer.md` | `agents/document-review/ce-security-lens-reviewer.md` | `compound-engineering:document-review:security-lens-reviewer` | `document-review:ce-security-lens-reviewer` |
|
||||
| `agents/research/best-practices-researcher.md` | `agents/research/ce-best-practices-researcher.md` | `compound-engineering:research:best-practices-researcher` | `research:ce-best-practices-researcher` |
|
||||
| `agents/research/framework-docs-researcher.md` | `agents/research/ce-framework-docs-researcher.md` | `compound-engineering:research:framework-docs-researcher` | `research:ce-framework-docs-researcher` |
|
||||
| `agents/research/git-history-analyzer.md` | `agents/research/ce-git-history-analyzer.md` | `compound-engineering:research:git-history-analyzer` | `research:ce-git-history-analyzer` |
|
||||
| `agents/research/issue-intelligence-analyst.md` | `agents/research/ce-issue-intelligence-analyst.md` | `compound-engineering:research:issue-intelligence-analyst` | `research:ce-issue-intelligence-analyst` |
|
||||
| `agents/research/learnings-researcher.md` | `agents/research/ce-learnings-researcher.md` | `compound-engineering:research:learnings-researcher` | `research:ce-learnings-researcher` |
|
||||
| `agents/research/repo-research-analyst.md` | `agents/research/ce-repo-research-analyst.md` | `compound-engineering:research:repo-research-analyst` | `research:ce-repo-research-analyst` |
|
||||
| `agents/review/adversarial-reviewer.md` | `agents/review/ce-adversarial-reviewer.md` | `compound-engineering:review:adversarial-reviewer` | `review:ce-adversarial-reviewer` |
|
||||
| `agents/review/agent-native-reviewer.md` | `agents/review/ce-agent-native-reviewer.md` | `compound-engineering:review:agent-native-reviewer` | `review:ce-agent-native-reviewer` |
|
||||
| `agents/review/api-contract-reviewer.md` | `agents/review/ce-api-contract-reviewer.md` | `compound-engineering:review:api-contract-reviewer` | `review:ce-api-contract-reviewer` |
|
||||
| `agents/review/architecture-strategist.md` | `agents/review/ce-architecture-strategist.md` | `compound-engineering:review:architecture-strategist` | `review:ce-architecture-strategist` |
|
||||
| `agents/review/cli-agent-readiness-reviewer.md` | `agents/review/ce-cli-agent-readiness-reviewer.md` | `compound-engineering:review:cli-agent-readiness-reviewer` | `review:ce-cli-agent-readiness-reviewer` |
|
||||
| `agents/review/cli-readiness-reviewer.md` | `agents/review/ce-cli-readiness-reviewer.md` | `compound-engineering:review:cli-readiness-reviewer` | `review:ce-cli-readiness-reviewer` |
|
||||
| `agents/review/code-simplicity-reviewer.md` | `agents/review/ce-code-simplicity-reviewer.md` | `compound-engineering:review:code-simplicity-reviewer` | `review:ce-code-simplicity-reviewer` |
|
||||
| `agents/review/correctness-reviewer.md` | `agents/review/ce-correctness-reviewer.md` | `compound-engineering:review:correctness-reviewer` | `review:ce-correctness-reviewer` |
|
||||
| `agents/review/data-integrity-guardian.md` | `agents/review/ce-data-integrity-guardian.md` | `compound-engineering:review:data-integrity-guardian` | `review:ce-data-integrity-guardian` |
|
||||
| `agents/review/data-migration-expert.md` | `agents/review/ce-data-migration-expert.md` | `compound-engineering:review:data-migration-expert` | `review:ce-data-migration-expert` |
|
||||
| `agents/review/data-migrations-reviewer.md` | `agents/review/ce-data-migrations-reviewer.md` | `compound-engineering:review:data-migrations-reviewer` | `review:ce-data-migrations-reviewer` |
|
||||
| `agents/review/deployment-verification-agent.md` | `agents/review/ce-deployment-verification-agent.md` | `compound-engineering:review:deployment-verification-agent` | `review:ce-deployment-verification-agent` |
|
||||
| `agents/review/dhh-rails-reviewer.md` | `agents/review/ce-dhh-rails-reviewer.md` | `compound-engineering:review:dhh-rails-reviewer` | `review:ce-dhh-rails-reviewer` |
|
||||
| `agents/review/julik-frontend-races-reviewer.md` | `agents/review/ce-julik-frontend-races-reviewer.md` | `compound-engineering:review:julik-frontend-races-reviewer` | `review:ce-julik-frontend-races-reviewer` |
|
||||
| `agents/review/kieran-python-reviewer.md` | `agents/review/ce-kieran-python-reviewer.md` | `compound-engineering:review:kieran-python-reviewer` | `review:ce-kieran-python-reviewer` |
|
||||
| `agents/review/kieran-rails-reviewer.md` | `agents/review/ce-kieran-rails-reviewer.md` | `compound-engineering:review:kieran-rails-reviewer` | `review:ce-kieran-rails-reviewer` |
|
||||
| `agents/review/kieran-typescript-reviewer.md` | `agents/review/ce-kieran-typescript-reviewer.md` | `compound-engineering:review:kieran-typescript-reviewer` | `review:ce-kieran-typescript-reviewer` |
|
||||
| `agents/review/maintainability-reviewer.md` | `agents/review/ce-maintainability-reviewer.md` | `compound-engineering:review:maintainability-reviewer` | `review:ce-maintainability-reviewer` |
|
||||
| `agents/review/pattern-recognition-specialist.md` | `agents/review/ce-pattern-recognition-specialist.md` | `compound-engineering:review:pattern-recognition-specialist` | `review:ce-pattern-recognition-specialist` |
|
||||
| `agents/review/performance-oracle.md` | `agents/review/ce-performance-oracle.md` | `compound-engineering:review:performance-oracle` | `review:ce-performance-oracle` |
|
||||
| `agents/review/performance-reviewer.md` | `agents/review/ce-performance-reviewer.md` | `compound-engineering:review:performance-reviewer` | `review:ce-performance-reviewer` |
|
||||
| `agents/review/previous-comments-reviewer.md` | `agents/review/ce-previous-comments-reviewer.md` | `compound-engineering:review:previous-comments-reviewer` | `review:ce-previous-comments-reviewer` |
|
||||
| `agents/review/project-standards-reviewer.md` | `agents/review/ce-project-standards-reviewer.md` | `compound-engineering:review:project-standards-reviewer` | `review:ce-project-standards-reviewer` |
|
||||
| `agents/review/reliability-reviewer.md` | `agents/review/ce-reliability-reviewer.md` | `compound-engineering:review:reliability-reviewer` | `review:ce-reliability-reviewer` |
|
||||
| `agents/review/schema-drift-detector.md` | `agents/review/ce-schema-drift-detector.md` | `compound-engineering:review:schema-drift-detector` | `review:ce-schema-drift-detector` |
|
||||
| `agents/review/security-reviewer.md` | `agents/review/ce-security-reviewer.md` | `compound-engineering:review:security-reviewer` | `review:ce-security-reviewer` |
|
||||
| `agents/review/security-sentinel.md` | `agents/review/ce-security-sentinel.md` | `compound-engineering:review:security-sentinel` | `review:ce-security-sentinel` |
|
||||
| `agents/review/testing-reviewer.md` | `agents/review/ce-testing-reviewer.md` | `compound-engineering:review:testing-reviewer` | `review:ce-testing-reviewer` |
|
||||
| `agents/workflow/bug-reproduction-validator.md` | `agents/workflow/ce-bug-reproduction-validator.md` | `compound-engineering:workflow:bug-reproduction-validator` | `workflow:ce-bug-reproduction-validator` |
|
||||
| `agents/workflow/lint.md` | `agents/workflow/ce-lint.md` | `compound-engineering:workflow:lint` | `workflow:ce-lint` |
|
||||
| `agents/workflow/pr-comment-resolver.md` | `agents/workflow/ce-pr-comment-resolver.md` | `compound-engineering:workflow:pr-comment-resolver` | `workflow:ce-pr-comment-resolver` |
|
||||
| `agents/workflow/spec-flow-analyzer.md` | `agents/workflow/ce-spec-flow-analyzer.md` | `compound-engineering:workflow:spec-flow-analyzer` | `workflow:ce-spec-flow-analyzer` |
|
||||
|
||||
**Total: 49 agents renamed in place (category subdirs preserved)**
|
||||
|
||||
---
|
||||
|
||||
## Success Criteria
|
||||
|
||||
- Every owned skill (except the 4 exclusions) has a `ce-` prefix in both directory name and frontmatter
|
||||
- Every agent has a `ce-` prefix in filename and frontmatter within its category subdir
|
||||
- All cross-references across skills, agents, docs, and orchestration chains use new names
|
||||
- All 3-segment agent references (`compound-engineering:<category>:<agent>`) simplified to `<category>:ce-<agent>`
|
||||
- `bun test` and `bun run release:validate` pass
|
||||
- No colon characters remain in any skill `name:` field (though sanitization infra is preserved)
|
||||
- Slash command invocations work with new names (e.g., `/ce-plan`)
|
||||
- lfg and slfg orchestration chains reference new skill and agent names (R12)
|
||||
- Grep sanity check confirms no old names persist in active code (R19)
|
||||
|
||||
## Scope Boundaries
|
||||
|
||||
- **Not removing sanitization infrastructure** — `sanitizePathName()` stays as future protection for any colons
|
||||
- **Not adding backward-compatibility aliases** — No alias mechanism exists; this is a clean break
|
||||
- **Not renaming external skills** — `agent-browser` and `rclone` are upstream
|
||||
- **Not renaming lfg/slfg** — Kept as memorable exceptions
|
||||
- **Historical docs are not updated** — Past brainstorms, plans, and solutions in `docs/` reference old names; this is expected and acceptable (they're historical records). R10 applies only to active docs (README, AGENTS.md), not historical docs.
|
||||
|
||||
## Key Decisions
|
||||
|
||||
- **Hyphen over colon**: `ce-` not `ce:` — eliminates filesystem sanitization divergence and is more portable
|
||||
- **git-* replaces prefix**: `git-commit` -> `ce-commit` rather than `ce-git-commit` — avoids verbose double-prefix
|
||||
- **report-bug-ce normalizes**: Drops redundant `-ce` suffix -> `ce-report-bug`
|
||||
- **Agents renamed in place**: Category subdirs preserved for organization. Agent files get `ce-` prefix within their category dir. 3-segment refs drop plugin prefix: `compound-engineering:review:adversarial-reviewer` -> `review:ce-adversarial-reviewer`.
|
||||
- **Major version bump**: This is a breaking change; plugin version will bump the major version to signal it.
|
||||
- **Clean break, no aliases**: Users learn new names immediately; the old names stop working
|
||||
- **Preserve sanitization**: Keep colon-handling code even though no skills currently use colons — future-proofing
|
||||
- **git mv required**: All renames use `git mv` for history preservation. Fallback only with notification.
|
||||
|
||||
## Dependencies / Assumptions
|
||||
|
||||
- Skill directory renames via `git mv` preserve git history. Commit strategy (single vs multiple commits) deferred to planning.
|
||||
- lfg/slfg reference other skills both by short name (`/ce:plan`) and fully-qualified (`/compound-engineering:todo-resolve`) — both patterns need updating
|
||||
- README may contain stale skill references (e.g., `/sync`) — clean up during R10 documentation pass
|
||||
|
||||
## Outstanding Questions
|
||||
|
||||
### Deferred to Planning
|
||||
|
||||
- [Affects R9][Needs research] Exact inventory of every cross-reference in every SKILL.md, agent file, and doc that needs updating — planner should grep comprehensively
|
||||
- [Affects R8][Technical] Should directory renames be done via `git mv` in a single commit or spread across multiple commits for reviewability?
|
||||
- [Affects R14, R18][Technical] What specific test assertions reference skill names and need updating? Which test fixtures test compound-engineering behavior (should update) vs abstract colon-handling (may keep)?
|
||||
|
||||
## Next Steps
|
||||
|
||||
-> `/ce:plan` for structured implementation planning (will itself be renamed to `/ce-plan` as part of this work)
|
||||
@@ -1,6 +1,6 @@
|
||||
---
|
||||
date: 2026-04-02
|
||||
topic: slack-researcher-agent
|
||||
topic: ce-slack-researcher-agent
|
||||
---
|
||||
|
||||
# Slack Analyst Agent
|
||||
@@ -15,7 +15,7 @@ The official Slack plugin provides user-facing commands (`/slack:find-discussion
|
||||
|
||||
**Agent Identity and Placement**
|
||||
|
||||
- R1. Create a research-category agent at `agents/research/slack-researcher.md` following the established research agent pattern (frontmatter with name, description, model:inherit; examples block; phased execution).
|
||||
- R1. Create a research-category agent at `agents/research/ce-slack-researcher.md` following the established research agent pattern (frontmatter with name, description, model:inherit; examples block; phased execution).
|
||||
- R2. The agent's role is analytical: it searches Slack for context relevant to the task at hand and returns a concise, structured digest. It does not send messages, create canvases, or take any write actions in Slack.
|
||||
|
||||
---
|
||||
@@ -53,9 +53,9 @@ The official Slack plugin provides user-facing commands (`/slack:find-discussion
|
||||
**Workflow Integration**
|
||||
|
||||
- R12. Integrate into three calling workflows:
|
||||
- **ce:ideate** -- dispatch during Phase 1 (Codebase Scan), alongside learnings-researcher. Slack context enriches ideation by surfacing org discussions about the focus area.
|
||||
- **ce:plan** -- dispatch during the research/context-gathering phase. Slack context surfaces constraints, prior decisions, and ongoing discussions relevant to the implementation.
|
||||
- **ce:brainstorm** -- dispatch during Phase 1.1 (Existing Context Scan). Brainstorming especially benefits from knowing what the org has already discussed about the topic.
|
||||
- **ce-ideate** -- dispatch during Phase 1 (Codebase Scan), alongside learnings-researcher. Slack context enriches ideation by surfacing org discussions about the focus area.
|
||||
- **ce-plan** -- dispatch during the research/context-gathering phase. Slack context surfaces constraints, prior decisions, and ongoing discussions relevant to the implementation.
|
||||
- **ce-brainstorm** -- dispatch during Phase 1.1 (Existing Context Scan). Brainstorming especially benefits from knowing what the org has already discussed about the topic.
|
||||
- R13. In all calling workflows, dispatch the Slack analyst agent in parallel with other research agents (learnings-researcher, etc.) to avoid adding latency. Callers wait for all parallel agents to return before consolidating results (this is the existing pattern for parallel research dispatch). The Slack analyst's dispatch condition is MCP availability (R3). The agent itself handles the meaningful-context check (R4) internally.
|
||||
- R14. Callers should incorporate the Slack analyst's output into their existing context summary alongside other research results, not as a separate section.
|
||||
|
||||
@@ -94,7 +94,7 @@ The official Slack plugin provides user-facing commands (`/slack:find-discussion
|
||||
|
||||
- [Affects R3][Technical] How exactly should callers detect Slack MCP availability? Claude Code's tool list inspection, checking for any `slack_*` tool prefix, or another mechanism?
|
||||
- [Affects R5][Needs research] What is the optimal number of search queries per invocation to balance coverage vs. token cost? Start with 2-3 and tune based on real usage.
|
||||
- [Affects R12][Technical] What modifications are needed in ce:ideate, ce:plan, and ce:brainstorm skill files to add the conditional dispatch? Review each skill's research phase to find the right insertion point.
|
||||
- [Affects R12][Technical] What modifications are needed in ce-ideate, ce-plan, and ce-brainstorm skill files to add the conditional dispatch? Review each skill's research phase to find the right insertion point.
|
||||
|
||||
## Next Steps
|
||||
|
||||
|
||||
@@ -29,7 +29,7 @@ Two deliverables:
|
||||
|
||||
### Deliverable 1: Issue Intelligence Analyst Agent
|
||||
|
||||
**File**: `plugins/compound-engineering/agents/research/issue-intelligence-analyst.md`
|
||||
**File**: `plugins/compound-engineering/agents/research/ce-issue-intelligence-analyst.agent.md`
|
||||
|
||||
**Frontmatter:**
|
||||
```yaml
|
||||
@@ -240,7 +240,7 @@ When checking for recent ideation documents, treat issue-grounded and non-issue
|
||||
## Sources & References
|
||||
|
||||
- **Origin brainstorm:** [docs/brainstorms/2026-03-16-issue-grounded-ideation-requirements.md](docs/brainstorms/2026-03-16-issue-grounded-ideation-requirements.md) — Key decisions: pattern-first ideation, hybrid frame strategy, flexible argument detection, additive to Phase 1, standalone agent
|
||||
- **Exemplar agent:** `plugins/compound-engineering/agents/research/repo-research-analyst.md` — agent structure pattern
|
||||
- **Exemplar agent:** `plugins/compound-engineering/agents/research/ce-repo-research-analyst.agent.md` — agent structure pattern
|
||||
- **ce:ideate skill:** `plugins/compound-engineering/skills/ce-ideate/SKILL.md` — integration target
|
||||
- **Institutional learning:** `docs/solutions/skill-design/compound-refresh-skill-improvements.md` — impact clustering pattern, platform-agnostic tool references, evidence-first interaction
|
||||
- **Real-world test repo:** `EveryInc/proof` (555 issues, 25+ LIVE_DOC_UNAVAILABLE duplicates, structured labels)
|
||||
|
||||
@@ -49,7 +49,7 @@ Two external sources informed the redesign: Anthropic's official frontend-design
|
||||
- `plugins/compound-engineering/skills/ce-plan-beta/SKILL.md` -- reference for cross-agent interaction patterns (Pattern A: platform's blocking question tool with named equivalents)
|
||||
- `plugins/compound-engineering/skills/reproduce-bug/SKILL.md` -- reference for cross-agent patterns
|
||||
- `plugins/compound-engineering/skills/agent-browser/SKILL.md` -- upstream-vendored, reference for browser automation CLI
|
||||
- `plugins/compound-engineering/agents/design/design-iterator.md` -- contains `<frontend_aesthetics>` block that overlaps with current skill; new skill will supersede this when both are loaded
|
||||
- `plugins/compound-engineering/agents/design/ce-design-iterator.agent.md` -- contains `<frontend_aesthetics>` block that overlaps with current skill; new skill will supersede this when both are loaded
|
||||
- `plugins/compound-engineering/AGENTS.md` -- skill compliance checklist (cross-platform interaction, tool selection, reference rules)
|
||||
|
||||
### Institutional Learnings
|
||||
|
||||
@@ -42,7 +42,7 @@ The current `document-review` applies five generic criteria (Clarity, Completene
|
||||
|
||||
- `plugins/compound-engineering/skills/ce-review/SKILL.md` -- Multi-agent orchestration reference: parallel dispatch via Task tool, always-on + conditional agents, P1/P2/P3 severity, finding synthesis with dedup
|
||||
- `plugins/compound-engineering/skills/document-review/SKILL.md` -- Current single-voice skill to replace. Key contract: "Review complete" terminal signal
|
||||
- `plugins/compound-engineering/agents/review/*.md` -- 15 existing review agents. Frontmatter schema: `name`, `description`, `model: inherit`. Body: examples block, role definition, analysis protocol, output format
|
||||
- `plugins/compound-engineering/agents/review/ce-*.agent.md` -- 15 existing review agents. Frontmatter schema: `name`, `description`, `model: inherit`. Body: examples block, role definition, analysis protocol, output format
|
||||
- `plugins/compound-engineering/AGENTS.md` -- Agent naming: fully-qualified `compound-engineering:<category>:<agent-name>`. Agent placement: `agents/<category>/<name>.md`
|
||||
|
||||
### Caller Integration Points
|
||||
@@ -214,8 +214,8 @@ Orchestrator routing (document review simplification):
|
||||
**Dependencies:** None
|
||||
|
||||
**Files:**
|
||||
- Create: `plugins/compound-engineering/agents/review/coherence-reviewer.md`
|
||||
- Create: `plugins/compound-engineering/agents/review/feasibility-reviewer.md`
|
||||
- Create: `plugins/compound-engineering/agents/document-review/ce-coherence-reviewer.agent.md`
|
||||
- Create: `plugins/compound-engineering/agents/document-review/ce-feasibility-reviewer.agent.md`
|
||||
|
||||
**Approach:**
|
||||
- Follow existing agent structure: frontmatter (name, description, model: inherit), examples block, role definition, analysis protocol
|
||||
@@ -237,8 +237,8 @@ Orchestrator routing (document review simplification):
|
||||
- Suppress: implementation style choices, testing strategy details, code organization preferences, theoretical scalability concerns
|
||||
|
||||
**Patterns to follow:**
|
||||
- `plugins/compound-engineering/agents/review/code-simplicity-reviewer.md` for agent structure and output format conventions
|
||||
- `plugins/compound-engineering/agents/review/architecture-strategist.md` for systematic analysis protocol style
|
||||
- `plugins/compound-engineering/agents/review/ce-code-simplicity-reviewer.agent.md` for agent structure and output format conventions
|
||||
- `plugins/compound-engineering/agents/review/ce-architecture-strategist.agent.md` for systematic analysis protocol style
|
||||
- iterative-engineering agents for confidence calibration and suppress conditions pattern
|
||||
|
||||
**Test scenarios:**
|
||||
@@ -267,10 +267,10 @@ Orchestrator routing (document review simplification):
|
||||
**Dependencies:** Unit 1 (for consistent agent structure)
|
||||
|
||||
**Files:**
|
||||
- Create: `plugins/compound-engineering/agents/review/product-lens-reviewer.md`
|
||||
- Create: `plugins/compound-engineering/agents/review/design-lens-reviewer.md`
|
||||
- Create: `plugins/compound-engineering/agents/review/security-lens-reviewer.md`
|
||||
- Create: `plugins/compound-engineering/agents/review/scope-guardian-reviewer.md`
|
||||
- Create: `plugins/compound-engineering/agents/document-review/ce-product-lens-reviewer.agent.md`
|
||||
- Create: `plugins/compound-engineering/agents/document-review/ce-design-lens-reviewer.agent.md`
|
||||
- Create: `plugins/compound-engineering/agents/document-review/ce-security-lens-reviewer.agent.md`
|
||||
- Create: `plugins/compound-engineering/agents/document-review/ce-scope-guardian-reviewer.agent.md`
|
||||
|
||||
**Approach:**
|
||||
All four use the same structure established in Unit 1 (frontmatter, examples, role, protocol, confidence calibration, suppress conditions). Output normalization handled by shared reference files.
|
||||
@@ -311,7 +311,7 @@ All four use the same structure established in Unit 1 (frontmatter, examples, ro
|
||||
|
||||
**Patterns to follow:**
|
||||
- Unit 1 agents for consistent structure
|
||||
- `plugins/compound-engineering/agents/review/security-sentinel.md` for security analysis style (plan-level adaptation)
|
||||
- `plugins/compound-engineering/agents/review/ce-security-sentinel.agent.md` for security analysis style (plan-level adaptation)
|
||||
|
||||
**Test scenarios:**
|
||||
- product-lens-reviewer challenges a plan that builds a complex admin dashboard when the stated goal is "improve user onboarding"
|
||||
|
||||
@@ -277,5 +277,5 @@ The primary audience is human developers. A document that works for human compre
|
||||
- **Origin document:** [docs/brainstorms/2026-03-25-vonboarding-skill-requirements.md](../brainstorms/2026-03-25-vonboarding-skill-requirements.md)
|
||||
- Script-first architecture: [docs/solutions/skill-design/script-first-skill-architecture.md](../solutions/skill-design/script-first-skill-architecture.md)
|
||||
- Compound-refresh learnings: [docs/solutions/skill-design/compound-refresh-skill-improvements.md](../solutions/skill-design/compound-refresh-skill-improvements.md)
|
||||
- Repo-research-analyst agent: `plugins/compound-engineering/agents/research/repo-research-analyst.md`
|
||||
- Repo-research-analyst agent: `plugins/compound-engineering/agents/research/ce-repo-research-analyst.agent.md`
|
||||
- Skill compliance checklist: `plugins/compound-engineering/AGENTS.md`
|
||||
|
||||
@@ -42,8 +42,8 @@ What's missing is a *falsification* stance — actively constructing scenarios t
|
||||
|
||||
### Relevant Code and Patterns
|
||||
|
||||
- `plugins/compound-engineering/agents/review/*.md` — 24 existing code review agents following consistent structure (identity, hunting list, confidence calibration, suppress conditions, output format)
|
||||
- `plugins/compound-engineering/agents/document-review/*.md` — 6 existing document review agents (identity, analysis focus, confidence calibration, suppress conditions)
|
||||
- `plugins/compound-engineering/agents/review/ce-*.agent.md` — 24 existing code review agents following consistent structure (identity, hunting list, confidence calibration, suppress conditions, output format)
|
||||
- `plugins/compound-engineering/agents/document-review/ce-*.agent.md` — 6 existing document review agents (identity, analysis focus, confidence calibration, suppress conditions)
|
||||
- `plugins/compound-engineering/skills/ce-review/SKILL.md` — code review orchestration with tiered persona ensemble
|
||||
- `plugins/compound-engineering/skills/ce-review/references/persona-catalog.md` — reviewer registry with always-on, cross-cutting conditional, and stack-specific conditional tiers
|
||||
- `plugins/compound-engineering/skills/document-review/SKILL.md` — document review orchestration with 2 always-on + 4 conditional personas
|
||||
@@ -98,7 +98,7 @@ What's missing is a *falsification* stance — actively constructing scenarios t
|
||||
**Dependencies:** None
|
||||
|
||||
**Files:**
|
||||
- Create: `plugins/compound-engineering/agents/review/adversarial-reviewer.md`
|
||||
- Create: `plugins/compound-engineering/agents/review/ce-adversarial-reviewer.agent.md`
|
||||
|
||||
**Approach:**
|
||||
Follow the standard code review agent structure (identity, hunting list, confidence calibration, suppress conditions, output format). The key differentiation is in the *hunting list* — these are not patterns to match but *scenario construction techniques*:
|
||||
@@ -124,8 +124,8 @@ What's missing is a *falsification* stance — actively constructing scenarios t
|
||||
- API contract changes (api-contract-reviewer)
|
||||
|
||||
**Patterns to follow:**
|
||||
- `plugins/compound-engineering/agents/review/correctness-reviewer.md` — closest structural analog
|
||||
- `plugins/compound-engineering/agents/review/reliability-reviewer.md` — for cascade/failure-chain framing
|
||||
- `plugins/compound-engineering/agents/review/ce-correctness-reviewer.agent.md` — closest structural analog
|
||||
- `plugins/compound-engineering/agents/review/ce-reliability-reviewer.agent.md` — for cascade/failure-chain framing
|
||||
|
||||
**Test scenarios:**
|
||||
- Agent file parses with valid YAML frontmatter (name, description, model, tools, color fields present)
|
||||
@@ -150,7 +150,7 @@ What's missing is a *falsification* stance — actively constructing scenarios t
|
||||
**Dependencies:** None
|
||||
|
||||
**Files:**
|
||||
- Create: `plugins/compound-engineering/agents/document-review/adversarial-reviewer.md`
|
||||
- Create: `plugins/compound-engineering/agents/document-review/ce-adversarial-document-reviewer.agent.md`
|
||||
|
||||
**Approach:**
|
||||
Follow the standard document review agent structure (identity, analysis focus, confidence calibration, suppress conditions). The analysis techniques:
|
||||
@@ -176,8 +176,8 @@ What's missing is a *falsification* stance — actively constructing scenarios t
|
||||
- Product framing or business justification (product-lens-reviewer)
|
||||
|
||||
**Patterns to follow:**
|
||||
- `plugins/compound-engineering/agents/document-review/scope-guardian-reviewer.md` — closest structural analog (also challenges scope decisions)
|
||||
- `plugins/compound-engineering/agents/document-review/feasibility-reviewer.md` — for assumption-adjacent framing
|
||||
- `plugins/compound-engineering/agents/document-review/ce-scope-guardian-reviewer.agent.md` — closest structural analog (also challenges scope decisions)
|
||||
- `plugins/compound-engineering/agents/document-review/ce-feasibility-reviewer.agent.md` — for assumption-adjacent framing
|
||||
|
||||
**Test scenarios:**
|
||||
- Agent file parses with valid YAML frontmatter (name, description, model fields present)
|
||||
@@ -325,6 +325,6 @@ What's missing is a *falsification* stance — actively constructing scenarios t
|
||||
## Sources & References
|
||||
|
||||
- Competitive analysis: gstack plugin at `~/Code/gstack/` — adversarial patterns in `/codex`, `/plan-ceo-review`, `/plan-design-review`, `/plan-eng-review`, `/cso` skills
|
||||
- Existing agent conventions: `plugins/compound-engineering/agents/review/correctness-reviewer.md`, `plugins/compound-engineering/agents/document-review/scope-guardian-reviewer.md`
|
||||
- Existing agent conventions: `plugins/compound-engineering/agents/review/ce-correctness-reviewer.agent.md`, `plugins/compound-engineering/agents/document-review/ce-scope-guardian-reviewer.agent.md`
|
||||
- Persona catalog: `plugins/compound-engineering/skills/ce-review/references/persona-catalog.md`
|
||||
- Findings schemas: `plugins/compound-engineering/skills/ce-review/references/findings-schema.json`, `plugins/compound-engineering/skills/document-review/references/findings-schema.json`
|
||||
|
||||
@@ -216,7 +216,7 @@ The ce:plan and deepen-plan skills form a sequential workflow where the user is
|
||||
**Files:**
|
||||
- Modify: `plugins/compound-engineering/README.md`
|
||||
- Modify: `plugins/compound-engineering/AGENTS.md`
|
||||
- Modify: `plugins/compound-engineering/agents/research/learnings-researcher.md`
|
||||
- Modify: `plugins/compound-engineering/agents/research/ce-learnings-researcher.agent.md`
|
||||
- Modify: `plugins/compound-engineering/skills/document-review/SKILL.md`
|
||||
|
||||
**Approach:**
|
||||
|
||||
@@ -0,0 +1,473 @@
|
||||
---
|
||||
title: "refactor: Rename all skills and agents to consistent ce- prefix"
|
||||
type: refactor
|
||||
status: completed
|
||||
date: 2026-03-27
|
||||
origin: docs/brainstorms/2026-03-27-ce-skill-prefix-rename-requirements.md
|
||||
deepened: 2026-03-27
|
||||
---
|
||||
|
||||
# Rename All Skills and Agents to Consistent `ce-` Prefix
|
||||
|
||||
## Overview
|
||||
|
||||
Rename all 37 compound-engineering-owned skills and all 49 agents to use a consistent `ce-` hyphen prefix, eliminating namespace collisions with other plugins and removing the colon character that required filesystem sanitization. Agent files are renamed with `ce-` prefix within their existing category subdirs, and 3-segment fully-qualified references (`compound-engineering:<category>:<agent>`) are simplified to `<category>:ce-<agent>` (drop plugin prefix, keep category). This is a cross-cutting mechanical rename touching skill directories, agent files, frontmatter, cross-references, converter source code, tests, and documentation.
|
||||
|
||||
## Problem Frame
|
||||
|
||||
Generic skill names (`setup`, `plan`, `review`) collide when users install multiple Claude Code plugins. The current naming is inconsistent: 8 core workflow skills use `ce:` colon prefix while 33 others have no prefix. Agent references use verbose 3-segment format (`compound-engineering:review:adversarial-reviewer`). Standardizing on `ce-` eliminates collisions, aligns directory names with frontmatter names, and simplifies agent references. (see origin: docs/brainstorms/2026-03-27-ce-skill-prefix-rename-requirements.md)
|
||||
|
||||
## Requirements Trace
|
||||
|
||||
- R1. All owned skills AND agents adopt `ce-` hyphen prefix
|
||||
- R2. `ce:` colon prefix -> `ce-` hyphen prefix (e.g., `ce:plan` -> `ce-plan`)
|
||||
- R3. Unprefixed skills and agents get `ce-` prepended (e.g., `setup` -> `ce-setup`, `repo-research-analyst` -> `ce-repo-research-analyst`)
|
||||
- R4. `git-*` skills replace prefix with `ce-` (e.g., `git-commit` -> `ce-commit`)
|
||||
- R5. `report-bug-ce` normalizes to `ce-report-bug`
|
||||
- R6. `agent-browser` and `rclone` excluded (upstream)
|
||||
- R7. `lfg` and `slfg` excluded (memorable names), but internal references updated (R12)
|
||||
- R8. Skill/agent frontmatter `name:` must match; directories reflect new names
|
||||
- R9. All cross-references updated (slash commands, fully-qualified, prose, descriptions, intra-skill paths)
|
||||
- R10. Active documentation updated (README, AGENTS.md); historical docs left as-is
|
||||
- R11. Agent prompt files updated where they reference skill names
|
||||
- R11b. Skill prompt files updated where they reference agent names
|
||||
- R11c. Agent references `compound-engineering:<category>:<agent>` simplified to `<category>:ce-<agent>`
|
||||
- R12. lfg/slfg orchestration chains updated (skill AND agent invocations)
|
||||
- R13. Sanitization infrastructure preserved; add lint assertion for no-colon invariant
|
||||
- R14-R16. Tests pass, release:validate passes
|
||||
- R17. Codex converter hardcoded `ce:` checks updated
|
||||
- R18. Test fixtures updated appropriately
|
||||
- R19. Grep sanity check: new names correct, old names do not persist in active code
|
||||
|
||||
## Scope Boundaries
|
||||
|
||||
- Not removing `sanitizePathName()` (defense-in-depth for future colons)
|
||||
- Not adding backward-compatibility aliases (clean break)
|
||||
- Not updating historical docs in `docs/`
|
||||
- Not renaming `agent-browser`, `rclone`, `lfg`, `slfg`
|
||||
- All renames use `git mv`; fallback only with notification
|
||||
- Single commit for the entire change
|
||||
|
||||
## Context & Research
|
||||
|
||||
### Relevant Code and Patterns
|
||||
|
||||
- `src/parsers/claude.ts:108` — Skill name from frontmatter `data.name`, fallback to dir basename
|
||||
- `src/utils/files.ts:84-86` — `sanitizePathName()` replaces colons with hyphens
|
||||
- `src/converters/claude-to-codex.ts:180-195` — Hardcoded `ce:` prefix checks for canonical workflow skills
|
||||
- `src/utils/codex-content.ts:75-86` — `normalizeCodexName()` for Codex flat naming
|
||||
- `tests/path-sanitization.test.ts` — Collision detection test loading real plugin
|
||||
|
||||
### Institutional Learnings
|
||||
|
||||
- `docs/solutions/integrations/colon-namespaced-names-break-windows-paths-2026-03-26.md` — Documents the colon/hyphen duality and three-layer sanitization (target writers, sync paths, converter dedupe sets). After this rename, the duality is eliminated for CE skills but sanitization stays for other plugins.
|
||||
- `docs/solutions/codex-skill-prompt-entrypoints.md` — Codex derives skill names from directory basenames. The `isCanonicalCodexWorkflowSkill()` function identifies which skills get prompt wrappers. After rename, ALL skills start with `ce-`, so prefix-based detection breaks — needs frontmatter-field-based detection instead.
|
||||
- `docs/solutions/skill-design/beta-skills-framework.md` — Validates that stale cross-references after rename cause routing bugs. Must search all SKILL.md files for old names after rename.
|
||||
|
||||
## Key Technical Decisions
|
||||
|
||||
- **Codex canonical skill detection via frontmatter field**: After rename, `startsWith("ce-")` matches ALL skills. Rather than a hardcoded allowlist (fragile, poor discoverability), add `codex-prompt: true` to the 8 workflow SKILL.md frontmatter files, extend `ClaudeSkill` type with `codexPrompt?: boolean`, and parse it in `loadSkills()`. The converter then checks `skill.codexPrompt === true` instead of name patterns. This follows the codebase grain (parser already extracts frontmatter fields) and naturally propagates when copying workflow skill templates. New workflow skills are discoverable because the field is right where the skill is defined.
|
||||
- **`workflows:` alias mapping**: `toCanonicalWorkflowSkillName()` currently produces `ce:plan` from `workflows:plan`. Update to produce `ce-plan`. The `isDeprecatedCodexWorkflowAlias()` check (`startsWith("workflows:")`) is unaffected.
|
||||
- **Converter content-transformation is idempotent — no other converter code changes needed**: All 6 converters with slash-command rewriting (Windsurf, Droid, Kiro, Copilot, Pi, Codex) use generic `normalizeName()` that replaces colons with hyphens via `.replace(/[:\s]+/g, "-")`. So `/ce:plan` and `/ce-plan` both normalize to `ce-plan` — identical output. The 4 converters without slash-command rewriting (OpenClaw, Qwen, OpenCode, Gemini) pass skill content through untransformed. Only the Codex `isCanonicalCodexWorkflowSkill()` function needs updating.
|
||||
- **Droid converter behavioral change (expected, beneficial)**: Droid's `flattenCommandName()` strips everything before the last colon: `/ce:plan` -> `/plan`. After rename, `/ce-plan` has no colon so it passes through as `/ce-plan`. This preserves the `ce-` prefix in Droid target output, which is an improvement. No code change needed — it happens automatically from the content change.
|
||||
- **Test fixture strategy**: Fixtures testing compound-engineering-specific behavior (Codex prompt wrappers, review skill contracts) update to `ce-plan`. Fixtures testing abstract colon handling (path-sanitization) change examples to non-CE names like `other:skill` to preserve coverage of the colon path.
|
||||
- **Agent rename in place (no flattening)**: Category subdirs preserved for organization. Agent files renamed with `ce-` prefix within their category dir: `agents/review/adversarial-reviewer.md` -> `agents/review/ce-adversarial-reviewer.md`. References drop the `compound-engineering:` plugin prefix but keep category: `compound-engineering:review:adversarial-reviewer` -> `review:ce-adversarial-reviewer`.
|
||||
- **Major version bump**: This is a breaking change affecting all users; plugin version will bump major to signal it.
|
||||
- **git mv required**: All renames use `git mv` for history preservation per requirements. Fallback only with notification.
|
||||
- **Single atomic commit**: All directory renames, content changes, code changes, and test updates in one commit. Intermediate states would have broken tests and stale references.
|
||||
|
||||
## Open Questions
|
||||
|
||||
### Resolved During Planning
|
||||
|
||||
- **Codex `isCanonicalCodexWorkflowSkill` fix strategy**: Use `codex-prompt: true` frontmatter field instead of prefix check or hardcoded allowlist. Follows the codebase grain, is self-documenting, and naturally propagates via skill template copying.
|
||||
- **Other converter content-transformation**: Verified all 6 converters with slash-command rewriting use generic `normalizeName()` — idempotent on colon/hyphen. No code changes needed beyond Codex `isCanonicalCodexWorkflowSkill`.
|
||||
- **Commit strategy**: Single commit. The PR is the review artifact.
|
||||
- **Test fixtures for colon handling**: Change `ce:plan` examples in path-sanitization tests to `other:skill` so colon sanitization is still tested without depending on CE skill names.
|
||||
- **`/sync` stale reference in README**: Clean up during documentation pass.
|
||||
- **Cross-reference scope**: Exhaustive inventory found 24 files with ~100+ replacements across 7 distinct reference patterns (see Unit 3).
|
||||
|
||||
### Deferred to Implementation
|
||||
|
||||
- Exact wording of the AGENTS.md "Why `ce-`?" rationale rewrite — depends on how the surrounding context reads after all name changes
|
||||
- Whether any additional agent files beyond the 5 identified contain skill name references — implementer should grep comprehensively
|
||||
|
||||
## Implementation Units
|
||||
|
||||
- [ ] **Unit 1: Skill directory renames**
|
||||
|
||||
**Goal:** Rename all 29 skill directories that need new names via `git mv`.
|
||||
|
||||
**Requirements:** R1, R3, R4, R5, R8
|
||||
|
||||
**Dependencies:** None (first unit)
|
||||
|
||||
**Files:**
|
||||
- `git mv` 29 directories under `plugins/compound-engineering/skills/`:
|
||||
- 4 git-* replacements: `git-commit/` -> `ce-commit/`, `git-commit-push-pr/` -> `ce-commit-push-pr/`, `git-worktree/` -> `ce-worktree/`, `git-clean-gone-branches/` -> `ce-clean-gone-branches/`
|
||||
- 1 normalization: `report-bug-ce/` -> `ce-report-bug/`
|
||||
- 24 prefix additions: `agent-native-architecture/` -> `ce-agent-native-architecture/`, `agent-native-audit/` -> `ce-agent-native-audit/`, `andrew-kane-gem-writer/` -> `ce-andrew-kane-gem-writer/`, `changelog/` -> `ce-changelog/`, `claude-permissions-optimizer/` -> `ce-claude-permissions-optimizer/`, `deploy-docs/` -> `ce-deploy-docs/`, `dhh-rails-style/` -> `ce-dhh-rails-style/`, `document-review/` -> `ce-document-review/`, `dspy-ruby/` -> `ce-dspy-ruby/`, `every-style-editor/` -> `ce-every-style-editor/`, `feature-video/` -> `ce-feature-video/`, `frontend-design/` -> `ce-frontend-design/`, `gemini-imagegen/` -> `ce-gemini-imagegen/`, `onboarding/` -> `ce-onboarding/`, `orchestrating-swarms/` -> `ce-orchestrating-swarms/`, `proof/` -> `ce-proof/`, `reproduce-bug/` -> `ce-reproduce-bug/`, `resolve-pr-feedback/` -> `ce-resolve-pr-feedback/`, `setup/` -> `ce-setup/`, `test-browser/` -> `ce-test-browser/`, `test-xcode/` -> `ce-test-xcode/`, `todo-create/` -> `ce-todo-create/`, `todo-resolve/` -> `ce-todo-resolve/`, `todo-triage/` -> `ce-todo-triage/`
|
||||
- 8 `ce:` skills need NO directory rename (dirs already use hyphens: `ce-brainstorm/`, `ce-plan/`, etc.)
|
||||
|
||||
**Approach:**
|
||||
- Execute all `git mv` operations in sequence
|
||||
- The 4 excluded skills remain: `agent-browser/`, `rclone/`, `lfg/`, `slfg/`
|
||||
|
||||
**Verification:**
|
||||
- All 41 skill directories present with correct names
|
||||
- `git status` shows 29 renames tracked
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 1b: Agent file renames (in place)**
|
||||
|
||||
**Goal:** Rename all 49 agent files with `ce-` prefix within their existing category subdirs.
|
||||
|
||||
**Requirements:** R1, R3, R8
|
||||
|
||||
**Dependencies:** None (can run in parallel with Unit 1)
|
||||
|
||||
**Files:**
|
||||
- `git mv` 49 agent files within their category subdirs: `agents/<category>/<name>.md` -> `agents/<category>/ce-<name>.md`
|
||||
- Category subdirs preserved: `design/`, `docs/`, `document-review/`, `research/`, `review/`, `workflow/`
|
||||
|
||||
**Approach:**
|
||||
- For each agent file: `git mv agents/<category>/<name>.md agents/<category>/ce-<name>.md`
|
||||
- See the complete agent rename map in the requirements doc for all 49 mappings
|
||||
|
||||
**Verification:**
|
||||
- 49 `ce-*.md` files across category subdirs
|
||||
- Category directory structure unchanged
|
||||
- `git status` shows 49 renames tracked
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 2: Frontmatter and description updates**
|
||||
|
||||
**Goal:** Update the `name:` and `description:` fields in all 37 renamed skills' SKILL.md files. Add `codex-prompt: true` to the 8 workflow skills.
|
||||
|
||||
**Requirements:** R1, R2, R3, R4, R5, R8, R9, R17
|
||||
|
||||
**Dependencies:** Unit 1 (directories exist at new paths)
|
||||
|
||||
**Files:**
|
||||
- Modify: All 37 `SKILL.md` files in renamed skill directories
|
||||
- 8 `ce:` skills: change `name: ce:X` to `name: ce-X` in frontmatter
|
||||
- 29 others: change `name: X` to `name: ce-X` (with appropriate prefix rule)
|
||||
- Update `description:` fields that reference old skill names (confirmed: `ce-work-beta` references "ce:work", `setup` references "ce:review", `ce-plan` references "ce:brainstorm")
|
||||
- Add `codex-prompt: true` to frontmatter of the 8 workflow skills: `ce-brainstorm`, `ce-compound`, `ce-compound-refresh`, `ce-ideate`, `ce-plan`, `ce-review`, `ce-work`, `ce-work-beta`
|
||||
|
||||
**Approach:**
|
||||
- For each SKILL.md, edit the YAML frontmatter `name:` field
|
||||
- Search each `description:` field for references to old skill names and update
|
||||
- Add `codex-prompt: true` field to the 8 workflow skill frontmatter blocks
|
||||
- Use the rename map from the requirements doc as the authoritative mapping
|
||||
|
||||
**Patterns to follow:**
|
||||
- Frontmatter format: `name: ce-plan` (no colons)
|
||||
- Keep `description:` prose style consistent with existing descriptions
|
||||
|
||||
**Test scenarios:**
|
||||
- Every SKILL.md has a `name:` field matching its directory name
|
||||
- No `name:` field contains a colon character
|
||||
- Exactly 8 SKILL.md files have `codex-prompt: true`
|
||||
|
||||
**Verification:**
|
||||
- `grep -r "^name: ce:" plugins/compound-engineering/skills/` returns zero results
|
||||
- Every `name:` matches its containing directory name
|
||||
- `grep -rl "codex-prompt: true" plugins/compound-engineering/skills/` returns exactly 8 files
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 3: Intra-skill cross-reference updates**
|
||||
|
||||
**Goal:** Update all skill-to-skill references inside SKILL.md content (not frontmatter). Exhaustive inventory: 20 SKILL.md files, ~100+ individual replacements across 7 reference patterns.
|
||||
|
||||
**Requirements:** R9, R12
|
||||
|
||||
**Dependencies:** Unit 2
|
||||
|
||||
**Files:**
|
||||
- Modify (20 SKILL.md files with cross-references):
|
||||
- `skills/ce-plan/SKILL.md` — ~8 `/ce:work` refs + 7 `document-review` backtick refs
|
||||
- `skills/ce-brainstorm/SKILL.md` — ~12 `/ce:plan`, `/ce:work` refs + 1 `document-review` ref
|
||||
- `skills/ce-compound/SKILL.md` — ~7 `/ce:compound-refresh`, `/ce:plan` refs
|
||||
- `skills/ce-ideate/SKILL.md` — `/ce:brainstorm`, `/ce:plan` refs
|
||||
- `skills/ce-review/SKILL.md` — routing table refs + 2 `todo-create` backtick refs
|
||||
- `skills/ce-work/SKILL.md` — `/ce:plan`, `/ce:review` + `skill: git-worktree` loader ref
|
||||
- `skills/ce-work-beta/SKILL.md` — same as ce-work + `frontend-design` backtick ref
|
||||
- `skills/lfg/SKILL.md` — `/ce:plan`, `/ce:work`, `/ce:review` + `/compound-engineering:todo-resolve`, `:test-browser`, `:feature-video`
|
||||
- `skills/slfg/SKILL.md` — same patterns as lfg
|
||||
- `skills/ce-worktree/SKILL.md` — `/ce:review`, `/ce:work` + 20 `${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/` path refs + 2 `call git-worktree skill` self-refs
|
||||
- `skills/ce-todo-create/SKILL.md` — `/ce:review` + `todo-triage` backtick ref + `/todo-resolve`, `/todo-triage` slash refs
|
||||
- `skills/ce-todo-triage/SKILL.md` — `todo-create` backtick ref + 2 `/todo-resolve` slash refs
|
||||
- `skills/ce-todo-resolve/SKILL.md` — `/ce:compound` + 2 `.context/compound-engineering/todo-resolve/` scratch paths
|
||||
- `skills/ce-agent-native-audit/SKILL.md` — `/compound-engineering:agent-native-architecture` + bare name ref
|
||||
- `skills/ce-test-browser/SKILL.md` — `agent-browser` backtick ref + `todo-create` backtick ref + 4 `/test-browser` self-refs
|
||||
- `skills/ce-feature-video/SKILL.md` — 3 `agent-browser` backtick refs + 5 `/feature-video` self-refs + 11 `.context/compound-engineering/feature-video/` scratch paths
|
||||
- `skills/ce-reproduce-bug/SKILL.md` — `agent-browser` backtick ref
|
||||
- `skills/ce-frontend-design/SKILL.md` — `agent-browser` backtick ref
|
||||
- `skills/ce-report-bug/SKILL.md` — `/report-bug-ce` self-ref
|
||||
- `skills/ce-document-review/SKILL.md` — skill reference patterns (verify agent refs vs skill refs)
|
||||
|
||||
**Approach:**
|
||||
- Seven reference patterns to update:
|
||||
1. `/ce:X` -> `/ce-X` (slash command invocations of workflow skills)
|
||||
2. `ce:X` -> `ce-X` (prose mentions of workflow skills without slash)
|
||||
3. `/compound-engineering:X` -> `/compound-engineering:ce-X` (fully-qualified skill refs for skills that gained `ce-` prefix — e.g., `/compound-engineering:todo-resolve` -> `/compound-engineering:ce-todo-resolve`)
|
||||
4. `${CLAUDE_PLUGIN_ROOT}/skills/git-worktree/` -> `${CLAUDE_PLUGIN_ROOT}/skills/ce-worktree/` (intra-skill paths)
|
||||
5. Backtick skill refs: `` `document-review` `` -> `` `ce-document-review` ``, `` `todo-create` `` -> `` `ce-todo-create` ``, `skill: git-worktree` -> `skill: ce-worktree`, etc.
|
||||
6. Self-referencing slash commands: `/test-browser` -> `/ce-test-browser`, `/feature-video` -> `/ce-feature-video`, `/todo-resolve` -> `/ce-todo-resolve`, `/report-bug-ce` -> `/ce-report-bug`
|
||||
7. Scratch space paths: `.context/compound-engineering/feature-video/` -> `.context/compound-engineering/ce-feature-video/`, `.context/compound-engineering/todo-resolve/` -> `.context/compound-engineering/ce-todo-resolve/`
|
||||
|
||||
**Critical exclusions — do NOT update:**
|
||||
- `agent-browser` references — this skill is EXCLUDED from renaming (R6, upstream). Many skills reference it with `the \`agent-browser\` skill`; these must stay as-is
|
||||
- `rclone` references — also excluded
|
||||
- `lfg`/`slfg` references — excluded from renaming (R7), though their internal refs ARE updated
|
||||
|
||||
**Note:** Agent references like `compound-engineering:review:code-simplicity-reviewer` ARE now in scope (R11c) — they will be updated in Unit 3b.
|
||||
|
||||
**Test scenarios:**
|
||||
- `grep -r "/ce:" plugins/compound-engineering/skills/` returns zero results (after excluding agent refs like `compound-engineering:category:agent`)
|
||||
- lfg/slfg chains reference new skill names
|
||||
- ce-worktree script paths point to `ce-worktree/` directory
|
||||
- No stale bare skill name references for renamed skills in backtick patterns
|
||||
|
||||
**Verification:**
|
||||
- No stale `/ce:` skill references remain in any SKILL.md
|
||||
- No stale `/compound-engineering:todo-resolve` (without `ce-` prefix) patterns remain for renamed skills
|
||||
- No stale bare `document-review`, `todo-create`, `git-worktree` backtick refs (replaced with `ce-` prefixed names)
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 3b: Agent reference updates across skills and agents**
|
||||
|
||||
**Goal:** Update all agent references throughout skills and agent files. Drop `compound-engineering:` plugin prefix from 3-segment refs, keeping `<category>:ce-<agent>`. Update agent frontmatter `name:` fields.
|
||||
|
||||
**Requirements:** R8, R11, R11b, R11c, R12
|
||||
|
||||
**Dependencies:** Unit 1b (agent files at new paths)
|
||||
|
||||
**Files:**
|
||||
- Modify: All 49 agent `.md` files — update frontmatter `name:` to `ce-<agent-name>`
|
||||
- Modify: All skill SKILL.md files that reference agents via `compound-engineering:<category>:<agent>` pattern (many files — ce-plan, ce-review, ce-brainstorm, ce-ideate, ce-document-review, ce-work, ce-work-beta, ce-orchestrating-swarms, ce-resolve-pr-feedback, lfg, slfg, and others)
|
||||
- Modify: Agent files that reference other agents via fully-qualified names
|
||||
- Modify: Agent `description:` frontmatter fields that may reference the old format
|
||||
- Modify: `project-standards-reviewer` agent — its review criteria explicitly enforce the old 3-segment convention; needs conceptual update
|
||||
|
||||
**Approach:**
|
||||
- Update all 49 agent frontmatter `name:` fields to `ce-<agent-name>`
|
||||
- Replace all `compound-engineering:<category>:<agent>` references with `<category>:ce-<agent>` across ALL skill and agent files. Key patterns:
|
||||
1. `Task compound-engineering:<category>:<agent>` -> `Task <category>:ce-<agent>` (Task tool invocations in skills)
|
||||
2. `subagent_type: compound-engineering:<category>:<agent>` -> `subagent_type: <category>:ce-<agent>` (orchestrating-swarms and similar)
|
||||
3. `` `compound-engineering:<category>:<agent>` `` -> `` `<category>:ce-<agent>` `` (backtick references in prose)
|
||||
4. Bare prose mentions of fully-qualified agent names
|
||||
- Agent files that reference skill names (handled in Unit 6) — but agent files referencing OTHER agents by old name need updating here
|
||||
- lfg/slfg agent invocations updated per R12
|
||||
- `project-standards-reviewer` agent's review criteria updated to enforce `<category>:ce-<agent>` format instead of `compound-engineering:<category>:<agent>`
|
||||
|
||||
**Test scenarios:**
|
||||
- `grep -r "compound-engineering:" plugins/compound-engineering/skills/ plugins/compound-engineering/agents/` returns zero results for agent references (skill fully-qualified refs like `/compound-engineering:ce-todo-resolve` may still exist)
|
||||
- Every agent frontmatter `name:` starts with `ce-`
|
||||
|
||||
**Verification:**
|
||||
- No `compound-engineering:<category>:<agent>` references remain in active skill/agent files
|
||||
- All 49 agent `name:` fields updated
|
||||
- `project-standards-reviewer` enforces new naming convention
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 4: Codex converter and parser updates**
|
||||
|
||||
**Goal:** Replace the Codex converter's hardcoded `ce:` prefix logic with a frontmatter-driven `codex-prompt` field. Update the parser and types to support the new field.
|
||||
|
||||
**Requirements:** R17
|
||||
|
||||
**Dependencies:** Unit 2 (the 8 workflow SKILL.md files must have `codex-prompt: true` in frontmatter)
|
||||
|
||||
**Files:**
|
||||
- Modify: `src/types/claude.ts` — Add `codexPrompt?: boolean` to `ClaudeSkill` type
|
||||
- Modify: `src/parsers/claude.ts` — Extract `codex-prompt` from frontmatter in `loadSkills()`
|
||||
- Modify: `src/converters/claude-to-codex.ts`
|
||||
- Replace `isCanonicalCodexWorkflowSkill(name)` with a check on `skill.codexPrompt === true`
|
||||
- Update `toCanonicalWorkflowSkillName` to produce `ce-` instead of `ce:`
|
||||
|
||||
**Approach:**
|
||||
- Add `codexPrompt?: boolean` to the `ClaudeSkill` type alongside existing fields like `disableModelInvocation`
|
||||
- In `loadSkills()`, extract `codex-prompt` from frontmatter: `codexPrompt: data['codex-prompt'] === true`
|
||||
- In the Codex converter, change `isCanonicalCodexWorkflowSkill` to accept the skill object (not just name) and check `skill.codexPrompt === true`. This may require adjusting the call sites to pass the full skill rather than just `skill.name`
|
||||
- Update `toCanonicalWorkflowSkillName` to produce `ce-` prefix: `ce-${name.slice("workflows:".length)}`
|
||||
- The `isDeprecatedCodexWorkflowAlias` function (`startsWith("workflows:")`) needs no change
|
||||
- No other converter code changes needed — all other content transformations are idempotent on colon/hyphen
|
||||
|
||||
**Patterns to follow:**
|
||||
- Existing frontmatter field extraction pattern in `src/parsers/claude.ts` (see `disableModelInvocation` extraction)
|
||||
- Existing `ClaudeSkill` type field pattern in `src/types/claude.ts`
|
||||
|
||||
**Test scenarios:**
|
||||
- A skill with `codex-prompt: true` gets identified as a workflow skill
|
||||
- A skill without the field (or `codex-prompt: false`) is NOT a workflow skill
|
||||
- `toCanonicalWorkflowSkillName("workflows:plan")` returns `"ce-plan"`
|
||||
- The 8 workflow skills from the real plugin all have `codexPrompt: true` when parsed
|
||||
|
||||
**Verification:**
|
||||
- Codex converter correctly identifies the 8 canonical workflow skills via frontmatter field
|
||||
- `workflows:*` aliases map to `ce-*` names
|
||||
- No hardcoded skill name checks remain in converter code
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 5: Test fixture updates**
|
||||
|
||||
**Goal:** Update all test files with hardcoded skill names to reflect the new `ce-` prefix.
|
||||
|
||||
**Requirements:** R14, R15, R18
|
||||
|
||||
**Dependencies:** Unit 4 (converter changes affect test expectations)
|
||||
|
||||
**Files:**
|
||||
- Modify (compound-engineering specific fixtures — update to `ce-plan`):
|
||||
- `tests/codex-converter.test.ts` — ~10 fixtures with `ce:plan`, `ce:brainstorm`
|
||||
- `tests/codex-writer.test.ts` — ~5 fixtures
|
||||
- `tests/review-skill-contract.test.ts` — string assertions for `/ce:review`
|
||||
- `tests/compound-support-files.test.ts` — describe label
|
||||
- `tests/release-metadata.test.ts` — mkdir and file content
|
||||
- `tests/release-components.test.ts` — commit message parsing
|
||||
- `tests/release-preview.test.ts` — title fixture
|
||||
- Writer tests (all have `ce:plan` fixtures): `tests/kiro-writer.test.ts`, `tests/pi-writer.test.ts`, `tests/droid-writer.test.ts`, `tests/gemini-writer.test.ts`, `tests/copilot-writer.test.ts`, `tests/windsurf-writer.test.ts`
|
||||
- `tests/windsurf-converter.test.ts` — collision dedup fixture
|
||||
- `tests/copilot-converter.test.ts` — collision detection fixture
|
||||
- `tests/openclaw-converter.test.ts` — fixture
|
||||
- `tests/claude-home.test.ts` — frontmatter fixture
|
||||
- Modify (abstract colon-handling — change to non-CE example):
|
||||
- `tests/path-sanitization.test.ts` — change `ce:brainstorm`/`ce:plan` examples to `other:skill`/`other:tool` to preserve colon sanitization coverage
|
||||
- Add: assertion in `tests/path-sanitization.test.ts` that no CE skill name contains a colon (R13 lint requirement)
|
||||
|
||||
**Approach:**
|
||||
- For CE-specific tests: mechanically replace `ce:plan` with `ce-plan`, `ce:brainstorm` with `ce-brainstorm`, etc.
|
||||
- For path-sanitization tests: replace CE examples with generic colon examples to maintain coverage of the `sanitizePathName()` colon path
|
||||
- Add a new test case that loads the real plugin and asserts `!skill.name.includes(":")` for every skill
|
||||
|
||||
**Test scenarios:**
|
||||
- All existing test assertions still pass with new fixture values
|
||||
- Path sanitization test still covers colon-to-hyphen conversion (with non-CE example)
|
||||
- New no-colon invariant test passes
|
||||
|
||||
**Verification:**
|
||||
- `bun test` passes with zero failures
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 6: Skill-name references in agent files**
|
||||
|
||||
**Goal:** Update agent `.md` files that reference skill names with old patterns (`/ce:plan`, bare `git-worktree`, etc.). Agent files are now at `agents/ce-*.md` after Unit 1b.
|
||||
|
||||
**Requirements:** R11
|
||||
|
||||
**Dependencies:** Unit 1b (agent files at new paths), Unit 3b (agent frontmatter and agent-to-agent refs already done)
|
||||
|
||||
**Files:**
|
||||
- Modify (agent files with skill name references — paths reflect post-rename location):
|
||||
- `plugins/compound-engineering/agents/research/ce-git-history-analyzer.agent.md` — references `/ce:plan`
|
||||
- `plugins/compound-engineering/agents/research/ce-issue-intelligence-analyst.agent.md` — references `/ce:ideate`
|
||||
- `plugins/compound-engineering/agents/research/ce-learnings-researcher.agent.md` — references `/ce:plan`
|
||||
- `plugins/compound-engineering/agents/review/ce-code-simplicity-reviewer.agent.md` — references `/ce:plan`, `/ce:work`
|
||||
- `plugins/compound-engineering/agents/research/ce-best-practices-researcher.agent.md` — references `agent-native-architecture`, `git-worktree` bare names (now `ce-agent-native-architecture`, `ce-worktree`)
|
||||
- `bug-reproduction-validator` workflow agent reference — excluded, no change needed, verify only
|
||||
- Comprehensive grep to find any other agent files with old skill references
|
||||
|
||||
**Approach:**
|
||||
- Replace `/ce:X` with `/ce-X` in skill slash-command references
|
||||
- Replace bare old skill names with `ce-` prefixed names in prose
|
||||
- Do NOT update `agent-browser` references (excluded per R6)
|
||||
|
||||
**Verification:**
|
||||
- `grep -r "/ce:" plugins/compound-engineering/agents/` returns zero results
|
||||
- No agent file references old skill names (except excluded `agent-browser`)
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 7: Documentation updates**
|
||||
|
||||
**Goal:** Update active documentation to reflect new skill AND agent names. Rewrite naming convention rationale. Update agent reference convention from 3-segment to flat `ce-` format.
|
||||
|
||||
**Requirements:** R10
|
||||
|
||||
**Dependencies:** Unit 1, Unit 1b (all names finalized)
|
||||
|
||||
**Files:**
|
||||
- Modify: `plugins/compound-engineering/README.md` — skill tables, agent references
|
||||
- Modify: `plugins/compound-engineering/AGENTS.md` — command listing, "Why `ce:`?" section needs full conceptual rewrite to explain `ce-` convention for both skills and agents, agent reference convention section (was `compound-engineering:<category>:<agent>`, now `<category>:ce-<agent>`)
|
||||
- Modify: `README.md` (root) — Workflow table, prose references, Codex output notes. Clean up stale `/sync` reference.
|
||||
- Modify: `AGENTS.md` (root) — update agent reference convention if present
|
||||
|
||||
**Approach:**
|
||||
- Skill tables: mechanical find-and-replace of `/ce:X` -> `/ce-X` and bare skill names
|
||||
- Agent references: update all `compound-engineering:<category>:<agent>` examples to `<category>:ce-<agent>`
|
||||
- AGENTS.md: rewrite naming convention section to explain unified `ce-` prefix for both skills and agents; update "Agent References in Skills" section to reflect new `<category>:ce-<agent>` format (was `compound-engineering:<category>:<agent>`)
|
||||
- Root README: update tables and remove stale `/sync` skill reference
|
||||
- Do NOT update historical docs in `docs/brainstorms/`, `docs/plans/`, `docs/solutions/`
|
||||
|
||||
**Verification:**
|
||||
- No active doc references old `ce:` skill names or `compound-engineering:<category>:<agent>` agent patterns
|
||||
- AGENTS.md rationale section explains `ce-` convention coherently for both skills and agents
|
||||
- Agent reference convention updated from `compound-engineering:<category>:<agent>` to `<category>:ce-<agent>`
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 8: Verification sweep and commit**
|
||||
|
||||
**Goal:** Final verification that no stale references remain for both skills AND agents, all tests pass, and release validation succeeds.
|
||||
|
||||
**Requirements:** R14, R15, R16, R19
|
||||
|
||||
**Dependencies:** All previous units
|
||||
|
||||
**Files:**
|
||||
- No new files
|
||||
|
||||
**Approach:**
|
||||
- Run comprehensive grep for stale SKILL names across the entire repo:
|
||||
- `grep -r "ce:brainstorm\|ce:plan\|ce:review\|ce:work\|ce:ideate\|ce:compound" plugins/ src/ tests/` (should return zero outside historical docs)
|
||||
- `grep -r "/git-commit\b\|/git-worktree\b\|/git-clean-gone\|/report-bug-ce\b" plugins/` (should return zero)
|
||||
- `grep -r "/compound-engineering:todo-resolve\b\|/compound-engineering:test-browser\b\|/compound-engineering:feature-video\b\|/compound-engineering:setup\b" plugins/` (should return zero)
|
||||
- Run comprehensive grep for stale AGENT references:
|
||||
- `grep -r "compound-engineering:review:\|compound-engineering:research:\|compound-engineering:design:\|compound-engineering:workflow:\|compound-engineering:document-review:\|compound-engineering:docs:" plugins/ src/ tests/` (should return zero — all converted to `ce-<agent>`)
|
||||
- Verify no agent files remain in category subdirs
|
||||
- Run `bun test`
|
||||
- Run `bun run release:validate`
|
||||
- Fix any stragglers found
|
||||
- Commit all changes in a single commit
|
||||
|
||||
**Verification:**
|
||||
- `bun test` passes with zero failures
|
||||
- `bun run release:validate` passes
|
||||
- No stale skill or agent name references in active code (plugins/, src/, tests/)
|
||||
- No 3-segment agent references remain
|
||||
|
||||
## System-Wide Impact
|
||||
|
||||
- **Interaction graph:** Skill-to-skill handoff chains (`brainstorm` -> `plan` -> `work` -> `review`) are the primary interaction surface. lfg/slfg orchestrate these chains. Skills dispatch agents via `Task` or `subagent_type` — these change from `compound-engineering:<category>:<agent>` to `<category>:ce-<agent>`. All handoff and dispatch references must use new names.
|
||||
- **Error propagation:** A missed cross-reference would cause skill invocation to fail at runtime with "skill not found". Grep-based verification in Unit 8 is the primary defense.
|
||||
- **State lifecycle risks:** Existing scratch directories at `.context/compound-engineering/ce-review/` are unaffected (already use hyphens). Renamed skills' scratch dirs (e.g., `feature-video/` -> `ce-feature-video/`) will start creating new paths; old orphaned scratch dirs from previous runs are harmless and ephemeral.
|
||||
- **Converter content-transformation (verified safe):** All 6 converters with slash-command rewriting (Windsurf, Droid, Kiro, Copilot, Pi, Codex) use generic `normalizeName()` that is idempotent on colon/hyphen — `/ce:plan` and `/ce-plan` both produce `ce-plan`. The 4 converters without content transformation (OpenClaw, Qwen, OpenCode, Gemini) pass content through unmodified. Only the Codex `isCanonicalCodexWorkflowSkill()` function needs code changes.
|
||||
- **Droid target behavioral change:** Droid's `flattenCommandName()` strips everything before the last colon: `/ce:plan` -> `/plan`. After rename, `/ce-plan` has no colon so it passes through as `/ce-plan`. This preserves the `ce-` prefix in Droid target output — an improvement, no code change needed.
|
||||
- **API surface parity:** `sanitizePathName()` becomes a no-op for CE skills but remains functional for other plugins that may use colons.
|
||||
- **Integration coverage:** The collision detection test in `tests/path-sanitization.test.ts` loads the real plugin — it will validate that no two renamed skills collide after sanitization.
|
||||
|
||||
## Risks & Dependencies
|
||||
|
||||
- **Very large diff size**: 29 skill directory renames + 49 agent file renames + content changes across 70+ files. Mitigation: single commit with clear commit message; PR description with summary table.
|
||||
- **Agent reference blast radius**: 3-segment `compound-engineering:<category>:<agent>` references appear in many skill files (ce-plan, ce-review, ce-brainstorm, ce-ideate, ce-document-review, ce-work, ce-orchestrating-swarms, ce-resolve-pr-feedback, lfg, slfg). All must be updated to `ce-<agent>`. Mitigation: comprehensive grep in Unit 8 verification.
|
||||
- **Missed cross-references**: 7+ distinct reference patterns across skills, plus agent reference patterns. Mitigation: exhaustive skill inventory from deepening; grep-based verification for both skills and agents.
|
||||
- **Codex converter behavioral change**: Moving from prefix-based to frontmatter-field-based detection. Mitigation: explicit test scenarios; field is self-documenting and follows existing codebase patterns.
|
||||
- **`agent-browser` exclusion discipline**: Many skills reference `the \`agent-browser\` skill` — these must NOT be updated since agent-browser is excluded (R6). Mitigation: explicit exclusion list in Unit 3 approach notes.
|
||||
- **User muscle memory**: `/ce:plan` stops working; `compound-engineering:review:adversarial-reviewer` format stops working. Mitigation: clean break is intentional; major version bump signals the change.
|
||||
|
||||
## Sources & References
|
||||
|
||||
- **Origin document:** [docs/brainstorms/2026-03-27-ce-skill-prefix-rename-requirements.md](docs/brainstorms/2026-03-27-ce-skill-prefix-rename-requirements.md)
|
||||
- Related issue: [#337](https://github.com/EveryInc/compound-engineering-plugin/issues/337)
|
||||
- Related learning: `docs/solutions/integrations/colon-namespaced-names-break-windows-paths-2026-03-26.md`
|
||||
- Related learning: `docs/solutions/codex-skill-prompt-entrypoints.md`
|
||||
- Related learning: `docs/solutions/skill-design/beta-skills-framework.md`
|
||||
@@ -41,7 +41,7 @@ ce:work has thorough testing instructions but two narrow gaps let untested behav
|
||||
- `plugins/compound-engineering/skills/ce-plan/SKILL.md` — Phase 5.1 review checklist at lines 583-601, test scenario quality checks at lines 591-592. Two edit sites: instruction prose for Test scenarios at line 339 (section 3.5), and plan output template with HTML comment at line 499
|
||||
- `plugins/compound-engineering/skills/ce-work/SKILL.md` — Phase 2 task loop at lines ~143-155, Final Validation at lines 287-295 ("All tests pass"), Quality Checklist at lines 427-443 ("Tests pass (run project's test command)")
|
||||
- `plugins/compound-engineering/skills/ce-work-beta/SKILL.md` — Identical loop/checklist structure. Final Validation at lines 296-304, Quality Checklist at lines 500-516
|
||||
- `plugins/compound-engineering/agents/review/testing-reviewer.md` — 4 existing checks in "What you're hunting for" (lines 15-20), confidence calibration (lines 22-29), output format (lines 37-48)
|
||||
- `plugins/compound-engineering/agents/review/ce-testing-reviewer.agent.md` — 4 existing checks in "What you're hunting for" (lines 15-20), confidence calibration (lines 22-29), output format (lines 37-48)
|
||||
- `tests/pipeline-review-contract.test.ts` — Contract tests for ce:work, ce:work-beta, ce:brainstorm, ce:plan using `readRepoFile()` + `toContain`/`not.toContain` assertions
|
||||
- `tests/review-skill-contract.test.ts` — Contract tests for ce:review agent using same pattern, includes frontmatter parsing and cross-file schema alignment
|
||||
|
||||
@@ -156,7 +156,7 @@ ce:work has thorough testing instructions but two narrow gaps let untested behav
|
||||
**Dependencies:** None
|
||||
|
||||
**Files:**
|
||||
- Modify: `plugins/compound-engineering/agents/review/testing-reviewer.md`
|
||||
- Modify: `plugins/compound-engineering/agents/review/ce-testing-reviewer.agent.md`
|
||||
|
||||
**Approach:**
|
||||
- Add a 5th bold-titled bullet in "What you're hunting for" (after the existing 4th check at line 20). The check should: describe the pattern (behavioral code changes — new logic branches, state mutations, API changes — with zero corresponding test file additions or modifications in the diff), explain what makes it distinct from check #1 (which looks at untested branches *within* code that has tests, while this flags when no tests exist at all), and note that non-behavioral changes (config, formatting, comments, type-only changes) are excluded
|
||||
|
||||
@@ -46,7 +46,7 @@ The insight: individual comments don't say "this whole approach is wrong," but w
|
||||
### Relevant Code and Patterns
|
||||
|
||||
- `plugins/compound-engineering/skills/resolve-pr-feedback/SKILL.md` — the orchestrator skill, 285 lines
|
||||
- `plugins/compound-engineering/agents/workflow/pr-comment-resolver.md` — the worker agent, 134 lines
|
||||
- `plugins/compound-engineering/agents/workflow/ce-pr-comment-resolver.agent.md` — the worker agent, 134 lines
|
||||
- Current same-file grouping at SKILL.md lines 107-113 — conflict avoidance pattern to extend
|
||||
- The ce:review skill's confidence-gated merge/dedup pipeline — precedent for pre-dispatch analysis
|
||||
- The todo-resolve skill uses the same pr-comment-resolver agent and batching pattern
|
||||
@@ -257,7 +257,7 @@ No separate concern-category matching for cross-cycle detection. The re-entry it
|
||||
**Dependencies:** Unit 2
|
||||
|
||||
**Files:**
|
||||
- Modify: `plugins/compound-engineering/agents/workflow/pr-comment-resolver.md`
|
||||
- Modify: `plugins/compound-engineering/agents/workflow/ce-pr-comment-resolver.agent.md`
|
||||
|
||||
**Approach:**
|
||||
- Add a "Cluster Mode" section to the agent, structured as a mode detection table (following ce:review's pattern): if a `<cluster-brief>` XML block is present in the prompt, activate cluster mode; otherwise, standard single-thread mode
|
||||
@@ -347,7 +347,7 @@ No separate concern-category matching for cross-cycle detection. The re-entry it
|
||||
## Sources & References
|
||||
|
||||
- Related code: `plugins/compound-engineering/skills/resolve-pr-feedback/SKILL.md`
|
||||
- Related code: `plugins/compound-engineering/agents/workflow/pr-comment-resolver.md`
|
||||
- Related code: `plugins/compound-engineering/agents/workflow/ce-pr-comment-resolver.agent.md`
|
||||
- Institutional learning: `docs/solutions/skill-design/git-workflow-skills-need-explicit-state-machines-2026-03-27.md`
|
||||
- Institutional learning: `docs/solutions/skill-design/claude-permissions-optimizer-classification-fix.md`
|
||||
- Institutional learning: `docs/solutions/workflow/todo-status-lifecycle.md`
|
||||
|
||||
@@ -39,11 +39,11 @@ The `cli-agent-readiness-reviewer` agent exists but only fires when someone know
|
||||
|
||||
### Relevant Code and Patterns
|
||||
|
||||
- Persona agent pattern: `plugins/compound-engineering/agents/review/security-reviewer.md` (3.4 KB), `performance-reviewer.md` (3.0 KB) -- exact structure to follow
|
||||
- Persona agent pattern: `plugins/compound-engineering/agents/review/ce-security-reviewer.agent.md` (3.4 KB), `performance-reviewer.md` (3.0 KB) -- exact structure to follow
|
||||
- Persona catalog: `plugins/compound-engineering/skills/ce-review/references/persona-catalog.md` -- cross-cutting conditional section
|
||||
- Subagent template: `plugins/compound-engineering/skills/ce-review/references/subagent-template.md` -- provides output schema, scope rules, PR context (persona does not need to include these)
|
||||
- Standalone agent: `plugins/compound-engineering/agents/review/cli-agent-readiness-reviewer.md` (24.3 KB) -- source of the 7 principles to distill
|
||||
- Agent-native-reviewer: `plugins/compound-engineering/agents/review/agent-native-reviewer.md` -- non-overlapping domain reference
|
||||
- Standalone agent: `plugins/compound-engineering/agents/review/ce-cli-agent-readiness-reviewer.agent.md` (24.3 KB) -- source of the 7 principles to distill
|
||||
- Agent-native-reviewer: `plugins/compound-engineering/agents/review/ce-agent-native-reviewer.agent.md` -- non-overlapping domain reference
|
||||
|
||||
### Institutional Learnings
|
||||
|
||||
@@ -81,7 +81,7 @@ The `cli-agent-readiness-reviewer` agent exists but only fires when someone know
|
||||
**Dependencies:** None
|
||||
|
||||
**Files:**
|
||||
- Create: `plugins/compound-engineering/agents/review/cli-readiness-reviewer.md`
|
||||
- Create: `plugins/compound-engineering/agents/review/ce-cli-readiness-reviewer.agent.md`
|
||||
|
||||
**Approach:**
|
||||
- Follow the exact structure of `security-reviewer.md` and `performance-reviewer.md`: frontmatter, identity paragraph, hunting patterns, confidence calibration, suppress list, output format
|
||||
@@ -95,9 +95,9 @@ The `cli-agent-readiness-reviewer` agent exists but only fires when someone know
|
||||
- Include framework detection instruction: "Detect the CLI framework from imports in the diff. Reference framework-idiomatic patterns in suggested_fix (e.g., Click decorators, Cobra persistent flags, clap derive macros)."
|
||||
|
||||
**Patterns to follow:**
|
||||
- `plugins/compound-engineering/agents/review/security-reviewer.md` -- structure, sections, size
|
||||
- `plugins/compound-engineering/agents/review/performance-reviewer.md` -- structure, brevity
|
||||
- `plugins/compound-engineering/agents/review/cli-agent-readiness-reviewer.md` -- source of the 7 principles to distill (Principles 1-7, lines 94-252)
|
||||
- `plugins/compound-engineering/agents/review/ce-security-reviewer.agent.md` -- structure, sections, size
|
||||
- `plugins/compound-engineering/agents/review/ce-performance-reviewer.agent.md` -- structure, brevity
|
||||
- `plugins/compound-engineering/agents/review/ce-cli-agent-readiness-reviewer.agent.md` -- source of the 7 principles to distill (Principles 1-7, lines 94-252)
|
||||
|
||||
**Test scenarios:**
|
||||
- Happy path: persona file parses valid YAML frontmatter with all required fields (name, description, model, tools, color)
|
||||
@@ -167,6 +167,6 @@ The `cli-agent-readiness-reviewer` agent exists but only fires when someone know
|
||||
## Sources & References
|
||||
|
||||
- **Origin document:** [docs/brainstorms/2026-03-30-cli-readiness-review-persona-requirements.md](docs/brainstorms/2026-03-30-cli-readiness-review-persona-requirements.md)
|
||||
- Related code: `plugins/compound-engineering/agents/review/security-reviewer.md`, `performance-reviewer.md`
|
||||
- Related code: `plugins/compound-engineering/agents/review/cli-agent-readiness-reviewer.md` (source of 7 principles)
|
||||
- Related code: `plugins/compound-engineering/agents/review/ce-security-reviewer.agent.md`, `performance-reviewer.md`
|
||||
- Related code: `plugins/compound-engineering/agents/review/ce-cli-agent-readiness-reviewer.agent.md` (source of 7 principles)
|
||||
- Related code: `plugins/compound-engineering/skills/ce-review/references/persona-catalog.md`
|
||||
|
||||
@@ -42,7 +42,7 @@ The skill's cluster analysis has two gates: volume (3+ items) and verify-loop re
|
||||
|
||||
- `plugins/compound-engineering/skills/resolve-pr-feedback/SKILL.md` — skill orchestration, steps 1-9
|
||||
- `plugins/compound-engineering/skills/resolve-pr-feedback/scripts/get-pr-comments` — GraphQL query + jq filter; already fetches resolved threads in the query but drops them in jq (`isResolved == false`)
|
||||
- `plugins/compound-engineering/agents/workflow/pr-comment-resolver.md` — resolver agent with standard and cluster modes
|
||||
- `plugins/compound-engineering/agents/workflow/ce-pr-comment-resolver.agent.md` — resolver agent with standard and cluster modes
|
||||
|
||||
### Institutional Learnings
|
||||
|
||||
@@ -254,7 +254,7 @@ Remove the `<just-fixed-files>` element — subsumed by `<prior-resolutions>`.
|
||||
**Dependencies:** Unit 2 (SKILL.md must send the new cluster brief format)
|
||||
|
||||
**Files:**
|
||||
- Modify: `plugins/compound-engineering/agents/workflow/pr-comment-resolver.md`
|
||||
- Modify: `plugins/compound-engineering/agents/workflow/ce-pr-comment-resolver.agent.md`
|
||||
|
||||
**Approach:**
|
||||
|
||||
@@ -312,6 +312,6 @@ Update `cluster_assessment` return to include which mode was applied and, for "c
|
||||
|
||||
- **Origin document:** [docs/brainstorms/2026-04-01-cross-invocation-cluster-analysis-requirements.md](docs/brainstorms/2026-04-01-cross-invocation-cluster-analysis-requirements.md)
|
||||
- Related skill: `plugins/compound-engineering/skills/resolve-pr-feedback/SKILL.md`
|
||||
- Related agent: `plugins/compound-engineering/agents/workflow/pr-comment-resolver.md`
|
||||
- Related agent: `plugins/compound-engineering/agents/workflow/ce-pr-comment-resolver.agent.md`
|
||||
- Related script: `plugins/compound-engineering/skills/resolve-pr-feedback/scripts/get-pr-comments`
|
||||
- Learnings: `docs/solutions/skill-design/script-first-skill-architecture.md`, `docs/solutions/skill-design/git-workflow-skills-need-explicit-state-machines-2026-03-27.md`
|
||||
|
||||
@@ -1,24 +1,24 @@
|
||||
---
|
||||
title: "feat(slack-researcher): Add Slack analyst research agent with workflow integration"
|
||||
title: "feat(ce-slack-researcher): Add Slack analyst research agent with workflow integration"
|
||||
type: feat
|
||||
status: active
|
||||
date: 2026-04-02
|
||||
origin: docs/brainstorms/2026-04-02-slack-analyst-agent-requirements.md
|
||||
---
|
||||
|
||||
# feat(slack-researcher): Add Slack analyst research agent with workflow integration
|
||||
# feat(ce-slack-researcher): Add Slack analyst research agent with workflow integration
|
||||
|
||||
## Overview
|
||||
|
||||
Add a new research agent (`slack-researcher`) to the compound-engineering plugin that searches Slack for organizational context relevant to the current task. Integrate it as a conditional parallel dispatch in ce:ideate, ce:plan, and ce:brainstorm, with two-level short-circuiting to avoid token waste when the Slack MCP is not connected.
|
||||
Add a new research agent (`ce-slack-researcher`) to the compound-engineering plugin that searches Slack for organizational context relevant to the current task. Integrate it as a conditional parallel dispatch in ce-ideate, ce-plan, and ce-brainstorm, with two-level short-circuiting to avoid token waste when the Slack MCP is not connected.
|
||||
|
||||
## Problem Frame
|
||||
|
||||
Coding agents have no visibility into organizational knowledge that lives in Slack — decisions, constraints, ongoing discussions about projects. The official Slack plugin provides user-facing commands but no programmatic research agent that compound-engineering workflows can dispatch during their normal research phase. (see origin: `docs/brainstorms/2026-04-02-slack-researcher-agent-requirements.md`)
|
||||
Coding agents have no visibility into organizational knowledge that lives in Slack — decisions, constraints, ongoing discussions about projects. The official Slack plugin provides user-facing commands but no programmatic research agent that compound-engineering workflows can dispatch during their normal research phase. (see origin: `docs/brainstorms/2026-04-02-slack-analyst-agent-requirements.md`)
|
||||
|
||||
## Requirements Trace
|
||||
|
||||
- R1. Research agent at `agents/research/slack-researcher.md` following established patterns
|
||||
- R1. Research agent at `agents/research/ce-slack-researcher.md` following established patterns
|
||||
- R2. Read-only: searches Slack and returns digests, no write actions
|
||||
- R3. Two-level short-circuit: caller checks MCP availability, agent checks internally
|
||||
- R4. Agent short-circuits on empty/generic topic
|
||||
@@ -27,7 +27,7 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
- R7. Optional channel hint from caller for targeted `slack_read_channel`
|
||||
- R8. Deferred per origin (user preference/settings for default channels — not in scope for this iteration)
|
||||
- R9-R11. Concise digest output, ~200-500 tokens, explicit "no results" message
|
||||
- R12-R13. Conditional parallel dispatch in ce:ideate, ce:plan, ce:brainstorm; callers wait for all agents before consolidating
|
||||
- R12-R13. Conditional parallel dispatch in ce-ideate, ce-plan, ce-brainstorm; callers wait for all agents before consolidating
|
||||
- R14. Deviation from origin: origin says "not as a separate section," but this plan keeps Slack context as a distinct section in the consolidation summary (matching the pattern used for issue intelligence). Rationale: distinct sections let downstream sub-agents differentiate signal types (code-observed vs. org-discussed). This is a plan-level decision that overrides R14's original wording
|
||||
- R15-R16. Soft dependency on Slack plugin's MCP; no bundling of Slack config
|
||||
|
||||
@@ -37,14 +37,14 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
- No channel history reads without explicit channel hint (see origin)
|
||||
- No user preference/settings for default channels (deferred, see origin)
|
||||
- No changes to the Slack plugin itself
|
||||
- ce:work is explicitly excluded from integration (see origin)
|
||||
- ce-work is explicitly excluded from integration (see origin)
|
||||
|
||||
## Context & Research
|
||||
|
||||
### Relevant Code and Patterns
|
||||
|
||||
- `plugins/compound-engineering/agents/research/issue-intelligence-analyst.md` — closest precedent: external dependency, conditional dispatch, precondition checks with two-tier degradation, structured output
|
||||
- `plugins/compound-engineering/agents/research/learnings-researcher.md` — output format precedent: topic-organized digest with source attribution
|
||||
- `plugins/compound-engineering/agents/research/ce-issue-intelligence-analyst.agent.md` — closest precedent: external dependency, conditional dispatch, precondition checks with two-tier degradation, structured output
|
||||
- `plugins/compound-engineering/agents/research/ce-learnings-researcher.agent.md` — output format precedent: topic-organized digest with source attribution
|
||||
- `plugins/compound-engineering/skills/ce-ideate/SKILL.md` lines 116-122 — conditional dispatch pattern: trigger condition in prior phase, parallel dispatch, error handling with warning + continue
|
||||
- `plugins/compound-engineering/skills/ce-plan/SKILL.md` lines 157-167 — parallel research agent dispatch pattern
|
||||
- `plugins/compound-engineering/skills/ce-brainstorm/SKILL.md` lines 81-97 — Phase 1.1 inline scanning (no agent dispatch today)
|
||||
@@ -59,7 +59,7 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
## Key Technical Decisions
|
||||
|
||||
- **MCP availability detection**: Callers will instruct "if any `slack_*` tool is available in the tool list, dispatch the Slack analyst." This is a best-effort heuristic — not a capability contract. False positives (another MCP with `slack_` tools) and false negatives (Slack MCP renames tools) are possible but unlikely. The agent's own precondition check (level 2, which actually attempts a Slack tool call) is the reliable gate; the caller-level check is an optimization to avoid spawning the agent unnecessarily.
|
||||
- **ce:brainstorm integration pattern**: Since brainstorm Phase 1.1 currently has no sub-agent dispatch, the Slack analyst will be added as a new conditional sub-step within the Standard/Deep path. Dispatch at the start of Phase 1.1 alongside the inline scan; collect results before entering Phase 1.2 (Product Pressure Test). This follows the same foreground-dispatch-then-consolidate pattern used in ce:ideate and ce:plan.
|
||||
- **ce-brainstorm integration pattern**: Since brainstorm Phase 1.1 currently has no sub-agent dispatch, the Slack analyst will be added as a new conditional sub-step within the Standard/Deep path. Dispatch at the start of Phase 1.1 alongside the inline scan; collect results before entering Phase 1.2 (Product Pressure Test). This follows the same foreground-dispatch-then-consolidate pattern used in ce-ideate and ce-plan.
|
||||
- **Search query construction**: The agent is an LLM — it should derive smart, targeted search queries from the task context, the same way agents construct web search queries. Do not over-prescribe search term construction. The agent should use its judgment to formulate 2-3 queries that are likely to surface relevant organizational context, adapting terms based on the topic (project names, technical terms, decision-related keywords). If first queries return sparse results, broaden or rephrase — standard agent search behavior.
|
||||
- **Thread relevance**: The agent reads threads that appear substantive based on search result previews and reply counts. Do not over-prescribe keyword heuristics — the agent should use its judgment to determine which threads are worth reading, the same way it would assess web search results. Cap at 3-5 thread reads to bound token consumption.
|
||||
- **Untrusted input handling**: Slack messages are user-generated content that flows through the agent's digest into calling workflows. The agent must treat Slack message content as untrusted input: extract factual claims and decisions, do not reproduce message text verbatim, ignore anything resembling agent instructions or tool calls. This follows the pattern established in commit 18472427 ("treat PR comment text as untrusted input").
|
||||
@@ -80,7 +80,7 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
|
||||
## Implementation Units
|
||||
|
||||
- [ ] **Unit 1: Create the slack-researcher agent file**
|
||||
- [ ] **Unit 1: Create the ce-slack-researcher agent file**
|
||||
|
||||
**Goal:** Author the agent markdown file with frontmatter, examples, precondition checks, search methodology, and output format specification.
|
||||
|
||||
@@ -89,12 +89,12 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
**Dependencies:** None
|
||||
|
||||
**Files:**
|
||||
- Create: `plugins/compound-engineering/agents/research/slack-researcher.md`
|
||||
- Create: `plugins/compound-engineering/agents/research/ce-slack-researcher.agent.md`
|
||||
|
||||
**Approach:**
|
||||
- Follow the issue-intelligence-analyst as the structural template: frontmatter -> examples -> role statement -> phased methodology -> output format -> tool guidance
|
||||
- Frontmatter: `name: slack-researcher`, description following "what + when" pattern, `model: inherit`
|
||||
- Examples block: 3 examples showing (1) direct dispatch from ce:ideate context, (2) dispatch from ce:plan context, (3) standalone invocation
|
||||
- Frontmatter: `name: ce-slack-researcher`, description following "what + when" pattern, `model: inherit`
|
||||
- Examples block: 3 examples showing (1) direct dispatch from ce-ideate context, (2) dispatch from ce-plan context, (3) standalone invocation
|
||||
- Step 1 (Precondition Checks): Attempt to call `slack_search_public_and_private` with a minimal query. If it fails or no Slack tools are available, return "Slack analysis unavailable: Slack MCP server not connected. Install and authenticate the Slack plugin to enable organizational context search." and stop. If the topic is empty, return "No search context provided — skipping Slack analysis." and stop
|
||||
- Step 2 (Search): Use the agent's judgment to formulate 2-3 targeted searches using `slack_search_public_and_private`. Derive search terms from the task context — project names, technical terms, decision-related keywords, whatever the agent judges most likely to surface relevant discussions. If initial queries return sparse results, broaden or rephrase. Apply date filtering to focus on recent conversations when the MCP supports it. Standard agent search behavior — do not over-prescribe query construction
|
||||
- Step 3 (Thread Reads): For search hits that appear substantive (based on preview content and reply counts), read the thread with `slack_read_thread`. Cap at 3-5 thread reads to bound token consumption. Use the agent's judgment to select which threads are worth reading
|
||||
@@ -105,8 +105,8 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
- Tool guidance: Use Slack MCP tools only. No shell commands. No writing to Slack. Process and summarize data directly, do not pass raw message dumps
|
||||
|
||||
**Patterns to follow:**
|
||||
- `plugins/compound-engineering/agents/research/issue-intelligence-analyst.md` — structure, precondition pattern, output format
|
||||
- `plugins/compound-engineering/agents/research/learnings-researcher.md` — concise digest output pattern
|
||||
- `plugins/compound-engineering/agents/research/ce-issue-intelligence-analyst.agent.md` — structure, precondition pattern, output format
|
||||
- `plugins/compound-engineering/agents/research/ce-learnings-researcher.agent.md` — concise digest output pattern
|
||||
|
||||
**Test scenarios:**
|
||||
- Happy path: Agent receives a meaningful topic ("authentication migration"), finds relevant Slack conversations, returns a digest with themed findings and source attribution
|
||||
@@ -126,9 +126,9 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 2: Integrate into ce:ideate**
|
||||
- [ ] **Unit 2: Integrate into ce-ideate**
|
||||
|
||||
**Goal:** Add conditional Slack analyst dispatch to ce:ideate's Phase 1 Codebase Scan, alongside existing agents.
|
||||
**Goal:** Add conditional Slack analyst dispatch to ce-ideate's Phase 1 Codebase Scan, alongside existing agents.
|
||||
|
||||
**Requirements:** R3 (caller-level), R12, R13, R14
|
||||
|
||||
@@ -147,11 +147,11 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
- The Slack context section is kept distinct in the grounding summary so ideation sub-agents can distinguish code-observed, institution-documented, issue-reported, and org-discussed signals
|
||||
|
||||
**Patterns to follow:**
|
||||
- ce:ideate lines 116-122 — issue-intelligence-analyst conditional dispatch pattern
|
||||
- ce-ideate lines 116-122 — issue-intelligence-analyst conditional dispatch pattern
|
||||
|
||||
**Test scenarios:**
|
||||
- Happy path: Slack MCP available, agent returns findings — findings appear in the grounding summary under "Slack context"
|
||||
- Happy path: Slack MCP not available — ce:ideate proceeds without Slack context, no error, warning logged
|
||||
- Happy path: Slack MCP not available — ce-ideate proceeds without Slack context, no error, warning logged
|
||||
- Edge case: Slack agent returns "no relevant discussions" — noted briefly in summary, ideation proceeds with other sources
|
||||
- Integration: Slack analyst runs in parallel with quick context scan, learnings-researcher, and (conditional) issue-intelligence-analyst — no sequential dependency
|
||||
|
||||
@@ -162,9 +162,9 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 3: Integrate into ce:plan**
|
||||
- [ ] **Unit 3: Integrate into ce-plan**
|
||||
|
||||
**Goal:** Add conditional Slack analyst dispatch to ce:plan's Phase 1.1 Local Research, alongside existing agents.
|
||||
**Goal:** Add conditional Slack analyst dispatch to ce-plan's Phase 1.1 Local Research, alongside existing agents.
|
||||
|
||||
**Requirements:** R3 (caller-level), R12, R13, R14
|
||||
|
||||
@@ -175,18 +175,18 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
|
||||
**Approach:**
|
||||
- Add a 3rd agent to the Phase 1.1 parallel dispatch block (lines 157-160)
|
||||
- Use the same `Task` syntax: `Task compound-engineering:research:slack-researcher({planning context summary})`
|
||||
- Use the same `Task` syntax: `Task research:ce-slack-researcher({planning context summary})`
|
||||
- Add condition: "(conditional) — if any `slack_*` tool is available in the tool list"
|
||||
- Add error handling consistent with ce:ideate pattern
|
||||
- Add "Organizational context from Slack" to the "Collect:" list (lines 162-167)
|
||||
- In Phase 1.4 (Consolidate Research), add a bullet for Slack context in the summary
|
||||
|
||||
**Patterns to follow:**
|
||||
- ce:plan lines 157-160 — `Task` dispatch syntax for parallel agents
|
||||
- ce-plan lines 157-160 — `Task` dispatch syntax for parallel agents
|
||||
|
||||
**Test scenarios:**
|
||||
- Happy path: Slack MCP available, agent returns relevant org context — appears in research consolidation alongside codebase patterns and learnings
|
||||
- Happy path: Slack MCP not available — ce:plan proceeds with 2-agent research (existing behavior), warning logged
|
||||
- Happy path: Slack MCP not available — ce-plan proceeds with 2-agent research (existing behavior), warning logged
|
||||
- Integration: Slack analyst runs in parallel with repo-research-analyst and learnings-researcher — no added latency
|
||||
|
||||
**Verification:**
|
||||
@@ -196,9 +196,9 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
|
||||
---
|
||||
|
||||
- [ ] **Unit 4: Integrate into ce:brainstorm**
|
||||
- [ ] **Unit 4: Integrate into ce-brainstorm**
|
||||
|
||||
**Goal:** Add conditional Slack analyst dispatch to ce:brainstorm's Phase 1.1 Existing Context Scan for Standard and Deep scopes.
|
||||
**Goal:** Add conditional Slack analyst dispatch to ce-brainstorm's Phase 1.1 Existing Context Scan for Standard and Deep scopes.
|
||||
|
||||
**Requirements:** R3 (caller-level), R12, R13, R14
|
||||
|
||||
@@ -208,14 +208,14 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
- Modify: `plugins/compound-engineering/skills/ce-brainstorm/SKILL.md`
|
||||
|
||||
**Approach:**
|
||||
- This is the most distinctive integration: ce:brainstorm Phase 1.1 currently has no sub-agent dispatch. Add a conditional dispatch sub-step within the "Standard and Deep" path, after the Topic Scan pass.
|
||||
- Add a new paragraph after the Topic Scan (after line 91): "**Slack context** (conditional) — if any `slack_*` tool is available in the tool list, dispatch `compound-engineering:research:slack-researcher` with a brief summary of the brainstorm topic. If the agent returns an error, log a warning and continue. Collect results before entering Phase 1.2 (Product Pressure Test). Incorporate any Slack findings into the constraint and context awareness for the brainstorm session."
|
||||
- Coordination: dispatch the Slack agent at the start of Phase 1.1 alongside the inline Constraint Check and Topic Scan. Wait for all to complete before proceeding to Phase 1.2. This follows the same foreground-dispatch-then-consolidate pattern used in ce:ideate and ce:plan
|
||||
- This is the most distinctive integration: ce-brainstorm Phase 1.1 currently has no sub-agent dispatch. Add a conditional dispatch sub-step within the "Standard and Deep" path, after the Topic Scan pass.
|
||||
- Add a new paragraph after the Topic Scan (after line 91): "**Slack context** (conditional) — if any `slack_*` tool is available in the tool list, dispatch `research:ce-slack-researcher` with a brief summary of the brainstorm topic. If the agent returns an error, log a warning and continue. Collect results before entering Phase 1.2 (Product Pressure Test). Incorporate any Slack findings into the constraint and context awareness for the brainstorm session."
|
||||
- Coordination: dispatch the Slack agent at the start of Phase 1.1 alongside the inline Constraint Check and Topic Scan. Wait for all to complete before proceeding to Phase 1.2. This follows the same foreground-dispatch-then-consolidate pattern used in ce-ideate and ce-plan
|
||||
- Lightweight scope skips this entirely (consistent with "search for the topic, check if something similar already exists, and move on")
|
||||
|
||||
**Patterns to follow:**
|
||||
- ce:ideate lines 116-122 — conditional dispatch wording and error handling
|
||||
- ce:brainstorm lines 87-91 — Standard/Deep scope gating
|
||||
- ce-ideate lines 116-122 — conditional dispatch wording and error handling
|
||||
- ce-brainstorm lines 87-91 — Standard/Deep scope gating
|
||||
|
||||
**Test scenarios:**
|
||||
- Happy path: Standard scope brainstorm with Slack MCP available — Slack context surfaces relevant org discussions that inform the brainstorm
|
||||
@@ -224,7 +224,7 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
- Edge case: Slack agent returns no relevant discussions — brainstorm proceeds normally
|
||||
|
||||
**Verification:**
|
||||
- ce:brainstorm skill file still passes YAML frontmatter validation
|
||||
- ce-brainstorm skill file still passes YAML frontmatter validation
|
||||
- Conditional dispatch appears only in Standard/Deep path, not Lightweight
|
||||
- Error handling follows the same pattern as ce:ideate and ce:plan
|
||||
|
||||
@@ -242,7 +242,7 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
- Modify: `plugins/compound-engineering/README.md`
|
||||
|
||||
**Approach:**
|
||||
- Add a row to the Research agents table (after line 152): `| \`slack-researcher\` | Search Slack for organizational context relevant to the current task |`
|
||||
- Add a row to the Research agents table (after line 152): `| \`ce-slack-researcher\` | Search Slack for organizational context relevant to the current task |`
|
||||
- Check component count at line 9 — update the agents count if it no longer reflects the actual count (currently "35+"; actual is now 50 with the new agent, so this should be updated)
|
||||
- Run `bun run release:validate` to confirm plugin/marketplace consistency
|
||||
|
||||
@@ -255,17 +255,17 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
|
||||
**Verification:**
|
||||
- `bun run release:validate` exits cleanly
|
||||
- README Research table has 7 agents (6 existing + slack-researcher)
|
||||
- README Research table has 7 agents (6 existing + ce-slack-researcher)
|
||||
- Component count reflects actual totals
|
||||
|
||||
## System-Wide Impact
|
||||
|
||||
- **Interaction graph:** The new agent is invoked by 3 skill files (ce:ideate, ce:plan, ce:brainstorm) via conditional parallel dispatch. It calls Slack MCP tools (`slack_search_public_and_private`, `slack_read_thread`, optionally `slack_read_channel`). No callbacks, observers, or middleware involved.
|
||||
- **Interaction graph:** The new agent is invoked by 3 skill files (ce-ideate, ce-plan, ce-brainstorm) via conditional parallel dispatch. It calls Slack MCP tools (`slack_search_public_and_private`, `slack_read_thread`, optionally `slack_read_channel`). No callbacks, observers, or middleware involved.
|
||||
- **Error propagation:** Agent failures are caught at the caller level. Each caller logs a warning and continues without Slack context. No failure in the Slack agent should halt or degrade the calling workflow.
|
||||
- **State lifecycle risks:** None — the agent is stateless and read-only. No data is persisted, no caches are populated.
|
||||
- **API surface parity:** No external API surface changes. The agent is an internal sub-agent, not a user-facing command.
|
||||
- **Integration coverage:** The key cross-layer scenario is the full path: caller detects MCP availability -> dispatches agent -> agent runs precondition check -> searches Slack -> returns digest -> caller incorporates into context summary. Each caller (ideate, plan, brainstorm) should be tested for both MCP-available and MCP-unavailable paths.
|
||||
- **Unchanged invariants:** Existing Slack plugin commands (`/slack:find-discussions`, `/slack:summarize-channel`, etc.) are unmodified. The existing behavior of ce:ideate, ce:plan, and ce:brainstorm is preserved when Slack MCP is not connected — no regression in the zero-Slack case.
|
||||
- **Unchanged invariants:** Existing Slack plugin commands (`/slack:find-discussions`, `/slack:summarize-channel`, etc.) are unmodified. The existing behavior of ce-ideate, ce-plan, and ce-brainstorm is preserved when Slack MCP is not connected — no regression in the zero-Slack case.
|
||||
|
||||
## Risks & Dependencies
|
||||
|
||||
@@ -283,7 +283,7 @@ Coding agents have no visibility into organizational knowledge that lives in Sla
|
||||
## Sources & References
|
||||
|
||||
- **Origin document:** [docs/brainstorms/2026-04-02-slack-researcher-agent-requirements.md](docs/brainstorms/2026-04-02-slack-researcher-agent-requirements.md)
|
||||
- Related agent: `plugins/compound-engineering/agents/research/issue-intelligence-analyst.md`
|
||||
- Related agent: `plugins/compound-engineering/agents/research/ce-issue-intelligence-analyst.agent.md`
|
||||
- Related skills: `plugins/compound-engineering/skills/ce-ideate/SKILL.md`, `plugins/compound-engineering/skills/ce-plan/SKILL.md`, `plugins/compound-engineering/skills/ce-brainstorm/SKILL.md`
|
||||
- Slack MCP docs: `https://docs.slack.dev/ai/slack-mcp-server/`
|
||||
- Institutional learnings: `docs/solutions/skill-design/beta-promotion-orchestration-contract.md`, `docs/solutions/skill-design/pass-paths-not-content-to-subagents-2026-03-26.md`
|
||||
|
||||
@@ -616,12 +616,12 @@ The table is the full surface area: there are no other untrusted inputs into pol
|
||||
- `plugins/compound-engineering/skills/ce-work-beta/SKILL.md` (beta posture)
|
||||
- `plugins/compound-engineering/skills/ce-review/references/resolve-base.sh` (base-branch resolver — duplicated, not referenced)
|
||||
- `plugins/compound-engineering/skills/ce-review/references/subagent-template.md` (sub-agent prompt shape)
|
||||
- `plugins/compound-engineering/agents/design/design-iterator.md`
|
||||
- `plugins/compound-engineering/agents/design/design-implementation-reviewer.md`
|
||||
- `plugins/compound-engineering/agents/design/figma-design-sync.md`
|
||||
- `plugins/compound-engineering/agents/review/code-simplicity-reviewer.md`
|
||||
- `plugins/compound-engineering/agents/review/maintainability-reviewer.md`
|
||||
- `plugins/compound-engineering/agents/review/julik-frontend-races-reviewer.md`
|
||||
- `plugins/compound-engineering/agents/design/ce-design-iterator.agent.md`
|
||||
- `plugins/compound-engineering/agents/design/ce-design-implementation-reviewer.agent.md`
|
||||
- `plugins/compound-engineering/agents/design/ce-figma-design-sync.agent.md`
|
||||
- `plugins/compound-engineering/agents/review/ce-code-simplicity-reviewer.agent.md`
|
||||
- `plugins/compound-engineering/agents/review/ce-maintainability-reviewer.agent.md`
|
||||
- `plugins/compound-engineering/agents/review/ce-julik-frontend-races-reviewer.agent.md`
|
||||
- Institutional learnings:
|
||||
- `docs/solutions/skill-design/git-workflow-skills-need-explicit-state-machines-2026-03-27.md`
|
||||
- `docs/solutions/skill-design/compound-refresh-skill-improvements.md`
|
||||
|
||||
@@ -103,9 +103,9 @@ Numbered requirements that this plan must satisfy. Carries forward applicable v1
|
||||
- `plugins/compound-engineering/skills/ce-ideate/references/post-ideation-workflow.md` — current Phase 3-6 spec; persistence and handoff logic to rewrite
|
||||
- `plugins/compound-engineering/skills/ce-brainstorm/SKILL.md:59-71` — Phase 0.1b "Classify Task Domain" — the mode classification pattern to mirror
|
||||
- `plugins/compound-engineering/skills/ce-brainstorm/references/universal-brainstorming.md` — 56-line shape to mirror for `universal-ideation.md`
|
||||
- `plugins/compound-engineering/agents/research/learnings-researcher.md` — frontmatter and structure exemplar (mid-size, ~9.6K)
|
||||
- `plugins/compound-engineering/agents/research/issue-intelligence-analyst.md` — methodology + tool guidance + integration points pattern (~13.9K)
|
||||
- `plugins/compound-engineering/agents/research/slack-researcher.md` — `model: sonnet` exemplar; precondition-check pattern
|
||||
- `plugins/compound-engineering/agents/research/ce-learnings-researcher.agent.md` — frontmatter and structure exemplar (mid-size, ~9.6K)
|
||||
- `plugins/compound-engineering/agents/research/ce-issue-intelligence-analyst.agent.md` — methodology + tool guidance + integration points pattern (~13.9K)
|
||||
- `plugins/compound-engineering/agents/research/ce-slack-researcher.agent.md` — `model: sonnet` exemplar; precondition-check pattern
|
||||
- `plugins/compound-engineering/skills/proof/SKILL.md` — Proof skill API and HITL handoff contract; line 3 already names ce:ideate as a consumer
|
||||
|
||||
### Institutional Learnings
|
||||
@@ -193,7 +193,7 @@ These were resolved in conversation but reviewers raised non-trivial counterargu
|
||||
**Dependencies:** None
|
||||
|
||||
**Files:**
|
||||
- Create: `plugins/compound-engineering/agents/research/web-researcher.md`
|
||||
- Create: `plugins/compound-engineering/agents/research/ce-web-researcher.agent.md`
|
||||
- Modify: `plugins/compound-engineering/README.md` (add row to research agents table; update agent count — current count is 49, adding `web-researcher` crosses the 50+ threshold and **README count update is required, not conditional**)
|
||||
|
||||
**Approach:**
|
||||
@@ -207,9 +207,9 @@ These were resolved in conversation but reviewers raised non-trivial counterargu
|
||||
- README update: add row to the research agents table in alphabetical position (after `slack-researcher`); update the agent count in the component count table (49 → 50, crosses 50+ threshold).
|
||||
|
||||
**Patterns to follow:**
|
||||
- `plugins/compound-engineering/agents/research/learnings-researcher.md` — frontmatter, mid-size structure
|
||||
- `plugins/compound-engineering/agents/research/slack-researcher.md` — `model: sonnet`, precondition pattern, tool guidance
|
||||
- `plugins/compound-engineering/agents/research/issue-intelligence-analyst.md` — phased methodology with ~Step N structure
|
||||
- `plugins/compound-engineering/agents/research/ce-learnings-researcher.agent.md` — frontmatter, mid-size structure
|
||||
- `plugins/compound-engineering/agents/research/ce-slack-researcher.agent.md` — `model: sonnet`, precondition pattern, tool guidance
|
||||
- `plugins/compound-engineering/agents/research/ce-issue-intelligence-analyst.agent.md` — phased methodology with ~Step N structure
|
||||
|
||||
**Test scenarios:**
|
||||
- Happy path: agent file passes `bun test tests/frontmatter.test.ts` (YAML strict-parses, required fields present).
|
||||
@@ -591,7 +591,7 @@ These were resolved in conversation but reviewers raised non-trivial counterargu
|
||||
- `plugins/compound-engineering/skills/ce-brainstorm/SKILL.md:59-71` (mode classifier reference)
|
||||
- `plugins/compound-engineering/skills/ce-brainstorm/references/universal-brainstorming.md` (universal-ideation reference shape)
|
||||
- `plugins/compound-engineering/skills/proof/SKILL.md` (Proof handoff contract)
|
||||
- `plugins/compound-engineering/agents/research/learnings-researcher.md`, `slack-researcher.md`, `issue-intelligence-analyst.md` (agent file conventions)
|
||||
- `plugins/compound-engineering/agents/research/ce-learnings-researcher.agent.md`, `slack-researcher.md`, `issue-intelligence-analyst.md` (agent file conventions)
|
||||
- **Related learnings:**
|
||||
- `docs/solutions/skill-design/claude-permissions-optimizer-classification-fix.md`
|
||||
- `docs/solutions/skill-design/research-agent-pipeline-separation-2026-04-05.md`
|
||||
|
||||
@@ -58,7 +58,7 @@ When ce:plan receives an origin document from ce:brainstorm, it reads it as prim
|
||||
ce:plan always calls `repo-research-analyst` even when a brainstorm document exists. Does ce:brainstorm also call it? No -- brainstorm only does an inline product-focused scan. The calls are not redundant; no change needed.
|
||||
|
||||
**Optimization warranted (Slack pattern):**
|
||||
Both ce:brainstorm and ce:plan dispatched `slack-researcher`. Fix: when ce:plan finds Slack context in the origin document, pass it to `slack-researcher` so the agent focuses on gaps. The agent is still called -- it starts from a better baseline.
|
||||
Both ce-brainstorm and ce-plan dispatched `ce-slack-researcher`. Fix: when ce-plan finds Slack context in the origin document, pass it to `ce-slack-researcher` so the agent focuses on gaps. The agent is still called -- it starts from a better baseline.
|
||||
|
||||
**Anti-pattern -- skipping agents incorrectly:**
|
||||
Removing `repo-research-analyst` from ce:plan when an origin document exists, reasoning "brainstorm already scanned the repo." The resulting plan lacks architectural patterns, file paths, and convention details. ce:work produces code that ignores existing patterns.
|
||||
|
||||
Reference in New Issue
Block a user