refactor(projman): extract skills and consolidate commands

Major refactoring of projman plugin architecture:

Skills Extraction (17 new files):
- Extracted reusable knowledge from commands and agents into skills/
- branch-security, dependency-management, git-workflow, input-detection
- issue-conventions, lessons-learned, mcp-tools-reference, planning-workflow
- progress-tracking, repo-validation, review-checklist, runaway-detection
- setup-workflows, sprint-approval, task-sizing, test-standards, wiki-conventions

Command Consolidation (17 → 12 commands):
- /setup: consolidates initial-setup, project-init, project-sync (--full/--quick/--sync)
- /debug: consolidates debug-report, debug-review (report/review modes)
- /test: consolidates test-check, test-gen (run/gen modes)
- /sprint-status: absorbs sprint-diagram via --diagram flag

Architecture Cleanup:
- Remove plugin-level mcp-servers/ symlinks (6 plugins)
- Remove plugin README.md files (12 files, ~2000 lines)
- Update all documentation to reflect new command structure
- Fix documentation drift in CONFIGURATION.md, COMMANDS-CHEATSHEET.md

Commands are now thin dispatchers (~20-50 lines) that reference skills.
Agents reference skills for domain knowledge instead of inline content.

Co-Authored-By: Claude Opus 4.5 <noreply@anthropic.com>
This commit is contained in:
2026-01-30 15:02:16 -05:00
parent 8fe685037e
commit 2e65b60725
70 changed files with 3450 additions and 8887 deletions

View File

@@ -0,0 +1,138 @@
---
name: dependency-management
description: Parallel execution planning, dependency graphs, and file conflict prevention
---
# Dependency Management
## Purpose
Defines how to analyze dependencies, plan parallel execution, and prevent file conflicts.
## When to Use
- **Orchestrator agent**: When starting sprint execution
- **Commands**: `/sprint-start`, `/sprint-diagram`
---
## Get Execution Order
```python
get_execution_order(repo="org/repo", issue_numbers=[45, 46, 47, 48, 49])
```
Returns batches that can run in parallel:
```json
{
"batches": [
[45, 48], // Batch 1: No dependencies
[46, 49], // Batch 2: Depends on batch 1
[47] // Batch 3: Depends on batch 2
]
}
```
**Independent tasks in the same batch can run in parallel.**
---
## Parallel Execution Display
```
Parallel Execution Batches:
┌─────────────────────────────────────────────────────────────┐
│ Batch 1 (can start immediately): │
│ • #45 [Sprint 18] feat: Implement JWT service │
│ • #48 [Sprint 18] docs: Update API documentation │
├─────────────────────────────────────────────────────────────┤
│ Batch 2 (after batch 1): │
│ • #46 [Sprint 18] feat: Build login endpoint (needs #45) │
│ • #49 [Sprint 18] test: Add auth tests (needs #45) │
├─────────────────────────────────────────────────────────────┤
│ Batch 3 (after batch 2): │
│ • #47 [Sprint 18] feat: Create login form (needs #46) │
└─────────────────────────────────────────────────────────────┘
```
---
## File Conflict Prevention (MANDATORY)
**CRITICAL: Before dispatching parallel agents, check for file overlap.**
### Pre-Dispatch Conflict Check
1. **Identify target files** for each task in the batch
2. **Check for overlap** - Do any tasks modify the same file?
3. **If overlap detected** - Sequentialize those specific tasks
### Example Analysis
```
Batch 1 Analysis:
#45 - Implement JWT service
Files: auth/jwt_service.py, auth/__init__.py
#48 - Update API documentation
Files: docs/api.md, README.md
Overlap: NONE → Safe to parallelize ✅
Batch 2 Analysis:
#46 - Build login endpoint
Files: api/routes/auth.py, auth/__init__.py
#49 - Add auth tests
Files: tests/test_auth.py, auth/__init__.py
Overlap: auth/__init__.py → CONFLICT! ⚠️
Action: Sequentialize #46 and #49 (run #46 first)
```
### Conflict Resolution Rules
| Conflict Type | Action |
|---------------|--------|
| Same file in checklist | Sequentialize tasks |
| Same directory | Review if safe, usually OK |
| Shared test file | Sequentialize or assign different test files |
| Shared config | Sequentialize |
---
## Branch Isolation Protocol
Each task MUST have its own branch:
```
Task #45 → feat/45-jwt-service (isolated)
Task #48 → feat/48-api-docs (isolated)
```
Never have two agents work on the same branch.
---
## Sequential Merge After Completion
```
1. Task #45 completes → merge feat/45-jwt-service to development
2. Task #48 completes → merge feat/48-api-docs to development
3. Never merge simultaneously - always sequential to detect conflicts
```
**If Merge Conflict Occurs:**
1. Stop second task
2. Resolve conflict manually or assign to human
3. Resume/restart second task with updated base
---
## Creating Dependencies
```python
# Issue 46 depends on issue 45
create_issue_dependency(
repo="org/repo",
issue_number=46,
depends_on=45
)
```
This ensures #46 won't be scheduled until #45 completes.