discovery-status
The pipeline has a skill for every stage, a promotion gate, and an optional tracker. This
skill is the map. It answers, in one screen: what state is everything in, what is
blocked on whom, and what is the single next action?
Audience calibration: the reader is a senior product professional who is new to this
agentic toolchain. Report the state of the pipeline — files, fields, checklist, board —
never lecture on product method. They know how to do discovery; they need to know what the
pipeline expects next and which skill does it.
Retrieval — read the tree, re-derive the checklist, never fabricate
There is no committed dashboard file and no validator script in this bundle. This skill is
fast because it reads a small, well-known set of locations directly and re-derives gate
state by applying the promotion checklist (below) as prose — not by calling a script or
trusting a cached summary. Read in this order:
docs/discovery/hypotheses/ — every hypothesis file, regardless of status:
(incubating | promoted | parked is a frontmatter field, not a folder — read all of
them). This is the primary worklist for the scorecard below.
docs/discovery/outcomes.md — the ratified-outcome register. Zero status: active
rows is the single most important fact in the whole report if true (see Workspace-level,
below).
docs/discovery/problems/, docs/discovery/personas/, docs/discovery/journeys/ —
for the unconverged-inventory pass (orphans with no child hypothesis).
docs/discovery/decisions.md — the append-only DEC-NNN log, to confirm a
prioritization ranking or a feasibility call was actually recorded, not just claimed.
docs/discovery/evidence/{verifications,research,interviews,learnings}/ — to confirm
a hypothesis's "verified" claim has a real evidence file behind it, not just an assertion.
- The product owner's role memory (
.agents/memory/product-owner/ — read via the
memory skill if this project uses a different runtime layout for role memory) — for
anything logged about an in-flight dispatch (e.g. "tech-lead dispatched on HYP-004,
awaiting feasibility read") that has not yet landed as a file under docs/discovery/.
This is a supplement, not a source of truth — a claim that only lives in memory and
never lands in decisions.md or an evidence file is still open, say so.
- The tracker board (adapter), only if configured. Read
.agents/profile.md for a
tracker note: none configured -> the Board-sync section is n/a (no tracker configured);
github/gitlab -> query the board via gh/glab. If the CLI fails (no auth), say so
and continue with the docs/discovery/-only state — a partial dashboard beats none.
No re-derivation shortcuts. Because there is no machine gate scorecard to trust,
this skill is where the gate math actually happens, in prose, every run — see the
promotion checklist below. Do not skip a checklist item because a prior report said it
passed; the files are the source of truth, always re-read them.
Checks
Per hypothesis — the promotion checklist (re-derived, in prose)
For every hypothesis surfaced (default: all status: incubating and status: promoted
hypotheses; skip status: parked unless the user asks for the full set), walk the same
four-item checklist the product-owner narrates before a handoff to ba, and mark each
✅ / ❌ / ⚠️ from what is actually on disk — never assume a prior pass still holds:
- Outcome ratified — the hypothesis's
outcome: field resolves to a row in
docs/discovery/outcomes.md with status: active and a ratified:: <date> by <name>
stamp carrying a dated baseline and a target. Still pointing at the #tbd sentinel, or at
a draft/superseded row, is a ❌: nothing can promote on it. This is the headline gate —
lead with it if it's failing.
- Hypothesis verified — a real evidence file exists in
docs/discovery/evidence/verifications/ (or research/, interviews/) that names this
hypothesis's id and supports (or explicitly weighs and rejects) its central assumption.
No file, or only an unlinked assertion in the body text, is a ❌. Disconfirming evidence
that was weighed and led to a revision is a legitimate ✅ — the point is that it was
weighed, not that it was favorable.
- Prioritized — the hypothesis carries a
priority: block: score, framework, and an
evidence_note. For RICE and ICE that note names the confidence derivation; WSJF has no
confidence factor, so its note says so instead — don't read a missing derivation as a gap.
A DEC-NNN row in docs/discovery/decisions.md is expected only where the ranking clears
grill-decision's three-criteria gate (hard to reverse, surprising, a real alternative
rejected) — a routine ordering needs no decision record, and its absence is not a gap. A DEC-NNN row that references a score which no longer
matches the block is a ⚠️ — where both exist they must agree.
- Feasibility acknowledged — a record that the "is this buildable?" question was asked
and answered on this hypothesis: a populated
feasibility_read: block in its frontmatter carrying
a verdict, who gave the read (tech-lead, or the role of the human who stood in where that
agent isn't installed) and a date. An empty or absent block is a ❌. Nothing on disk (even if role
memory logged a dispatch) is a ❌ — a claim that never lands in a committed record is
still open.
Also check, from the hypothesis body itself: testability — both "We'll know we're right
when…" and "We'll know we're wrong when…" are filled in, not placeholder text, plus at least
one acceptance-criterion bullet. Missing either falsifiability direction is a ❌ regardless
of the four-item checklist — an untestable bet cannot be verified in the first place.
Only when all four checklist items hold (plus testability) is a hypothesis actually
promotable; status: promoted on a hypothesis that fails one of them on re-read is a live
inconsistency — flag it explicitly, don't silently trust the frontmatter.
Workspace-level
- No ratified outcomes? If
docs/discovery/outcomes.md has zero status: active rows,
every hypothesis is unpromotable no matter how good it is. This is the headline — say it
first, and name whose move it is: the PO ratifies outcomes via define-outcomes (no
agent ratifies on the PO's behalf).
- Orphans (unconverged inventory, not errors): journeys no hypothesis references;
problems with no child hypothesis — point at journeys-to-hypotheses.
- Untested Hypothesis assumptions: a hypothesis whose riskiest assumption has never been
through an adversarial pass — point at grill-decision.
ID collisions
While reading docs/discovery/{problems,hypotheses}/ and decisions.md, note if two files
claim the same PRB-NNN / HYP-NNN / DEC-NNN. This is a live risk (the next skill to mint
an id will collide) — always report it, and say which skill's next write should pick the
higher-numbered id.
Board-level (only when a tracker is configured)
Every promoted hypothesis with an open engineering handoff should have a matching, open
Epic. A promoted hypothesis with no matching issue, or an issue with no promoted origin, is a
broken bridge. Do not invent board state — if the adapter output is unavailable, mark the
section "not checked".
Output format
Use this shape, most-blocking first. Every Next action names a skill (e.g. "run
define-outcomes") or a concrete edit — never "consider" or "think about".
# Pipeline status — <date>
**Headline:** <the single most important fact, e.g. "0 ratified outcomes — nothing can
promote until the PO ratifies one via define-outcomes.">
## Blocked on you (the PO)
| Item | Failing checklist item(s) | Next action |
## Blocked on others
| Item | Waiting for | Who | Next action |
## Ready to advance
| Item | Passed | Next action |
## Unconverged inventory (journeys / problems without hypotheses)
| Artifact | Suggestion |
## Hygiene (cheap fixes)
| File | Issue | Fix |
## Board sync
<one short paragraph: docs/discovery/ vs tracker state, overlaps, drift — or
"n/a (no tracker configured)">
Rules
- Read-only. Never edit a hypothesis, problem, outcome row, or decision entry from this
skill.
- Re-derive, don't trust. There is no cached dashboard and no validator verdict to defer
to — every run re-reads
docs/discovery/ and re-applies the checklist above.
- Exact next actions. "Run
define-outcomes on HYP-004" is a next action; "the outcome
needs ratifying" is not. Always name the exact skill.
- Don't bury the blocker. If one fact dominates (no ratified outcomes, no feasibility
record), lead with it.
- Never guess board state. If the tracker adapter is unavailable, say "not checked" — do
not infer.
- One screen. Link to files, do not quote them.
- Role memory is a supplement, not a source of truth. A dispatch or a claim that only
exists in
.agents/memory/product-owner/ and never lands as a file under docs/discovery/
is still open — report it as in-flight, not as done.
Pairs well with
- Run first in any session — it tells you which skill to reach for next.
- After journeys-to-hypotheses, prioritize-bets, or grill-decision — to
confirm the state actually advanced.
Provenance: house-authored for this product (Peter Petroczy). The pointer-first read order
and expiring-time-budget framing are adapted from shinpr/claude-code-discover (MIT). See
NOTICE.md.
1---2name: discovery-status3description: Use when starting a work session, when the PO is unsure what to do next, or when promotion, gates, blockers, what's-stuck, where-am-I, or am-I-ready-for-review come up — even without the word 'status'. Reports the whole discovery pipeline as one navigable dashboard — where every hypothesis stands against the promotion gate, what is blocked and on whom, the tracker board versus what docs/discovery/ says, and the exact next action (naming the exact skill) for each item; read-only, reading the docs/discovery/ tree and the product-owner's role memory directly and re-deriving gate state from the promotion checklist in prose (no vault, no validator script). NOT for code or CI status, PR-review state, deployment health, or git status — those are different tools.4license: MIT5---67# discovery-status89The pipeline has a skill for every stage, a promotion gate, and an optional tracker. This10skill is the **map**. It answers, in one screen: *what state is everything in, what is11blocked on whom, and what is the single next action?*1213**Audience calibration:** the reader is a senior product professional who is new to this14agentic toolchain. Report the state of the *pipeline* — files, fields, checklist, board —15never lecture on product method. They know how to do discovery; they need to know what the16pipeline expects next and which skill does it.1718## Retrieval — read the tree, re-derive the checklist, never fabricate1920There is no committed dashboard file and no validator script in this bundle. This skill is21fast because it reads a small, well-known set of locations directly and re-derives gate22state by applying the promotion checklist (below) as prose — not by calling a script or23trusting a cached summary. Read in this order:24251. **`docs/discovery/hypotheses/`** — every hypothesis file, regardless of `status:`26 (`incubating | promoted | parked` is a frontmatter field, not a folder — read all of27 them). This is the primary worklist for the scorecard below.282. **`docs/discovery/outcomes.md`** — the ratified-outcome register. Zero `status: active`29 rows is the single most important fact in the whole report if true (see Workspace-level,30 below).313. **`docs/discovery/problems/`, `docs/discovery/personas/`, `docs/discovery/journeys/`** —32 for the unconverged-inventory pass (orphans with no child hypothesis).334. **`docs/discovery/decisions.md`** — the append-only `DEC-NNN` log, to confirm a34 prioritization ranking or a feasibility call was actually recorded, not just claimed.355. **`docs/discovery/evidence/{verifications,research,interviews,learnings}/`** — to confirm36 a hypothesis's "verified" claim has a real evidence file behind it, not just an assertion.376. **The product owner's role memory** (`.agents/memory/product-owner/` — read via the38 `memory` skill if this project uses a different runtime layout for role memory) — for39 anything logged about an in-flight dispatch (e.g. "tech-lead dispatched on HYP-004,40 awaiting feasibility read") that has not yet landed as a file under `docs/discovery/`.41 This is a **supplement**, not a source of truth — a claim that only lives in memory and42 never lands in `decisions.md` or an evidence file is still open, say so.437. **The tracker board (adapter), only if configured.** Read `.agents/profile.md` for a44 tracker note: none configured -> the Board-sync section is `n/a (no tracker configured)`;45 `github`/`gitlab` -> query the board via `gh`/`glab`. If the CLI fails (no auth), say so46 and continue with the docs/discovery/-only state — a partial dashboard beats none.4748**No re-derivation shortcuts.** Because there is no machine gate scorecard to trust,49*this* skill is where the gate math actually happens, in prose, every run — see the50promotion checklist below. Do not skip a checklist item because a prior report said it51passed; the files are the source of truth, always re-read them.5253## Checks5455### Per hypothesis — the promotion checklist (re-derived, in prose)5657For every hypothesis surfaced (default: all `status: incubating` and `status: promoted`58hypotheses; skip `status: parked` unless the user asks for the full set), walk the same59four-item checklist the product-owner narrates before a handoff to `ba`, and mark each60✅ / ❌ / ⚠️ from what is actually on disk — never assume a prior pass still holds:61621. **Outcome ratified** — the hypothesis's `outcome:` field resolves to a row in63 `docs/discovery/outcomes.md` with `status: active` and a `ratified:: <date> by <name>`64 stamp carrying a dated baseline and a target. Still pointing at the `#tbd` sentinel, or at65 a `draft`/`superseded` row, is a ❌: nothing can promote on it. This is the headline gate —66 lead with it if it's failing.672. **Hypothesis verified** — a real evidence file exists in68 `docs/discovery/evidence/verifications/` (or `research/`, `interviews/`) that names this69 hypothesis's id and supports (or explicitly weighs and rejects) its central assumption.70 No file, or only an unlinked assertion in the body text, is a ❌. Disconfirming evidence71 that was weighed and led to a revision is a legitimate ✅ — the point is that it was72 weighed, not that it was favorable.733. **Prioritized** — the hypothesis carries a `priority:` block: score, framework, and an74 `evidence_note`. For RICE and ICE that note names the confidence derivation; WSJF has no75 confidence factor, so its note says so instead — don't read a missing derivation as a gap.76 A `DEC-NNN` row in `docs/discovery/decisions.md` is expected only where the ranking clears77 `grill-decision`'s three-criteria gate (hard to reverse, surprising, a real alternative78 rejected) — a routine ordering needs no decision record, and its absence is not a gap. A `DEC-NNN` row that references a score which no longer79 matches the block is a ⚠️ — where both exist they must agree.804. **Feasibility acknowledged** — a record that the "is this buildable?" question was asked81 and answered on this hypothesis: a populated `feasibility_read:` block in its frontmatter carrying82 a `verdict`, who gave the read (`tech-lead`, or the role of the human who stood in where that83 agent isn't installed) and a date. An empty or absent block is a ❌. Nothing on disk (even if role84 memory logged a dispatch) is a ❌ — a claim that never lands in a committed record is85 still open.8687Also check, from the hypothesis body itself: **testability** — both "We'll know we're right88when…" and "We'll know we're wrong when…" are filled in, not placeholder text, plus at least89one acceptance-criterion bullet. Missing either falsifiability direction is a ❌ regardless90of the four-item checklist — an untestable bet cannot be verified in the first place.9192Only when all four checklist items hold (plus testability) is a hypothesis actually93promotable; `status: promoted` on a hypothesis that fails one of them on re-read is a live94inconsistency — flag it explicitly, don't silently trust the frontmatter.9596### Workspace-level9798- **No ratified outcomes?** If `docs/discovery/outcomes.md` has zero `status: active` rows,99 every hypothesis is unpromotable no matter how good it is. This is the headline — say it100 first, and name whose move it is: **the PO ratifies outcomes** via **define-outcomes** (no101 agent ratifies on the PO's behalf).102- **Orphans (unconverged inventory, not errors):** journeys no hypothesis references;103 problems with no child hypothesis — point at **journeys-to-hypotheses**.104- **Untested Hypothesis assumptions:** a hypothesis whose riskiest assumption has never been105 through an adversarial pass — point at **grill-decision**.106107### ID collisions108109While reading `docs/discovery/{problems,hypotheses}/` and `decisions.md`, note if two files110claim the same `PRB-NNN` / `HYP-NNN` / `DEC-NNN`. This is a live risk (the next skill to mint111an id will collide) — always report it, and say which skill's next write should pick the112higher-numbered id.113114### Board-level (only when a tracker is configured)115116Every promoted hypothesis with an open engineering handoff should have a matching, open117Epic. A promoted hypothesis with no matching issue, or an issue with no promoted origin, is a118broken bridge. Do not invent board state — if the adapter output is unavailable, mark the119section "not checked".120121## Output format122123Use this shape, most-blocking first. Every *Next action* names a skill (e.g. "run124`define-outcomes`") or a concrete edit — never "consider" or "think about".125126```markdown127# Pipeline status — <date>128129**Headline:** <the single most important fact, e.g. "0 ratified outcomes — nothing can130promote until the PO ratifies one via define-outcomes.">131132## Blocked on you (the PO)133| Item | Failing checklist item(s) | Next action |134135## Blocked on others136| Item | Waiting for | Who | Next action |137138## Ready to advance139| Item | Passed | Next action |140141## Unconverged inventory (journeys / problems without hypotheses)142| Artifact | Suggestion |143144## Hygiene (cheap fixes)145| File | Issue | Fix |146147## Board sync148<one short paragraph: docs/discovery/ vs tracker state, overlaps, drift — or149"n/a (no tracker configured)">150```151152## Rules153154- **Read-only.** Never edit a hypothesis, problem, outcome row, or decision entry from this155 skill.156- **Re-derive, don't trust.** There is no cached dashboard and no validator verdict to defer157 to — every run re-reads `docs/discovery/` and re-applies the checklist above.158- **Exact next actions.** "Run `define-outcomes` on HYP-004" is a next action; "the outcome159 needs ratifying" is not. Always name the exact skill.160- **Don't bury the blocker.** If one fact dominates (no ratified outcomes, no feasibility161 record), lead with it.162- **Never guess board state.** If the tracker adapter is unavailable, say "not checked" — do163 not infer.164- **One screen.** Link to files, do not quote them.165- **Role memory is a supplement, not a source of truth.** A dispatch or a claim that only166 exists in `.agents/memory/product-owner/` and never lands as a file under `docs/discovery/`167 is still open — report it as in-flight, not as done.168169## Pairs well with170171- **Run first** in any session — it tells you which skill to reach for next.172- **After** **journeys-to-hypotheses**, **prioritize-bets**, or **grill-decision** — to173 confirm the state actually advanced.174175---176177> Provenance: house-authored for this product (Peter Petroczy). The pointer-first read order178> and expiring-time-budget framing are adapted from shinpr/claude-code-discover (MIT). See179> NOTICE.md.