team-coordination
Synchronizes work across multiple developers and AI sessions to prevent conflicts on shared codebases.
Install
mkdir -p .claude/skills/team-coordination && curl -L -o skill.zip "https://agentskills.codes/api/skills/download/6427" && unzip -o skill.zip -d .claude/skills/team-coordination && rm skill.zipInstalls to .claude/skills/team-coordination
Activation
This is the description your AI agent reads to decide when to run this skill — the better it matches your request, the more reliably it fires.
Multi-person projects - shared state, todo claiming, handoffsKey capabilities
- →Synchronize shared state across multiple sessions
- →Manage todo claiming for distributed tasks
- →Generate handoff notes for transitions
- →Maintain architectural decision logs
- →Map session-specific work to global project specifications
How it works
Enforces a rigid file-based directory schema for cross-session state tracking and manual task synchronization.
Inputs & outputs
When to use team-coordination
- →Syncing work across developers
- →Claiming development tasks
- →Handing off work to teammates
About this skill
Team Coordination Skill
Purpose: Enable multiple Claude Code sessions across a team to coordinate and work together without conflicts. Manages shared state, todo claiming, decision syncing, and session awareness.
Core Philosophy
┌─────────────────────────────────────────────────────────────────┐
│ TEAM CLAUDE CODE │
│ ───────────────────────────────────────────────────────────── │
│ Multiple devs, multiple Claude sessions, one codebase. │
│ Coordination > Speed. Communication > Assumptions. │
│ │
│ Before you start: Check who's working on what. │
│ Before you claim: Make sure nobody else has it. │
│ Before you decide: Check if it's already decided. │
│ Before you push: Pull and sync state. │
└─────────────────────────────────────────────────────────────────┘
Team State Structure
When a project becomes multi-person, create this structure:
_project_specs/
├── team/
│ ├── state.md # Who's working on what right now
│ ├── contributors.md # Team members and their focus areas
│ └── handoffs/ # Notes when passing work to others
│ └── [feature]-handoff.md
├── session/
│ ├── current-state.md # YOUR session state (personal)
│ ├── decisions.md # SHARED - architectural decisions
│ └── code-landmarks.md # SHARED - important code locations
└── todos/
├── active.md # SHARED - with claim annotations
├── backlog.md # SHARED
└── completed.md # SHARED
Team State File
_project_specs/team/state.md:
# Team State
*Last synced: [timestamp]*
## Active Sessions
| Contributor | Working On | Started | Files Touched | Status |
|-------------|------------|---------|---------------|--------|
| @alice | TODO-042: Add auth | 2024-01-15 10:30 | src/auth/* | 🟢 Active |
| @bob | TODO-038: Fix checkout | 2024-01-15 09:00 | src/cart/* | 🟡 Paused |
| - | - | - | - | - |
## Claimed Todos
| Todo | Claimed By | Since | ETA |
|------|------------|-------|-----|
| TODO-042 | @alice | 2024-01-15 | Today |
| TODO-038 | @bob | 2024-01-14 | Tomorrow |
## Recently Completed (Last 48h)
| Todo | Completed By | When | PR |
|------|--------------|------|-----|
| TODO-037 | @alice | 2024-01-14 | #123 |
## Conflicts to Watch
| Area | Contributors | Notes |
|------|--------------|-------|
| src/auth/* | @alice, @carol | Carol needs auth for TODO-045, coordinate |
## Announcements
- [2024-01-15] @alice: Refactoring auth module, avoid touching until EOD
- [2024-01-14] @bob: New env var required: STRIPE_WEBHOOK_SECRET
Contributors File
_project_specs/team/contributors.md:
# Contributors
## Team Members
| Handle | Name | Focus Areas | Timezone | Status |
|--------|------|-------------|----------|--------|
| @alice | Alice Smith | Backend, Auth | EST | Active |
| @bob | Bob Jones | Frontend, Payments | PST | Active |
| @carol | Carol White | DevOps, Infra | GMT | Part-time |
## Ownership
| Area | Primary | Backup | Notes |
|------|---------|--------|-------|
| Authentication | @alice | @bob | All auth changes need @alice review |
| Payments | @bob | @alice | Stripe integration |
| Infrastructure | @carol | @alice | Deploy scripts, CI/CD |
| Database | @alice | @carol | Migrations need sign-off |
## Communication
- Slack: #project-name
- PRs: Always tag area owner for review
- Urgent: DM on Slack
## Working Hours Overlap
EST: |████████████████████| PST: | ████████████████████| GMT: |████████████| 6am 12pm 6pm 12am EST
Best overlap: 9am-12pm EST (all three)
Workflow
Starting a Session
┌─────────────────────────────────────────────────────────────────┐
│ START SESSION CHECKLIST │
│ ───────────────────────────────────────────────────────────── │
│ 1. git pull origin main │
│ 2. Read _project_specs/team/state.md │
│ 3. Check claimed todos - don't take what's claimed │
│ 4. Claim your todo in active.md │
│ 5. Update state.md with your session │
│ 6. Push state changes before starting work │
│ 7. Start working │
└─────────────────────────────────────────────────────────────────┘
Claiming a Todo
In active.md, add claim annotation:
## [TODO-042] Add email validation
**Status:** in-progress
**Claimed:** @alice (2024-01-15 10:30 EST)
**ETA:** Today
...
During Work
- Update
state.mdif you touch new files - Check
decisions.mdbefore making architectural choices - If you make a decision, add it to
decisions.mdimmediately - Push state updates every 1-2 hours (keeps team in sync)
Ending a Session
┌─────────────────────────────────────────────────────────────────┐
│ END SESSION CHECKLIST │
│ ───────────────────────────────────────────────────────────── │
│ 1. Commit your work (even if WIP) │
│ 2. Update your current-state.md │
│ 3. Update team state.md (status → Paused or Done) │
│ 4. If passing to someone: create handoff note │
│ 5. Unclaim todo if abandoning │
│ 6. Push everything │
└─────────────────────────────────────────────────────────────────┘
Creating a Handoff
When passing work to another team member, create:
_project_specs/team/handoffs/auth-feature-handoff.md:
# Handoff: Auth Feature (TODO-042)
**From:** @alice
**To:** @bob
**Date:** 2024-01-15
## Status
70% complete. Core auth flow works, need to add:
- [ ] Password reset flow
- [ ] Email verification
## What's Done
- Login/logout working
- JWT tokens implemented
- Session management done
## What's Left
1. Password reset - see src/auth/reset.ts (skeleton exists)
2. Email verification - need to integrate SendGrid
## Key Decisions Made
- Using JWT not sessions (see decisions.md)
- Tokens expire in 7 days
- Refresh tokens stored in httpOnly cookies
## Watch Out For
- The `validateToken` function has a weird edge case with expired tokens
- Don't touch `authMiddleware.ts` - it's fragile rn
## Files to Start With
1. src/auth/reset.ts - password reset
2. src/email/verification.ts - email flow
3. tests/auth.test.ts - add tests here
## Questions?
Slack me @alice if stuck
Conflict Prevention
File-Level Awareness
Before modifying a file, check state.md for who's touching what:
## Active Sessions
| Contributor | Working On | Started | Files Touched | Status |
|-------------|------------|---------|---------------|--------|
| @alice | TODO-042 | ... | src/auth/*, src/middleware/* | 🟢 Active |
If you need to touch src/auth/* and Alice is working there:
- Check if it's truly conflicting (same file? same functions?)
- Coordinate via Slack before proceeding
- Add a note to "Conflicts to Watch" section
Pre-Push Check
Before pushing, always:
git pull origin main
# Resolve any conflicts
git push
PR Tagging
Always tag area owners in PRs:
## PR: Add password reset flow
Implements TODO-042
cc: @alice (auth owner), @bob (reviewer)
### Changes
- Added password reset endpoint
- Added email templates
### Testing
- [ ] Unit tests pass
- [ ] Manual testing done
Decision Syncing
Before Making a Decision
- Pull latest
decisions.md - Check if decision already exists
- If similar decision exists, follow it (consistency > preference)
- If new decision needed, add it and push immediately
Decision Format
## [2024-01-15] JWT vs Sessions for Auth (@alice)
**Decision:** Use JWT tokens
**Context:** Need auth for API and mobile app
**Options:**
1. Sessions - simpler, server-side state
2. JWT - stateless, works for mobile
**Choice:** JWT
**Reasoning:** Mobile app needs stateless auth, JWT works across platforms
**Trade-offs:** Token revocation is harder, need refresh token strategy
**Approved by:** @bob, @carol
Commands
Check Team State
# See who's working on what
cat _project_specs/team/state.md
# Quick active sessions check
grep "🟢 Active" _project_specs/team/state.md
Claim a Todo
- Edit
_project_specs/todos/active.md - Add claim annotation to todo
- Update
_project_specs/team/state.md - Commit and push
Release a Claim
- Remove claim annotation from todo
- Update state.md (remove from Claimed Todos)
- Commit and push
Git Hooks for Teams
Pre-Push Hook Addition
Add team state sync check to pre-push:
# In .git/hooks/pre-push (add to existing)
# Check if team state is current
echo "🔄 Checking team state..."
git fetch origin main --quiet
LOCAL_STATE=$(git show HEAD:_project_specs/team/state.md 2>/dev/null | md5)
REMOTE_STATE=$(git show origin/main:_project_specs/team/state.md 2>/dev/null | md5)
if [ "$LOCAL_STATE" != "$REMOTE_STATE" ]; then
echo "⚠️ Team state has changed on remote!"
echo " Run: git pull origin main"
echo " Then check _project_specs/team/state.md for updates"
# Warning only, don't block
fi
Claude Instructions
At Session Start
When user starts a session in a team project:
-
Check for
_project_specs/team/state.md -
If exists, read it and report:
- Who's currently active
- What todos are claimed
- Any conflicts to watch
- Recent announcements
-
Ask what they want to work on
-
Check if it's already claimed
-
Help them claim and upda
Content truncated.
When not to use it
- →Solo development projects
- →Environment where shared file system access is restricted
Prerequisites
Limitations
- →Requires manual adherence to the directory structure
- →No built-in real-time notification mechanism between sessions
How it compares
It creates a shared 'truth' file system layer rather than relying on disparate developer memory.
Compared to similar skills
team-coordination side by side with the closest alternatives in the catalog.
| Skill | Installs | Updated | Safety | Difficulty |
|---|---|---|---|---|
| team-coordination (this skill) | 1 | 4mo | Review | Intermediate |
| github-project-management | 4 | 6mo | Review | Advanced |
| issue-manage | 2 | 5mo | Review | Beginner |
| beads | 0 | 6mo | Review | Intermediate |
Try saying
Example prompts that trigger this skill in your AI assistant.
More by alinaqi
View all by alinaqi →You might also like
github-project-management
ruvnet
Comprehensive GitHub project management with swarm-coordinated issue tracking, project board automation, and sprint planning
issue-manage
catlog22
Interactive issue management with menu-driven CRUD operations. Use when managing issues, viewing issue status, editing issue fields, performing bulk operations, or viewing issue history. Triggers on "manage issue", "list issues", "edit issue", "delete issue", "bulk update", "issue dashboard", "issue history", "completed issues".
beads
Ansteorra
Manage plan tasks using the beads distributed, git-backed graph issue tracker. Supports creating, updating, closing tasks, managing dependencies, and syncing with git.
to-issues
rithythul
Break a plan, spec, or PRD into independently-grabbable issues on the project issue tracker using tracer-bullet vertical slices. Use when user wants to convert a plan into issues, create implementation tickets, or break down work into issues.
prepare
This-Is-NPC
Create implementation preparation artifacts from approved requirements. Use when a user asks to convert requirements into a project management issue and generate or create the implementation branch using workflow naming rules.
jira
davila7
Use when the user mentions Jira issues (e.g., "PROJ-123"), asks about tickets, wants to create/view/update issues, check sprint status, or manage their Jira workflow. Triggers on keywords like "jira", "issue", "ticket", "sprint", "backlog", or issue key patterns.