View commands
The view verbs present state. They change nothing on the tracker, with a few exceptions noted per verb: the dashboard’s create-and-pin self-heal, and a map close that only happens on your explicit yes. No isolation workspace is set up for them. Back to the command index.
/trailhead:map
Section titled “/trailhead:map”Show the low-res map: destination, decisions, frontier, fog.
Syntax
/trailhead:map [map]Arguments
map(optional): a map number./trailhead:map <n>shows that map and makes it the active one. Without it, trailhead uses the active map (.trailhead/active-map); with no active map and more than one open, it lists them and asks.
What it does
- Makes sure the repo’s pinned dashboard exists and is pinned (see
dashboardbelow), creating or re-pinning it only if needed. - Renders the map by name: Destination; Frontier (takeable now, each with its type, shown as a set to choose from rather than a ranked list; whiteboard tickets and paused tickets are excluded); In progress (with who holds each); Paused (tickets set aside on a
PAUSEDcheckpoint, with the holder if any;/trailhead:resume <n>takes one back); Blocked (with what each waits on, and an advisory line if the written## Blocked bydiffers from the native dependency); Decisions so far; Not yet specified and parked fog (each top-level fog entry numbered for that render so you can name one); Out of scope; and an inbox count. - Flags any Out of scope line that is really deferred (a gate, a “for now” qualifier, a feature wanted later) and suggests
/trailhead:inboxto re-route it. - If the map is exhausted (no open tickets and no fog left), says so and asks whether to close the map issue. A yes closes it and refreshes the dashboard; a no leaves it open. It never closes unprompted.
What it writes
- Nothing on the map, except the map close when you say yes. The fog numbers are a render-time handle and are never saved into the map body.
- The dashboard, only if it was missing (created and pinned) or unpinned (re-pinned); never a body rewrite on a render.
- With
<n>, the local.trailhead/active-mapmarker.
Example
/trailhead:maptrailhead prints the destination, the frontier tickets you could take now, who holds what, the blocked ones, the settled decisions and the numbered fog.
/trailhead:dashboard
Section titled “/trailhead:dashboard”Show the repo dashboard: the pinned index of every open map, the whiteboard, and live counts.
Syntax
/trailhead:dashboardArguments
None.
What it does
- Finds the repo’s
trailhead:dashboardissue, creating and pinning it if missing (it takes the fixed third pinned slot beside the codebase and conventions issues). - Regenerates its body from the live tracker and shows it: a link to every open map (GitHub renders each map’s progress bar natively), the whiteboard section (Frontier, In progress, Paused, Blocked and Unverified groups; a paused ticket shows once, under Paused, and is not counted in the whiteboard frontier), and counts such as the untriaged inbox size and the whiteboard frontier size.
- Flags each open map that is exhausted but still open as
exhausted · closeableand offers to close it, routing any deferred Out of scope line first. It flags a map near GitHub’s 100 sub-issue cap asnear cap · <total>/100(orat cap, with· prunablewhen closed edges can be reclaimed) and offers/trailhead:prune. Both are offers only, never automatic.
What it writes
- The pinned dashboard issue body, as a full regeneration (the on-demand refresh). A hidden
trailhead:last-auditmarker already in the body is preserved, since/trailhead:audituses it. - The dashboard otherwise refreshes on structural events (a map charted or exhausted, a whiteboard ticket born or resolved), not on every map ticket resolve.
Example
/trailhead:dashboardtrailhead refreshes the pinned index and shows two open maps, the whiteboard with three loose tickets, and a note that one map is exhausted · closeable, with an offer to close it.
/trailhead:whiteboard
Section titled “/trailhead:whiteboard”Show the whiteboard: loose, map-less tickets, their frontier and who holds each.
Syntax
/trailhead:whiteboardArguments
None.
What it does
- Makes sure the pinned dashboard exists and is pinned (same self-heal as
map). - Renders the whiteboard by name: Frontier (open, unassigned, unblocked, not paused
trailhead:whiteboardtickets, each with its type, as a set to choose from), In progress (claimed tickets and who holds each), Paused (tickets set aside on aPAUSEDcheckpoint;/trailhead:resume <n>takes one back), and Blocked (with what each waits on). Unlike a map it has no destination, decisions or fog: it holds only loose work. - Pick a frontier ticket with
/trailhead:work <n>(works it whole and can split) or/trailhead:quick <n>(no split).
What it writes
Nothing. It is a read-only render; the dashboard is touched only if it was missing or unpinned.
Example
/trailhead:whiteboardtrailhead lists, for example, a todo and a bug on the frontier, one ticket in progress under a teammate, and one blocked ticket with its blocker.
/trailhead:panel
Section titled “/trailhead:panel”Open or close the live map panel: the active map’s open tickets by state, refreshed as the work moves. Claude Code only: the panel is drawn by the trailhead mod (Claude Code 2.1.287+ with the trailhead plugin), so on Codex and in a session without the mod the command answers that the panel is not available.

Syntax
/trailhead:panelArguments
None.
What it does
-
Toggles the panel: it opens when closed (
Map panel opened.) and closes when open (Map panel closed.). If the terminal is too narrow to place it, the answer says why. -
Shows the active map (
.trailhead/active-map) as a link with its destination, then its open tickets grouped as Frontier, In progress, UAT, Paused and Blocked, each with its count. A pending UAT follow-up (it carriestrailhead:uat) appears once, under UAT, with a dimtests <parent> #nline naming the ticket it tests and its usualworkbutton or holder. A paused ticket (it carriestrailhead:paused) appears only under Paused, with its holder when assigned and noworkbutton. A row is#n title(a link to the issue) and its type; every assigned row shows its holder as@login, and the ticket in play in this session is marked▸and saysthis sessionin place of its holder, even when another session shares the work-state file. A tracker ticket marked unverified is never listed, only counted in one dim line. With more than one open map, aMaps · nlist sits under the header with the active map marked●; a click on another map only views it (viewing #n · active #m, with aback to activebutton). With no active map, the open maps are listed to view. AWhiteboardrow above the maps list (shown even with a single map, itsN open / Mcounts beside it, name-only when the counts cannot be read) switches to the dashboard view: aDashboardtitle (a link to the pinnedtrailhead:dashboardissue), every open map as a button that opens it, and the whiteboard’s open tickets grouped as Frontier, In progress, UAT, Paused and Blocked with the sameworkbuttons;mapreturns to the map shown before.
-
Each Frontier row has a
workbutton that clears the conversation (/clear) and then runs/trailhead:work <n>; while a turn is running it is queued behind it and the row showsqueued. -
A Burn-down section at the bottom shows the map’s open tickets over time, with the counts
open · done · removed · peak: a chart on the terminal, a one-row sparkline on the desktop app. If the read fails it keeps the last curve and shows its age.
-
Refreshes from the tracker on session start, turn end, a Bash
gh issuewrite, therefreshbutton and a slow timer, never more than once every 15 seconds and never while the panel is closed. Ifghfails it keeps the last list and shows one dim reason with the age of that list. -
The footer has
refreshand the status on the left andcloseon the right; a status too long to fit beside the buttons moves to a row of its own.closecloses the panel like closing it by hand, so it never opens by itself again that session. -
In fullscreen, opens by itself once when a map is active; it never opens by itself on the main screen, and never again after you close it.
Also on screen
The same mod draws a pipeline band above the prompt (the ticket in play and its discuss › plan › execute › verify step) and a trailhead: status entry under it, whenever a ticket is in play.

What it writes
Nothing. It only reads the tracker through gh; the only thing it runs is /trailhead:work <n> when you press work.
Example
/trailhead:paneltrailhead answers Map panel opened. and docks the panel beside the transcript, with the frontier tickets of the active map, who holds each in progress, and the blocked ones.
Next: capture commands for adding to the map or the whiteboard in one line. See also Captures & the whiteboard.