Files
Claude-Code-Workflow/.claude/skills/team-iterdev/specs/team-config.json
catlog22 64d0d0b9d1 feat(team-iterdev): add Phase 1-3 workflow optimizations
Add 7 missing scenarios for real-world iterative development:
- Phase 1 (P1): Conflict handling, concurrency control, rollback strategy
- Phase 2 (P2): External dependency management, state recovery
- Phase 3 (P3): User feedback loop, tech debt tracking

Changes:
- Extend task-ledger.json with conflict_info, rollback_info, external_dependencies
- Extend shared-memory.json with resource_locks, task_checkpoints, user_feedback_items, tech_debt_items
- Add 14 new message types for all scenarios
- Update coordinator role with new responsibilities and error handling
- Upgrade team-config.json to version 1.2.0
2026-02-23 22:49:38 +08:00

173 lines
6.1 KiB
JSON

{
"team_name": "team-iterdev",
"team_display_name": "Team IterDev",
"description": "Iterative development team with Generator-Critic loop, task ledger, sprint learning, dynamic pipeline, conflict handling, concurrency control, rollback strategy, user feedback loop, and tech debt tracking",
"version": "1.2.0",
"roles": {
"coordinator": {
"task_prefix": null,
"responsibility": "Sprint planning, backlog management, task ledger maintenance, GC loop control, Phase 1: conflict handling, concurrency control, rollback strategy, Phase 3: user feedback loop, tech debt tracking",
"message_types": [
"sprint_started", "gc_loop_trigger", "sprint_complete", "task_unblocked", "error", "shutdown",
"conflict_detected", "conflict_resolved", "resource_locked", "resource_unlocked", "resource_contention",
"rollback_initiated", "rollback_completed", "rollback_failed",
"user_feedback_received", "tech_debt_identified"
]
},
"architect": {
"task_prefix": "DESIGN",
"responsibility": "Technical design, task decomposition, architecture decisions",
"message_types": ["design_ready", "design_revision", "error"]
},
"developer": {
"task_prefix": "DEV",
"responsibility": "Code implementation, incremental delivery",
"message_types": ["dev_complete", "dev_progress", "error"]
},
"tester": {
"task_prefix": "VERIFY",
"responsibility": "Test execution, fix cycle, regression detection",
"message_types": ["verify_passed", "verify_failed", "fix_required", "error"]
},
"reviewer": {
"task_prefix": "REVIEW",
"responsibility": "Code review, quality scoring, improvement suggestions",
"message_types": ["review_passed", "review_revision", "review_critical", "error"]
}
},
"pipelines": {
"patch": {
"description": "Simple fix: implement → verify",
"task_chain": ["DEV-001", "VERIFY-001"],
"gc_loops": 0
},
"sprint": {
"description": "Standard feature: design → implement → verify + review (parallel)",
"task_chain": ["DESIGN-001", "DEV-001", "VERIFY-001", "REVIEW-001"],
"gc_loops": 3,
"parallel_groups": [["VERIFY-001", "REVIEW-001"]]
},
"multi-sprint": {
"description": "Large feature: multiple sprint cycles with incremental delivery",
"task_chain": "dynamic — coordinator creates per-sprint chains",
"gc_loops": 3,
"sprint_count": "dynamic"
}
},
"innovation_patterns": {
"generator_critic": {
"generator": "developer",
"critic": "reviewer",
"max_rounds": 3,
"convergence_trigger": "review.critical_count === 0 && review.score >= 7"
},
"task_ledger": {
"file": "task-ledger.json",
"updated_by": "coordinator",
"tracks": ["status", "gc_rounds", "review_score", "test_pass_rate", "velocity"],
"phase1_extensions": {
"conflict_info": {
"fields": ["status", "conflicting_files", "resolution_strategy", "resolved_by_task_id"],
"default": { "status": "none", "conflicting_files": [], "resolution_strategy": null, "resolved_by_task_id": null }
},
"rollback_info": {
"fields": ["snapshot_id", "rollback_procedure", "last_successful_state_id"],
"default": { "snapshot_id": null, "rollback_procedure": null, "last_successful_state_id": null }
}
}
},
"shared_memory": {
"file": "shared-memory.json",
"fields": {
"architect": "architecture_decisions",
"developer": "implementation_context",
"tester": "test_patterns",
"reviewer": "review_feedback_trends"
},
"persistent_fields": ["sprint_history", "what_worked", "what_failed", "patterns_learned"],
"phase1_extensions": {
"resource_locks": {
"description": "Concurrency control: resource locking state",
"lock_timeout_ms": 300000,
"deadlock_detection": true
}
}
},
"dynamic_pipeline": {
"selector": "coordinator",
"criteria": "file_count + module_count + complexity_assessment",
"downgrade_rule": "velocity >= expected && review_avg >= 8 → simplify next sprint"
}
},
"phase1_features": {
"conflict_handling": {
"enabled": true,
"detection_strategy": "file_overlap",
"resolution_strategies": ["manual", "auto_merge", "abort"]
},
"concurrency_control": {
"enabled": true,
"lock_timeout_minutes": 5,
"deadlock_detection": true,
"resources": ["task-ledger.json", "shared-memory.json"]
},
"rollback_strategy": {
"enabled": true,
"snapshot_trigger": "task_complete",
"default_procedure": "git revert HEAD"
}
},
"phase2_features": {
"external_dependency_management": {
"enabled": true,
"validation_trigger": "task_start",
"supported_sources": ["npm", "maven", "pip", "git"],
"version_check_command": {
"npm": "npm list {name}",
"pip": "pip show {name}",
"maven": "mvn dependency:tree"
}
},
"state_recovery": {
"enabled": true,
"checkpoint_trigger": "phase_complete",
"max_checkpoints_per_task": 5,
"checkpoint_dir": "checkpoints/"
}
},
"phase3_features": {
"user_feedback_loop": {
"enabled": true,
"collection_trigger": "sprint_complete",
"max_feedback_items": 50,
"severity_levels": ["low", "medium", "high", "critical"],
"status_flow": ["new", "reviewed", "addressed", "closed"]
},
"tech_debt_tracking": {
"enabled": true,
"detection_sources": ["review", "test", "architect"],
"categories": ["code", "design", "test", "documentation"],
"severity_levels": ["low", "medium", "high", "critical"],
"status_flow": ["open", "in_progress", "resolved", "deferred"],
"report_trigger": "sprint_retrospective"
}
},
"collaboration_patterns": ["CP-1", "CP-3", "CP-5", "CP-6"],
"session_dirs": {
"base": ".workflow/.team/IDS-{slug}-{YYYY-MM-DD}/",
"design": "design/",
"code": "code/",
"verify": "verify/",
"review": "review/",
"messages": ".workflow/.team-msg/{team-name}/"
}
}