- Remove empty marketplace.json placeholder file - Rename projman-test-marketplace/ to projman-marketplace/ - Update marketplace metadata (name, displayName, description) - Update all documentation references 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
631 lines
17 KiB
Markdown
631 lines
17 KiB
Markdown
# Projman Plugin Testing Plan
|
|
|
|
**Status:** Phase 2 & 3 Complete - Ready for Testing
|
|
**Date:** 2025-11-18
|
|
**Plugin Version:** 0.1.0
|
|
|
|
## Overview
|
|
|
|
This document outlines the testing strategy for the Projman plugin, which has completed Phase 2 (Commands) and Phase 3 (Agents).
|
|
|
|
## What Was Built
|
|
|
|
### Phase 2: Commands (5 total)
|
|
- ✅ `/sprint-plan` - AI-guided planning with planner agent
|
|
- ✅ `/sprint-start` - Begin execution with orchestrator agent
|
|
- ✅ `/sprint-status` - Quick progress check
|
|
- ✅ `/sprint-close` - Capture lessons learned (critical!)
|
|
- ✅ `/labels-sync` - Sync label taxonomy from Gitea
|
|
|
|
### Phase 3: Agents (3 total)
|
|
- ✅ **Planner Agent** - Thoughtful, asks clarifying questions, searches lessons learned
|
|
- ✅ **Orchestrator Agent** - Concise, action-oriented, tracks progress meticulously
|
|
- ✅ **Executor Agent** - Implementation-focused, follows specs precisely
|
|
|
|
### Supporting Components
|
|
- ✅ Plugin manifest (`plugin.json`) with valid schema
|
|
- ✅ MCP configuration (`.mcp.json`) for Gitea + Wiki.js
|
|
- ✅ Label taxonomy skill with suggestion logic
|
|
- ✅ README.md with complete usage guide
|
|
- ✅ CONFIGURATION.md with step-by-step setup
|
|
|
|
**Total:** 13 files, ~3,719 lines of documentation
|
|
|
|
## Testing Setup
|
|
|
|
### Prerequisites Completed
|
|
|
|
✅ **MCP Servers Installed:**
|
|
- `mcp-servers/gitea/.venv/` - Gitea MCP Server
|
|
- `mcp-servers/wikijs/.venv/` - Wiki.js MCP Server
|
|
|
|
✅ **System Configuration:**
|
|
- `~/.config/claude/gitea.env` - Gitea credentials
|
|
- `~/.config/claude/wikijs.env` - Wiki.js credentials
|
|
|
|
✅ **Project Configuration:**
|
|
- `.env` - Project-specific settings (NOT committed)
|
|
```bash
|
|
GITEA_REPO=support-claude-mktplace
|
|
WIKIJS_PROJECT=projects/support-claude-mktplace
|
|
```
|
|
|
|
✅ **Local Marketplace:**
|
|
- `.claude-plugins/projman-marketplace/marketplace.json`
|
|
- Points to `../../projman` for local testing
|
|
|
|
### Repository Structure
|
|
|
|
```
|
|
hhl-claude-agents/
|
|
├── .env ✅ Project config (in .gitignore)
|
|
├── .claude-plugins/
|
|
│ └── projman-marketplace/
|
|
│ └── marketplace.json ✅ Local marketplace
|
|
├── projman/ ✅ Complete plugin
|
|
│ ├── .claude-plugin/
|
|
│ │ └── plugin.json
|
|
│ ├── .mcp.json
|
|
│ ├── commands/
|
|
│ │ ├── sprint-plan.md
|
|
│ │ ├── sprint-start.md
|
|
│ │ ├── sprint-status.md
|
|
│ │ ├── sprint-close.md
|
|
│ │ └── labels-sync.md
|
|
│ ├── agents/
|
|
│ │ ├── planner.md
|
|
│ │ ├── orchestrator.md
|
|
│ │ └── executor.md
|
|
│ ├── skills/
|
|
│ │ └── label-taxonomy/
|
|
│ │ └── labels-reference.md
|
|
│ ├── README.md
|
|
│ └── CONFIGURATION.md
|
|
└── mcp-servers/
|
|
├── gitea/
|
|
│ └── .venv/
|
|
└── wikijs/
|
|
└── .venv/
|
|
```
|
|
|
|
## Pre-Flight Checks
|
|
|
|
### 1. Verify MCP Server Connectivity
|
|
|
|
**Test Gitea Connection:**
|
|
```bash
|
|
cd mcp-servers/gitea
|
|
source .venv/bin/activate
|
|
python -c "from mcp_server.config import load_config; config = load_config(); print(f'✅ Gitea: {config.api_url}')"
|
|
```
|
|
|
|
**Expected output:**
|
|
```
|
|
✅ Gitea: http://gitea.hotport/api/v1
|
|
```
|
|
|
|
**Test Wiki.js Connection:**
|
|
```bash
|
|
cd mcp-servers/wikijs
|
|
source .venv/bin/activate
|
|
python -c "from mcp_server.config import load_config; config = load_config(); print(f'✅ Wiki.js: {config.api_url}')"
|
|
```
|
|
|
|
**Expected output:**
|
|
```
|
|
✅ Wiki.js: http://wikijs.hotport/graphql
|
|
```
|
|
|
|
### 2. Verify Configuration Files
|
|
|
|
**Check System Config:**
|
|
```bash
|
|
ls -la ~/.config/claude/*.env
|
|
# Should show:
|
|
# -rw------- gitea.env
|
|
# -rw------- wikijs.env
|
|
```
|
|
|
|
**Check Project Config:**
|
|
```bash
|
|
cat .env
|
|
# Should show:
|
|
# GITEA_REPO=support-claude-mktplace
|
|
# WIKIJS_PROJECT=projects/support-claude-mktplace
|
|
```
|
|
|
|
**Verify .env is ignored:**
|
|
```bash
|
|
git check-ignore .env
|
|
# Should output: .env
|
|
```
|
|
|
|
### 3. Verify Plugin Structure
|
|
|
|
**Check plugin manifest:**
|
|
```bash
|
|
cat projman/.claude-plugin/plugin.json | python3 -m json.tool > /dev/null && echo "✅ Valid JSON"
|
|
```
|
|
|
|
**Check MCP config:**
|
|
```bash
|
|
cat projman/.mcp.json | python3 -m json.tool > /dev/null && echo "✅ Valid JSON"
|
|
```
|
|
|
|
**List all components:**
|
|
```bash
|
|
tree projman/ -L 2
|
|
```
|
|
|
|
## Testing Phases
|
|
|
|
### Phase 1: Quick Validation (5-10 minutes)
|
|
|
|
**Goal:** Verify basic connectivity and command loading
|
|
|
|
**Test 1.1: Label Sync** (No agent, pure MCP test)
|
|
```
|
|
/labels-sync
|
|
```
|
|
|
|
**Expected Behavior:**
|
|
- ✅ Checks git branch first
|
|
- ✅ Connects to Gitea MCP server
|
|
- ✅ Fetches organization labels (28)
|
|
- ✅ Fetches repository labels (16)
|
|
- ✅ Shows total count (44 labels)
|
|
- ✅ Updates `projman/skills/label-taxonomy/labels-reference.md`
|
|
- ✅ Confirms successful sync
|
|
|
|
**Success Criteria:**
|
|
- No connection errors
|
|
- Label counts match Gitea
|
|
- File updated with current timestamp
|
|
- All label categories present (Agent, Complexity, Efforts, Priority, Risk, Source, Type, Component, Tech)
|
|
|
|
**Test 1.2: Sprint Status** (Read-only test)
|
|
```
|
|
/sprint-status
|
|
```
|
|
|
|
**Expected Behavior:**
|
|
- ✅ Checks git branch
|
|
- ✅ Fetches open issues from Gitea
|
|
- ✅ Fetches closed issues from Gitea
|
|
- ✅ Categorizes by status (Open, In Progress, Blocked, Completed)
|
|
- ✅ Shows completion percentage
|
|
- ✅ Identifies priority alerts
|
|
|
|
**Success Criteria:**
|
|
- Issues fetch successfully
|
|
- Categorization works
|
|
- No write operations attempted
|
|
- Progress summary accurate
|
|
|
|
### Phase 2: Agent Validation (15-20 minutes)
|
|
|
|
**Goal:** Test agent personalities and MCP tool integration
|
|
|
|
**Test 2.1: Planner Agent** (via `/sprint-plan`)
|
|
```
|
|
/sprint-plan
|
|
```
|
|
|
|
**Test Input:**
|
|
> "Plan a small sprint to add usage examples to the projman README"
|
|
|
|
**Expected Planner Behavior:**
|
|
1. ✅ Checks git branch (development)
|
|
2. ✅ Asks clarifying questions:
|
|
- What kind of examples?
|
|
- How detailed should they be?
|
|
- Any specific use cases?
|
|
3. ✅ Searches lessons learned:
|
|
- Uses `search_lessons` MCP tool
|
|
- Searches by tags: "documentation", "readme"
|
|
4. ✅ Performs architecture analysis:
|
|
- Thinks through structure
|
|
- Considers edge cases
|
|
- References past lessons
|
|
5. ✅ Creates Gitea issues:
|
|
- Uses `suggest_labels` for each issue
|
|
- Creates 2-3 well-structured issues
|
|
- Includes acceptance criteria
|
|
- References architectural decisions
|
|
6. ✅ Generates planning document:
|
|
- Summarizes sprint goals
|
|
- Lists created issues
|
|
- Documents assumptions
|
|
|
|
**Success Criteria:**
|
|
- Planner personality evident (thoughtful, asks questions)
|
|
- Lessons learned searched proactively
|
|
- Labels suggested intelligently
|
|
- Issues created in Gitea with proper structure
|
|
- Architecture analysis thorough
|
|
|
|
**Test 2.2: Orchestrator Agent** (via `/sprint-start`)
|
|
```
|
|
/sprint-start
|
|
```
|
|
|
|
**Expected Orchestrator Behavior:**
|
|
1. ✅ Checks git branch
|
|
2. ✅ Fetches sprint issues from Gitea
|
|
3. ✅ Searches relevant lessons:
|
|
- Uses `search_lessons` with tags
|
|
- Presents relevant past experiences
|
|
4. ✅ Identifies next task:
|
|
- Highest priority
|
|
- Unblocked by dependencies
|
|
5. ✅ Generates lean execution prompt:
|
|
- Concise (not verbose)
|
|
- Actionable steps
|
|
- References lessons
|
|
- Clear acceptance criteria
|
|
|
|
**Success Criteria:**
|
|
- Orchestrator personality evident (concise, action-oriented)
|
|
- Lessons searched by relevant tags
|
|
- Next task identified correctly
|
|
- Execution prompt is lean (not planning document)
|
|
- Dependencies checked
|
|
|
|
**Test 2.3: Executor Agent** (Manual invocation if needed)
|
|
|
|
**Note:** Executor typically invoked by orchestrator, but can be tested independently.
|
|
|
|
**Expected Executor Behavior:**
|
|
1. ✅ Checks git branch
|
|
2. ✅ Follows specifications precisely
|
|
3. ✅ Writes clean, tested code
|
|
4. ✅ Handles edge cases
|
|
5. ✅ References lessons learned in code comments
|
|
6. ✅ Generates completion report
|
|
|
|
**Success Criteria:**
|
|
- Executor personality evident (implementation-focused)
|
|
- Code follows specs exactly
|
|
- Tests included
|
|
- Edge cases covered
|
|
- Lessons applied in implementation
|
|
|
|
### Phase 3: Full Workflow Test (30-45 minutes)
|
|
|
|
**Goal:** Complete sprint lifecycle end-to-end
|
|
|
|
**Scenario:** "Add comprehensive testing examples to projman documentation"
|
|
|
|
**Step 3.1: Planning** (`/sprint-plan`)
|
|
```
|
|
/sprint-plan
|
|
|
|
Input: "Add comprehensive testing examples to projman documentation,
|
|
including command usage, agent behavior, and troubleshooting scenarios"
|
|
```
|
|
|
|
**Expected Flow:**
|
|
1. Planner asks clarifying questions
|
|
2. Searches lessons about documentation
|
|
3. Creates 3-4 issues in Gitea:
|
|
- Add command usage examples
|
|
- Add agent behavior examples
|
|
- Add troubleshooting guide
|
|
- Add quick start tutorial
|
|
4. Suggests appropriate labels for each
|
|
|
|
**Validation:**
|
|
- [ ] Check Gitea - issues created?
|
|
- [ ] Check labels - appropriate categories?
|
|
- [ ] Check issue bodies - acceptance criteria clear?
|
|
|
|
**Step 3.2: Execution** (`/sprint-start`)
|
|
```
|
|
/sprint-start
|
|
```
|
|
|
|
**Expected Flow:**
|
|
1. Orchestrator reviews issues
|
|
2. Searches lessons about documentation
|
|
3. Identifies first task
|
|
4. Generates lean execution prompt
|
|
|
|
**Validation:**
|
|
- [ ] Next task correctly identified?
|
|
- [ ] Execution prompt concise?
|
|
- [ ] Lessons referenced?
|
|
|
|
**Step 3.3: Work on Task**
|
|
|
|
Implement the first task (e.g., add command examples to README).
|
|
|
|
**Step 3.4: Close Sprint** (`/sprint-close`)
|
|
```
|
|
/sprint-close
|
|
```
|
|
|
|
**Expected Flow:**
|
|
1. Orchestrator reviews completion
|
|
2. Asks questions about sprint:
|
|
- What challenges faced?
|
|
- What went well?
|
|
- Preventable mistakes?
|
|
3. Captures lessons learned:
|
|
- Structures in proper format
|
|
- Suggests appropriate tags
|
|
4. Saves to Wiki.js:
|
|
- Uses `create_lesson` MCP tool
|
|
- Creates in `/projects/support-claude-mktplace/lessons-learned/sprints/`
|
|
5. Offers git operations:
|
|
- Commit changes
|
|
- Merge branches
|
|
- Tag sprint
|
|
|
|
**Validation:**
|
|
- [ ] Lessons captured in proper format?
|
|
- [ ] Saved to Wiki.js successfully?
|
|
- [ ] Tags appropriate for discovery?
|
|
- [ ] Check Wiki.js - lesson visible?
|
|
|
|
### Phase 4: Edge Case Testing (15-20 minutes)
|
|
|
|
**Goal:** Test branch detection and security
|
|
|
|
**Test 4.1: Production Branch Detection**
|
|
|
|
```bash
|
|
git checkout main # Switch to production
|
|
/sprint-plan
|
|
```
|
|
|
|
**Expected Behavior:**
|
|
- ❌ Command blocks immediately
|
|
- ❌ Shows production branch warning
|
|
- ❌ Instructs user to switch to development
|
|
- ❌ Does NOT proceed with planning
|
|
|
|
**Test 4.2: Staging Branch Detection**
|
|
|
|
```bash
|
|
git checkout -b staging # Create staging branch
|
|
/sprint-start
|
|
```
|
|
|
|
**Expected Behavior:**
|
|
- ⚠️ Command warns about staging
|
|
- ⚠️ Limited capabilities (can create issues, cannot modify code)
|
|
- ⚠️ Instructs to switch to development for execution
|
|
|
|
**Test 4.3: Development Branch (Normal)**
|
|
|
|
```bash
|
|
git checkout development # Back to development
|
|
/sprint-plan
|
|
```
|
|
|
|
**Expected Behavior:**
|
|
- ✅ Full capabilities enabled
|
|
- ✅ No warnings
|
|
- ✅ Normal operation
|
|
|
|
**Validation:**
|
|
- [ ] Production branch blocked?
|
|
- [ ] Staging branch limited?
|
|
- [ ] Development branch full access?
|
|
|
|
### Phase 5: Error Handling (10-15 minutes)
|
|
|
|
**Goal:** Test graceful error handling
|
|
|
|
**Test 5.1: Invalid Configuration**
|
|
|
|
Temporarily rename `.env`:
|
|
```bash
|
|
mv .env .env.bak
|
|
/sprint-status
|
|
```
|
|
|
|
**Expected Behavior:**
|
|
- ❌ Clear error message about missing configuration
|
|
- ❌ Instructions to create .env
|
|
- ❌ No cryptic errors
|
|
|
|
**Test 5.2: Network Issues** (Simulate)
|
|
|
|
Stop Gitea or Wiki.js service temporarily:
|
|
```
|
|
/labels-sync
|
|
```
|
|
|
|
**Expected Behavior:**
|
|
- ❌ Connection error clearly stated
|
|
- ❌ Helpful troubleshooting suggestions
|
|
- ❌ No crashes or stack traces
|
|
|
|
**Test 5.3: Invalid Repository**
|
|
|
|
Edit `.env` with wrong repo name:
|
|
```bash
|
|
echo "GITEA_REPO=nonexistent-repo" > .env
|
|
/sprint-status
|
|
```
|
|
|
|
**Expected Behavior:**
|
|
- ❌ Repository not found error
|
|
- ❌ Suggestions to check .env configuration
|
|
- ❌ No silent failures
|
|
|
|
**Cleanup:**
|
|
```bash
|
|
mv .env.bak .env # Restore configuration
|
|
```
|
|
|
|
## Success Metrics
|
|
|
|
### Technical Metrics
|
|
|
|
- [ ] All MCP servers connect successfully
|
|
- [ ] All 5 commands execute without errors
|
|
- [ ] All 3 agents exhibit correct personalities
|
|
- [ ] Branch detection works 100% accurately
|
|
- [ ] Labels sync correctly from Gitea
|
|
- [ ] Issues created with proper structure and labels
|
|
- [ ] Lessons learned saved to Wiki.js successfully
|
|
- [ ] No hardcoded secrets or absolute paths
|
|
- [ ] Error messages clear and actionable
|
|
|
|
### User Experience Metrics
|
|
|
|
- [ ] Commands intuitive to use
|
|
- [ ] Agent personalities distinct and helpful
|
|
- [ ] Planner asks relevant questions
|
|
- [ ] Orchestrator provides concise guidance
|
|
- [ ] Executor follows specs precisely
|
|
- [ ] Error messages helpful (not cryptic)
|
|
- [ ] Documentation clear and accurate
|
|
|
|
### Quality Metrics
|
|
|
|
- [ ] No crashes or unhandled exceptions
|
|
- [ ] Branch security enforced correctly
|
|
- [ ] Configuration validation works
|
|
- [ ] MCP tool integration seamless
|
|
- [ ] Label suggestions intelligent
|
|
- [ ] Lessons learned captured systematically
|
|
|
|
## Known Limitations (Phase 0.1.0)
|
|
|
|
1. **No Executor Integration** - Executor agent not yet invoked automatically by orchestrator (Phase 4)
|
|
2. **No Milestone Support** - Sprint milestones not implemented (Phase 4)
|
|
3. **No Dependencies Tracking** - Issue dependencies not automatically tracked (Phase 4)
|
|
4. **No Progress Updates** - Orchestrator doesn't automatically update issue comments (Phase 4)
|
|
5. **Manual Git Operations** - Git operations not automated yet (Phase 4)
|
|
|
|
These are expected at this stage and will be addressed in Phase 4 (Lessons Learned Integration).
|
|
|
|
## Troubleshooting Guide
|
|
|
|
### Issue: Commands not found
|
|
|
|
**Symptoms:** `/sprint-plan` returns "command not found"
|
|
|
|
**Solutions:**
|
|
1. Check marketplace loaded: `ls .claude-plugins/projman-marketplace/`
|
|
2. Verify plugin path in marketplace.json
|
|
3. Restart Claude Code
|
|
|
|
### Issue: MCP connection errors
|
|
|
|
**Symptoms:** "Failed to connect to Gitea" or "Failed to connect to Wiki.js"
|
|
|
|
**Solutions:**
|
|
1. Check system config exists: `ls ~/.config/claude/*.env`
|
|
2. Verify API URLs correct in config files
|
|
3. Test MCP servers manually (see Pre-Flight Checks)
|
|
4. Check network connectivity to services
|
|
|
|
### Issue: Repository not found
|
|
|
|
**Symptoms:** "Repository 'X' not found in organization"
|
|
|
|
**Solutions:**
|
|
1. Check `.env` file: `cat .env`
|
|
2. Verify `GITEA_REPO` matches actual repository name
|
|
3. Check Gitea organization matches `GITEA_OWNER` in system config
|
|
4. Verify API token has access to repository
|
|
|
|
### Issue: Lessons not saving to Wiki.js
|
|
|
|
**Symptoms:** "Failed to create lesson" or permission errors
|
|
|
|
**Solutions:**
|
|
1. Check Wiki.js API token has Pages (create) permission
|
|
2. Verify `WIKIJS_BASE_PATH` exists in Wiki.js
|
|
3. Check `WIKIJS_PROJECT` path is correct
|
|
4. Test Wiki.js connection (see Pre-Flight Checks)
|
|
|
|
### Issue: Branch detection not working
|
|
|
|
**Symptoms:** Can create issues on production branch
|
|
|
|
**Solutions:**
|
|
1. Verify git repository initialized: `git status`
|
|
2. Check branch name: `git branch --show-current`
|
|
3. Review agent prompts - branch check should be first operation
|
|
4. This is a critical bug - report immediately
|
|
|
|
## Next Steps After Testing
|
|
|
|
### If All Tests Pass ✅
|
|
|
|
1. **Document Findings**
|
|
- Create test report with results
|
|
- Note any minor issues encountered
|
|
- Capture user experience feedback
|
|
|
|
2. **Move to Phase 4: Lessons Learned Integration**
|
|
- Implement automatic issue updates
|
|
- Add milestone support
|
|
- Implement dependency tracking
|
|
- Automate git operations
|
|
|
|
3. **Prepare for Phase 5: Testing & Validation**
|
|
- Write integration tests
|
|
- Test with real sprint on a production project
|
|
- Collect user feedback from team
|
|
|
|
### If Tests Fail ❌
|
|
|
|
1. **Document Failures**
|
|
- Exact error messages
|
|
- Steps to reproduce
|
|
- Expected vs actual behavior
|
|
|
|
2. **Categorize Issues**
|
|
- Critical: Blocks basic functionality
|
|
- High: Major feature doesn't work
|
|
- Medium: Feature works but has issues
|
|
- Low: Minor UX improvements
|
|
|
|
3. **Fix and Retest**
|
|
- Fix critical issues first
|
|
- Retest after each fix
|
|
- Update documentation if needed
|
|
|
|
## Test Execution Log
|
|
|
|
### Test Session 1: [Date]
|
|
|
|
**Tester:** [Name]
|
|
**Duration:** [Time]
|
|
**Environment:**
|
|
- Branch: [branch name]
|
|
- Claude Code Version: [version]
|
|
- Plugin Version: 0.1.0
|
|
|
|
**Results:**
|
|
|
|
| Test | Status | Notes |
|
|
|------|--------|-------|
|
|
| Pre-Flight: MCP Connectivity | [ ] Pass / [ ] Fail | |
|
|
| Pre-Flight: Configuration | [ ] Pass / [ ] Fail | |
|
|
| 1.1: Label Sync | [ ] Pass / [ ] Fail | |
|
|
| 1.2: Sprint Status | [ ] Pass / [ ] Fail | |
|
|
| 2.1: Planner Agent | [ ] Pass / [ ] Fail | |
|
|
| 2.2: Orchestrator Agent | [ ] Pass / [ ] Fail | |
|
|
| 2.3: Executor Agent | [ ] Pass / [ ] Fail | |
|
|
| 3: Full Workflow | [ ] Pass / [ ] Fail | |
|
|
| 4: Branch Detection | [ ] Pass / [ ] Fail | |
|
|
| 5: Error Handling | [ ] Pass / [ ] Fail | |
|
|
|
|
**Overall Assessment:** [ ] Pass / [ ] Fail
|
|
|
|
**Critical Issues Found:** [Number]
|
|
|
|
**Recommendations:** [Next steps]
|
|
|
|
---
|
|
|
|
**Testing Status:** Ready to Begin
|
|
**Next Step:** Execute Pre-Flight Checks and Phase 1 Quick Validation
|