---
name: team-diagnose
description: Use when the team context did not appear at session start, a skill failed to trigger, the install behaves unexpectedly, or someone asks why a session ran without team rules — walks the failure chain with commands and evidence before any conclusion.
---

# team-diagnose

## Overview

Evidence-first diagnosis of broken adlc-team-skills wiring. The chain has
exactly five links, each checkable with one command — a diagnosis without
command output is a guess, and guesses get pasted into bug reports.

**Boundary:** this repo owns `.events.json` and the boot scripts' output.
The injection side (dispatchers, generated per-agent plugins) is owned by
[adlc-cli](https://github.com/tikalk/adlc-cli) — the
`docs/event-hook-contract.md` file in the adlc-team-skills repo draws the
line. Diagnose up to it, then route.

## When to Use

- Team context missing at session start (no `Team Context & Decisions` section).
- A rule that should have matched didn't load.
- Install behaves unexpectedly after an update.

**When NOT to use:** for application bugs unrelated to the team-context
chain, or for skill *behavior* debates (that's a goldset/eval question).

## Core Process

Run the checks **in order** — stop at the first failure, fix, re-run:

| # | Symptom area | Check (run it) | Green means |
|---|---|---|---|
| 1 | Not configured | `cat .adlc/init-options.json` | A `team_ai_directives` path that exists |
| 2 | Missing tool | `command -v jq` | jq on PATH (skills registry needs it) |
| 3 | Broken handler | `bash .agents/skills/team-boot/scripts/boot.sh` from the project root | The directives index on stdout, wrapped in `EXTREMELY_IMPORTANT` |
| 4 | Stale install | `pytest tests/unit/test_generated_artifacts_sync.py -q` (in the skills repo) or compare `skills/**/SKILL.md` vs `.agents/skills/` names | Mirror matches source |
| 5 | Injection side | Generated plugin present and loaded for the agent? | If 1–4 are green and the session still lacks context → **adlc-cli's territory** — file there with the outputs of checks 1–4 attached |

For "a rule didn't load" specifically: confirm the session began with the
index (check 3's content), then check the task actually matched the rule's
descriptor — on-demand pull is match-driven, not mind-reading.

**Whole-loop check:** `scripts/acceptance-test.sh` scratch-installs and
asserts the chain end-to-end (add `--live` for a real agent session).

## Report format

For a bug report, include: the failing check number, the command, its
verbatim output, agent name/version, and how the repo was installed
(`npx skills add` vs `adlc-cli`). No scrubbed narrative — raw
output.

## Red Flags

- Concluding before running a command — every check is one command.
- "Reinstall everything" before reading check 3's output.
- Blaming a skill's content when check 1–3 failed (config, not skills).
- Filing injection-side bugs in adlc-team-skills (check 5 routes them).

**All of these mean: run the checks, then report.**

## Verification

A diagnosis is done when:

- [ ] Checks 1–4 each ran with output captured (or 5 routed with evidence)
- [ ] The failing link is named with its command output
- [ ] The report routes to the owning repo
