Skip to Content

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.

/morning

What it does:

  1. Checks for an active task on the current branch — if one exists, offers to continue
  2. Calls GET /api/tasks?teamId=<your-team>&mine=true for your assigned tasks
  3. If empty, calls GET /api/tasks?teamId=<your-team>&status=todo&unassigned=true
  4. Presents tasks sorted by priority (urgent → high → medium → low)
  5. You pick a task using the selector
  6. Creates a git worktree in .worktrees/<task-id>/ with a new branch: feat/<task-id>-<description>
  7. Switches into the worktree — the rest of the session works there
  8. Updates the task status to “In Progress” on the ticket system
  9. Writes a branch-keyed task file to track the active task
  10. Searches memories for relevant context, then searches the codebase for related files
  11. 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.

/pause

What it does:

  1. Reads the active task from the branch-keyed task file
  2. Calculates elapsed time and gathers git stats across all tracked repos
  3. Sends a partial session span to the OTEL collector
  4. Fetches available statuses from the ticket system and sets the task back to a backlog/todo state
  5. 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.

/finish

What it does:

  1. Checks git status for uncommitted changes
  2. If changes exist, asks: Commit now / Stash / Leave as-is
  3. If committing, generates a conventional commit message from the diff
  4. Asks: Is this task done or coming back later?
  5. If done and no PR exists, offers to create one
  6. 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
  7. Sends telemetry — a task_session span and tandemu.lines_of_code metrics to the OTEL collector
  8. Updates task status — fetches available statuses from the ticket system and sets it to “Done” / “Completed”
  9. 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.
  10. 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.
  11. 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 slack

The 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.

/create

What it does:

  1. Asks you to describe the new task
  2. Claude generates a title and description from your input
  3. Creates the task in your connected ticket system (Jira, Linear, ClickUp, GitHub Issues, Asana, or monday.com)
  4. Assigns it to the appropriate team based on your current team mapping
  5. 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:

  1. Calls GET /api/tasks/<taskId>/statuses?provider=<provider> to fetch the available statuses from the ticket system
  2. Claude picks the best match (e.g., “In Progress” for starting, “Done” for finishing)
  3. Calls PATCH /api/tasks/<taskId>/status with the exact status name

This works with any custom workflow — Linear, Jira, ClickUp, or GitHub. No hardcoded status mappings.

Last updated on