Pre-v2 cleanup: namespace prefix, init UX, plugin infrastructure#167
Merged
Pre-v2 cleanup: namespace prefix, init UX, plugin infrastructure#167
Conversation
added 4 commits
March 29, 2026 20:57
Two pre-V2 cleanup items: 1. Skill namespace prefix (Issue #90): All DevFlow skills are now installed as ~/.claude/skills/devflow:{name}/ to avoid collisions with other plugin ecosystems. Source dirs in shared/skills/ stay unprefixed — the prefix is applied at install-time only. Shadow overrides at ~/.devflow/skills/{name}/ are now copied TO the prefixed target (fixing the previous model where shadowed skills were skipped entirely, breaking agent Read paths). - Added SKILL_NAMESPACE, prefixSkillName(), unprefixSkillName() helpers - Updated installer cleanup/install to handle prefixed targets - Updated shadow/unshadow to accept both bare and prefixed input - Updated uninstall to handle all three name variants (devflow:, bare, devflow-) - Added all 39 current bare names to LEGACY_SKILL_NAMES for migration - Updated ~200 skill references across 46 files (agents, commands, skills, hooks, orchestration, ambient router, tests, docs) 2. Init spinner progress: Added phase-specific spinner messages during installation (Cleaning old files, Installing commands and agents, Installing skills, Installing scripts) and clearer managed settings prompt.
Third-round audit found 12 bare skill references across 10 files: - git.md: github-patterns - git-workflow/SKILL.md: git-safety - input-validation/references/detection.md: core-patterns, test-patterns, security-patterns - test-driven-development/SKILL.md: test-patterns - implement.md, implement-teams.md: git-workflow - code-review.md, code-review-teams.md: worktree-support - resolve.md, resolve-teams.md: worktree-support Verified by 5 independent audit agents + build clean + 524/524 tests pass.
- Remove shadow `continue` from cleanup loop — always clean both prefixed
and unprefixed dirs (prevents orphan files on upgrade)
- Add non-empty guard for shadow dirs (empty shadow falls back to source)
- Normalize prefixed names in getShadowDir via unprefixSkillName
- Deduplicate skill names in full uninstall with Set, count only actual removals
- Add devflow-{name} legacy variant to selective uninstall
- Add 10 integration tests exercising real installViaFileCopy: prefixed install,
legacy cleanup, stale file removal, shadow override, empty shadow fallback,
partial install preservation, and full shadow lifecycle
Skills are universally installed regardless of plugin selection, so skill cleanup must always run. Previously it was gated behind !isPartialInstall, meaning `devflow init --plugin=X` could leave bare-named duplicates alongside the new devflow:-prefixed dirs. Commands and agents cleanup remains full-install-only since they're plugin-scoped.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
devflow:prefix to all skill references across agents, skills, commands, and hooks — prevents collisions with other plugin ecosystems. Three rounds of audit (automated + 5 independent agents) verified completeness.shared/, copied to plugins at buildChanges
Key files
src/cli/utils/installer.ts—devflow:prefix applied at install-timesrc/cli/commands/skills.ts— skill listing with namespace awarenessshared/agents/*.md— all skill references prefixedshared/skills/ambient-router/— full skill catalog with prefixed referencesplugins/*/commands/*.md— all command skill references prefixedscripts/hooks/ambient-prompt— preamble skill mappings prefixedtests/skill-namespace.test.ts— new tests for namespace behaviorTest plan
npm run build— cleannpm test— 524/524 passdevflow:devflow:)devflow init+devflow listverified post-install