Skip to content

fix(targets): nest colon-separated command names into directories#251

Open
mvanhorn wants to merge 1 commit intoEveryInc:mainfrom
mvanhorn:osc/226-fix-windows-ntfs-colons
Open

fix(targets): nest colon-separated command names into directories#251
mvanhorn wants to merge 1 commit intoEveryInc:mainfrom
mvanhorn:osc/226-fix-windows-ntfs-colons

Conversation

@mvanhorn
Copy link
Contributor

Summary

  • Fix Windows/NTFS compatibility by splitting colon-separated command names (e.g. ce:plan) into nested directories (e.g. ce/plan.md) instead of using colons in filenames
  • Applied to opencode, droid, and gemini targets
  • Matches the approach already used by the Qwen target (src/targets/qwen.ts:35-41)

Fixes #226

Changes

src/targets/opencode.ts: Split commandFile.name on : and create nested directories
src/targets/droid.ts: Same fix
src/targets/gemini.ts: Same fix (uses .toml extension)

Before

commands/ce:plan.md      # Invalid on Windows/NTFS
commands/ce:work.md
commands/ce:review.md

After

commands/ce/plan.md      # Valid on all platforms
commands/ce/work.md
commands/ce/review.md

Commands without colons (e.g. deepen-plan, triage) are unaffected.

Test plan

  • bun test passes (312/312 existing tests pass)
  • Install plugin to opencode target on Windows and verify ce:* commands appear
  • Verify non-colon commands still work correctly

This contribution was developed with AI assistance (Claude Code).

On Windows/NTFS, colons are reserved for alternate data streams, so
filenames like "ce:plan.md" are invalid. Split colon-separated command
names into nested directories (e.g. "ce:plan" -> "ce/plan.md"),
matching the approach already used by the Qwen target.

Applied to opencode, droid, and gemini targets.

Fixes EveryInc#226

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
@tmchow
Copy link
Collaborator

tmchow commented Mar 11, 2026

@mvanhorn is this even relevant anymore given the restructuring in #241? Or do you think it's still worthwhile for future proofing?

@mvanhorn
Copy link
Contributor Author

Good question! #251 is still relevant - it fixes the install targets (opencode, droid, gemini), not the source layout. After #241, the skill name: frontmatter still uses colons (e.g., ce:plan), and when targets write these to disk, NTFS rejects colons in filenames. #251 splits those into nested directories at install time, matching what the Qwen target already does. Happy to close if you'd prefer a different approach though.

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.

Opencode under Windows/NTFS doesn't have the ce:* commands

2 participants