diff --git a/.claude/backups/CLAUDE.md.2026-01-22_132037 b/.claude/backups/CLAUDE.md.2026-01-22_132037 new file mode 100644 index 0000000..30779ea --- /dev/null +++ b/.claude/backups/CLAUDE.md.2026-01-22_132037 @@ -0,0 +1,249 @@ +# CLAUDE.md + +This file provides guidance to Claude Code when working with code in this repository. + +## Project Overview + +**Repository:** leo-claude-mktplace +**Version:** 3.0.1 +**Status:** Production Ready + +A plugin marketplace for Claude Code containing: + +| Plugin | Description | Version | +|--------|-------------|---------| +| `projman` | Sprint planning and project management with Gitea integration | 3.0.0 | +| `git-flow` | Git workflow automation with smart commits and branch management | 1.0.0 | +| `pr-review` | Multi-agent PR review with confidence scoring | 1.0.0 | +| `clarity-assist` | Prompt optimization with ND-friendly accommodations | 1.0.0 | +| `doc-guardian` | Automatic documentation drift detection and synchronization | 1.0.0 | +| `code-sentinel` | Security scanning and code refactoring tools | 1.0.0 | +| `claude-config-maintainer` | CLAUDE.md optimization and maintenance | 1.0.0 | +| `cmdb-assistant` | NetBox CMDB integration for infrastructure management | 1.0.0 | +| `project-hygiene` | Post-task cleanup automation via hooks | 0.1.0 | + +## Quick Start + +```bash +# Validate marketplace compliance +./scripts/validate-marketplace.sh + +# Setup commands (in a target project with plugin installed) +/initial-setup # First time: full setup wizard +/project-init # New project: quick config +/project-sync # After repo move: sync config + +# Run projman commands +/sprint-plan # Start sprint planning +/sprint-status # Check progress +/review # Pre-close code quality review +/test-check # Verify tests before close +/sprint-close # Complete sprint +``` + +## Repository Structure + +``` +leo-claude-mktplace/ +├── .claude-plugin/ +│ └── marketplace.json # Marketplace manifest +├── mcp-servers/ # SHARED MCP servers (v3.0.0+) +│ ├── gitea/ # Gitea MCP (issues, PRs, wiki) +│ └── netbox/ # NetBox MCP (CMDB) +├── plugins/ +│ ├── projman/ # Sprint management +│ │ ├── .claude-plugin/plugin.json +│ │ ├── .mcp.json +│ │ ├── mcp-servers/gitea -> ../../../mcp-servers/gitea # SYMLINK +│ │ ├── commands/ # 12 commands (incl. setup) +│ │ ├── hooks/ # SessionStart mismatch detection +│ │ ├── agents/ # 4 agents +│ │ └── skills/label-taxonomy/ +│ ├── git-flow/ # Git workflow automation +│ │ ├── .claude-plugin/plugin.json +│ │ ├── commands/ # 8 commands +│ │ └── agents/ +│ ├── pr-review/ # Multi-agent PR review +│ │ ├── .claude-plugin/plugin.json +│ │ ├── .mcp.json +│ │ ├── mcp-servers/gitea -> ../../../mcp-servers/gitea # SYMLINK +│ │ ├── commands/ # 6 commands (incl. setup) +│ │ ├── hooks/ # SessionStart mismatch detection +│ │ └── agents/ # 5 agents +│ ├── clarity-assist/ # Prompt optimization (NEW v3.0.0) +│ │ ├── .claude-plugin/plugin.json +│ │ ├── commands/ # 2 commands +│ │ └── agents/ +│ ├── doc-guardian/ # Documentation drift detection +│ ├── code-sentinel/ # Security scanning & refactoring +│ ├── claude-config-maintainer/ +│ ├── cmdb-assistant/ +│ └── project-hygiene/ +├── scripts/ +│ ├── setup.sh, post-update.sh +│ └── validate-marketplace.sh # Marketplace compliance validation +└── docs/ + ├── CANONICAL-PATHS.md # Single source of truth for paths + └── CONFIGURATION.md # Centralized configuration guide +``` + +## CRITICAL: Rules You MUST Follow + +### File Operations +- **NEVER** create files in repository root unless listed in "Allowed Root Files" +- **NEVER** modify `.gitignore` without explicit permission +- **ALWAYS** use `.scratch/` for temporary/exploratory work +- **ALWAYS** verify paths against `docs/CANONICAL-PATHS.md` before creating files + +### Plugin Development +- **plugin.json MUST be in `.claude-plugin/` directory** (not plugin root) +- **Every plugin MUST be listed in marketplace.json** +- **MCP servers are SHARED at root** with symlinks from plugins +- **MCP server venv path**: `${CLAUDE_PLUGIN_ROOT}/mcp-servers/{name}/.venv/bin/python` +- **CLI tools forbidden** - Use MCP tools exclusively (never `tea`, `gh`, etc.) + +### Hooks (Valid Events Only) +`PreToolUse`, `PostToolUse`, `UserPromptSubmit`, `SessionStart`, `SessionEnd`, `Notification`, `Stop`, `SubagentStop`, `PreCompact` + +**INVALID:** `task-completed`, `file-changed`, `git-commit-msg-needed` + +### Allowed Root Files +`CLAUDE.md`, `README.md`, `LICENSE`, `CHANGELOG.md`, `.gitignore`, `.env.example` + +### Allowed Root Directories +`.claude/`, `.claude-plugin/`, `.claude-plugins/`, `.scratch/`, `docs/`, `hooks/`, `mcp-servers/`, `plugins/`, `scripts/` + +## Architecture + +### Four-Agent Model (projman) + +| Agent | Personality | Responsibilities | +|-------|-------------|------------------| +| **Planner** | Thoughtful, methodical | Sprint planning, architecture analysis, issue creation, lesson search | +| **Orchestrator** | Concise, action-oriented | Sprint execution, parallel batching, Git operations, lesson capture | +| **Executor** | Implementation-focused | Code implementation, branch management, MR creation | +| **Code Reviewer** | Thorough, practical | Pre-close quality review, security scan, test verification | + +### MCP Server Tools (Gitea) + +| Category | Tools | +|----------|-------| +| Issues | `list_issues`, `get_issue`, `create_issue`, `update_issue`, `add_comment` | +| Labels | `get_labels`, `suggest_labels`, `create_label` | +| Milestones | `list_milestones`, `get_milestone`, `create_milestone`, `update_milestone` | +| Dependencies | `list_issue_dependencies`, `create_issue_dependency`, `get_execution_order` | +| Wiki | `list_wiki_pages`, `get_wiki_page`, `create_wiki_page`, `create_lesson`, `search_lessons` | +| **Pull Requests** | `list_pull_requests`, `get_pull_request`, `get_pr_diff`, `get_pr_comments`, `create_pr_review`, `add_pr_comment` *(NEW v3.0.0)* | +| Validation | `validate_repo_org`, `get_branch_protection` | + +### Hybrid Configuration + +| Level | Location | Purpose | +|-------|----------|---------| +| System | `~/.config/claude/gitea.env` | Credentials (GITEA_API_URL, GITEA_API_TOKEN) | +| Project | `.env` in project root | Repository specification (GITEA_ORG, GITEA_REPO) | + +**Note:** `GITEA_ORG` is at project level since different projects may belong to different organizations. + +### Branch-Aware Security + +| Branch Pattern | Mode | Capabilities | +|----------------|------|--------------| +| `development`, `feat/*` | Development | Full access | +| `staging` | Staging | Read-only code, can create issues | +| `main`, `master` | Production | Read-only, emergency only | + +## Label Taxonomy + +43 labels total: 27 organization + 16 repository + +**Organization:** Agent/2, Complexity/3, Efforts/5, Priority/4, Risk/3, Source/4, Type/6 +**Repository:** Component/9, Tech/7 + +Sync with `/labels-sync` command. + +## Lessons Learned System + +Stored in Gitea Wiki under `lessons-learned/sprints/`. + +**Workflow:** +1. Orchestrator captures at sprint close via MCP tools +2. Planner searches at sprint start using `search_lessons` +3. Tags enable cross-project discovery + +## Common Operations + +### Adding a New Plugin + +1. Create `plugins/{name}/.claude-plugin/plugin.json` +2. Add entry to `.claude-plugin/marketplace.json` with category, tags, license +3. Create `README.md` and `claude-md-integration.md` +4. If using MCP server, create symlink: `ln -s ../../../mcp-servers/{server} plugins/{name}/mcp-servers/{server}` +5. Run `./scripts/validate-marketplace.sh` +6. Update `CHANGELOG.md` + +### Adding a Command to projman + +1. Create `plugins/projman/commands/{name}.md` +2. Update `plugins/projman/README.md` +3. Update marketplace description if significant + +### Validation + +```bash +./scripts/validate-marketplace.sh # Validates all manifests +``` + +## Path Verification Protocol + +**Before creating any file:** + +1. Read `docs/CANONICAL-PATHS.md` +2. List all paths to be created/modified +3. Verify each against canonical paths +4. If not in canonical paths, STOP and ask + +## Documentation Index + +| Document | Purpose | +|----------|---------| +| `docs/CANONICAL-PATHS.md` | **Single source of truth** for paths | +| `docs/COMMANDS-CHEATSHEET.md` | All commands quick reference with workflow examples | +| `docs/CONFIGURATION.md` | Centralized setup guide | +| `docs/UPDATING.md` | Update guide for the marketplace | +| `plugins/projman/CONFIGURATION.md` | Quick reference (links to central) | +| `plugins/projman/README.md` | Projman full documentation | + +## Versioning and Changelog Rules + +### Version Display +**The marketplace version is displayed ONLY in the main `README.md` title.** + +- Format: `# Leo Claude Marketplace - vX.Y.Z` +- Do NOT add version numbers to individual plugin documentation titles +- Do NOT add version numbers to configuration guides +- Do NOT add version numbers to CLAUDE.md or other docs + +### Changelog Maintenance (MANDATORY) +**`CHANGELOG.md` is the authoritative source for version history.** + +When releasing a new version: +1. Update main `README.md` title with new version +2. Update `CHANGELOG.md` with: + - Version number and date: `## [X.Y.Z] - YYYY-MM-DD` + - **Added**: New features, commands, files + - **Changed**: Modifications to existing functionality + - **Fixed**: Bug fixes + - **Removed**: Deleted features, files, deprecated items +3. Update `marketplace.json` metadata version +4. Update plugin `plugin.json` versions if plugin-specific changes + +### Version Format +- Follow [Semantic Versioning](https://semver.org/): MAJOR.MINOR.PATCH +- MAJOR: Breaking changes +- MINOR: New features, backward compatible +- PATCH: Bug fixes, minor improvements + +--- + +**Last Updated:** 2026-01-20 diff --git a/.doc-guardian-queue b/.doc-guardian-queue new file mode 100644 index 0000000..aa22cfb --- /dev/null +++ b/.doc-guardian-queue @@ -0,0 +1,9 @@ +# Doc Guardian Queue - cleared after sync on 2026-02-02 +2026-02-02T11:41:00 | .claude-plugin | /home/lmiranda/claude-plugins-work/.claude-plugin/marketplace.json | CLAUDE.md .claude-plugin/marketplace.json +2026-02-02T13:35:48 | skills | /home/lmiranda/claude-plugins-work/plugins/projman/skills/sprint-approval.md | README.md +2026-02-02T13:36:03 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/sprint-start.md | docs/COMMANDS-CHEATSHEET.md README.md +2026-02-02T13:36:16 | agents | /home/lmiranda/claude-plugins-work/plugins/projman/agents/orchestrator.md | README.md CLAUDE.md +2026-02-02T13:39:07 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/rfc.md | docs/COMMANDS-CHEATSHEET.md README.md +2026-02-02T13:39:15 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/setup.md | docs/COMMANDS-CHEATSHEET.md README.md +2026-02-02T13:39:32 | skills | /home/lmiranda/claude-plugins-work/plugins/projman/skills/rfc-workflow.md | README.md +2026-02-02T13:43:14 | skills | /home/lmiranda/claude-plugins-work/plugins/projman/skills/rfc-templates.md | README.md diff --git a/.env b/.env new file mode 100644 index 0000000..dbefba5 --- /dev/null +++ b/.env @@ -0,0 +1 @@ +GITEA_REPO=personal-projects/leo-claude-mktplace diff --git a/README.md b/README.md index 0e1bdd0..2f3a60d 100644 --- a/README.md +++ b/README.md @@ -19,7 +19,7 @@ AI-guided sprint planning with full Gitea integration. Transforms a proven 15-sp - Branch-aware security (development/staging/production) - Pre-sprint-close code quality review and test verification -**Commands:** `/sprint-plan`, `/sprint-start`, `/sprint-status`, `/sprint-close`, `/labels-sync`, `/setup`, `/review`, `/test`, `/debug`, `/suggest-version`, `/proposal-status`, `/clear-cache`, `/rfc-create`, `/rfc-list`, `/rfc-review`, `/rfc-approve`, `/rfc-reject` +**Commands:** `/sprint-plan`, `/sprint-start`, `/sprint-status`, `/sprint-close`, `/labels-sync`, `/setup`, `/review`, `/test`, `/debug`, `/suggest-version`, `/proposal-status`, `/rfc` #### [git-flow](./plugins/git-flow) *NEW in v3.0.0* **Git Workflow Automation** diff --git a/docs/COMMANDS-CHEATSHEET.md b/docs/COMMANDS-CHEATSHEET.md index 407c811..1f0e4a3 100644 --- a/docs/COMMANDS-CHEATSHEET.md +++ b/docs/COMMANDS-CHEATSHEET.md @@ -15,17 +15,12 @@ Quick reference for all commands in the Leo Claude Marketplace. | **projman** | `/test` | | X | Run tests (`/test run`) or generate tests (`/test gen `) | | **projman** | `/sprint-close` | | X | Complete sprint and capture lessons learned to Gitea Wiki | | **projman** | `/labels-sync` | | X | Synchronize label taxonomy from Gitea | -| **projman** | `/setup` | | X | Auto-detect mode or use `--full`, `--quick`, `--sync` | +| **projman** | `/setup` | | X | Auto-detect mode or use `--full`, `--quick`, `--sync`, `--clear-cache` | | **projman** | *SessionStart hook* | X | | Detects git remote vs .env mismatch, warns to run `/setup --sync` | | **projman** | `/debug` | | X | Diagnostics (`/debug report`) or investigate (`/debug review`) | | **projman** | `/suggest-version` | | X | Analyze CHANGELOG and recommend semantic version bump | | **projman** | `/proposal-status` | | X | View proposal and implementation hierarchy with status | -| **projman** | `/clear-cache` | | X | Clear plugin cache to force fresh configuration reload | -| **projman** | `/rfc-create` | | X | Create new RFC from conversation or clarified spec | -| **projman** | `/rfc-list` | | X | List all RFCs grouped by status | -| **projman** | `/rfc-review` | | X | Submit Draft RFC for review | -| **projman** | `/rfc-approve` | | X | Approve RFC in Review status for sprint planning | -| **projman** | `/rfc-reject` | | X | Reject RFC with documented reason | +| **projman** | `/rfc` | | X | RFC lifecycle management (`/rfc create\|list\|review\|approve\|reject`) | | **git-flow** | `/commit` | | X | Create commit with auto-generated conventional message | | **git-flow** | `/commit-push` | | X | Commit and push to remote in one operation | | **git-flow** | `/commit-merge` | | X | Commit current changes, then merge into target branch | @@ -144,11 +139,11 @@ Full workflow from idea to implementation using RFCs: ``` 1. /clarify # Clarify the feature idea -2. /rfc-create # Create RFC from clarified spec +2. /rfc create # Create RFC from clarified spec ... refine RFC content ... -3. /rfc-review 0001 # Submit RFC for review +3. /rfc review 0001 # Submit RFC for review ... review discussion ... -4. /rfc-approve 0001 # Approve RFC for implementation +4. /rfc approve 0001 # Approve RFC for implementation 5. /sprint-plan # Select approved RFC for sprint ... implement feature ... 6. /sprint-close # Complete sprint, RFC marked Implemented diff --git a/mcp-servers/contract-validator/.doc-guardian-queue b/mcp-servers/contract-validator/.doc-guardian-queue new file mode 100644 index 0000000..f54736a --- /dev/null +++ b/mcp-servers/contract-validator/.doc-guardian-queue @@ -0,0 +1,15 @@ +2026-01-26T14:36:42 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/mcp_server/parse_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T14:37:38 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/mcp_server/parse_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T14:37:48 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/mcp_server/parse_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T14:38:05 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/mcp_server/parse_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T14:38:55 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/mcp_server/parse_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T14:39:35 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/mcp_server/parse_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T14:40:19 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/mcp_server/parse_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T15:02:30 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/tests/test_parse_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T15:02:37 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/tests/test_parse_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T15:03:41 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/tests/test_report_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-02-02T10:56:19 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/mcp_server/validation_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-02-02T10:57:49 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/contract-validator/tests/test_validation_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-02-02T10:58:22 | skills | /home/lmiranda/claude-plugins-work/plugins/contract-validator/skills/mcp-tools-reference.md | README.md +2026-02-02T10:58:38 | skills | /home/lmiranda/claude-plugins-work/plugins/contract-validator/skills/validation-rules.md | README.md +2026-02-02T10:59:13 | .claude-plugin | /home/lmiranda/claude-plugins-work/.claude-plugin/marketplace.json | CLAUDE.md .claude-plugin/marketplace.json diff --git a/mcp-servers/viz-platform/.doc-guardian-queue b/mcp-servers/viz-platform/.doc-guardian-queue new file mode 100644 index 0000000..f5eb1d3 --- /dev/null +++ b/mcp-servers/viz-platform/.doc-guardian-queue @@ -0,0 +1,5 @@ +2026-01-26T11:40:11 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/viz-platform/registry/dmc_2_5.json | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T13:46:31 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/viz-platform/tests/test_chart_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T13:46:32 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/viz-platform/tests/test_theme_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T13:46:34 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/viz-platform/tests/test_theme_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md +2026-01-26T13:46:35 | mcp-servers | /home/lmiranda/claude-plugins-work/mcp-servers/viz-platform/tests/test_theme_tools.py | docs/COMMANDS-CHEATSHEET.md CLAUDE.md diff --git a/plugins/projman/.doc-guardian-queue b/plugins/projman/.doc-guardian-queue new file mode 100644 index 0000000..8228a4e --- /dev/null +++ b/plugins/projman/.doc-guardian-queue @@ -0,0 +1,5 @@ +2026-01-30T14:32:53 | skills | /home/lmiranda/claude-plugins-work/plugins/projman/skills/setup-workflows.md | README.md +2026-01-30T14:32:53 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/setup.md | docs/COMMANDS-CHEATSHEET.md README.md +2026-01-30T14:32:54 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/debug.md | docs/COMMANDS-CHEATSHEET.md README.md +2026-01-30T14:32:54 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/test.md | docs/COMMANDS-CHEATSHEET.md README.md +2026-01-30T14:33:13 | commands | /home/lmiranda/claude-plugins-work/plugins/projman/commands/sprint-status.md | docs/COMMANDS-CHEATSHEET.md README.md diff --git a/plugins/projman/claude-md-integration.md b/plugins/projman/claude-md-integration.md index 048fb7f..9d1d40b 100644 --- a/plugins/projman/claude-md-integration.md +++ b/plugins/projman/claude-md-integration.md @@ -12,11 +12,11 @@ This project uses the **projman** plugin for sprint planning and project managem | `/sprint-close` | Complete sprint and capture lessons learned to Gitea Wiki | | `/labels-sync` | Synchronize label taxonomy from Gitea | | `/initial-setup` | Run initial setup for projman plugin | -| `/rfc-create` | Create new RFC from conversation or clarified spec | -| `/rfc-list` | List all RFCs grouped by status | -| `/rfc-review` | Submit Draft RFC for review | -| `/rfc-approve` | Approve RFC for sprint planning | -| `/rfc-reject` | Reject RFC with documented reason | +| `/rfc create` | Create new RFC from conversation or clarified spec | +| `/rfc list` | List all RFCs grouped by status | +| `/rfc review` | Submit Draft RFC for review | +| `/rfc approve` | Approve RFC for sprint planning | +| `/rfc reject` | Reject RFC with documented reason | ### MCP Tools Available diff --git a/plugins/projman/commands/clear-cache.md b/plugins/projman/commands/clear-cache.md deleted file mode 100644 index cd68699..0000000 --- a/plugins/projman/commands/clear-cache.md +++ /dev/null @@ -1,34 +0,0 @@ ---- -description: Clear plugin cache to force fresh configuration reload after marketplace updates ---- - -# Clear Cache - -## Purpose - -Clear plugin cache to force fresh configuration reload after marketplace updates. - -## When to Use - -- After updating the marketplace (`git pull` or reinstall) -- When MCP servers show stale configuration -- When plugin changes don't take effect - -## Workflow - -Execute cache clear: - -```bash -rm -rf ~/.claude/plugins/cache/leo-claude-mktplace/ -``` - -Then inform user: "Cache cleared. Restart Claude Code for changes to take effect." - -## Visual Output - -``` -╔══════════════════════════════════════════════════════════════════╗ -║ 📋 PROJMAN ║ -║ Clear Cache ║ -╚══════════════════════════════════════════════════════════════════╝ -``` diff --git a/plugins/projman/commands/rfc-approve.md b/plugins/projman/commands/rfc-approve.md deleted file mode 100644 index 409c35a..0000000 --- a/plugins/projman/commands/rfc-approve.md +++ /dev/null @@ -1,83 +0,0 @@ ---- -description: Approve an RFC in Review status, making it ready for sprint planning -agent: planner ---- - -# Approve RFC - -## Skills Required - -- skills/mcp-tools-reference.md -- skills/rfc-workflow.md -- skills/rfc-templates.md - -## Purpose - -Transition an RFC from Review to Approved status, indicating the proposal has been accepted and is ready for implementation in an upcoming sprint. - -## Invocation - -Run `/rfc-approve ` where number is the RFC number: -- `/rfc-approve 0003` -- `/rfc-approve 3` (leading zeros optional) - -## Workflow - -1. **Validate RFC Number** - - Normalize input (add leading zeros if needed) - - Fetch RFC page: `RFC-NNNN: *` - -2. **Check Current Status** - - Parse frontmatter to get current status - - **STOP** if status is not "Review" - - Error: "RFC-NNNN is in [status] status. Only RFCs in Review can be approved." - -3. **Gather Decision Details** - - Prompt: "Please provide the approval rationale (why is this RFC being approved?):" - - This becomes the Decision section content - -4. **Update RFC Page** - - Change status: Review → Approved - - Update "Updated" date - - Add/update Decision section: - ```markdown - ## Decision - - **Decision:** Approved - **Date:** YYYY-MM-DD - **Decided By:** @[current user or maintainer] - - **Rationale:** - - [User-provided rationale] - ``` - -5. **Update RFC-Index** - - Remove entry from "## In Review" section - - Add entry to "## Approved" section - -6. **Confirm Approval** - - Display updated status - - Note that RFC is now available for `/sprint-plan` - -## Visual Output - -``` -+----------------------------------------------------------------------+ -| PROJMAN - RFC Approval | -+----------------------------------------------------------------------+ - -RFC-0003: Feature X has been approved! - -Status: Review → Approved -Decision recorded in RFC page. - -This RFC is now available for sprint planning. -Use /sprint-plan and select this RFC when prompted. -``` - -## Validation Errors - -- **RFC not found**: "RFC-NNNN not found. Check the number with /rfc-list" -- **Wrong status**: "RFC-NNNN is [status]. Only RFCs in Review can be approved." -- **No rationale provided**: "Approval rationale is required. Please explain why this RFC is being approved." diff --git a/plugins/projman/commands/rfc-create.md b/plugins/projman/commands/rfc-create.md deleted file mode 100644 index 4545e8e..0000000 --- a/plugins/projman/commands/rfc-create.md +++ /dev/null @@ -1,84 +0,0 @@ ---- -description: Create a new RFC (Request for Comments) from conversation or clarified specification -agent: planner ---- - -# Create RFC - -## Skills Required - -- skills/mcp-tools-reference.md -- skills/rfc-workflow.md -- skills/rfc-templates.md - -## Purpose - -Create a new RFC wiki page to track a feature idea, proposal, or enhancement through the review lifecycle. RFCs provide a structured way to document, discuss, and approve changes before implementation. - -## Invocation - -Run `/rfc-create` with optional context: -- After `/clarify` to convert clarified spec to RFC -- With description of feature idea -- From conversation context - -## Workflow - -1. **Gather Input** - - Check if conversation has clarified specification (from `/clarify`) - - If no context: prompt for Summary, Motivation, and initial Design - - Extract author from context or prompt - -2. **Allocate RFC Number** - - Call `allocate_rfc_number` MCP tool - - Get next sequential 4-digit number - -3. **Create RFC Page** - - Use template from `skills/rfc-templates.md` - - Fill in frontmatter (number, title, status=Draft, author, dates) - - Populate Summary, Motivation, Detailed Design sections - - Create wiki page: `RFC-NNNN: Title` - -4. **Update RFC-Index** - - Fetch RFC-Index (create if doesn't exist) - - Add entry to "## Draft" section - - Update wiki page - -5. **Confirm Creation** - - Display RFC number and wiki link - - Remind about next steps (refine → `/rfc-review`) - -## Visual Output - -``` -+----------------------------------------------------------------------+ -| PROJMAN - RFC Creation | -+----------------------------------------------------------------------+ - -RFC-0001: [Title] created successfully! - -Status: Draft -Wiki: [link to RFC page] - -Next steps: -- Refine the RFC with additional details -- When ready: /rfc-review 0001 to submit for review -``` - -## Input Mapping - -When converting from `/clarify` output: - -| Clarify Section | RFC Section | -|-----------------|-------------| -| Problem/Context | Motivation > Problem Statement | -| Goals/Outcomes | Motivation > Goals | -| Scope/Requirements | Detailed Design > Overview | -| Constraints | Non-Goals or Detailed Design | -| Success Criteria | Testing Strategy | - -## Edge Cases - -- **No RFC-Index exists**: Create it with empty sections -- **User provides minimal input**: Create minimal RFC template, note sections to fill -- **Duplicate title**: Proceed (RFC numbers are unique, titles don't need to be) diff --git a/plugins/projman/commands/rfc-list.md b/plugins/projman/commands/rfc-list.md deleted file mode 100644 index 10a57c5..0000000 --- a/plugins/projman/commands/rfc-list.md +++ /dev/null @@ -1,98 +0,0 @@ ---- -description: List all RFCs grouped by status from RFC-Index wiki page -agent: planner ---- - -# List RFCs - -## Skills Required - -- skills/mcp-tools-reference.md -- skills/rfc-workflow.md - -## Purpose - -Display all RFCs grouped by their lifecycle status. Highlights "Approved" RFCs that are ready for sprint planning. - -## Invocation - -Run `/rfc-list` to see all RFCs. - -Optional filters: -- `/rfc-list approved` - Show only approved RFCs -- `/rfc-list draft` - Show only draft RFCs -- `/rfc-list review` - Show only RFCs in review - -## Workflow - -1. **Fetch RFC-Index** - - Call `get_wiki_page` for "RFC-Index" - - Handle missing index gracefully - -2. **Parse Sections** - - Extract tables from each status section - - Parse RFC number, title, and metadata from each row - -3. **Display Results** - - Group by status - - Highlight Approved section (ready for planning) - - Show counts per status - -## Visual Output - -``` -+----------------------------------------------------------------------+ -| PROJMAN - RFC Index | -+----------------------------------------------------------------------+ - -## Approved (Ready for Sprint Planning) - -| RFC | Title | Champion | Created | -|-----|-------|----------|---------| -| RFC-0003 | Feature X | @user | 2026-01-15 | -| RFC-0007 | Enhancement Y | @user | 2026-01-28 | - -## In Review (2) - -| RFC | Title | Author | Created | -|-----|-------|--------|---------| -| RFC-0004 | Feature Y | @user | 2026-01-20 | -| RFC-0008 | Idea Z | @user | 2026-01-29 | - -## Draft (3) - -| RFC | Title | Author | Created | -|-----|-------|--------|---------| -| RFC-0005 | Concept A | @user | 2026-01-22 | -| RFC-0009 | Proposal B | @user | 2026-01-30 | -| RFC-0010 | Sketch C | @user | 2026-01-30 | - -## Implementing (1) - -| RFC | Title | Sprint | Started | -|-----|-------|--------|---------| -| RFC-0002 | Feature W | Sprint 18 | 2026-01-22 | - -## Implemented (1) - -| RFC | Title | Completed | Release | -|-----|-------|-----------|---------| -| RFC-0001 | Initial Feature | 2026-01-10 | v5.0.0 | - -## Rejected (0) - -(none) - -## Stale (0) - -(none) - ---- -Total: 10 RFCs | 2 Approved | 1 Implementing -``` - -## Edge Cases - -- **No RFC-Index**: Display message "No RFCs yet. Create one with /rfc-create" -- **Empty sections**: Show "(none)" for empty status categories -- **Filter applied**: Only show matching section, still show total counts diff --git a/plugins/projman/commands/rfc-reject.md b/plugins/projman/commands/rfc-reject.md deleted file mode 100644 index 9cee144..0000000 --- a/plugins/projman/commands/rfc-reject.md +++ /dev/null @@ -1,90 +0,0 @@ ---- -description: Reject an RFC with documented reason, marking it as declined -agent: planner ---- - -# Reject RFC - -## Skills Required - -- skills/mcp-tools-reference.md -- skills/rfc-workflow.md -- skills/rfc-templates.md - -## Purpose - -Transition an RFC to Rejected status with a documented reason. Rejected RFCs remain in the wiki for historical reference but are marked as declined. - -## Invocation - -Run `/rfc-reject ` where number is the RFC number: -- `/rfc-reject 0006` -- `/rfc-reject 6` (leading zeros optional) - -## Workflow - -1. **Validate RFC Number** - - Normalize input (add leading zeros if needed) - - Fetch RFC page: `RFC-NNNN: *` - -2. **Check Current Status** - - Parse frontmatter to get current status - - **STOP** if status is not "Draft" or "Review" - - Error: "RFC-NNNN is in [status] status. Only Draft or Review RFCs can be rejected." - -3. **Require Rejection Reason** - - Prompt: "Please provide the rejection reason (required):" - - **STOP** if no reason provided - - Error: "Rejection reason is required to document why this RFC was declined." - -4. **Update RFC Page** - - Change status: [current] → Rejected - - Update "Updated" date - - Add/update Decision section: - ```markdown - ## Decision - - **Decision:** Rejected - **Date:** YYYY-MM-DD - **Decided By:** @[current user or maintainer] - - **Reason:** - - [User-provided rejection reason] - ``` - -5. **Update RFC-Index** - - Remove entry from current section ("## Draft" or "## In Review") - - Add entry to "## Rejected" section with reason summary - -6. **Confirm Rejection** - - Display updated status - - Note that RFC remains in wiki for reference - -## Visual Output - -``` -+----------------------------------------------------------------------+ -| PROJMAN - RFC Rejection | -+----------------------------------------------------------------------+ - -RFC-0006: Proposed Feature has been rejected. - -Status: Review → Rejected -Reason: Out of scope for current project direction - -The RFC remains in the wiki for historical reference. -If circumstances change, a new RFC can be created. -``` - -## Validation Errors - -- **RFC not found**: "RFC-NNNN not found. Check the number with /rfc-list" -- **Wrong status**: "RFC-NNNN is [status]. Only Draft or Review RFCs can be rejected." -- **No reason provided**: "Rejection reason is required. Please document why this RFC is being declined." - -## Notes - -- Rejected is a terminal state -- To reconsider, create a new RFC that references the rejected one -- Rejection reasons help future contributors understand project direction diff --git a/plugins/projman/commands/rfc-review.md b/plugins/projman/commands/rfc-review.md deleted file mode 100644 index f706541..0000000 --- a/plugins/projman/commands/rfc-review.md +++ /dev/null @@ -1,81 +0,0 @@ ---- -description: Submit a Draft RFC for review, transitioning status to Review -agent: planner ---- - -# Submit RFC for Review - -## Skills Required - -- skills/mcp-tools-reference.md -- skills/rfc-workflow.md -- skills/rfc-templates.md - -## Purpose - -Transition an RFC from Draft to Review status, indicating it's ready for maintainer evaluation. Optionally assign a champion to shepherd the RFC through review. - -## Invocation - -Run `/rfc-review ` where number is the RFC number: -- `/rfc-review 0001` -- `/rfc-review 1` (leading zeros optional) - -## Workflow - -1. **Validate RFC Number** - - Normalize input (add leading zeros if needed) - - Fetch RFC page: `RFC-NNNN: *` - -2. **Check Current Status** - - Parse frontmatter to get current status - - **STOP** if status is not "Draft" - - Error: "RFC-NNNN is in [status] status. Only Draft RFCs can be submitted for review." - -3. **Validate Minimum Content** - - Check for Summary section (required) - - Check for Motivation section (required) - - Check for Detailed Design > Overview (required) - - Warn if Alternatives Considered is empty - -4. **Optional: Assign Champion** - - Ask: "Would you like to assign a champion? (Enter username or skip)" - - Champion is responsible for driving the RFC through review - -5. **Update RFC Page** - - Change status: Draft → Review - - Update "Updated" date - - Set Champion if provided - - Add Review Notes section if not present - -6. **Update RFC-Index** - - Remove entry from "## Draft" section - - Add entry to "## In Review" section - -7. **Confirm Transition** - - Display updated status - - Note next steps (review discussion, then /rfc-approve or /rfc-reject) - -## Visual Output - -``` -+----------------------------------------------------------------------+ -| PROJMAN - RFC Review Submission | -+----------------------------------------------------------------------+ - -RFC-0005: Feature Idea submitted for review - -Status: Draft → Review -Champion: @assigned_user (or: unassigned) -Updated: RFC-Index - -Next steps: -- Discuss in RFC wiki page comments or meetings -- When decision reached: /rfc-approve 0005 or /rfc-reject 0005 -``` - -## Validation Errors - -- **RFC not found**: "RFC-NNNN not found. Check the number with /rfc-list" -- **Wrong status**: "RFC-NNNN is [status]. Only Draft RFCs can be reviewed." -- **Missing sections**: "RFC-NNNN is missing required sections: [list]. Please complete before review." diff --git a/plugins/projman/commands/rfc.md b/plugins/projman/commands/rfc.md new file mode 100644 index 0000000..75dcedc --- /dev/null +++ b/plugins/projman/commands/rfc.md @@ -0,0 +1,144 @@ +--- +description: RFC lifecycle management - create, list, review, approve, reject +agent: planner +--- + +# RFC Management + +## Skills Required + +- skills/mcp-tools-reference.md +- skills/rfc-workflow.md +- skills/rfc-templates.md + +## Purpose + +Manage the full RFC lifecycle through sub-commands. RFCs provide a structured way to document, discuss, and approve changes before implementation. + +## Invocation + +``` +/rfc [arguments] +``` + +### Sub-Commands + +| Sub-Command | Usage | Description | +|-------------|-------|-------------| +| `create` | `/rfc create` | Create new RFC from conversation or clarified spec | +| `list` | `/rfc list [filter]` | List all RFCs grouped by status | +| `review` | `/rfc review ` | Submit Draft RFC for review | +| `approve` | `/rfc approve ` | Approve RFC in Review status | +| `reject` | `/rfc reject ` | Reject RFC with documented reason | + +--- + +## Sub-Command: create + +Create a new RFC wiki page to track a feature idea through the review lifecycle. + +**Workflow:** +1. Check if conversation has clarified specification (from `/clarify`) +2. If no context: prompt for Summary, Motivation, and initial Design +3. Call `allocate_rfc_number` MCP tool for next sequential number +4. Create RFC page using template from `skills/rfc-templates.md` +5. Update RFC-Index wiki page (create if doesn't exist) +6. Display RFC number, wiki link, and next steps + +**Input Mapping (from /clarify):** + +| Clarify Section | RFC Section | +|-----------------|-------------| +| Problem/Context | Motivation > Problem Statement | +| Goals/Outcomes | Motivation > Goals | +| Scope/Requirements | Detailed Design > Overview | +| Constraints | Non-Goals or Detailed Design | +| Success Criteria | Testing Strategy | + +**Edge cases:** +- No RFC-Index exists: Create it with empty sections +- User provides minimal input: Create minimal RFC template, note sections to fill +- Duplicate title: Proceed (RFC numbers are unique, titles don't need to be) + +--- + +## Sub-Command: list + +Display all RFCs grouped by lifecycle status. + +**Filters:** `/rfc list approved`, `/rfc list draft`, `/rfc list review` + +**Workflow:** +1. Fetch RFC-Index wiki page via `get_wiki_page` +2. Parse tables from each status section +3. Display grouped by status, highlight Approved section +4. Show counts per status + +**Edge cases:** +- No RFC-Index: "No RFCs yet. Create one with `/rfc create`" +- Empty sections: Show "(none)" + +--- + +## Sub-Command: review + +Submit a Draft RFC for review, transitioning status to Review. + +**Usage:** `/rfc review ` (leading zeros optional) + +**Workflow:** +1. Validate RFC number, fetch page +2. Check status is Draft - STOP if not +3. Validate minimum content (Summary, Motivation, Detailed Design > Overview required) +4. Optionally assign champion +5. Update RFC page: status Draft -> Review, update date +6. Update RFC-Index: move from Draft to In Review section + +--- + +## Sub-Command: approve + +Approve an RFC in Review status for sprint planning. + +**Usage:** `/rfc approve ` (leading zeros optional) + +**Workflow:** +1. Validate RFC number, fetch page +2. Check status is Review - STOP if not +3. Gather approval rationale (required) +4. Update RFC page: status Review -> Approved, add Decision section +5. Update RFC-Index: move from In Review to Approved section + +--- + +## Sub-Command: reject + +Reject an RFC with documented reason. + +**Usage:** `/rfc reject ` (leading zeros optional) + +**Workflow:** +1. Validate RFC number, fetch page +2. Check status is Draft or Review - STOP if not +3. Require rejection reason (mandatory) +4. Update RFC page: status -> Rejected, add Decision section +5. Update RFC-Index: move to Rejected section + +--- + +## Visual Output + +``` ++----------------------------------------------------------------------+ +| PROJMAN - RFC [Sub-Command] | ++----------------------------------------------------------------------+ +``` + +--- + +## Validation Errors (All Sub-Commands) + +- **RFC not found**: "RFC-NNNN not found. Check the number with `/rfc list`" +- **Wrong status**: "RFC-NNNN is in [status] status. [Specific allowed statuses for this action]." +- **Missing required input**: Specific message per sub-command +- **No sub-command provided**: Display sub-command reference table diff --git a/plugins/projman/commands/setup.md b/plugins/projman/commands/setup.md index 77322cf..ac70dd4 100644 --- a/plugins/projman/commands/setup.md +++ b/plugins/projman/commands/setup.md @@ -26,6 +26,7 @@ Unified setup command for all configuration needs. /setup --full # Full wizard (MCP + system + project) /setup --quick # Project-only setup /setup --sync # Update after repo move +/setup --clear-cache # Clear plugin cache (between sessions only) ``` ## Mode Detection @@ -79,6 +80,21 @@ Steps: 6. Update `.env` 7. Confirm +## Mode: Clear Cache (--clear-cache) + +Clear plugin cache to force fresh configuration reload. + +**WARNING:** Only run between sessions, never mid-session. Clearing cache mid-session destroys MCP tool venv paths and breaks all MCP operations. + +Steps: +1. Execute: `rm -rf ~/.claude/plugins/cache/leo-claude-mktplace/` +2. Inform user: "Cache cleared. Restart Claude Code for changes to take effect." + +When to use: +- After updating the marketplace (`git pull` or reinstall) +- When MCP servers show stale configuration +- When plugin changes don't take effect + ## Visual Output ``` diff --git a/plugins/projman/skills/rfc-templates.md b/plugins/projman/skills/rfc-templates.md index 9c0b1c9..974d4f6 100644 --- a/plugins/projman/skills/rfc-templates.md +++ b/plugins/projman/skills/rfc-templates.md @@ -11,7 +11,7 @@ Provides templates for RFC wiki pages and defines the required/optional sections ## When to Use -- **Commands**: `/rfc-create` when generating new RFC pages +- **Commands**: `/rfc create` when generating new RFC pages - **Integration**: Referenced by `rfc-workflow.md` for page structure --- diff --git a/plugins/projman/skills/rfc-workflow.md b/plugins/projman/skills/rfc-workflow.md index 5cf609d..ea6b570 100644 --- a/plugins/projman/skills/rfc-workflow.md +++ b/plugins/projman/skills/rfc-workflow.md @@ -12,7 +12,7 @@ Defines the Request for Comments (RFC) system for capturing, reviewing, and trac ## When to Use - **Planner agent**: When detecting approved RFCs for sprint planning -- **Commands**: `/rfc-create`, `/rfc-list`, `/rfc-review`, `/rfc-approve`, `/rfc-reject` +- **Commands**: `/rfc create`, `/rfc list`, `/rfc review`, `/rfc approve`, `/rfc reject` - **Integration**: With `/sprint-plan` to select approved RFCs for implementation --- @@ -298,11 +298,11 @@ When RFC status changes: | Component | How It Uses RFC System | |-----------|------------------------| -| `/rfc-create` | Creates RFC page + updates RFC-Index | -| `/rfc-list` | Reads and displays RFC-Index | -| `/rfc-review` | Transitions Draft → Review | -| `/rfc-approve` | Transitions Review → Approved | -| `/rfc-reject` | Transitions Review/Draft → Rejected | +| `/rfc create` | Creates RFC page + updates RFC-Index | +| `/rfc list` | Reads and displays RFC-Index | +| `/rfc review` | Transitions Draft -> Review | +| `/rfc approve` | Transitions Review -> Approved | +| `/rfc reject` | Transitions Review/Draft -> Rejected | | `/sprint-plan` | Detects Approved RFCs, transitions to Implementing | -| `/sprint-close` | Transitions Implementing → Implemented | -| `clarity-assist` | Suggests `/rfc-create` for feature ideas | +| `/sprint-close` | Transitions Implementing -> Implemented | +| `clarity-assist` | Suggests `/rfc create` for feature ideas |