| name | neo-discover |
| description | Ground an active Neo task in repository evidence, clarify the problem, and separate facts, user statements, inferences, assumptions, and unknowns. Use only with a discover-stage handoff generated by $neo. Do not use directly, design a solution, select architecture, or implement code. |
Discover the Task
Work only on the active Neo discover stage.
Use the <neo-cli> already resolved by the active $neo router. If it is not
present in the handoff context, resolve
scripts/neo.py from the installed neo skill's
source location.
-
Validate the handoff:
python3 <neo-cli> handoff <slug> --expect discover
-
Read repository instructions, then inspect targeted code, tests, schemas,
history, and runtime evidence before asking discoverable questions.
-
Read
interaction.md and
discovery.md.
-
If targeted inspection exposes one immediate blocking unknown that prevents
meaningful discovery, record only that unknown with record-unknown, create
no artifact, skip the gate, ask exactly one compact question, and stop.
-
Otherwise write .neo/tasks/<slug>/discover.md. Separate:
- facts with repository locations;
- user or stakeholder statements;
- inferences and their evidence;
- assumptions requiring approval; and
- open unknowns with owners and blocking status.
-
Ask compact questions only for information that inspection cannot provide.
Record blocking unknowns with record-unknown and resolutions with
resolve-unknown.
-
Record approved consequential clarifications with record-decision.
-
Gate the artifact:
python3 <neo-cli> gate <slug> \
--stage discover --artifact .neo/tasks/<slug>/discover.md
If no user input is required, return control to $neo to continue the next
handoff in this context. Do not reveal later-stage work before discovery gates.