Why
Matt Pocock's skills (~20k stars) define a multi-session planning workflow — wayfinder — whose outer loop is exactly what cldctrl automates: launch a session, have it claim one ticket, resolve it, repeat. His tracker conventions are fully machine-readable, so cldctrl can become the mission-control layer for that workflow with no NLP and no coupling to his skill text:
- Map = one issue labeled
wayfinder:map, fixed body sections (## Destination, ## Notes, ## Decisions so far, ## Not yet specified, ## Out of scope)
- Tickets = issues labeled
wayfinder:<type> (research / prototype / grilling / task)
- Blocking = GitHub's native issue dependencies → frontier = open + unblocked + unassigned (pure API query)
- Claim = assign; resolve = comment + close + append a line to the map's decision index
Adoption angle: a lot of Claude Code users run this workflow; "cldctrl works your wayfinder maps" is a differentiator nobody else has.
Design
Layered so we're not coupled to one influencer's v1.x conventions:
Slice 1 — read_decision_map (MCP tool)
Input: project. Finds the wayfinder:map issue, parses sections, classifies child tickets into frontier / blocked / claimed (assigned+open) / decided (closed) with types. Returns structured JSON. Standalone value: any agent (and cc control) can see the map; cockpit can render it.
Slice 2 — dispatch_map_ticket (MCP tool)
Input: project, optional ticket number + agent (claude/codex/agy). Claims the ticket (assigns it), then reuses launch_session's web-first routing to open a cockpit tile with a prefilled prompt: "Claim and resolve ticket #N per /wayfinder…". Refuses blocked/claimed tickets. This is a concrete instance of #10 (driver reads → dispatches → verifies).
Slice 3 — nudges
computeNudges gains an idle-frontier nudge: map has ≥1 frontier ticket and no active session in that project.
Slice 4 — dashboard polish
Issues tab groups wayfinder tickets (map pinned, frontier highlighted); "work the map" button on the project.
Sequencing / gate
Build slice 1 first (useful alone, small: gh api + parser + MCP registration). Gate slices 2–4 on actually working one real map (planned: the cc control design itself) to validate the conventions in practice. Pin the adapter against mattpocock-skills v1.2.0 and re-check on plugin updates — his repo renames/deprecates skills over time.
Risks
- Convention drift upstream → mitigated by adapter layering + tolerant parsing
- Native issue dependencies need GraphQL (
blockedBy); plain gh issue view doesn't expose them — verify API shape during slice 1
- Name collisions: his
/handoff, /code-review overlap cldctrl vocabulary — docs should disambiguate
Why
Matt Pocock's skills (~20k stars) define a multi-session planning workflow — wayfinder — whose outer loop is exactly what cldctrl automates: launch a session, have it claim one ticket, resolve it, repeat. His tracker conventions are fully machine-readable, so cldctrl can become the mission-control layer for that workflow with no NLP and no coupling to his skill text:
wayfinder:map, fixed body sections (## Destination,## Notes,## Decisions so far,## Not yet specified,## Out of scope)wayfinder:<type>(research/prototype/grilling/task)Adoption angle: a lot of Claude Code users run this workflow; "cldctrl works your wayfinder maps" is a differentiator nobody else has.
Design
Layered so we're not coupled to one influencer's v1.x conventions:
core/decision-map.ts— generic decision-map reader with pluggable adapters. Adapter CLD CTRL rebrand + cross-platform CLI/TUI #1: Pocock/GitHub conventions above (viagh apiGraphQL for dependency edges). Adapter search_conversations only indexes user prompts, missing work by what was done #2 (later): his local.scratch/<feature>/markdown tracker. Tolerant parsing; unknown sections/labels pass through.Slice 1 —
read_decision_map(MCP tool)Input: project. Finds the
wayfinder:mapissue, parses sections, classifies child tickets into frontier / blocked / claimed (assigned+open) / decided (closed) with types. Returns structured JSON. Standalone value: any agent (andcc control) can see the map; cockpit can render it.Slice 2 —
dispatch_map_ticket(MCP tool)Input: project, optional ticket number + agent (claude/codex/agy). Claims the ticket (assigns it), then reuses
launch_session's web-first routing to open a cockpit tile with a prefilled prompt: "Claim and resolve ticket #N per /wayfinder…". Refuses blocked/claimed tickets. This is a concrete instance of #10 (driver reads → dispatches → verifies).Slice 3 — nudges
computeNudgesgains an idle-frontier nudge: map has ≥1 frontier ticket and no active session in that project.Slice 4 — dashboard polish
Issues tab groups wayfinder tickets (map pinned, frontier highlighted); "work the map" button on the project.
Sequencing / gate
Build slice 1 first (useful alone, small: gh api + parser + MCP registration). Gate slices 2–4 on actually working one real map (planned: the
cc controldesign itself) to validate the conventions in practice. Pin the adapter againstmattpocock-skillsv1.2.0 and re-check on plugin updates — his repo renames/deprecates skills over time.Risks
blockedBy); plaingh issue viewdoesn't expose them — verify API shape during slice 1/handoff,/code-reviewoverlap cldctrl vocabulary — docs should disambiguate