Skip to content

feat(windsurf): add Windsurf as converter target with global scope support#202

Open
rburnham52 wants to merge 3 commits intoEveryInc:mainfrom
rburnham52:feat/windsurf-target-provider
Open

feat(windsurf): add Windsurf as converter target with global scope support#202
rburnham52 wants to merge 3 commits intoEveryInc:mainfrom
rburnham52:feat/windsurf-target-provider

Conversation

@rburnham52
Copy link

@rburnham52 rburnham52 commented Feb 23, 2026

Summary

  • Add --to windsurf converter target with full spec compliance per docs/specs/windsurf.md
  • Claude agents → Windsurf skills (skills/{name}/SKILL.md), commands → flat workflows (workflows/{name}.md), pass-through skills copy unchanged, MCP → mcp_config.json
  • New generic --scope global|workspace flag (Windsurf as first adopter) — defaults to global (~/.codeium/windsurf/)
  • Shared utilities extracted (resolveTargetOutputRoot, hasPotentialSecrets) to eliminate CLI duplication

Component Mapping

Claude Code Windsurf Output Path
Agents Skills skills/{name}/SKILL.md
Commands Workflows (flat) workflows/{name}.md
Skills Skills (pass-through) skills/{name}/SKILL.md
MCP servers mcp_config.json mcp_config.json
Hooks Skipped (warning) N/A
CLAUDE.md Skipped N/A

Key Decisions

  • Agents → Skills (not Workflows): Skills are "complex multi-step tasks with supporting resources" — better match for specialized expertise/personas
  • Flat workflows: workflows/{name}.md with no subdirectories (per spec)
  • MCP config merge: Plugin entries overwrite same-name entries, user entries preserved, 0o600 permissions
  • Secrets included with warning: Required for config to work; console.warn for sensitive env var names

Test plan

  • 68 new tests across 3 files (converter, writer, scope resolution)
  • Full test suite passes (pre-existing Windows-only failures unrelated)
  • Manual test: bunx @every-env/compound-plugin install compound-engineering --to windsurf
  • Manual test: bunx @every-env/compound-plugin install compound-engineering --to windsurf --scope workspace

🤖 Generated with Claude Code

@rburnham52 rburnham52 marked this pull request as draft February 23, 2026 03:24
@rburnham52
Copy link
Author

I'm playing around with adding a converter for windsurf. It still needs testing but let me know if this might be useful?

I also have a branch for Devin but because most of the concepts are hosted it's a bit more complex. I added the converter but also addded an sync scripts to import via api key. This process still needs some testing as well but let me know if you think it's useful as well. The windsurf convention was more of a 1 - 1 match.

https://github.com/rburnham52/compound-engineering-plugin/tree/feat/devin-target-provider

@rburnham52 rburnham52 changed the title feat(windsurf): add Windsurf as converter target provider feat(windsurf): add Windsurf target with global scope support Feb 26, 2026
…pport

Add `--to windsurf` target for the converter CLI with full spec compliance
per docs/specs/windsurf.md:

- Claude agents → Windsurf skills (skills/{name}/SKILL.md)
- Claude commands → Windsurf workflows (workflows/{name}.md, flat)
- Pass-through skills copy unchanged
- MCP servers → mcp_config.json (merged with existing, 0o600 permissions)
- Hooks skipped with warning, CLAUDE.md skipped

Global scope support via generic --scope flag (Windsurf as first adopter):
- --to windsurf defaults to global (~/.codeium/windsurf/)
- --scope workspace for project-level .windsurf/ output
- --output overrides scope-derived paths

Shared utilities extracted (resolveTargetOutputRoot, hasPotentialSecrets)
to eliminate duplication across CLI commands.

68 new tests (converter, writer, scope resolution).

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@rburnham52 rburnham52 force-pushed the feat/windsurf-target-provider branch from 8dac3f1 to 6fe51a0 Compare February 26, 2026 10:36
@rburnham52 rburnham52 changed the title feat(windsurf): add Windsurf target with global scope support feat(windsurf): add Windsurf as converter target with global scope support Feb 26, 2026
- Fix resolve-pr-parallel SKILL.md name from underscores to hyphens
  (must match directory name per Windsurf spec)
- Add scope parameter to TargetHandler.write signature
- Pass resolvedScope through to writer in convert.ts and install.ts
- Windsurf writer uses global_workflows/ for global scope, workflows/
  for workspace scope

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@rburnham52 rburnham52 marked this pull request as ready for review February 26, 2026 12:35
@rburnham52
Copy link
Author

rburnham52 commented Feb 26, 2026

I've tested installing the plugin from source. At first it was only installing into the workspace but i found a way to install globally. Global is the default but there is a param to install to the workspace.

It should be ready for a review and some feedback.

is there a way to test the full command without it being published?

bunx @every-env/compound-plugin install compound-engineering --to windsurf?

@rburnham52 rburnham52 force-pushed the feat/windsurf-target-provider branch from 190cd32 to ed057a7 Compare February 26, 2026 13:01
Updated docs/specs/windsurf.md and the plan to accurately document
that global scope workflows go in global_workflows/ while workspace
scope workflows go in workflows/.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@rburnham52 rburnham52 force-pushed the feat/windsurf-target-provider branch from ed057a7 to 1107e3d Compare February 26, 2026 13:02
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant