From tl
Use when a team exists but current status is unknown — backlog changed, context switch happened, or session just started. Syncs status, surfaces blockers, checks learning health. Keywords: status, sync, blockers, progress, team, check-in, reorient.
How this skill is triggered — by the user, by Claude, or both
Slash command
/tl:standup [focus area][focus area]This skill is limited to the following tools:
The summary Claude sees in its skill listing — used to decide when to auto-load this skill
You are running a **Standup** -- a quick, read-only status check with a persistent learning team. Each member's status is derived from their learnings file, git activity on owned files, and the task backlog.
You are running a Standup -- a quick, read-only status check with a persistent learning team. Each member's status is derived from their learnings file, git activity on owned files, and the task backlog.
Focus area (optional): $ARGUMENTS
.claude/team.yaml exists — run /assemble first/sprint to dispatch/status insteadValidate preconditions
-> Load team manifest + task state + git log
-> Gather per-member activity (git + learnings)
-> Verify data completeness
-> Synthesize board
Read .claude/team.yaml to discover members, their roles, and ownership patterns.
If no .claude/team.yaml exists, stop here: "No team manifest found. Run /assemble to create one."
Note the member count. You must produce a status entry for every member — missing members make the standup incomplete.
If the project uses a task tracker, check for ready, in-progress, blocked, and epic status. If no task tracker is configured, skip this step — the standup will focus on git activity and learning health only.
git log --oneline -10
git status
Note the most recent commit SHA and date. This anchors the freshness of activity signals in Phase 2.
For each team member, gather their status without dispatching agents — standup must be fast and read-only.
For each member, check recent commits touching their owned files:
git log --oneline -5 -- <owns patterns>
For example, if backend owns src/domain/** and src/infra/**:
git log --oneline -5 -- "src/domain/" "src/infra/"
Record: number of commits, date of most recent commit, and whether any commits appear in the last 7 days.
Read each member's .claude/tackline/memory/agents/<name>/learnings.md and note:
If the file does not exist, record status as cold (role not yet dispatched).
If a task tracker is available, for each member check whether any in-progress or ready tasks match their ownership patterns by scanning task titles against the member's role keywords. If no task tracker is configured, skip this step.
Before synthesizing, verify the data you gathered is complete and consistent.
Coverage check:
owns patterns, not just the overall log. A member with recent commits to unowned files should still show "no owned-file activity."Consistency check:
Task tracker completeness check (if available):
If any check fails, complete the missing data before proceeding. Do not synthesize on partial information.
## Standup: [team name]
### Team Activity
| Member | Recent Commits | Learnings | Health |
|--------|---------------|-----------|--------|
| [name] | [count] in owned files ([date of most recent]) | [total] entries ([recent] new in 7 days) | [status] |
| ... | ... | ... | ... |
Health labels:
- healthy: recent owned-file commits AND learnings active in last 7 days
- active: recent owned-file commits but learnings not updated recently (flag for retro)
- learning: new learnings entries but no recent owned-file commits
- stale: no owned-file commits AND no new learnings in last 7 days
- bloated: learnings approaching or over 60-line cap (run /curate or /retro)
- cold: no learnings file and no owned-file commits (role not yet dispatched)
### Backlog Snapshot
[Only include this section if a task tracker is available]
- **Ready**: [count] tasks available
- **In Progress**: [count] tasks active
- **Blocked**: [count] tasks blocked
### Epic Progress
[Only include if task tracker is available and epics exist]
| Epic | Children | Complete | Progress |
|------|----------|----------|----------|
| [title] | [total] | [done] | [%] |
### Blockers
[Only if task tracker is available. List any blocked tasks or issues. "No blockers" if clear.]
### Learning Highlights
[Notable recent learnings across the team. 2-3 most relevant items. "No recent learnings" if none in last 7 days.]
### Cross-Agent Notes Pending
[Any cross-agent notes that haven't been acknowledged. "None pending" if clear.]
### Flags
[Inconsistencies from Phase 3 verification: members with active commits but stale learnings, tasks with no assigned member, etc. Omit section if no flags.]
### Suggested Actions
1. [Highest-priority action based on standup data]
2. [Second priority, if any]
3. [Third priority, if any]
The standup is complete when all of the following are true:
If any condition is not met, complete the missing work before presenting the board.
After presenting the board, offer:
/sprint/meeting/retro or /curate <member>See also: /status (solo equivalent — use when no team is configured or you want a faster individual view), /sprint (dispatch work after standup reveals what's ready), /retro (address stale learnings flagged during standup), /curate (optimize a member's learnings before the next sprint).
npx claudepluginhub tyevans/tackline --plugin tacklineUse at session start or when you need to orient. Shows backlog, recent activity, team health, and last session summary in one view. Keywords: status, overview, dashboard, state, orientation.
Writes outcome-first status updates for engineering leaders. Automatically gathers context from git log, open PRs, project trackers, and prior updates. Supports progress and blocker modes with structured output.
Generates async standup notes by analyzing Git commit history, Jira tickets, Obsidian vault context, and calendar events. Useful for remote teams seeking visibility without synchronous meetings.