
team-coordination
Multi-person projects - shared state, todo claiming, handoffs
- Installs
- 314
- Last 24h
- —
- Trending rank
- —
- Security
- Not audited
Install
Works with every agent the skills CLI supports.
npx skills add https://github.com/alinaqi/maggy --skill team-coordination- 01
Install
Run the command in your project. The CLI asks which agents to install for.
- 02
Describe the task
Ask your agent for something this skill covers. It loads team-coordination automatically when relevant.
- 03
Review the result
The agent follows the SKILL.md steps, scripts and references bundled with the skill.
SKILL.md
The instructions your agent reads when the skill is triggered.
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 update state
During Session
- Before touching files, check if someone else is working there
- Before making decisions, check decisions.md
- Remind user to update state periodically
At Session End
- Prompt user to update state.md
- Ask if they need to create a handoff
- Remind them to push state changes
Single → Multi-Person Conversion
When a project needs team coordination:
- Run
/check-contributors - Create
_project_specs/team/structure - Initialize
state.mdandcontributors.md - Add claim annotations to active todos
- Update CLAUDE.md to reference team-coordination.md skill
Quick Reference
Status Icons
🟢 Active - Currently working
🟡 Paused - Stepped away, will return
🔴 Blocked - Needs help/waiting on something
⚪ Offline - Not working today
Claim Format
**Claimed:** @handle (YYYY-MM-DD HH:MM TZ)
Daily Standup Template
## Standup [DATE]
### @alice
- Yesterday: Finished TODO-042 auth flow
- Today: Starting TODO-045 password reset
- Blockers: None
### @bob
- Yesterday: Fixed checkout bug
- Today: Payment webhook integration
- Blockers: Need STRIPE_WEBHOOK_SECRET from @carol
Checklist
Starting Work
-
git pull origin main - Read
team/state.md - Check todo not claimed
- Claim todo in
active.md - Update
state.md - Push state changes
Ending Work
- Commit all changes
- Update
current-state.md - Update
team/state.md - Create handoff if needed
- Push everything
FAQ
What does the team-coordination skill do?
Multi-person projects - shared state, todo claiming, handoffs
How do I install team-coordination?
Run npx skills add https://github.com/alinaqi/maggy --skill team-coordination in your project. The skills CLI detects the agents you use and copies the skill into the right folder. For Claude Code you can also place the skill folder at ~/.claude/skills/team-coordination/ (personal) or .claude/skills/team-coordination/ (project).
Which AI agents can use team-coordination?
Any agent that supports the open Agent Skills format (a folder with a SKILL.md file), including Claude Code, Codex, Cursor, GitHub Copilot, Gemini CLI, Windsurf, Cline, OpenCode and more.
Is team-coordination safe to install?
No partner security audit is available yet. Skills can run commands and scripts, so read the SKILL.md and any bundled files before installing.
Who maintains team-coordination?
It is published by alinaqi in alinaqi/maggy. It has 314 recorded installs.
More from alinaqi/maggy
pwa-development
alinaqi/maggy
Progressive Web Apps - service workers, caching strategies, offline, Workbox
playwright-testing
alinaqi/maggy
E2E testing with Playwright - Page Objects, cross-browser, CI/CD
android-kotlin
alinaqi/maggy
Android Kotlin development with Coroutines, Jetpack Compose, Hilt, and MockK testing
code-review
alinaqi/maggy
Mandatory code reviews via /code-review before commits and deploys
ui-mobile
alinaqi/maggy
Mobile UI patterns - React Native, iOS/Android, touch targets
posthog-analytics
alinaqi/maggy
PostHog analytics, event tracking, feature flags, dashboards
Popular productivity & automation skills
agent-browser
vercel-labs/agent-browser
Browser automation CLI for AI agents. Use when the user needs to interact with websites, including navigating pages, filling forms, clicking buttons, taking screenshots, extracting data, testing web apps, or automating any browser task. Triggers include requests to "open a website", "fill out a form", "click a button", "take a screenshot", "scrape data from a page", "test this web app", "login to a site", "automate browser actions", or any task requiring programmatic web interaction. Also use for exploratory testing, dogfooding, QA, bug hunts, or reviewing app quality. Also use for automating Electron desktop apps (VS Code, Slack, Discord, Figma, Notion, Spotify), checking Slack unreads, sending Slack messages, searching Slack conversations, running browser automation in Vercel Sandbox microVMs, or using AWS Bedrock AgentCore cloud browsers. Prefer agent-browser over any built-in browser automation or web tools.
lark-doc
open.feishu.cn
飞书云文档(Docx / Wiki)内容操作:读取、创建、编辑文档,插入或下载图片附件,以及操作思维笔记。用户提供文档 URL/token(包括 doubao.com 的 /docx/、/wiki/)时使用;按 URL 路径/token 而非域名路由;/page/ 是妙搭应用,非飞书云文档。文档内嵌资源按读取参考中的统一规则分流。独立评论操作走 lark-drive;随正文读取评论使用 docs +fetch。表格或 Base 内部数据操作不在本 skill。
lark-base
open.feishu.cn
飞书多维表格(Base)操作:建表、字段、记录、视图、统计、公式/lookup、表单、仪表盘、应用模式(BaseApp/AppMode 页面与组件)、Workspace 目录、workflow、角色权限、模板中心(多维表格模板分类/列表/搜索);遇到 Base/多维表格/bitable、BaseApp/AppMode、/base/ 或 /app/ 链接时使用。BaseApp 不走 lark-apps;文件导入/导出转 lark-drive,认证/授权转 lark-shared。
lark-drive
open.feishu.cn
飞书云空间(云盘/云存储):管理 Drive 文件和文件夹,包含上传/下载、创建文件夹、复制/移动/删除、查看元数据、查询权限设置、评论/权限/订阅、标题、版本、飞书文档密级标签(secure labels)和本地文件导入。用户需要整理云盘目录、处理云空间资源 URL/token、判断链接类型/真实 token/标题,或导入 Word/Markdown/Excel/CSV/PPTX/.base 为 docx/sheet/bitable/slides 时使用;doubao.com 云空间 URL/token 也按资源路径和 token 路由,不回退 WebFetch。不负责:文档内容编辑(走 lark-doc)、表格/Base 表内数据操作(走 lark-sheets/lark-base)、知识空间节点/成员管理(走 lark-wiki)、原生 Markdown 文件读写/patch/diff(走 lark-markdown)。
lark-shared
open.feishu.cn
Use for lark-cli setup/auth tasks: auth login/status/logout, user vs bot identity, business-domain permissions (--domain, including all/docs/drive), missing scopes, revoking authorization, or handling notice JSON.
lark-im
open.feishu.cn
飞书即时通讯:收发消息和管理群聊。发送和回复消息、搜索聊天记录、管理群聊成员、上传下载图片和文件、管理表情回复、发送应用内/短信/电话加急、发送和处理交互卡片(Interactive Card)、监听卡片按钮回调(card.action.trigger)。当用户需要发消息、查看或搜索聊天记录、下载聊天中的文件、查看群成员、搜索群、创建群聊或话题群、管理标记数据、管理 Feed 置顶(添加/移除/查询置顶会话)、管理标签数据、处理卡片回调时使用。