Skills Reference
Tandemu installs six skills into Claude Code. They’re available in every repo after running the installer.
/morning
Start your work session.
Fetches tasks assigned to you from the connected ticket system (Jira, Linear, ClickUp, GitHub Issues, Asana, or monday.com) via the Tandemu API. If none are assigned, falls back to showing unassigned backlog tasks you could pick up.
/morningWhat it does:
- Checks for an active task on the current branch — if one exists, offers to continue
- Calls
GET /api/tasks?teamId=<your-team>&mine=truefor your assigned tasks - If empty, calls
GET /api/tasks?teamId=<your-team>&status=todo&unassigned=true - Presents tasks sorted by priority (urgent → high → medium → low)
- You pick a task using the selector
- Creates a git worktree in
.worktrees/<task-id>/with a new branch:feat/<task-id>-<description> - Switches into the worktree — the rest of the session works there
- Updates the task status to “In Progress” on the ticket system
- Writes a branch-keyed task file to track the active task
- Searches memories for relevant context, then searches the codebase for related files
- Checks for knowledge gaps — if the task touches modules with many recent changes but no documented memories, Claude warns you
Multiple tasks can be active simultaneously — each in its own worktree. Open a new Claude Code session and run /morning again to start another task.
/pause
Pause the current task.
Snapshots progress, sends partial telemetry, sets the task back to backlog on the ticket system, and clears the active task so you can pick a new one.
/pauseWhat it does:
- Reads the active task from the branch-keyed task file
- Calculates elapsed time and gathers git stats across all tracked repos
- Sends a partial session span to the OTEL collector
- Fetches available statuses from the ticket system and sets the task back to a backlog/todo state
- Clears the task file but keeps the worktree — you can resume later by opening the worktree directory
/finish
Wrap up the current task.
Measures work done, sends telemetry, syncs status to the ticket system, and helps you commit and create a PR.
/finishWhat it does:
- Checks
git statusfor uncommitted changes - If changes exist, asks: Commit now / Stash / Leave as-is
- If committing, generates a conventional commit message from the diff
- Asks: Is this task done or coming back later?
- If done and no PR exists, offers to create one
- Measures work across all tracked repos:
- Cycle time (start to finish)
- Lines changed (additions/deletions)
- AI vs manual attribution (commits with
Co-Authored-By: Claude= AI lines) - Commit count
- Sends telemetry — a
task_sessionspan andtandemu.lines_of_codemetrics to the OTEL collector - Updates task status — fetches available statuses from the ticket system and sets it to “Done” / “Completed”
- Cleans up the worktree — if the task is “Done”, removes the
.worktrees/<task-id>/directory and its branch, then returns to the main checkout. If “Coming back later”, the worktree is kept. - Stores memories — saves architecture decisions, coding patterns, gotchas, and corrections discovered during the task. Each memory is enriched with metadata (
repo,files[],category,taskId) so it’s browsable on the Memory Dashboard. Org memories start as drafts and are promoted when the task completes. - Shows the updated task list
/standup
Generate a team standup report.
Pulls data from both the Tandemu API (telemetry) and the connected ticket system to produce a team-level report.
/standup
/standup --team "Frontend"
/standup --format slackThe report includes:
- Summary — tasks in progress, recently completed, active sessions, AI ratio
- Per-person updates — matched by email between Tandemu team members and ticket assignees
- Other contributors — tasks assigned to people not on the Tandemu team
- Backlog — top 10 unstarted tasks with count of remaining Tasks are categorized by recency (completed this week), not by sprint boundaries.
/create
Create a new task in your ticket system.
When you discover work that needs tracking while coding — a bug, a follow-up task, a tech debt item — /create lets you add it without leaving the terminal.
/createWhat it does:
- Asks you to describe the new task
- Claude generates a title and description from your input
- Creates the task in your connected ticket system (Jira, Linear, ClickUp, GitHub Issues, Asana, or monday.com)
- Assigns it to the appropriate team based on your current team mapping
- Returns the task ID and link
How Skills Get Data
All skills read ~/.claude/tandemu.json for authentication and API URL. Active task state is stored in branch-keyed files: ~/.claude/tandemu-active-task-{branch-slug}.json. They call the Tandemu backend, which:
- Proxies to your connected ticket system for task data (always live, never cached)
- Queries ClickHouse for telemetry data (session time, AI ratio, friction)
- Returns unified responses regardless of which ticket system is behind it
How Status Sync Works
When /morning, /finish, or /pause needs to update a task’s status, it:
- Calls
GET /api/tasks/<taskId>/statuses?provider=<provider>to fetch the available statuses from the ticket system - Claude picks the best match (e.g., “In Progress” for starting, “Done” for finishing)
- Calls
PATCH /api/tasks/<taskId>/statuswith the exact status name
This works with any custom workflow — Linear, Jira, ClickUp, or GitHub. No hardcoded status mappings.