A loose idea has arrived — too big for one agent session, and wrapped in fog: the route from here to a plan isn't visible yet. This skill charts it: stand up a map, then work its tickets one at a time until the way to the goal is clear. The map is domain-agnostic — engineering work, course content, whatever fits the shape.
The Map
The map is a single compact Markdown file, one per wayfinding effort, git-tracked alongside the project. It is the canonical artifact — the whole map is loaded as context into every session, so it must stay compact.
Assets created during tickets should be linked to from the map, not duplicated within it.
Structure
Entries ("tickets"), each its own section keyed by a short dash-case slug that
reads as a mini-title (e.g.
,
,
) —
terse enough to stay token-efficient, and unique within the map.
markdown
## relational-db: Relational Or Non-Relational Database?
Blocked by: <slug>, <slug>
Status: open | in-progress | resolved
Type: Research | Prototype | Grilling | Task
### Question
<question-here>
### Answer
<answer-here>
The slug is the canonical id, used in every
edge and prose
reference; the title after the colon is optional. A ticket
is
unblocked when every ticket in its
list is
. A
session
claims its ticket by setting
and saving the map
before any work, so concurrent sessions skip it.
Each ticket must be sized to one 100K token agent session.
Ticket Types
There are four types of tickets:
- Research: Reading documentation, third-party API's, or local resources like knowledge bases. Creates a markdown summary as an asset. Use this when knowledge outside the current working directory is required.
- Prototype: Raise the fidelity of the discussion by making a cheap, rough, concrete artifact to react to — an outline, a rough take, a stub, or UI/logic code via the /prototype skill. Creates the prototype as an asset. Use this when "how should it look" or "how should it behave" is the key question.
- Grilling: Conversation with the agent. Uses the /grilling and /domain-modeling skills. Asks one question at a time. The default case.
- Task: Literal manual work that must be done before the discussion can move forward — nothing to decide, prototype, or research. Moving data from one place to another, signing up for a third-party service, provisioning access. The agent automates it where it can; otherwise it hands the human a precise checklist to do by hand. Resolved when the work is done; the answer records what was done and any resulting facts (credentials location, new URLs, row counts) later tickets depend on.
Fog of war
The map is deliberately incomplete beyond the frontier — don't chart what you can't yet see. The frontier is the unblocked tickets at the edge of the known; resolve them to push it forward. Push back the fog of war one ticket at a time, until the way to the goal is clear and no tickets remain.
Invocation
Two branches. Either way,
every session ends with a Handoff — never resolve more than one ticket per session.
Chart the map
User invokes with a loose idea.
- Run a and session to surface the open decisions.
- Write a new map — mostly fog, frontier identified, trivially-decidable entries resolved inline.
- Handoff. Charting the map is one session's work; do not also resolve tickets.
Work through the map
User invokes with a path to an existing map. A ticket slug is optional — without one, you pick the next decision, not the user.
- Load the whole map as context.
- Choose the ticket. If the user named one, use it. Otherwise pick the first ticket in document order that is unblocked. Claim it: set and save before any work.
- Resolve it, invoking skills as needed — including any the block names. If in doubt, use and .
- Record the answer in the ticket's body and set .
- Add newly-discovered tickets with correct edges. If the decisions made invalidate other parts of the map, update or delete those tickets.
- Handoff.
The user may run unblocked tickets in parallel, so expect other agents to be editing the map in their own sessions.
Handoff
End every session by clearing the context and opening one or more fresh sessions. Close with a Next steps block the user can copy-paste. Two cases:
Open tickets remain. List the currently-unblocked tickets, then give two copy-paste options: a bare command for one session (you pick the next ticket), and one pinned command per unblocked ticket for running them in parallel. Paste one line per fresh window — opening one, some, or all of them.
Next steps — 3 tickets unblocked:
,
,
.
Clear the context, then open fresh sessions.
One session — resolves the next unblocked ticket:
Invoke /wayfinder with the map at <path>.
Parallel — paste one line per window, up to all 3:
Invoke /wayfinder with the map at <path>, ticket auth-strategy.
Invoke /wayfinder with the map at <path>, ticket cache-layer.
Invoke /wayfinder with the map at <path>, ticket rate-limits.
No open tickets remain. The fog is pushed back far enough that the way to the goal is clear — the map is done. (The initial grilling may also surface no fog at all, in which case there was never a map to chart.) Recommend implementing directly, or using
to schedule a multi-session implementation.
Notes
An optional block declaring the
domain, any skills every session should
, and freeform standing preferences for this effort.