agent-health
Reads production/traces/agent-metrics.jsonl and displays a per-agent performance summary table for the current or a specified session. Highlights agents with…
Generates the lightweight 3-field handoff summary for cross-domain work and optionally persists a formal handoff artifact for High-risk transfers.
$ npx -y skills add tranhieutt/software_development_department --skill handoff --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/handoffContext preview
The summary Claude sees to decide when to auto-load this skill.
Generates the lightweight 3-field handoff summary for cross-domain work and optionally persists a formal handoff artifact for High-risk transfers.
name: handoff type: workflow description: "Generates the lightweight 3-field handoff summary for cross-domain work and optionally persists a formal handoff artifact for High-risk transfers." argument-hint: "<from-agent> <to-agent> <artifact> [task_id] [--risk Low|Medium|High] [--status complete|partial|draft] [--criteria \"crit1\" \"crit2\"] [--formal]" user-invocable: true allowed-tools: Read, Write, Bash effort: 1 when_to_use: "Run when a cross-domain handoff needs an explicit 3-field summary, or when a High-risk transfer needs a durable handoff file in addition to the summary."
Generate the lightweight handoff summary (`what was built`, `what's missing`, `acceptance criteria`) and, when needed, save a formal handoff artifact to `.tasks/handoffs/`. The receiver verifies the summary before starting work.
Extract from `$ARGUMENTS`:
| Positional | Required | Description | | :--- | :--- | :--- | | `<from-agent>` | yes | Sending agent name (e.g. `backend-developer`) | | `<to-agent>` | yes | Receiving agent name (e.g. `qa-engineer`) | | `<artifact>` | yes | Primary file or path being handed off | | `[task_id]` | no | Task ID to link checkpoint — auto-detected from active checkpoint if omitted |
| Flag | Default | Description | | :--- | :--- | :--- | | `--risk` | `Medium` | Risk tier: `Low`, `Medium`, `High` | | `--status` | `complete` | Artifact status: `complete`, `partial`, `draft` | | `--criteria` | prompt | Acceptance criteria strings (can be multi-value) | | `--formal` | off | Force writing a durable handoff file even when risk is not High |
If `from-agent`, `to-agent`, or `artifact` are missing, print usage and stop:
Usage: /handoff <from-agent> <to-agent> <artifact> [task_id] \
[--risk Low|Medium|High] \
[--status complete|partial|draft] \
[--criteria "criterion 1" "criterion 2"] \
[--formal]
Example:
/handoff backend-developer qa-engineer src/api/auth.ts 042 \
--risk Medium --criteria "POST /auth returns 201" "Invalid creds → 401"
Schema reference: .claude/docs/handoff-schema.mdCheck that `<from-agent>.md` and `<to-agent>.md` exist in `.claude/agents/`. If either is missing, warn but continue:
⚠️ Agent "<name>" not found in .claude/agents/ — check spelling.
If yes, set `context_snapshot` to that path.
modified `.md` file (excluding `.gitkeep`) and use it as a suggestion.
If `--criteria` flags were provided, use them directly.
If no criteria were provided, prompt:
📋 Enter acceptance criteria for this handoff (one per line, blank line to finish): >
Require at least 1 criterion. Reject vague criteria and ask for a rewrite:
Run `git branch --show-current` to get the current branch for the `session` field. Get current ISO timestamp for `ts`.
Build the 3-field summary per `.claude/docs/handoff-schema.md`:
## Handoff Summary - What was built: <artifact> is available with its current behavior/status - What's missing: remaining gaps, partial work, or "Nothing blocking in current scope" - Acceptance criteria: - <crit1> - <crit2>
Also prepare the formal JSON payload only when:
When the formal artifact is needed, use this JSON:
{
"from": "<from-agent>",
"to": "<to-agent>",
"task_id": "<task_id or null>",
"artifact": "<artifact>",
"artifact_status": "<status>",
"acceptance_criteria": ["<crit1>", "<crit2>"],
"context_snapshot": "<path or null>",
"risk_tier": "<risk>",
"ts": "<ISO>",
"session": "<branch>"
}If formal persistence is required, write to `.tasks/handoffs/<from-agent>-to-<to-agent>-<task_id>.json`. If `task_id` is null, use timestamp: `.tasks/handoffs/<from-agent>-to-<to-agent>-<ts-compact>.json`.
If formal persistence is not required, do not create a file. The markdown handoff summary is the default artifact.
If `risk_tier` is `Medium` or `High`, append to `production/traces/decision_ledger.jsonl`:
{"ts":"<ISO>","session":"<branch>","agent_id":"<from-agent>","task_id":"<task_id>","request":"Handoff to <to-agent>","reasoning":"Artifact <artifact> is <status> — transferring ownership","choice":"Handoff summary prepared","outcome":"pass","risk_tier":"<risk>","duration_s":0}Print the summary first, then note whether a durable file was written:
🤝 Handoff Summary Generated
━━━━━━━━━━━━━━━━━━━━━━━━━━
From : @<from-agent>
To : @<to-agent>
Task : <task_id>
File : <artifact> [<status>]
Risk : <risk_tier>
What was built:
<one-line built summary>
What's missing:
<one-line gap summary>
Acceptance Criteria:
- <criterion 1>
- <criterion 2>
Context Snapshot: <path or "none">
[if formal]: Saved to .tasks/handoffs/<filename>.json
[if Medium/High]: Ledger entry written.
📨 Ready to hand off. @<to-agent> should verify the summary above
before starting work on <artifact>.---
When an agent receives a handoff, it must:
1. Read the 3-field summary (and the formal file if one exists) 2. Verify each `acceptance_criterion` against the artifact 3. If all criteria pass → begin work 4. If any criterion fails → do NOT start work; reply to sender with:
``
Repo: tranhieutt/software_development_department
Reads production/traces/agent-metrics.jsonl and displays a per-agent performance summary table for the current or a specified session. Highlights agents with…
Provides the vendored agent-style v0.3.5 prose rule pack as a portable Claude skill. Use when installing, syncing, applying, or auditing SDD Agent-Style…
Provides Angular best practices for components, modules, services, and reactive patterns. Use when working with Angular TypeScript files, component templates,…
Records unexpected API behaviors, undocumented caveats, version bugs, or non-obvious workarounds into .claude/memory/annotations.md. Use immediately when an…
Defines REST and GraphQL API contracts including endpoints, request/response schemas, auth flows, and versioning strategy. Use when designing a new API,…
Manages the ADR (Architecture Decision Record) registry. Use when recording tech-stack choices, design patterns, or infrastructure decisions with context,…