Skip to content

feat: Make plugin output directory name configurable#1

Open
obie wants to merge 1 commit intomainfrom
feature/configurable-plugin-name
Open

feat: Make plugin output directory name configurable#1
obie wants to merge 1 commit intomainfrom
feature/configurable-plugin-name

Conversation

@obie
Copy link

@obie obie commented Feb 17, 2026

Summary

  • Adds a new pluginName config field to .praxis/config.json (defaults to "praxis" for backward compatibility)
  • Threads the value through PraxisConfigRoleCompilerPluginRegistryClaudeCodePlugin
  • The Claude Code plugin now writes to plugins/{pluginName}/agents/ instead of hardcoded plugins/praxis/agents/

This allows projects like Canon to set "pluginName": "canon" in their config and get output written to plugins/canon/agents/.

Files changed

  • src/core/config.ts — new pluginName field in RawConfig, DEFAULT_CONFIG, and PraxisConfig getter
  • src/compiler/plugins/types.ts — added pluginName to PluginOptions interface
  • src/compiler/plugins/claude-code.ts — uses pluginName from options instead of hardcoded "praxis"
  • src/compiler/plugin-registry.ts — passes pluginName through to plugin constructors
  • src/compiler/role-compiler.ts — passes config.pluginName to resolvePlugins

Test plan

  • npm run build compiles successfully
  • All existing tests pass (156/157 — 1 pre-existing flaky watcher test unrelated to this change)
  • Verify with a Canon project that "pluginName": "canon" outputs to plugins/canon/agents/

Add pluginName config field (defaults to "praxis") so projects like
Canon can output compiled agents to plugins/canon/agents/ instead of
the previously hardcoded plugins/praxis/agents/ path.
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