Files
leo-claude-mktplace/docs/TEST_01_PROJMAN.md
lmiranda 816cdc02d9 refactor: rename projman-test-marketplace to projman-marketplace
- 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>
2025-12-09 13:39:50 -05:00

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