From e9e425933b2335b87397ba620cd755dd087929d1 Mon Sep 17 00:00:00 2001 From: lmiranda Date: Thu, 11 Dec 2025 23:26:38 -0500 Subject: [PATCH] refactor: consolidate plugins into plugins/ directory MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit - Created plugins/ directory to centralize all plugins - Moved projman and project-hygiene into plugins/ - Updated .mcp.json paths from ../mcp-servers/ to ../../mcp-servers/ - Updated CLAUDE.md governance section with new directory structure - Updated README.md with new repository structure diagram - Fixed all path references in documentation 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 --- CLAUDE.md | 75 +++++++++--------- README.md | Bin 7488 -> 7788 bytes .../.claude-plugin/plugin.json | 0 .../project-hygiene}/README.md | 0 .../project-hygiene}/hooks/cleanup.sh | 0 .../project-hygiene}/hooks/hooks.json | 0 .../projman}/.claude-plugin/plugin.json | 0 plugins/projman/.mcp.json | 14 ++++ {projman => plugins/projman}/CONFIGURATION.md | 0 {projman => plugins/projman}/README.md | 0 .../projman}/agents/executor.md | 0 .../projman}/agents/orchestrator.md | 0 .../projman}/agents/planner.md | 0 .../projman}/commands/initial-setup.md | 0 .../projman}/commands/labels-sync.md | 0 .../projman}/commands/sprint-close.md | 0 .../projman}/commands/sprint-plan.md | 0 .../projman}/commands/sprint-start.md | 0 .../projman}/commands/sprint-status.md | 0 .../skills/label-taxonomy/labels-reference.md | 0 projman/.mcp.json | 14 ---- 21 files changed, 52 insertions(+), 51 deletions(-) rename {project-hygiene => plugins/project-hygiene}/.claude-plugin/plugin.json (100%) rename {project-hygiene => plugins/project-hygiene}/README.md (100%) rename {project-hygiene => plugins/project-hygiene}/hooks/cleanup.sh (100%) rename {project-hygiene => plugins/project-hygiene}/hooks/hooks.json (100%) rename {projman => plugins/projman}/.claude-plugin/plugin.json (100%) create mode 100644 plugins/projman/.mcp.json rename {projman => plugins/projman}/CONFIGURATION.md (100%) rename {projman => plugins/projman}/README.md (100%) rename {projman => plugins/projman}/agents/executor.md (100%) rename {projman => plugins/projman}/agents/orchestrator.md (100%) rename {projman => plugins/projman}/agents/planner.md (100%) rename {projman => plugins/projman}/commands/initial-setup.md (100%) rename {projman => plugins/projman}/commands/labels-sync.md (100%) rename {projman => plugins/projman}/commands/sprint-close.md (100%) rename {projman => plugins/projman}/commands/sprint-plan.md (100%) rename {projman => plugins/projman}/commands/sprint-start.md (100%) rename {projman => plugins/projman}/commands/sprint-status.md (100%) rename {projman => plugins/projman}/skills/label-taxonomy/labels-reference.md (100%) delete mode 100644 projman/.mcp.json diff --git a/CLAUDE.md b/CLAUDE.md index c4e6eb2..109ea27 100644 --- a/CLAUDE.md +++ b/CLAUDE.md @@ -39,9 +39,7 @@ Only these directories may exist at the repository root: | `docs/` | Documentation | | `hooks/` | Shared hooks (if any) | | `mcp-servers/` | Shared MCP servers | -| `project-hygiene/` | Cleanup automation plugin | -| `projman/` | Sprint management plugin | -| `projman-pmo/` | PMO coordination plugin | +| `plugins/` | All plugins (projman, projman-pmo, project-hygiene) | | `scripts/` | Setup and maintenance scripts | ### File Creation Rules @@ -122,7 +120,7 @@ Both plugins use **two shared MCP servers** at repository root level (`mcp-serve - MCP servers are **shared** by both plugins at `mcp-servers/gitea` and `mcp-servers/wikijs` - Each MCP server detects its mode (project-scoped vs company-wide) based on environment variables - Configuration uses hybrid approach (system-level + project-level) -- Both plugins reference `../mcp-servers/` in their `.mcp.json` files +- All plugins reference `../../mcp-servers/` in their `.mcp.json` files (from `plugins/*/`) ## Branch-Aware Security Model @@ -220,7 +218,7 @@ See [docs/reference-material/projman-implementation-plan.md](docs/reference-mate bandit/support-claude-mktplace/ ├── .claude-plugin/ │ └── marketplace.json -├── mcp-servers/ # ← SHARED BY BOTH PLUGINS +├── mcp-servers/ # ← SHARED BY ALL PLUGINS │ ├── gitea/ │ │ ├── .venv/ │ │ ├── requirements.txt # Python dependencies @@ -246,37 +244,40 @@ bandit/support-claude-mktplace/ │ │ ├── lessons_learned.py │ │ └── documentation.py │ └── tests/ -├── projman/ # ← PROJECT PLUGIN -│ ├── .claude-plugin/ -│ │ └── plugin.json -│ ├── .mcp.json # Points to ../mcp-servers/ -│ ├── commands/ -│ │ ├── sprint-plan.md -│ │ ├── sprint-start.md -│ │ ├── sprint-status.md -│ │ ├── sprint-close.md -│ │ └── labels-sync.md -│ ├── agents/ -│ │ ├── planner.md -│ │ ├── orchestrator.md -│ │ └── executor.md -│ ├── skills/ -│ │ └── label-taxonomy/ -│ │ └── labels-reference.md -│ ├── README.md -│ └── CONFIGURATION.md -└── projman-pmo/ # ← PMO PLUGIN - ├── .claude-plugin/ - │ └── plugin.json - ├── .mcp.json # Points to ../mcp-servers/ - ├── commands/ - │ ├── pmo-status.md - │ ├── pmo-priorities.md - │ ├── pmo-dependencies.md - │ └── pmo-schedule.md - ├── agents/ - │ └── pmo-coordinator.md - └── README.md +└── plugins/ # ← ALL PLUGINS + ├── projman/ # ← PROJECT PLUGIN + │ ├── .claude-plugin/ + │ │ └── plugin.json + │ ├── .mcp.json # Points to ../../mcp-servers/ + │ ├── commands/ + │ │ ├── sprint-plan.md + │ │ ├── sprint-start.md + │ │ ├── sprint-status.md + │ │ ├── sprint-close.md + │ │ └── labels-sync.md + │ ├── agents/ + │ │ ├── planner.md + │ │ ├── orchestrator.md + │ │ └── executor.md + │ ├── skills/ + │ │ └── label-taxonomy/ + │ │ └── labels-reference.md + │ ├── README.md + │ └── CONFIGURATION.md + ├── projman-pmo/ # ← PMO PLUGIN + │ ├── .claude-plugin/ + │ │ └── plugin.json + │ ├── .mcp.json # Points to ../../mcp-servers/ + │ ├── commands/ + │ │ ├── pmo-status.md + │ │ ├── pmo-priorities.md + │ │ ├── pmo-dependencies.md + │ │ └── pmo-schedule.md + │ ├── agents/ + │ │ └── pmo-coordinator.md + │ └── README.md + └── project-hygiene/ # ← CLEANUP PLUGIN + └── ... ``` ### Key Design Decisions @@ -419,7 +420,7 @@ Test in real CuisineFlow repository with actual Gitea instance before distributi ``` ### MCP Server Configuration -- MCP servers MUST use venv python: `${CLAUDE_PLUGIN_ROOT}/../mcp-servers/NAME/.venv/bin/python` +- MCP servers MUST use venv python: `${CLAUDE_PLUGIN_ROOT}/../../mcp-servers/NAME/.venv/bin/python` - NEVER use bare `python` command - always use venv path - Test MCP servers after any config change diff --git a/README.md b/README.md index 76fc4f900fa16654d390e1782d8354bdd71ab65f..bf3fbaea672e06b05137f3691af10b7d5d812d34 100644 GIT binary patch delta 813 zcma)4ze~eF7{yvD76qFKra!FOYA894^tAEo1pGr9@c|_f1408$4x|az91=Fl?wY|fPIm}a3{nUa>U$2 zN?QZ-!nSQVDnsrOa+%K0r8Ov?Mi3gFI277*ms=}Dh2n4^gVTRx^+N<>JP0sCIg&i1-d#ebH|$(is^ r>ilg<@e|7J)I27j7X4Jc#_zJHc~ELI1ZtY52R9x~t?V!7R;IrJh+bJb delta 525 zcmaE3bHHlC$&D9Tm~^6(b5oLZ6N`&8i%SyoN@6wi^if6hgIpb5d|mZ&Q#3cfXDVXc zoXN6|M^J`=L7|{1KPxvePhSB9CMOGO)iVJZAQ`>noW#!B z|CVQFXJ#S!H!rm$DZc{j-^mAnT5k(WtAn(HOofK8Zf;^xc4|pMPGWK@Bw$kVlZ*8g zCTocpsKBf#N=-{GO3h17MKW6p7-w8SgC^ID$V{FkBE<}3Z{91S$+G#K#CFEXo26