mirror of
https://github.com/mattpocock/skills.git
synced 2026-07-29 11:02:41 +07:00
Compare commits
5
Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
a12cca62fa | ||
|
|
eb63f6e92c | ||
|
|
ee014fa8b1 | ||
|
|
a5c124ef9c | ||
|
|
c6b033e93a |
@@ -1,18 +1,21 @@
|
|||||||
---
|
---
|
||||||
name: wayfinder
|
name: wayfinder
|
||||||
description: Chart a route through a foggy problem — turn a loose idea into a shared map of investigation tickets on your issue tracker, and resolve them one at a time until the way to the goal is clear.
|
description: Chart a route through a foggy problem — turn a loose idea into a shared map of investigation tickets on your issue tracker, and resolve them one at a time until the way to the goal is clear.
|
||||||
disable-model-invocation: true
|
|
||||||
---
|
---
|
||||||
|
|
||||||
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 as a **shared map** on the repo's issue tracker, then works its tickets one at a time. The map is domain-agnostic — engineering work, course content, whatever fits the shape.
|
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 as a **shared map** on the repo's issue tracker, then works its tickets one at a time. The map is domain-agnostic — engineering work, course content, whatever fits the shape.
|
||||||
|
|
||||||
|
## Refer by name
|
||||||
|
|
||||||
|
Every map and ticket is an issue, so it has a **name** — its title. In everything the human reads — narration, the map's Decisions-so-far, the Handoff — refer to it by that name, never by a bare id, number, or slug. A wall of `#42, #43, #44` is illegible; names read at a glance. The id and URL don't vanish — a name wraps its link, and Handoff commands still paste the URL — but they ride *inside* the name, never stand in for it.
|
||||||
|
|
||||||
## The Map
|
## The Map
|
||||||
|
|
||||||
The map is a single issue on this repo's issue tracker, labelled `wayfinder:map` — the canonical artifact. Its tickets are child issues of the map.
|
The map is a single issue on this repo's issue tracker, labelled `wayfinder:map` — the canonical artifact. Its tickets are child issues of the map.
|
||||||
|
|
||||||
The map is an **index**, not a store. It lists the decisions made and points at the tickets that hold their detail; a decision lives in exactly one place — its ticket — so the map never restates it, only gists it and links.
|
The map is an **index**, not a store. It lists the decisions made and points at the tickets that hold their detail; a decision lives in exactly one place — its ticket — so the map never restates it, only gists it and links.
|
||||||
|
|
||||||
**Where the map, its child tickets, blocking, and frontier queries physically live is tracker-specific.** Consult `docs/agents/issue-tracker.md` (the "Wayfinding operations" section) for how *this* repo expresses them. If that doc is absent, default to the local-markdown tracker.
|
**Where the map, its child tickets, blocking, and frontier queries physically live is tracker-specific.** Consult `docs/agents/issue-tracker.md` (the "Wayfinding operations" section) for how _this_ repo expresses them. If that doc is absent, default to the local-markdown tracker.
|
||||||
|
|
||||||
### The map body
|
### The map body
|
||||||
|
|
||||||
@@ -20,13 +23,17 @@ The whole map at low resolution, loaded once per session. Open tickets are **not
|
|||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
## Notes
|
## Notes
|
||||||
|
|
||||||
<domain; skills every session should consult; standing preferences for this effort>
|
<domain; skills every session should consult; standing preferences for this effort>
|
||||||
|
|
||||||
## Decisions so far
|
## Decisions so far
|
||||||
|
|
||||||
<!-- the index — one line per closed ticket: enough to judge relevance, then zoom the link for the detail the ticket holds -->
|
<!-- the index — one line per closed ticket: enough to judge relevance, then zoom the link for the detail the ticket holds -->
|
||||||
- [<closed ticket title>](<link>) — <one-line gist of the answer>
|
|
||||||
|
- [<closed ticket title>](link) — <one-line gist of the answer>
|
||||||
|
|
||||||
## Fog
|
## Fog
|
||||||
|
|
||||||
<!-- see "Fog of war" for what belongs here -->
|
<!-- see "Fog of war" for what belongs here -->
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -36,6 +43,7 @@ Each ticket is a **child issue** of the map; the tracker's issue id is its ident
|
|||||||
|
|
||||||
```markdown
|
```markdown
|
||||||
## Question
|
## Question
|
||||||
|
|
||||||
<the decision or investigation this ticket resolves>
|
<the decision or investigation this ticket resolves>
|
||||||
```
|
```
|
||||||
|
|
||||||
@@ -100,18 +108,20 @@ End every session with a **Next steps** block the user can copy-paste. Two cases
|
|||||||
|
|
||||||
**Open tickets remain.** Query the map for the currently-unblocked children, 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.
|
**Open tickets remain.** Query the map for the currently-unblocked children, 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.
|
> **Next steps** — *<map name>*: 3 tickets unblocked. Clear the context, then open fresh sessions.
|
||||||
>
|
>
|
||||||
> **One session** — resolves the next unblocked ticket:
|
> **One session** — resolves the next unblocked ticket:
|
||||||
|
>
|
||||||
> ```
|
> ```
|
||||||
> Invoke /wayfinder with the map <map-url>.
|
> Invoke /wayfinder with the map <map-url>.
|
||||||
> ```
|
> ```
|
||||||
>
|
>
|
||||||
> **Parallel** — paste one line per window, up to all 3:
|
> **Parallel** — paste one line per window, up to all 3:
|
||||||
|
>
|
||||||
> ```
|
> ```
|
||||||
> Invoke /wayfinder with the map <map-url>, ticket <issue-url>.
|
> Invoke /wayfinder with the map <map-url>, ticket <issue-url>. # <ticket name>
|
||||||
> Invoke /wayfinder with the map <map-url>, ticket <issue-url>.
|
> Invoke /wayfinder with the map <map-url>, ticket <issue-url>. # <ticket name>
|
||||||
> Invoke /wayfinder with the map <map-url>, ticket <issue-url>.
|
> Invoke /wayfinder with the map <map-url>, ticket <issue-url>. # <ticket name>
|
||||||
> ```
|
> ```
|
||||||
|
|
||||||
**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-prd` to schedule a multi-session implementation.
|
**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-prd` to schedule a multi-session implementation.
|
||||||
|
|||||||
Reference in New Issue
Block a user