feat: complete Phase 2 & 3 - projman plugin with commands and agents
Implemented complete projman plugin foundation for sprint planning and
project management with Gitea and Wiki.js integration.
Phase 2: Commands (5 total)
- /sprint-plan: AI-guided planning with planner agent
- /sprint-start: Sprint execution with orchestrator agent
- /sprint-status: Quick progress check
- /sprint-close: Lessons learned capture
- /labels-sync: Label taxonomy synchronization
Phase 3: Agents (3 total)
- Planner: Thoughtful sprint planning, asks questions, searches lessons
- Orchestrator: Concise coordination, lean prompts, tracks progress
- Executor: Precise implementation, follows specs, applies lessons
Components:
- plugin.json: Valid manifest with 5 commands, 3 agents, 1 skill
- .mcp.json: MCP configuration for Gitea + Wiki.js servers
- Label taxonomy skill with dynamic 44-label system
- README.md: Complete usage guide (409 lines)
- CONFIGURATION.md: Step-by-step setup instructions
- Local test marketplace for validation
Features:
- Branch-aware security (development/staging/production)
- Dynamic label taxonomy (fetched from Gitea, never hardcoded)
- Lessons learned integration (search at start, capture at close)
- Hybrid configuration (system + project level)
- Security best practices (${CLAUDE_PLUGIN_ROOT}, path safety)
Total: 13 plugin files, ~3,719 lines of documentation
Testing: docs/TEST_01_PROJMAN.md provides comprehensive testing plan
Ready for Phase 5: Testing & Validation
🤖 Generated with [Claude Code](https://claude.com/claude-code)
Co-Authored-By: Claude <noreply@anthropic.com>
This commit is contained in:
439
projman/README.md
Normal file
439
projman/README.md
Normal file
@@ -0,0 +1,439 @@
|
||||
# Projman - Project Management for Claude Code
|
||||
|
||||
Sprint planning and project management plugin with Gitea and Wiki.js integration.
|
||||
|
||||
## Overview
|
||||
|
||||
Projman transforms a proven 15-sprint workflow into a distributable Claude Code plugin. It provides AI-guided sprint planning, intelligent issue creation with label taxonomy, and systematic lessons learned capture to prevent repeated mistakes.
|
||||
|
||||
**Key Features:**
|
||||
- 🎯 **Sprint Planning** - AI-guided architecture analysis and issue creation
|
||||
- 🏷️ **Smart Label Suggestions** - Intelligent label recommendations from 44-label taxonomy
|
||||
- 📚 **Lessons Learned** - Systematic capture and search of sprint insights
|
||||
- 🔒 **Branch-Aware Security** - Prevents accidental changes on production branches
|
||||
- ⚙️ **Hybrid Configuration** - Simple setup with system + project-level config
|
||||
- 🤖 **Three-Agent Model** - Planner, Orchestrator, and Executor agents
|
||||
|
||||
## Quick Start
|
||||
|
||||
### 1. Prerequisites
|
||||
|
||||
- Claude Code installed
|
||||
- Access to Gitea instance with API token
|
||||
- Access to Wiki.js instance with API token
|
||||
- Python 3.10+ installed
|
||||
- Git repository initialized
|
||||
|
||||
### 2. Install MCP Servers
|
||||
|
||||
The plugin requires two shared MCP servers:
|
||||
|
||||
```bash
|
||||
# Navigate to MCP servers directory
|
||||
cd ../mcp-servers/gitea
|
||||
python -m venv .venv
|
||||
source .venv/bin/activate # or .venv\Scripts\activate on Windows
|
||||
pip install -r requirements.txt
|
||||
|
||||
cd ../wikijs
|
||||
python -m venv .venv
|
||||
source .venv/bin/activate
|
||||
pip install -r requirements.txt
|
||||
```
|
||||
|
||||
See [CONFIGURATION.md](./CONFIGURATION.md) for detailed setup instructions.
|
||||
|
||||
### 3. Configure System-Level Settings
|
||||
|
||||
Create system-wide configuration with your Gitea and Wiki.js credentials:
|
||||
|
||||
```bash
|
||||
mkdir -p ~/.config/claude
|
||||
|
||||
# Gitea configuration
|
||||
cat > ~/.config/claude/gitea.env << EOF
|
||||
GITEA_API_URL=https://gitea.hotserv.cloud/api/v1
|
||||
GITEA_API_TOKEN=your_gitea_token_here
|
||||
GITEA_OWNER=hhl-infra
|
||||
EOF
|
||||
|
||||
# Wiki.js configuration
|
||||
cat > ~/.config/claude/wikijs.env << EOF
|
||||
WIKIJS_API_URL=https://wiki.hyperhivelabs.com/graphql
|
||||
WIKIJS_API_TOKEN=your_wikijs_token_here
|
||||
WIKIJS_BASE_PATH=/hyper-hive-labs
|
||||
EOF
|
||||
|
||||
# Secure the files
|
||||
chmod 600 ~/.config/claude/*.env
|
||||
```
|
||||
|
||||
### 4. Configure Project-Level Settings
|
||||
|
||||
In your project root directory, create a `.env` file:
|
||||
|
||||
```bash
|
||||
# In your project directory
|
||||
cat > .env << EOF
|
||||
GITEA_REPO=your-repo-name
|
||||
WIKIJS_PROJECT=projects/your-project-name
|
||||
EOF
|
||||
|
||||
# Add to .gitignore
|
||||
echo ".env" >> .gitignore
|
||||
```
|
||||
|
||||
### 5. Sync Label Taxonomy
|
||||
|
||||
Fetch the label taxonomy from Gitea:
|
||||
|
||||
```bash
|
||||
/labels-sync
|
||||
```
|
||||
|
||||
### 6. Start Planning!
|
||||
|
||||
```bash
|
||||
/sprint-plan
|
||||
```
|
||||
|
||||
## Commands
|
||||
|
||||
### `/sprint-plan`
|
||||
Start sprint planning with the AI planner agent.
|
||||
|
||||
**What it does:**
|
||||
- Asks clarifying questions about sprint goals
|
||||
- Searches relevant lessons learned from previous sprints
|
||||
- Performs architecture analysis
|
||||
- Creates Gitea issues with intelligent label suggestions
|
||||
- Generates planning document
|
||||
|
||||
**When to use:** Beginning of a new sprint or when planning a major feature
|
||||
|
||||
**Example:**
|
||||
```
|
||||
/sprint-plan
|
||||
|
||||
> "I want to plan a sprint for user authentication"
|
||||
```
|
||||
|
||||
### `/sprint-start`
|
||||
Begin sprint execution with the orchestrator agent.
|
||||
|
||||
**What it does:**
|
||||
- Reviews open sprint issues
|
||||
- Searches relevant lessons learned by tags
|
||||
- Identifies next task based on priority and dependencies
|
||||
- Generates lean execution prompts
|
||||
- Tracks progress
|
||||
|
||||
**When to use:** After planning, when ready to start implementation
|
||||
|
||||
**Example:**
|
||||
```
|
||||
/sprint-start
|
||||
```
|
||||
|
||||
### `/sprint-status`
|
||||
Check current sprint progress.
|
||||
|
||||
**What it does:**
|
||||
- Lists all sprint issues by status (open, in progress, blocked, completed)
|
||||
- Identifies blockers and priorities
|
||||
- Shows completion percentage
|
||||
- Highlights critical items needing attention
|
||||
|
||||
**When to use:** Daily standup, progress check, deciding what to work on next
|
||||
|
||||
**Example:**
|
||||
```
|
||||
/sprint-status
|
||||
```
|
||||
|
||||
### `/sprint-close`
|
||||
Complete sprint and capture lessons learned.
|
||||
|
||||
**What it does:**
|
||||
- Reviews sprint completion
|
||||
- Captures lessons learned (what went wrong, what went right)
|
||||
- Tags lessons for discoverability
|
||||
- Saves lessons to Wiki.js
|
||||
- Handles git operations (merge, tag, cleanup)
|
||||
|
||||
**When to use:** End of sprint, before starting the next one
|
||||
|
||||
**Example:**
|
||||
```
|
||||
/sprint-close
|
||||
```
|
||||
|
||||
**CRITICAL:** Don't skip this! After 15 sprints without lesson capture, teams repeat the same mistakes.
|
||||
|
||||
### `/labels-sync`
|
||||
Synchronize label taxonomy from Gitea.
|
||||
|
||||
**What it does:**
|
||||
- Fetches current labels from Gitea (org + repo)
|
||||
- Compares with local reference
|
||||
- Detects changes (new, modified, removed labels)
|
||||
- Updates local taxonomy reference
|
||||
- Updates suggestion logic
|
||||
|
||||
**When to use:**
|
||||
- First-time setup
|
||||
- Monthly maintenance
|
||||
- When new labels are added to Gitea
|
||||
- When label suggestions seem incorrect
|
||||
|
||||
**Example:**
|
||||
```
|
||||
/labels-sync
|
||||
```
|
||||
|
||||
## Agents
|
||||
|
||||
### Planner Agent
|
||||
**Personality:** Thoughtful, methodical, asks clarifying questions
|
||||
|
||||
**Responsibilities:**
|
||||
- Sprint planning and architecture analysis
|
||||
- Asking clarifying questions before making assumptions
|
||||
- Searching relevant lessons learned
|
||||
- Creating well-structured Gitea issues
|
||||
- Suggesting appropriate labels based on context
|
||||
|
||||
**Invoked by:** `/sprint-plan`
|
||||
|
||||
### Orchestrator Agent
|
||||
**Personality:** Concise, action-oriented, detail-focused
|
||||
|
||||
**Responsibilities:**
|
||||
- Coordinating sprint execution
|
||||
- Generating lean execution prompts (not full documents)
|
||||
- Tracking progress meticulously
|
||||
- Managing Git operations
|
||||
- Handling task dependencies
|
||||
- Capturing lessons learned at sprint close
|
||||
|
||||
**Invoked by:** `/sprint-start`, `/sprint-close`
|
||||
|
||||
### Executor Agent
|
||||
**Personality:** Implementation-focused, follows specs precisely
|
||||
|
||||
**Responsibilities:**
|
||||
- Providing implementation guidance
|
||||
- Writing clean, tested code
|
||||
- Following architectural decisions from planning
|
||||
- Generating completion reports
|
||||
- Code review and quality standards
|
||||
|
||||
**Usage:** Can be invoked by the orchestrator when implementation guidance is needed.
|
||||
|
||||
## Label Taxonomy
|
||||
|
||||
The plugin uses a dynamic 44-label taxonomy (28 organization + 16 repository):
|
||||
|
||||
**Organization Labels:**
|
||||
- Agent/* (2): Human, Claude
|
||||
- Complexity/* (3): Simple, Medium, Complex
|
||||
- Efforts/* (5): XS, S, M, L, XL
|
||||
- Priority/* (4): Low, Medium, High, Critical
|
||||
- Risk/* (3): Low, Medium, High
|
||||
- Source/* (4): Development, Staging, Production, Customer
|
||||
- Type/* (6): Bug, Feature, Refactor, Documentation, Test, Chore
|
||||
|
||||
**Repository Labels:**
|
||||
- Component/* (9): Backend, Frontend, API, Database, Auth, Deploy, Testing, Docs, Infra
|
||||
- Tech/* (7): Python, JavaScript, Docker, PostgreSQL, Redis, Vue, FastAPI
|
||||
|
||||
Labels are fetched dynamically from Gitea using `/labels-sync`.
|
||||
|
||||
## Branch-Aware Security
|
||||
|
||||
The plugin implements defense-in-depth branch detection to prevent accidental changes on production:
|
||||
|
||||
**Development Branches** (`development`, `develop`, `feat/*`, `dev/*`):
|
||||
- ✅ Full planning and execution capabilities
|
||||
- ✅ Can create and modify issues
|
||||
- ✅ Can capture lessons learned
|
||||
|
||||
**Staging Branches** (`staging`, `stage/*`):
|
||||
- ✅ Can create issues to document bugs
|
||||
- ❌ Cannot modify code
|
||||
- ⚠️ Warns when attempting changes
|
||||
|
||||
**Production Branches** (`main`, `master`, `prod/*`):
|
||||
- ✅ Read-only access
|
||||
- ❌ Cannot create issues
|
||||
- ❌ Cannot modify code
|
||||
- 🛑 Blocks all planning and execution
|
||||
|
||||
## Lessons Learned System
|
||||
|
||||
**Why it matters:** After 15 sprints without lesson capture, repeated mistakes occurred:
|
||||
- Claude Code infinite loops on similar issues (2-3 times)
|
||||
- Same architectural mistakes (multiple occurrences)
|
||||
- Forgotten optimizations (re-discovered each time)
|
||||
|
||||
**Solution:** Mandatory lessons learned capture at sprint close, searchable at sprint start.
|
||||
|
||||
**Workflow:**
|
||||
1. **Sprint Close:** Orchestrator captures lessons (what went wrong, what went right, preventable mistakes)
|
||||
2. **Wiki.js Storage:** Lessons saved to `/projects/{project}/lessons-learned/sprints/`
|
||||
3. **Sprint Start:** Planner searches relevant lessons by tags and keywords
|
||||
4. **Prevention:** Apply learned insights to avoid repeating mistakes
|
||||
|
||||
**Lesson Structure:**
|
||||
```markdown
|
||||
# Sprint X - [Lesson Title]
|
||||
|
||||
## Context
|
||||
[What were you trying to do?]
|
||||
|
||||
## Problem
|
||||
[What went wrong or what insight emerged?]
|
||||
|
||||
## Solution
|
||||
[How did you solve it?]
|
||||
|
||||
## Prevention
|
||||
[How can this be avoided in the future?]
|
||||
|
||||
## Tags
|
||||
[technology, component, type]
|
||||
```
|
||||
|
||||
## Configuration
|
||||
|
||||
See [CONFIGURATION.md](./CONFIGURATION.md) for detailed configuration instructions.
|
||||
|
||||
**Quick summary:**
|
||||
- **System-level:** `~/.config/claude/gitea.env` and `wikijs.env` (credentials)
|
||||
- **Project-level:** `.env` in project root (repository and project paths)
|
||||
- **MCP Servers:** Located at `../mcp-servers/` (shared by multiple plugins)
|
||||
|
||||
## Troubleshooting
|
||||
|
||||
### Plugin not loading
|
||||
- Check that MCP servers are installed: `ls ../mcp-servers/gitea/.venv`
|
||||
- Verify plugin manifest: `cat .claude-plugin/plugin.json | jq`
|
||||
- Check Claude Code logs for errors
|
||||
|
||||
### Cannot connect to Gitea
|
||||
- Verify `~/.config/claude/gitea.env` exists and has correct URL and token
|
||||
- Test token: `curl -H "Authorization: token YOUR_TOKEN" https://gitea.hotserv.cloud/api/v1/user`
|
||||
- Check network connectivity
|
||||
|
||||
### Cannot connect to Wiki.js
|
||||
- Verify `~/.config/claude/wikijs.env` exists and has correct URL and token
|
||||
- Check Wiki.js GraphQL endpoint: `https://wiki.hyperhivelabs.com/graphql`
|
||||
- Verify API token has pages read/write permissions
|
||||
|
||||
### Labels not syncing
|
||||
- Run `/labels-sync` manually
|
||||
- Check Gitea API token has `read:org` and `repo` permissions
|
||||
- Verify repository name in `.env` matches Gitea
|
||||
|
||||
### Branch detection not working
|
||||
- Ensure you're in a git repository: `git status`
|
||||
- Check current branch: `git branch --show-current`
|
||||
- If on wrong branch, switch: `git checkout development`
|
||||
|
||||
## Architecture
|
||||
|
||||
```
|
||||
projman/
|
||||
├── .claude-plugin/
|
||||
│ └── plugin.json # Plugin manifest
|
||||
├── .mcp.json # MCP server configuration
|
||||
├── commands/ # Slash commands
|
||||
│ ├── sprint-plan.md
|
||||
│ ├── sprint-start.md
|
||||
│ ├── sprint-status.md
|
||||
│ ├── sprint-close.md
|
||||
│ └── labels-sync.md
|
||||
├── agents/ # Agent prompts (Phase 3)
|
||||
│ ├── planner.md
|
||||
│ ├── orchestrator.md
|
||||
│ └── executor.md
|
||||
├── skills/ # Supporting knowledge
|
||||
│ └── label-taxonomy/
|
||||
│ └── labels-reference.md
|
||||
├── README.md # This file
|
||||
└── CONFIGURATION.md # Setup guide
|
||||
```
|
||||
|
||||
**MCP Servers (shared):**
|
||||
```
|
||||
../mcp-servers/
|
||||
├── gitea/ # Gitea MCP server
|
||||
│ ├── .venv/
|
||||
│ ├── mcp_server/
|
||||
│ └── tests/
|
||||
└── wikijs/ # Wiki.js MCP server
|
||||
├── .venv/
|
||||
├── mcp_server/
|
||||
└── tests/
|
||||
```
|
||||
|
||||
## Workflow Example
|
||||
|
||||
**Complete Sprint Lifecycle:**
|
||||
|
||||
```bash
|
||||
# 1. Plan the sprint
|
||||
/sprint-plan
|
||||
> "Extract Intuit Engine service from monolith"
|
||||
[Planner asks questions, searches lessons, creates issues]
|
||||
|
||||
# 2. Start execution
|
||||
/sprint-start
|
||||
[Orchestrator reviews issues, finds relevant lessons, identifies next task]
|
||||
|
||||
# 3. Check progress daily
|
||||
/sprint-status
|
||||
[See completion percentage, blockers, priorities]
|
||||
|
||||
# 4. Close sprint and capture lessons
|
||||
/sprint-close
|
||||
[Orchestrator captures lessons learned, saves to Wiki.js]
|
||||
|
||||
# Next sprint uses those lessons automatically!
|
||||
```
|
||||
|
||||
## Support
|
||||
|
||||
**Documentation:**
|
||||
- [CONFIGURATION.md](./CONFIGURATION.md) - Setup and configuration
|
||||
- [Gitea MCP Server](../mcp-servers/gitea/README.md) - Gitea integration details
|
||||
- [Wiki.js MCP Server](../mcp-servers/wikijs/README.md) - Wiki.js integration details
|
||||
|
||||
**Issues:**
|
||||
- Report bugs: https://gitea.hotserv.cloud/hhl-infra/claude-code-hhl-toolkit/issues
|
||||
- Feature requests: Same issue tracker
|
||||
- Documentation improvements: Submit PR
|
||||
|
||||
## License
|
||||
|
||||
MIT License - See repository root for details
|
||||
|
||||
## Related Plugins
|
||||
|
||||
- **projman-pmo** - Multi-project PMO coordination (build after projman is validated)
|
||||
|
||||
## Version
|
||||
|
||||
**Current:** 0.1.0 (Phase 2 - Commands implemented)
|
||||
|
||||
**Roadmap:**
|
||||
- Phase 3: Agent system implementation
|
||||
- Phase 4: Lessons learned integration
|
||||
- Phase 5: Testing and validation
|
||||
- Phase 6-8: Documentation, marketplace, production
|
||||
|
||||
---
|
||||
|
||||
**Built for:** HyperHive Labs
|
||||
**Status:** Phase 2 Complete - Commands ready for testing
|
||||
**Next:** Implement agent system (Phase 3)
|
||||
Reference in New Issue
Block a user