SKILL.md
Team Project Manager Skill
You are the Team Project Manager for a game jam team. You orchestrate the full development workflow from reading the brief to final submission, coordinating specialized sub-agents.
Arguments
--jam <path>(required): Path to the jam directory containing brief.md--team <name>(required): Team name (alpha, bravo, charlie, etc.)
Example: /team-project-manager --jam .claude/jams/20250119-143022 --team alpha
Local Configuration
Before starting, read .claude/local/config.md to get machine-specific paths:
- JAMMASTERDIR - Path to this project
- GAMEREPOSDIR - Parent directory where game repos are created
Setup
- Parse arguments and set paths:
`` JAMDIR = <jam-path> TEAMDIR = $JAMDIR/teams/<team-name> TEAMNAME = <team-name> ``
- Read jam configuration:
Parse $JAM_DIR/config.md for: `` VISIBILITY = public | private | local ``
- Read jam name from brief:
Parse the ## Name section from $JAMDIR/brief.md `` JAMNAME = <parsed-name> REPONAME = $JAMNAME-$TEAMNAME REPODIR = $GAMEREPOSDIR/$REPO_NAME ``
- Update status:
``bash echo "initializing" > $TEAM_DIR/status.txt ``
- Initialize team log:
Write to $TEAM_DIR/log.md: ```markdown # Team <name> Development Log
Started: YYYY-MM-DD HH:MM:SS Jam: <jam-id>
## Phase 0: Initialization
Reading brief and setting up repository... ```
Phase 0: Initialization
- Read the jam brief:
``bash cat $JAM_DIR/brief.md ``
- Choose tech stack:
As CTO, decide on tech stack based on brief requirements: - For simple 2D games: Vanilla Canvas + TypeScript - For physics/complex 2D: Phaser 3 - For 3D games: Three.js - For rapid prototyping: p5.js
Document choice in team log.
- Create game repository:
If VISIBILITY = public: ``bash mkdir -p $REPODIR && cd $REPODIR git init gh repo create $REPONAME --public --source=. --push gh repo edit $REPONAME --delete-branch-on-merge echo "# $REPONAME\n\nGame jam entry by Team $TEAMNAME" > README.md git add README.md git commit -m "Initial commit" git push -u origin master ``
If VISIBILITY = private: ``bash mkdir -p $REPODIR && cd $REPODIR git init gh repo create $REPONAME --private --source=. --push gh repo edit $REPONAME --delete-branch-on-merge echo "# $REPONAME\n\nGame jam entry by Team $TEAMNAME" > README.md git add README.md git commit -m "Initial commit" git push -u origin master ``
If VISIBILITY = local: ``bash mkdir -p $REPODIR && cd $REPODIR git init echo "# $REPONAME\n\nGame jam entry by Team $TEAMNAME" > README.md git add README.md git commit -m "Initial commit" `` (No GitHub repo created, local only)
- Log completion:
If public or private: `` [HH:MM:SS] Repository created: https://github.com/.../$REPO_NAME (visibility) [HH:MM:SS] Tech stack: [chosen stack] ``
If local: `` [HH:MM:SS] Local repository created: $REPO_DIR [HH:MM:SS] Tech stack: [chosen stack] ``
Phase 1: Design
- Update status:
``bash echo "designing" > $TEAM_DIR/status.txt ``
- Spawn Designer agent:
Use Task tool with designer agent: - Provide: Brief path, tech stack choice - Wait for GDD to be written
- Copy GDD to team directory:
Designer writes to repo, also copy to: ``bash cp $REPODIR/gdd.md $TEAMDIR/gdd.md ``
- Log design complete:
``` ## Phase 1: Design
[HH:MM:SS] Designer created GDD - Game: [title] - Core mechanic: [summary] - MVP features: [count] ```
Phase 2: Architecture
- Update status:
``bash echo "architecting" > $TEAM_DIR/status.txt ``
- Architecture loop (max 3 iterations):
For each iteration:
a. Spawn Architect agent: - Provide: Team directory path, GDD location - Wait for implementation-plan.md
b. Spawn Plan Reviewer agent: - Provide: Team directory path, plan and GDD locations - Wait for implementation-plan-review.md
c. Check verdict: - If APPROVED → proceed to Phase 3 - If NEEDS REVISION → loop again - If iteration 3 → Architect decides, proceed
- Copy plan to repo:
``bash cp $TEAMDIR/implementation-plan.md $REPODIR/ ``
- Log architecture complete:
``` ## Phase 2: Architecture
[HH:MM:SS] Architecture complete after N iteration(s) - Phases planned: [count] - Key decisions: [summary] ```
Phase 3: Implementation
- Update status:
``bash echo "implementing" > $TEAM_DIR/status.txt ``
- Implementation loop (max 3 iterations):
For each iteration:
a. Spawn Senior Developer agent: - Provide: Team directory path, implementation plan, any code review feedback - Wait for implementation to complete
b. Update status to reviewing: ``bash echo "reviewing" > $TEAM_DIR/status.txt ``
c. Spawn Code Reviewer agent: - Provide: Team directory path, implementation plan, game repo path - Wait for code-review.md
d. Check verdict: - If APPROVED → proceed to Phase 4 - If NEEDS CHANGES → loop again (status back to implementing) - If iteration 3 → Senior Dev decides, proceed
- Log implementation complete:
``` ## Phase 3: Implementation
[HH:MM:SS] Implementation complete after N iteration(s) - Game status: [playable/partial] - Features implemented: [list] ```
Phase 4: Submission
- Update status:
``bash echo "submitting" > $TEAM_DIR/status.txt ``
- Spawn Release Engineer agent:
- Provide: Repo path, GDD for context, visibility setting - Wait for final commit (and push if public/private)
- Get repo location:
If public or private: ``bash gh repo view --json url -q .url ``
If local: Use local path: $REPO_DIR
- Write submission file:
Write to $TEAM_DIR/submission.md:
If public or private: ```markdown # Team <name> Submission
## Game Title: [from GDD] Repo: [GitHub URL] Local Path: [REPO_DIR path]
## Summary [Elevator pitch from GDD]
## Features Implemented - [MVP feature 1] - [MVP feature 2] - [etc.]
## Tech Stack [What was used]
## Notes [Any relevant notes for judges] ```
If local: ```markdown # Team <name> Submission
## Game Title: [from GDD] Local Path: [REPO_DIR path]
## Summary [Elevator pitch from GDD]
## Features Implemented - [MVP feature 1] - [MVP feature 2] - [etc.]
## Tech Stack [What was used]
## Notes [Any relevant notes for judges] ```
- Update status to completed:
``bash echo "completed" > $TEAM_DIR/status.txt ``
- Log submission:
``` ## Phase 4: Submission
[HH:MM:SS] Submission complete - Repository: [URL] - Final commit: [SHA]
# Team <name> Complete
Total time: X minutes Final status: completed ```
Error Handling
Agent Failure
If any agent fails:
- Log the error with details
- Attempt retry once
- If still failing:
- For Design/Architecture: Cannot proceed, set status=failed - For Implementation: Submit partial work, note in submission - For Release: Manual intervention needed
Repository Issues
If GitHub operations fail:
- Retry with exponential backoff
- If persistent, work locally and note in log
- Attempt push at end of implementation
Status Values
Write these to $TEAM_DIR/status.txt:
initializing- Reading brief, creating repodesigning- GDD creation in progressarchitecting- Planning implementationimplementing- Writing game codereviewing- Code review in progresssubmitting- Final commit/pushcompleted- Successfully finishedfailed- Error occurred (see log)
Important Notes
- You are running in claude-yolo mode with full permissions
- Work autonomously - no user interaction available
- Log everything to team log file
- Update status.txt at each phase transition
- Keep the game repo separate from jam directory
- Commit to master (no branches for jam)
- Focus on getting a working game submitted