Skip to content
Back to skills

Recon

ASecurity

Investigate a bug report or feature request and document it as ONE multi-file .planning dossier for /orchestrate to plan from. Use on `/recon <problem or feature>`, `/recon --worktree`, or `/recon B-NNNN`.

  • 3 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added September 5, 2026
ai-agentsgo

Security analysis

A100/100

Pro scans all 5 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add bravros/bravros --skill recon --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Recon?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Recon
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/bravros-recon/badge)](https://www.skillsdirectory.com/skills/bravros-recon)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: recon
core: true
description: Investigate a bug report or feature request and document it as ONE multi-file .planning dossier for /orchestrate to plan from. Use on `/recon <problem or feature>`, `/recon --worktree`, or `/recon B-NNNN`.
---

# recon

Read [briefing.md](references/briefing.md) for identity reservation, flags and worktree detail.
Folder contract: [dossier-template.md](references/dossier-template.md) — read it before writing.

INTENT: take whatever the operator has — a symptom, a screenshot, a stack trace, a feature idea —
and produce ONE folder `.planning/P-NNNN-<slug>/` that documents **what is wrong, what is wanted,
and what is true**, in enough detail that `/orchestrate` can plan from it without re-investigating
anything.

> **You do not plan the execution.** No phases, no `Touches:`, no `Verify:`, no tier markers, no
> ordering. Sequencing, grouping, parallelism and model tier are `/orchestrate`'s decisions and it
> makes them better with the whole picture in front of it. Your job is findings; its job is a plan.

## 1 — Classify, then reserve

Decide **defect** (something behaves wrong) or **change** (something new). State which and why in one
line; ask only when genuinely unclear. Then `PLAN_ID=$(bravros nextid reserve plan --slug "$SLUG")`.

**Recon creates no branch and no worktree** unless invoked with `--worktree`. Other sessions may be
running in this checkout (operator: "dont start implementing or create branch because we have other
sessions running here"); the branch is `/orchestrate`'s to cut. Abort before the dossier folder exists
→ `bravros nextid release "$PLAN_ID"`, so the id is not burned.

Attachments — screenshots, logs, exports, recordings — are evidence, not decoration. Copy each into
`evidence/`, numbered in arrival order, and record in `01-evidence.md` **what it shows**, not what you
conclude. **Never assume the content of something you could not open**; say so, and say what you would
need instead.

## 2 — Gather ground truth before writing a line

- **graphify first when the project has it** (`.graphify` or `graphify-out/graph.json`):
  `graphify query "<question>"`, then open the file it names. The graph is a map, not the territory —
  code wins, and a stale label reads exactly like a fresh one.
- **Fan out, don't walk.** Split the question into independent investigation arms (per subsystem,
  per issue, per evidence source) and launch every arm as a read-only subagent (`Explore` at breadth
  "medium", or `scout`) in ONE message — the lead synthesises, it does not read file after file
  itself. Serial solo reading is how a recon hit 47 minutes with the operator asking "where are
  the subagents?". Each arm gets a bounded scope, a concrete deliverable, a stop rule, the
  reporting line, and a 15-min watchdog — brief shape in
  [briefing.md § Investigation arms](references/briefing.md#investigation-arms). One arm is enough
  only when the whole question lives in one or two files.
- **Defect** → hand the hunt to `/scout`: it certifies a root cause with runtime proof, never edits
  code. Fold its `diagnosis.md` in as `02-diagnosis.md`. `UNCERTIFIED` is a valid outcome — then the
  dossier documents the next investigation, not a fix.
- **Change** → ask only where readings genuinely diverge; a deep multi-round fork goes to
  `/interview-me`. Search `.planning/` for prior art before writing a near-duplicate.
- Findings arrive in waves. Append; never rewrite history. A corrected claim gets a
  `SUPERSEDED →` pointer and keeps its original text — the negative finding is usually worth not
  rediscovering.

## 3 — Write the folder

One file per issue, `README.md` as a **short summary and index** — never the detail store. Full
shape in [dossier-template.md](references/dossier-template.md). Every issue file opens with the
fixed header block; those fields ARE the handoff to `/orchestrate`:

```
Confidence:  CERTIFIED | OBSERVED | READ | ASSUMED | SUPERSEDED → <pointer>
Implicates:  <files the fix will likely touch — an estimate, not a lock>
Tests:       <existing test files covering the area>
Depends on:  <D-n decisions, I-nn issues, or a fact the operator/production owes>
Falsifier:   <one sentence: what observation would prove this analysis wrong>
```

`Implicates:` is the one field `/orchestrate` cannot derive cheaply — without it, it must re-read
every issue body to find the file map, which is the re-investigation this split exists to avoid.

**Confidence is mandatory on every issue and every load-bearing claim.** Same vocabulary as `/scout`:
code reading produces hypotheses, only runtime observation produces proof.

| Tag | Means | Must cite |
|---|---|---|
| `OBSERVED` | seen at runtime — live browser, production log, live DB query, executed command | the artefact, or the pasted command + output |
| `READ` | traced in source, not executed | `file:line` |
| `CERTIFIED` | `READ` and `OBSERVED` agree | both |
| `ASSUMED` | neither — states what would settle it | the settling command or question |
| `SUPERSEDED → <ptr>` | kept for history, no longer load-bearing | the pointer |

Never dress an `ASSUMED` claim as `CERTIFIED`. "Correct by construction" is a hypothesis until
something ran.

## 4 — Review your own output

- Every path named exists. Every sibling file appears in the README's read order.
- Every issue carries a `Falsifier:`. A claim you cannot imagine disproving is one you have not
  tested.
- A wrong load-bearing premise → **STOP** and tell the operator. Never paper over it.
- A decision inherits the confidence of what it rests on. A `LOCKED` decision resting on `READ` gets
  a fresh-eyes pass before you call it settled — self-review does not catch a wrong premise.
- Traps are keyed to an **issue id or a file**, never a phase number — there are no phases, and
  numbering you invent would be re-derived away.
- Acceptance criteria are **observable behaviour**, not "tests pass", grouped by issue.

## 5 — Record, commit, hand off

Append `created` and `reviewed` events to `.planning/events.jsonl` (`by: "agent:recon"`), then
`bravros commit "📋 plan: add P-NNNN <slug>" .planning/`. Give the operator exactly one next step:
`/orchestrate .planning/P-NNNN-<slug>/`, and name the branch it will cut from the staging branch —
`feature/p-NNNN-<slug>` for a change, `fix/p-NNNN-<slug>` for a defect. Print it; do not create it.

Announce via `~/.agent_config/scripts/announce.sh --force "<PT-BR, ~20 words, ends with origin>" studio || true`.

## Flags

- `--auto`: skip all prompts (used by `/auto-pr`) — print `STATUS: dossier-ready. NEXT: orchestrate`.
- `--worktree`: work inside an isolated worktree via [`worktree-extension.md`](references/worktree-extension.md).
- `/recon B-NNNN`: read the backlog item as context, link it, and append a `promoted` event.

Files in this skill

  • SKILL.md5.5 KB
  • references/briefing.md4.3 KB
  • references/dossier-template.md5.9 KB
  • references/worktree-extension.md2.2 KB
  • skill.yaml6.2 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.