54 KiB
ProjMan Plugin Suite - Implementation Plan
Plugins: projman (single-repo) + projman-pmo (multi-project)
Build Order: projman first, then projman-pmo
Label System: Type/Refactor now implemented at organization level
Configuration: Hybrid approach (system + project level)
Technology Stack: Python (MCP server), Markdown (commands/agents)
⚠️ IMPORTANT: For the definitive, authoritative repository structure, always refer to CORRECT-ARCHITECTURE.md. If this document conflicts with CORRECT-ARCHITECTURE.md, CORRECT-ARCHITECTURE.md is correct.
Configuration Architecture
Two MCP Server Design (Shared Codebase)
Architecture Decision: Both plugins (projman and projman-pmo) share the same MCP server codebase. The MCP servers detect their mode (project-scoped vs company-wide) based on environment variables.
Separation of Concerns:
- Gitea MCP Server: Issues, labels, repository data
- Wiki.js MCP Server: Documentation, lessons learned, knowledge base
Repository Structure:
hyperhivelabs/claude-plugins/
├── mcp-servers/ # Shared by both plugins
│ ├── gitea/
│ └── wikijs/
├── projman/ # Project plugin
└── projman-pmo/ # PMO plugin
Benefits:
✅ Single source of truth - fix bugs once, both plugins benefit
✅ Less code duplication and maintenance
✅ MCP servers already handle both modes
✅ Independent service configuration (Gitea vs Wiki.js)
✅ Can enable/disable each service independently
✅ Wiki.js shared across entire company (not just projects)
✅ Easier to maintain and debug
✅ Professional architecture
System-Level Configuration (Shared)
Gitea Configuration:
Location: ~/.config/claude/gitea.env
GITEA_API_URL=https://gitea.hyperhivelabs.com/api/v1
GITEA_API_TOKEN=your_gitea_token
GITEA_OWNER=hyperhivelabs
Wiki.js Configuration:
Location: ~/.config/claude/wikijs.env
WIKIJS_API_URL=https://wiki.hyperhivelabs.com/graphql
WIKIJS_API_TOKEN=your_wikijs_token
WIKIJS_BASE_PATH=/hyper-hive-labs
Used by: Both projman and pmo plugins
Project-Level Configuration
Location: project-root/.env
Contains:
# Gitea repository name
GITEA_REPO=cuisineflow
# Wiki.js project path (relative to /hyper-hive-labs)
WIKIJS_PROJECT=projects/cuisineflow
Used by: projman plugin only (pmo operates across all repos/projects)
Wiki.js Structure
Wiki.js
└── hyper-hive-labs/
├── projects/ # Project-specific documentation
│ ├── cuisineflow/
│ │ ├── lessons-learned/
│ │ │ ├── sprints/
│ │ │ └── INDEX.md
│ │ └── documentation/
│ │ ├── architecture/
│ │ └── api/
│ ├── cuisineflow-site/
│ │ ├── lessons-learned/
│ │ └── documentation/
│ ├── intuit-engine/
│ │ ├── lessons-learned/
│ │ └── documentation/
│ └── hhl-site/
│ ├── lessons-learned/
│ └── documentation/
├── company/ # Company-wide documentation
│ ├── processes/
│ ├── onboarding/
│ ├── standards/
│ └── tools/
└── shared/ # Cross-project resources
├── architecture-patterns/
├── best-practices/
└── tech-stack/
Path Resolution:
- projman:
{WIKIJS_BASE_PATH}/{WIKIJS_PROJECT}→/hyper-hive-labs/projects/cuisineflow - projman-pmo:
{WIKIJS_BASE_PATH}→/hyper-hive-labs(entire company namespace)
Benefits
✅ Single token per service - update once
✅ Project isolation - each repo declares its paths
✅ Company-wide documentation accessible
✅ PMO can see all projects
✅ Shared resources available to all
✅ Security - tokens never committed
✅ Portability - same system config for all projects
✅ Scalable - easy to add new projects
Phase 1: Core Infrastructure (projman)
1.1 MCP Server Foundation (Shared Infrastructure)
Deliverable: Two working MCP servers (Gitea and Wiki.js) with hybrid configuration, shared by both projman and projman-pmo plugins
Important: These MCP servers are built ONCE and shared by both plugins. They detect their operating mode (project-scoped vs company-wide) based on environment variables.
1.1a Gitea MCP Server
Tasks:
Configuration Setup:
- Design environment variable loading strategy:
- System-level:
~/.config/claude/gitea.env - Project-level:
project-root/.env - Merge strategy: project overrides system
- System-level:
- Create
.env.exampletemplate - Document configuration precedence rules
- Add validation for required variables
MCP Server Implementation:
- Set up Python project structure
- Create virtual environment (.venv)
- Install dependencies:
# requirements.txt anthropic-sdk>=0.18.0 python-dotenv>=1.0.0 requests>=2.31.0 pydantic>=2.5.0 pytest>=7.4.3 - Implement Gitea API authentication
- Create environment variable loader:
# config.py from pathlib import Path from dotenv import load_dotenv import os def load_config(): """Load configuration from system and project levels""" # Load system config system_config = Path.home() / '.config' / 'claude' / 'gitea.env' if system_config.exists(): load_dotenv(system_config) # Load project config (overrides system) project_config = Path.cwd() / '.env' if project_config.exists(): load_dotenv(project_config, override=True) # Validate required variables required = ['GITEA_API_URL', 'GITEA_API_TOKEN', 'GITEA_OWNER'] missing = [var for var in required if not os.getenv(var)] if missing: raise ValueError(f"Missing config: {', '.join(missing)}") return { 'api_url': os.getenv('GITEA_API_URL'), 'api_token': os.getenv('GITEA_API_TOKEN'), 'owner': os.getenv('GITEA_OWNER'), 'repo': os.getenv('GITEA_REPO') # Optional for PMO } - Validate all required variables present
- Create 7 core tools:
list_issues- Query issues with filtersget_issue- Fetch single issue detailscreate_issue- Create new issue with labelsupdate_issue- Modify existing issueadd_comment- Add comments to issuesget_labels- Fetch org + repo label taxonomysuggest_labels- Analyze context and suggest appropriate labels
Testing:
- Write integration tests against actual Gitea instance
- Test configuration loading from both levels
- Test missing configuration error handling
- Test API authentication with loaded credentials
Success Criteria:
- Configuration loads from both system and project levels
- Missing variables produce clear error messages
- All tools pass integration tests
- Label suggestion correctly identifies Type/Refactor
- Error handling for network failures and API rate limits
1.1b Wiki.js MCP Server
Tasks:
Configuration Setup:
- Design environment variable loading strategy:
- System-level:
~/.config/claude/wikijs.env - Project-level:
project-root/.env - Path composition:
{BASE_PATH}/{PROJECT_PATH}
- System-level:
- Create
.env.exampletemplate - Document path resolution rules
- Add validation for required variables
MCP Server Implementation:
- Set up Python project structure (separate from Gitea MCP)
- Create virtual environment (.venv)
- Install dependencies:
# requirements.txt anthropic-sdk>=0.18.0 python-dotenv>=1.0.0 gql>=3.4.0 # GraphQL client for Wiki.js aiohttp>=3.9.0 # Async HTTP pydantic>=2.5.0 pytest>=7.4.3 pytest-asyncio>=0.23.0 - Implement Wiki.js GraphQL authentication
- Create environment variable loader:
# config.py from pathlib import Path from dotenv import load_dotenv import os def load_config(): """Load Wiki.js configuration from system and project levels""" # Load system config system_config = Path.home() / '.config' / 'claude' / 'wikijs.env' if system_config.exists(): load_dotenv(system_config) # Load project config (overrides system) project_config = Path.cwd() / '.env' if project_config.exists(): load_dotenv(project_config, override=True) # Validate required variables required = ['WIKIJS_API_URL', 'WIKIJS_API_TOKEN', 'WIKIJS_BASE_PATH'] missing = [var for var in required if not os.getenv(var)] if missing: raise ValueError(f"Missing config: {', '.join(missing)}") # Compose full path base_path = os.getenv('WIKIJS_BASE_PATH') # /hyper-hive-labs project_path = os.getenv('WIKIJS_PROJECT') # projects/cuisineflow full_path = f"{base_path}/{project_path}" if project_path else base_path return { 'api_url': os.getenv('WIKIJS_API_URL'), 'api_token': os.getenv('WIKIJS_API_TOKEN'), 'base_path': base_path, 'project_path': project_path, 'full_path': full_path } - Validate all required variables present
- Create 8 core tools:
search_pages- Search Wiki.js pages by keywords/tagsget_page- Fetch specific page contentcreate_page- Create new Wiki pageupdate_page- Modify existing pagelist_pages- List pages in a pathcreate_lesson- Create lessons learned documentsearch_lessons- Search past lessons by tagstag_lesson- Add tags to lessons learned
GraphQL Client Example:
# wikijs_client.py
from gql import gql, Client
from gql.transport.aiohttp import AIOHTTPTransport
class WikiJSClient:
def __init__(self, api_url: str, api_token: str):
transport = AIOHTTPTransport(
url=api_url,
headers={'Authorization': f'Bearer {api_token}'}
)
self.client = Client(transport=transport, fetch_schema_from_transport=True)
async def search_pages(self, query: str, path: str = None):
"""Search pages in Wiki.js"""
gql_query = gql("""
query SearchPages($query: String!, $path: String) {
pages {
search(query: $query, path: $path) {
results {
id
path
title
description
tags
}
}
}
}
""")
result = await self.client.execute(
gql_query,
variable_values={'query': query, 'path': path}
)
return result['pages']['search']['results']
async def create_page(self, path: str, title: str, content: str, tags: list):
"""Create a new page in Wiki.js"""
gql_mutation = gql("""
mutation CreatePage($path: String!, $title: String!, $content: String!, $tags: [String]!) {
pages {
create(
path: $path
title: $title
content: $content
tags: $tags
) {
responseResult {
succeeded
errorCode
message
}
page {
id
path
}
}
}
}
""")
result = await self.client.execute(
gql_mutation,
variable_values={
'path': path,
'title': title,
'content': content,
'tags': tags
}
)
return result['pages']['create']
Testing:
- Write integration tests against actual Wiki.js instance
- Test configuration loading from both levels
- Test path composition and resolution
- Test GraphQL queries and mutations
- Test authentication with Wiki.js
Success Criteria:
- Configuration loads from both system and project levels
- Path composition works correctly
- Missing variables produce clear error messages
- All tools pass integration tests
- GraphQL queries execute successfully
- Error handling for network failures and API rate limits
- Lessons learned can be created and searched
1.2 Label Taxonomy System
Deliverable: Label reference with sync capability
Tasks:
- Create
skills/label-taxonomy/directory structure - Port
gitea-labels-reference.mdto plugin - Document exclusive vs non-exclusive label rules
- Build label suggestion logic:
- Type detection (Bug, Feature, Refactor, etc.)
- Component identification from context
- Priority inference from keywords
- Source detection based on branch
- Create
/labels-synccommand - Implement diff viewer for label changes
- Build interactive review workflow
Label Sync Workflow:
User: /labels-sync
Agent: Fetching labels from Gitea...
Found 1 new label: Type/Documentation
Found 2 modified descriptions
New: Type/Documentation
- For documentation-only changes
- Should update suggestion logic to detect "docs", "readme"
Modified: Priority/High
- Description clarified: "Blocks sprint completion"
Shall I update the local reference and suggestion rules?
User: Yes
Agent: Updated ✅
- labels-reference.md updated
- Suggestion logic updated
- 43 labels now in taxonomy
Success Criteria:
- Complete 43-label taxonomy documented
- Sync command fetches live data from Gitea
- Diff detection works correctly
- Agent provides meaningful impact analysis
- Local reference stays synchronized
1.3 Plugin Manifest & Structure
Deliverable: Complete projman plugin structure
Tasks:
- Create
.claude-plugin/plugin.json - Set up repository structure:
hyperhivelabs/claude-plugins/ ├── mcp-servers/ # Shared by both plugins │ ├── gitea/ │ │ ├── .venv/ │ │ ├── requirements.txt │ │ ├── .env.example │ │ ├── mcp_server/ │ │ │ ├── __init__.py │ │ │ ├── server.py │ │ │ ├── config.py # Detects project/company mode │ │ │ └── gitea_client.py │ │ └── tests/ │ └── wikijs/ │ ├── .venv/ │ ├── requirements.txt │ ├── .env.example │ ├── mcp_server/ │ │ ├── __init__.py │ │ ├── server.py │ │ ├── config.py # Detects project/company mode │ │ └── wikijs_client.py │ └── tests/ ├── projman/ # Project plugin │ ├── .claude-plugin/ │ │ └── plugin.json │ ├── .mcp.json # References ../mcp-servers/ │ ├── commands/ │ │ └── (will add in Phase 2) │ ├── agents/ │ │ └── (will add in Phase 3) │ ├── skills/ │ │ └── label-taxonomy/ │ │ └── labels-reference.md │ ├── README.md │ └── CONFIGURATION.md └── projman-pmo/ # PMO plugin ├── .claude-plugin/ │ └── plugin.json ├── .mcp.json # References ../mcp-servers/ ├── commands/ │ └── (will add in Phase 10) ├── agents/ │ └── (will add in Phase 9) └── README.md - Write README with installation instructions
- Create CONFIGURATION.md with hybrid config setup for both services
- Document setup steps:
- Create system configs (Gitea + Wiki.js)
- Create project .env
- Create virtual environments for both MCP servers (once, in mcp-servers/)
- Install dependencies with pip
- Test connections
Mode Detection in MCP Servers:
# mcp-servers/gitea/mcp_server/config.py
class GiteaConfig:
def load(self):
# ... load configs ...
self.repo = os.getenv('GITEA_REPO') # Optional
if self.repo:
self.mode = 'project'
logger.info(f"Running in project mode: {self.repo}")
else:
self.mode = 'company'
logger.info("Running in company-wide mode (PMO)")
return {
'api_url': self.api_url,
'api_token': self.api_token,
'owner': self.owner,
'repo': self.repo,
'mode': self.mode
}
Configuration Files:
projman/.mcp.json:
{
"mcpServers": {
"gitea-projman": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"cwd": "${CLAUDE_PLUGIN_ROOT}/../mcp-servers/gitea",
"env": {
"PYTHONPATH": "${CLAUDE_PLUGIN_ROOT}/../mcp-servers/gitea",
"GITEA_API_URL": "${GITEA_API_URL}",
"GITEA_API_TOKEN": "${GITEA_API_TOKEN}",
"GITEA_OWNER": "${GITEA_OWNER}",
"GITEA_REPO": "${GITEA_REPO}"
}
},
"wikijs-projman": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"cwd": "${CLAUDE_PLUGIN_ROOT}/../mcp-servers/wikijs",
"env": {
"PYTHONPATH": "${CLAUDE_PLUGIN_ROOT}/../mcp-servers/wikijs",
"WIKIJS_API_URL": "${WIKIJS_API_URL}",
"WIKIJS_API_TOKEN": "${WIKIJS_API_TOKEN}",
"WIKIJS_BASE_PATH": "${WIKIJS_BASE_PATH}",
"WIKIJS_PROJECT": "${WIKIJS_PROJECT}"
}
}
}
}
projman-pmo/.mcp.json:
{
"mcpServers": {
"gitea-pmo": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"cwd": "${CLAUDE_PLUGIN_ROOT}/../mcp-servers/gitea",
"env": {
"PYTHONPATH": "${CLAUDE_PLUGIN_ROOT}/../mcp-servers/gitea",
"GITEA_API_URL": "${GITEA_API_URL}",
"GITEA_API_TOKEN": "${GITEA_API_TOKEN}",
"GITEA_OWNER": "${GITEA_OWNER}"
}
},
"wikijs-pmo": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"cwd": "${CLAUDE_PLUGIN_ROOT}/../mcp-servers/wikijs",
"env": {
"PYTHONPATH": "${CLAUDE_PLUGIN_ROOT}/../mcp-servers/wikijs",
"WIKIJS_API_URL": "${WIKIJS_API_URL}",
"WIKIJS_API_TOKEN": "${WIKIJS_API_TOKEN}",
"WIKIJS_BASE_PATH": "${WIKIJS_BASE_PATH}"
}
}
}
}
Note: Both plugins reference ../mcp-servers/ (shared location). The MCP servers detect their mode based on which environment variables are present.
Configuration Documentation:
CONFIGURATION.md structure:
# Configuration Setup
## System-Level (Required for all projects)
### Gitea Configuration
1. Create config directory:
mkdir -p ~/.config/claude
2. Create gitea.env:
cat > ~/.config/claude/gitea.env << EOF
GITEA_API_URL=https://gitea.hyperhivelabs.com/api/v1
GITEA_API_TOKEN=your_gitea_token
GITEA_OWNER=hyperhivelabs
EOF
3. Secure the file:
chmod 600 ~/.config/claude/gitea.env
### Wiki.js Configuration
1. Create wikijs.env:
cat > ~/.config/claude/wikijs.env << EOF
WIKIJS_API_URL=https://wiki.hyperhivelabs.com/graphql
WIKIJS_API_TOKEN=your_wikijs_token
WIKIJS_BASE_PATH=/hyper-hive-labs
EOF
2. Secure the file:
chmod 600 ~/.config/claude/wikijs.env
## Project-Level (Per repository)
1. Create .env in project root:
cat > .env << EOF
GITEA_REPO=cuisineflow
WIKIJS_PROJECT=projects/cuisineflow
EOF
2. Add to .gitignore:
echo ".env" >> .gitignore
## MCP Server Setup (One-Time, Shared by Both Plugins)
### Gitea MCP Server
1. Navigate to shared MCP directory:
cd /path/to/claude-plugins/mcp-servers/gitea
2. Create virtual environment:
python -m venv .venv
3. Activate virtual environment:
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
4. Install dependencies:
pip install -r requirements.txt
### Wiki.js MCP Server
1. Navigate to Wiki.js MCP directory:
cd /path/to/claude-plugins/mcp-servers/wikijs
2. Create virtual environment:
python -m venv .venv
3. Activate virtual environment:
source .venv/bin/activate # Linux/Mac
.venv\Scripts\activate # Windows
4. Install dependencies:
pip install -r requirements.txt
## Wiki.js Structure
Your Wiki.js should have this structure:
/hyper-hive-labs/
├── projects/
│ ├── cuisineflow/
│ │ ├── lessons-learned/
│ │ │ ├── sprints/
│ │ │ └── INDEX.md
│ │ └── documentation/
│ ├── intuit-engine/
│ └── hhl-site/
├── company/
│ ├── processes/
│ └── standards/
└── shared/
└── architecture-patterns/
Create the base structure in Wiki.js before using the plugin.
## Architecture Note
Both plugins (projman and projman-pmo) share the same MCP servers.
The MCP servers detect their operating mode based on environment variables:
- Project mode: When GITEA_REPO and WIKIJS_PROJECT are present
- Company mode: When these variables are absent (PMO plugin)
## Validation
Test Gitea MCP:
python -m mcp_gitea.server --test
Test Wiki.js MCP:
python -m mcp_wikijs.server --test
Test projman plugin:
claude plugin test projman
Test projman-pmo plugin:
claude plugin test projman-pmo
Success Criteria:
- Plugin loads successfully
- MCP server starts without errors
- Documentation is clear and complete
- Configuration templates provided
- Setup can be completed in < 5 minutes
Phase 2: Sprint Planning Commands (projman)
2.1 Sprint Plan Command
Deliverable: /sprint-plan command with planner agent integration
Tasks:
- Create
commands/sprint-plan.md - Design command parameters:
- Sprint name/number
- Feature description
- Architecture considerations
- Invoke planner agent
- Handle branch detection (only create issues in development)
- Generate sprint planning document
Command Flow:
User: /sprint-plan
Agent: Let me help you plan this sprint.
What are you building?
User: Extract Intuit engine into separate service
Agent: I detected architectural changes - this is Type/Refactor.
Which components are affected?
- Component/Backend
- Component/API
- Component/Database
Should we create a Gitea issue for tracking?
User: Yes
Agent: Created issue #47 with labels:
- Type/Refactor
- Component/Backend
- Component/API
- Priority/High
- Source/Development
Generating sprint plan...
[Sprint document generated]
Success Criteria:
- Command invokes planner agent
- Agent asks relevant clarifying questions
- Issue created with correct labels
- Sprint document generated
- Only creates issues in development branch
2.2 Sprint Start Command
Deliverable: /sprint-start command
Tasks:
- Create
commands/sprint-start.md - Search lessons learned Wiki
- Surface relevant past issues
- Set up sprint tracking
- Initialize issue tracking
Command Flow:
User: /sprint-start
Agent: Starting sprint...
Searching lessons learned for "service extraction"...
📚 Found 2 relevant lessons:
- Sprint 08: Service boundary issues with shared DB
- Sprint 12: API versioning during extraction
These might be helpful for Intuit engine extraction.
Ready to begin. Sprint issue: #47
Success Criteria:
- Searches lessons learned Wiki
- Surfaces relevant past experiences
- Links to sprint issue
- Provides helpful context
2.3 Sprint Status Command
Deliverable: /sprint-status command
Tasks:
- Create
commands/sprint-status.md - Query current sprint issue
- Show progress indicators
- List blockers
- Surface next actions
Success Criteria:
- Clear status overview
- Identifies blockers
- Actionable next steps
- Links to relevant issues
2.4 Sprint Close Command
Deliverable: /sprint-close command with lessons learned capture
Tasks:
- Create
commands/sprint-close.md - Guide retrospective questions:
- What went wrong?
- What worked well?
- Any Claude Code issues?
- Architecture insights?
- Create lessons learned document
- Update Wiki INDEX.md
- Add searchable tags
- Close sprint issue
Retrospective Template:
# Sprint [Number]: [Name] - Lessons Learned
**Date:** [Date]
**Issue:** #[number]
## What Went Wrong
- [Item 1]
- [Item 2]
## What Worked Well
- [Item 1]
- [Item 2]
## Claude Code Issues
- [Item 1]
- [Item 2]
## Architecture Insights
- [Item 1]
- [Item 2]
## Tags
#service-extraction #api #refactoring #claude-code-loops
Success Criteria:
- Interactive retrospective guide
- Document created in Wiki
- INDEX.md updated with tags
- Sprint issue closed
- Lessons searchable for future sprints
Phase 3: Agent System (projman)
3.1 Planner Agent
Deliverable: Sprint planning agent
Tasks:
- Create
agents/planner.md - Define agent personality:
- Asks clarifying questions
- Analyzes architecture impact
- Suggests appropriate labels
- Generates structured plans
- Design interaction patterns
- Integrate with MCP tools
- Test with various scenarios
Agent Personality:
You are the Sprint Planner for Hyper Hive Labs.
Your role:
- Guide users through sprint planning
- Ask targeted questions about scope and architecture
- Detect issue types (Bug, Feature, Refactor)
- Suggest appropriate labels based on context
- Generate comprehensive sprint documents
- Consider lessons learned from past sprints
You are:
- Thorough but not overwhelming
- Architecture-aware
- Label-conscious (use Type/Refactor for architectural changes)
- Process-oriented
You always:
- Reference relevant past lessons
- Consider technical debt
- Identify cross-project impacts
- Suggest realistic scope
Success Criteria:
- Agent provides valuable planning guidance
- Questions are relevant and targeted
- Label suggestions accurate
- Sprint documents well-structured
- Integrates lessons learned effectively
3.2 Orchestrator Agent
Deliverable: Sprint coordination agent
Tasks:
- Create
agents/orchestrator.md - Define orchestration responsibilities:
- Track sprint progress
- Identify blockers
- Coordinate sub-tasks
- Surface relevant context
- Design status monitoring
- Build blocker detection logic
Agent Personality:
You are the Sprint Orchestrator for Hyper Hive Labs.
Your role:
- Monitor sprint progress
- Track issue status
- Identify and surface blockers
- Coordinate between tasks
- Keep sprint on track
You are:
- Progress-focused
- Blocker-aware
- Context-provider
- Coordination-minded
You always:
- Check issue status
- Identify dependencies
- Surface relevant documentation
- Keep things moving
Success Criteria:
- Tracks progress accurately
- Identifies blockers early
- Provides useful coordination
- Reduces manual overhead
3.3 Executor Agent
Deliverable: Implementation guidance agent
Tasks:
- Create
agents/executor.md - Define implementation support:
- Technical guidance
- Code review
- Testing strategy
- Documentation
- Integrate with label taxonomy
- Reference architecture patterns
Agent Personality:
You are the Sprint Executor for Hyper Hive Labs.
Your role:
- Provide implementation guidance
- Suggest code patterns
- Review technical decisions
- Ensure quality standards
- Reference best practices
You are:
- Technically detailed
- Quality-focused
- Pattern-aware
- Standards-conscious
You always:
- Follow modular architecture principles
- Suggest discrete methods/functions
- Consider testability
- Document decisions
Success Criteria:
- Provides valuable technical guidance
- Maintains quality standards
- References appropriate patterns
- Supports implementation effectively
Phase 4: Lessons Learned System (projman)
4.1 Wiki.js Integration
Deliverable: Lessons learned structure in Wiki.js
Tasks:
- Design Wiki.js page structure within project path:
/hyper-hive-labs/projects/cuisineflow/ ├── lessons-learned/ │ ├── INDEX.md # Searchable index │ ├── sprints/ │ │ ├── sprint-01-auth.md │ │ ├── sprint-02-api.md │ │ └── ... │ └── patterns/ │ ├── service-extraction.md │ └── database-migration.md └── documentation/ ├── architecture/ └── api/ - Create INDEX.md template
- Define tagging system using Wiki.js tags
- Build search integration using Wiki.js MCP tools
INDEX.md Structure:
# CuisineFlow - Lessons Learned Index
## By Sprint
- [Sprint 01: Auth System](sprints/sprint-01-auth) #authentication #oauth #security
- [Sprint 02: API Gateway](sprints/sprint-02-api) #api #gateway #routing
## By Pattern
- [Service Extraction](patterns/service-extraction) #microservices #refactoring
## By Technology
- Authentication: Sprint 01, Sprint 08
- API Design: Sprint 02, Sprint 12
- Database: Sprint 03, Sprint 15
## By Problem
- Claude Code Loops: Sprint 04, Sprint 12, Sprint 14
- Deployment Issues: Sprint 08, Sprint 13
## Tags
#authentication #api #database #deployment #refactoring #claude-code-loops
Wiki.js Advantages:
- Rich markdown editor
- Built-in search
- Tag system
- Version history
- Access control
- Web UI for review
Success Criteria:
- Clear Wiki.js page structure
- Searchable index page
- Tagging system works with Wiki.js tags
- Easy to navigate via web interface
- Integrates with Git (Wiki.js can sync to Git)
4.2 Search Integration
Deliverable: Lessons learned search using Wiki.js MCP
Tasks:
- Use Wiki.js MCP server tools for search:
search_pages- Search by keywords/tags in project pathget_page- Fetch specific lesson documentcreate_page- Create new lessonupdate_page- Update INDEX.mdlist_pages- List all lessons in path
- Implement tag-based search using Wiki.js tags
- Build keyword matching using Wiki.js search API
- Integrate with agents
Search Example:
# Using Wiki.js MCP tools
from mcp_wikijs import WikiJSClient
client = WikiJSClient()
# Search for service extraction lessons
results = await client.search_pages(
query="service extraction",
path="/hyper-hive-labs/projects/cuisineflow/lessons-learned"
)
# Filter by tags
lessons_with_tag = await client.search_pages(
query="#refactoring",
path="/hyper-hive-labs/projects/cuisineflow/lessons-learned"
)
Success Criteria:
- Fast search using Wiki.js search API
- Tag-based filtering works
- Relevant results surfaced
- Integrates with planning process
- Can search across all projects (for PMO)
4.3 Capture Workflow
Deliverable: Lessons learned capture during sprint close
Tasks:
- Integrate into
/sprint-closecommand - Guide retrospective discussion
- Generate structured markdown document
- Auto-tag based on content using Wiki.js tags
- Create page in Wiki.js via MCP
- Update INDEX.md automatically
- Use Wiki.js version control for history
Capture Flow:
User: /sprint-close
Agent: Let's capture lessons learned...
What went wrong that we should avoid next time?
User: [Response]
Agent: What decisions worked really well?
User: [Response]
Agent: Were there any Claude Code issues that caused loops/blocks?
User: [Response]
Agent: Any architectural insights for similar future work?
User: [Response]
Agent: I'll create a lesson in Wiki.js:
Path: /hyper-hive-labs/projects/cuisineflow/lessons-learned/sprints/sprint-16-intuit-engine
Tags detected:
#service-extraction #api #refactoring #claude-code-loops
Creating page in Wiki.js... ✅
Updating INDEX.md... ✅
View at: https://wiki.hyperhivelabs.com/hyper-hive-labs/projects/cuisineflow/lessons-learned/sprints/sprint-16-intuit-engine
Wiki.js Page Creation:
# Using Wiki.js MCP create_page tool
await wikijs_client.create_page(
path="/hyper-hive-labs/projects/cuisineflow/lessons-learned/sprints/sprint-16-intuit-engine",
title="Sprint 16: Intuit Engine Extraction",
content=lesson_markdown,
tags=["service-extraction", "api", "refactoring", "claude-code-loops"]
)
Success Criteria:
- Guided retrospective questions
- Document created in Wiki.js
- Tags added via Wiki.js tag system
- INDEX.md updated automatically
- Viewable in Wiki.js web interface
- Version history tracked
- Searchable immediately
Phase 5: Testing & Validation (projman)
5.1 Integration Testing
Deliverable: Comprehensive test suite
Tasks:
- Test MCP server tools:
- Issue CRUD operations
- Label operations
- Wiki operations
- Configuration loading
- Test command workflows:
- Complete sprint lifecycle
- Label sync
- Lessons learned capture
- Test agent interactions:
- Planner workflow
- Orchestrator monitoring
- Executor guidance
- Test configuration:
- System-level loading
- Project-level loading
- Hybrid merge behavior
- Missing config handling
Test Matrix:
| Component | Test Coverage | Status |
|------------------|---------------|--------|
| MCP Tools | All 10 tools | ✅ |
| Commands | All 5 cmds | ✅ |
| Agents | All 3 agents | ✅ |
| Configuration | All scenarios | ✅ |
| Wiki Integration | Full flow | ✅ |
| Label System | All labels | ✅ |
Success Criteria:
- All tests pass
- Edge cases handled
- Error messages clear
- Configuration validation works
- Performance acceptable
5.2 Real Sprint Testing
Deliverable: Plugin validated with actual sprint
Tasks:
- Use plugin for Intuit engine extraction sprint
- Monitor for issues
- Collect user feedback
- Identify pain points
- Document improvements needed
Test Sprint Checklist:
- Sprint planning with planner agent
- Issue created with correct labels
- Lessons learned searched at start
- Status monitoring during sprint
- Blocker identification
- Sprint close with retrospective
- Wiki updated with lessons
Success Criteria:
- Plugin handles real sprint
- No critical bugs
- Workflow feels natural
- Saves time vs manual process
- Lessons learned captured
5.3 Configuration Testing
Deliverable: Validated hybrid configuration
Tasks:
- Test system config creation
- Test project config creation
- Test configuration loading order
- Test missing config scenarios:
- No system config
- No project config
- Invalid credentials
- Network issues
- Test multi-project scenarios:
- Different repos with same system config
- Switching between projects
- Config changes propagation
Test Scenarios:
Scenario 1: Fresh install
- No configs exist
- Plugin guides user through setup
- All configs created correctly
Scenario 2: System config exists
- User adds new project
- Only needs project .env
- System config reused
Scenario 3: Invalid credentials
- Clear error message
- Suggests checking config
- Points to CONFIGURATION.md
Scenario 4: Multi-project
- cuisineflow project
- Switch to intuit-engine project
- Each uses correct GITEA_REPO
- Same system credentials
Success Criteria:
- Configuration works in all scenarios
- Error messages are helpful
- Setup is intuitive
- Multi-project switching seamless
- Documentation matches reality
Phase 6: Documentation & Refinement (projman)
6.1 User Documentation
Deliverable: Complete user guide
Tasks:
- Write README.md:
- Installation instructions
- Configuration setup (hybrid approach)
- Command reference
- Agent descriptions
- Troubleshooting
- Write CONFIGURATION.md:
- System-level setup
- Project-level setup
- Validation steps
- Common issues
- Create ARCHITECTURE.md:
- Plugin structure
- MCP server design
- Configuration flow
- Agent system
- Write CONTRIBUTING.md:
- Development setup
- Testing guidelines
- Label taxonomy updates
- Wiki maintenance
Success Criteria:
- Complete documentation
- Clear setup instructions
- Configuration well-explained
- Examples provided
- Troubleshooting guide
6.2 Iteration Based on Feedback
Deliverable: Refined plugin based on real use
Tasks:
- Address issues from test sprint
- Improve agent prompts
- Refine command flows
- Enhance error messages
- Optimize performance
- Update configuration docs if needed
Feedback Categories:
- Usability issues
- Missing features
- Confusing workflows
- Error handling gaps
- Documentation unclear
- Configuration complexity
Success Criteria:
- Major issues resolved
- Workflows improved
- Documentation updated
- Performance acceptable
- Ready for team use
Phase 7: Marketplace Preparation (projman)
7.1 Gitea Marketplace Setup
Deliverable: projman available in Gitea marketplace
Tasks:
- Create marketplace repository in Gitea:
hyperhivelabs/claude-plugins
- Add projman plugin to repository
- Create
.claude-plugin/marketplace.json:{ "plugins": [ { "name": "projman", "displayName": "Project Manager", "description": "Single-repo project management with Gitea", "version": "1.0.0", "author": "Hyper Hive Labs", "repository": "hyperhivelabs/claude-plugins", "path": "projman" } ] } - Test marketplace loading
- Document installation for team
Installation Command:
# Add marketplace
/plugin marketplace add https://your-gitea.com/hyperhivelabs/claude-plugins
# Install plugin
/plugin install projman
Success Criteria:
- Marketplace repository created
- Plugin available for installation
- Installation works smoothly
- Team can access plugin
- Documentation clear
7.2 Team Onboarding
Deliverable: Team trained on projman usage
Tasks:
- Create onboarding guide
- Walk through configuration setup:
- System config creation
- Project config per repo
- Demonstrate sprint workflow
- Show lessons learned capture
- Explain label system
- Share best practices
Onboarding Checklist:
- Configuration setup completed
- Test sprint planned
- Issue created successfully
- Labels used correctly
- Lessons learned captured
- Wiki searched successfully
Success Criteria:
- Team understands configuration
- Can run full sprint workflow
- Uses labels correctly
- Captures lessons learned
- Comfortable with plugin
Phase 8: Production Hardening (projman)
8.1 Error Handling & Resilience
Deliverable: Production-ready error handling
Tasks:
- Implement comprehensive error handling:
- Network failures
- API rate limits
- Authentication errors
- Invalid configurations
- Missing Wiki
- Git conflicts
- Add retry logic for transient failures
- Improve error messages
- Add logging for debugging
- Create health check command
Success Criteria:
- Graceful failure handling
- Clear error messages
- Automatic retries where appropriate
- Logging helps debugging
- Users not blocked by errors
8.2 Performance Optimization
Deliverable: Optimized plugin performance
Tasks:
- Profile MCP server operations using cProfile
- Optimize API calls:
- Batch requests where possible
- Cache label data using lru_cache
- Minimize Wiki searches
- Reduce startup time
- Optimize configuration loading
- Test with large repositories
- Use async/await for concurrent operations where beneficial
Success Criteria:
- Fast command execution
- Low latency for API calls
- Efficient caching
- Handles large repos
- Startup time < 2 seconds
8.3 Security Audit
Deliverable: Security-hardened plugin
Tasks:
- Review credential handling:
- System config permissions
- Token storage security
- Environment variable safety
- Validate input sanitization
- Check for injection vulnerabilities
- Review error message information leakage
- Audit logging for sensitive data
- Test access controls
Security Checklist:
- Credentials never logged
- Config files have correct permissions
- Input validation on all user input
- No SQL/command injection vectors
- Error messages don't leak tokens
- API calls use TLS
- Token rotation supported
Success Criteria:
- No security vulnerabilities
- Credentials protected
- Safe input handling
- Audit clean
- Best practices followed
Phase 9: PMO Plugin Foundation (projman-pmo)
9.1 Requirements Analysis
Deliverable: PMO plugin requirements document
Tasks:
- Analyze multi-project workflows:
- CuisineFlow → CuisineFlow-Site sync
- Intuit Engine → CuisineFlow integration
- HHL-Site updates
- Customer VPS deployments
- Identify cross-project dependencies
- Define coordination pain points
- Design PMO plugin scope
- Determine what belongs in PMO vs projman
Key Questions:
- What triggers demo site updates?
- What triggers Intuit engine updates?
- How do you coordinate customer VPS deployments?
- Where do multi-project conflicts happen?
- What decisions require cross-project visibility?
Success Criteria:
- Clear understanding of multi-project workflows
- Pain points documented
- PMO plugin scope defined
- Not duplicating single-repo functionality
9.2 MCP Server Extension
Deliverable: Multi-repo query capabilities
Tasks:
- Extend Gitea MCP server for multi-repo operations
- Add tools:
list_repos- Get all organization reposaggregate_issues- Fetch issues across reposcheck_dependencies- Analyze cross-repo dependenciesget_deployment_status- Check deployment states
- Build dependency graph visualization data
- Implement cross-repo search
Configuration for PMO:
pmo/.mcp.json:
{
"mcpServers": {
"gitea-pmo": {
"command": "python",
"args": ["-m", "mcp_server.server"],
"cwd": "${CLAUDE_PLUGIN_ROOT}/mcp-server",
"env": {
"PYTHONPATH": "${CLAUDE_PLUGIN_ROOT}/mcp-server",
"GITEA_API_URL": "${GITEA_API_URL}",
"GITEA_API_TOKEN": "${GITEA_API_TOKEN}",
"GITEA_OWNER": "${GITEA_OWNER}"
}
}
}
}
Note: PMO only uses system-level config (no GITEA_REPO).
Success Criteria:
- Can query multiple repos efficiently
- Dependency analysis works
- Aggregated views make sense
- Performance acceptable for 3-5 repos
- System-level config sufficient
9.3 PMO Agent Design
Deliverable: Multi-project coordinator agent
Tasks:
- Define PMO agent personality
- Design cross-project prioritization logic
- Create resource allocation algorithms
- Build conflict detection rules
- Design dependency tracking system
PMO Agent Personality:
You are the PMO Coordinator for Hyper Hive Labs.
Your role:
- Maintain strategic view across all projects
- Identify cross-project dependencies
- Detect resource conflicts
- Balance competing priorities
- Coordinate release timing
- Track customer deployment schedules
You are:
- Strategic thinker
- Dependency-aware
- Conflict detector
- Priority balancer
- Team coordinator
You delegate to project-level agents:
- Don't micromanage single projects
- Focus on cross-project issues
- Surface conflicts early
- Facilitate coordination
Success Criteria:
- Clear separation from projman agents
- Valuable for multi-project scenarios
- Doesn't micromanage single projects
- Integrates with projman seamlessly
Phase 10: PMO Plugin Development (projman-pmo)
10.1 Cross-Project Commands
Deliverable: PMO-specific commands
Tasks:
/pmo-status- View all projects status/pmo-priorities- Review and adjust priorities across projects/pmo-dependencies- Visualize project dependencies/pmo-conflicts- Identify resource conflicts/pmo-schedule- View deployment schedule
Command Examples:
/pmo-status:
Projects Overview:
CuisineFlow (main)
├── Sprint: Intuit Engine Extraction
├── Status: In Progress (60%)
├── Blockers: None
└── Next: API testing
CuisineFlow-Site (demo)
├── Sprint: Dashboard Updates
├── Status: Waiting on CuisineFlow API
├── Blockers: Depends on #cuisineflow-47
└── Next: Deploy when API ready
Intuit-Engine (service)
├── Sprint: Initial Setup
├── Status: Planning
├── Blockers: Architecture decisions needed
└── Next: Service boundary definition
HHL-Site (marketing)
├── Sprint: Content Updates
├── Status: Complete
├── Blockers: None
└── Next: Deploy to production
/pmo-dependencies:
Project Dependencies:
CuisineFlow → Intuit-Engine
├── Must complete before v2.0 launch
└── API contracts defined
CuisineFlow → CuisineFlow-Site
├── Demo must sync with main features
└── Deploy together for consistency
Deployment Order:
1. Intuit-Engine (backend service)
2. CuisineFlow (main app)
3. CuisineFlow-Site (demo sync)
4. Customer VPS deployments
Success Criteria:
- Commands provide valuable cross-project insights
- Dependencies clearly visualized
- Conflicts easily identified
- Priorities make sense
- Schedule coordination works
10.2 Coordination Workflows
Deliverable: Multi-project coordination automation
Tasks:
- Implement dependency tracking
- Build conflict detection:
- Resource conflicts
- Timeline conflicts
- Priority conflicts
- Create notification system for cross-project impacts
- Design release coordination workflow
Conflict Detection Examples:
Resource Conflict:
⚠️ Resource Conflict Detected
Leo is assigned to:
- CuisineFlow: Intuit Engine extraction (Priority: Critical)
- CuisineFlow-Site: Dashboard redesign (Priority: High)
- HHL-Site: Content update (Priority: Medium)
Recommendation:
- Focus on Intuit Engine (blocks launch)
- Defer dashboard redesign to next sprint
- Delegate content update to marketing
Timeline Conflict:
⚠️ Timeline Conflict Detected
CuisineFlow v2.0 launch: Nov 15
├── Depends on: Intuit Engine completion
└── Current status: Behind schedule
Impact:
- Demo site deployment delayed
- Customer VPS updates postponed
- Marketing announcements on hold
Action needed: Re-evaluate scope or push date
Success Criteria:
- Conflicts detected automatically
- Clear recommendations provided
- Dependencies tracked accurately
- Timeline visibility maintained
10.3 Dashboard & Reporting
Deliverable: Multi-project dashboard
Tasks:
- Create consolidated view:
- All active sprints
- Cross-project dependencies
- Resource allocation
- Timeline status
- Blockers across projects
- Build reporting commands:
/pmo-report daily- Daily standup report/pmo-report weekly- Weekly progress/pmo-report release- Release readiness
- Generate stakeholder updates
Success Criteria:
- Dashboard provides clear overview
- Reports are actionable
- Stakeholder communication improved
- Decision-making supported
Phase 11: PMO Testing & Integration (projman-pmo)
11.1 Multi-Project Testing
Deliverable: Validated PMO plugin
Tasks:
- Test with CuisineFlow + CuisineFlow-Site + Intuit Engine
- Simulate deployment coordination scenarios
- Test priority conflict resolution
- Validate dependency tracking
- Test customer deployment scheduling
Test Scenarios:
Scenario 1: Dependent Deploy
Given: CuisineFlow has API changes
And: CuisineFlow-Site depends on those changes
When: CuisineFlow sprint completes
Then: PMO should alert about Site sync needed
And: Suggest coordinated deployment
Scenario 2: Resource Conflict
Given: Multiple critical priorities
And: Single developer (Leo)
When: PMO analyzes priorities
Then: Should detect conflict
And: Recommend prioritization
Scenario 3: Release Coordination
Given: Intuit Engine must deploy first
And: CuisineFlow depends on it
And: Demo site must sync
When: Release planned
Then: PMO generates deployment order
And: Validates dependencies satisfied
Success Criteria:
- All scenarios handled correctly
- Dependencies respected
- Conflicts detected and surfaced
- Coordination reduces manual overhead
11.2 Integration with projman
Deliverable: Seamless plugin interoperability
Tasks:
- Ensure PMO agent delegates to projman agents
- Test command interoperability
- Validate shared MCP server usage (if applicable)
- Check lessons learned sharing across projects
- Test configuration isolation (PMO system-only vs projman hybrid)
Integration Points:
PMO Plugin projman Plugin
├─────────────────────┤
│ Delegates │
│ single-project │
│ details │
│ │
├─ Aggregates ────────┤
│ cross-project │
│ status │
│ │
└─ Coordinates ───────┘
dependencies
Success Criteria:
- PMO doesn't interfere with single-project work
- Delegation works smoothly
- Shared infrastructure stable (if any)
- Cross-project lessons accessible
- Configuration doesn't conflict
Phase 12: Production Deployment
12.1 Multi-Environment Rollout
Deliverable: Plugins deployed across all environments
Tasks:
- Deploy to laptop (development)
- Deploy to staging VPS
- Deploy to production VPS
- Configure branch-aware permissions per environment
- Test network connectivity and API access
- Validate configuration in each environment
Environment Configuration:
Laptop (Development):
# System config (~/.config/claude/gitea.env)
GITEA_API_URL=https://gitea.hyperhivelabs.com/api/v1
GITEA_API_TOKEN=dev_token
GITEA_OWNER=hyperhivelabs
# Project configs (per repo .env)
# cuisineflow/.env
GITEA_REPO=cuisineflow
# intuit-engine/.env
GITEA_REPO=intuit-engine
VPS Environments:
- Same system config copied to VPS
- Each project repo has its own .env
- MCP server runs in production mode
- Network access validated
Success Criteria:
- Plugins work in all environments
- Configuration portable across systems
- Network connectivity stable
- Production ready
12.2 Backup & Recovery
Deliverable: Backup and recovery procedures
Tasks:
- Document configuration backup:
- System config backup
- Project configs tracked in git
- Create Wiki backup strategy
- Document recovery procedures
- Test configuration restoration
- Automate backups where possible
Backup Strategy:
# System config backup
cp ~/.config/claude/gitea.env ~/.config/claude/gitea.env.backup
# Wiki is already in git
cd wiki
git push origin main
# Project configs are in .gitignore (not backed up, easily recreated)
Success Criteria:
- Configuration backup documented
- Wiki backed up regularly
- Recovery procedures tested
- Data loss risk minimized
12.3 Monitoring & Maintenance
Deliverable: Ongoing monitoring and maintenance plan
Tasks:
- Set up error monitoring
- Create maintenance schedule:
- Label taxonomy updates
- Wiki cleanup
- Configuration audits
- Security updates
- Document troubleshooting procedures
- Establish update process for MCP server
Maintenance Checklist:
- Weekly: Review error logs
- Monthly: Update Python dependencies (pip list --outdated)
- Quarterly: Security audit (pip-audit)
- As-needed: Label taxonomy sync
- As-needed: Wiki organization
- As-needed: Recreate virtual environment for major updates
Success Criteria:
- Monitoring in place
- Maintenance plan documented
- Update process defined
- Team knows how to maintain
Rollback Plan
If plugins cause more problems than they solve:
Immediate Fallback:
- Keep existing skills and scripts functional
- Plugins are opt-in, not replacement
- Document issues and iterate
- Can disable plugins without losing work
Criteria for Rollback:
- Plugin slower than current workflow
- Frequent errors or data loss
- User frustration increases
- Blocks urgent work (like sprint deadlines)
Progressive Enhancement:
- Build plugins alongside current system
- Migrate piece by piece
- Keep escape hatches
- Only deprecate scripts when plugin proven
Configuration Quick Reference
System-Level Setup (Once per machine)
# Create config directory
mkdir -p ~/.config/claude
# Create gitea.env
cat > ~/.config/claude/gitea.env << EOF
GITEA_API_URL=https://gitea.hyperhivelabs.com/api/v1
GITEA_API_TOKEN=your_token_here
GITEA_OWNER=hyperhivelabs
EOF
# Set permissions
chmod 600 ~/.config/claude/gitea.env
Project-Level Setup (Per repository)
# In project root
echo "GITEA_REPO=cuisineflow" > .env
# Add to .gitignore
echo ".env" >> .gitignore
Validation
# Test projman configuration
cd your-project
claude plugin test projman
# Test pmo configuration (no project needed)
claude plugin test projman-pmo
Notes on Type/Refactor Label
Label Details:
- Name:
Type/Refactor - Level: Organization (available to all repos)
- Category: Type/ (Exclusive - only one Type per issue)
- Color: #0052cc (matches other Type labels)
- Description: Architectural changes and code restructuring
Usage in Plugins:
- Planner agent suggests Type/Refactor for:
- Service extraction (like Intuit engine)
- Architecture modifications
- Code restructuring without feature changes
- Performance optimizations requiring significant changes
- Label suggestion engine detects refactor keywords:
- "extract", "refactor", "restructure", "optimize architecture"
- "service boundary", "microservice", "decouple"
- "technical debt", "code quality"
- Shows in label sync diffs when fetching from Gitea
- Documented in label taxonomy skill
Integration Points:
- MCP server includes Type/Refactor in label enumeration
- Suggestion engine trained on architectural patterns
- Sprint planning templates include refactor considerations
- Lessons learned can tag architectural mistakes for future refactors
End of Implementation Plan
This plan builds two plugins systematically, starting with single-repo project management (projman) and expanding to multi-project coordination (projman-pmo). Each phase builds on previous phases, with testing and validation throughout.
The hybrid configuration approach provides the right balance of simplicity (single token location) and flexibility (per-project repository specification).
The plan is execution-ready but flexible - adjust based on real-world feedback and discovered requirements.