Compare commits

...
Author SHA1 Message Date
Matt PocockandClaude Opus 4.8 7be28cf5e6 wayfinder: planning by default, overridable via Notes; shrink section
Address review: don't preclude execution. Wayfinder is planning by
default, but an effort's Notes can carry execution into the map. Collapse
the section to one paragraph, revert the destination sentence to its
original (which already allowed an executed change), and drop the Task
cross-reference to match.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 13:53:59 +01:00
Matt PocockandClaude Opus 4.8 80f29a4f29 wayfinder: reassert planning-only purpose with a leading-word section
Add a "Plan, don't do" section as the single source of truth for the
plan/execute boundary, and bring two passages into line with it:

- Destination is always a set of resolved decisions, never the executed
  change itself (the migration example previously read as execution).
- The Task ticket type now earns its place only by unblocking a decision,
  pointing back to the new section rather than restating the principle.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 13:49:33 +01:00
Matt PocockandGitHub 5a7f7e5c2a Merge pull request #460 from mattpocock/wayfinder-no-fog-early-exit
wayfinder: restore no-fog early exit
2026-07-06 13:42:16 +01:00
Matt PocockandClaude Opus 4.8 9b43c3359b wayfinder: simpler no-fog wording — 'you don't need a map'
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 13:40:26 +01:00
Matt PocockandClaude Opus 4.8 ad99c73a2d wayfinder: reframe no-fog exit as too-small-for-a-map
Not "implement directly" — the point is the journey fits one session and
doesn't justify a map. Stop and ask the user how to proceed.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 13:38:59 +01:00
Matt PocockandClaude Opus 4.8 55511cea24 wayfinder: restore no-fog early exit
Bring back the "skip the map when there's no fog" branch that was
collateral-deleted with the Handoff section. Co-located in Chart the
map step 2, where the fog/no-fog outcome is determined: if breadth-first
grilling surfaces no fog, offer to skip the map and implement directly.
The offer (ask, don't auto-skip) is preserved from the original.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-06 13:36:44 +01:00
Matt PocockandGitHub d11147daaf Merge pull request #459 from mattpocock/to-issues-sub-issues-and-prototype
to-issues: prefer native sub-issues; reference /prototype code explicitly
2026-07-06 13:35:18 +01:00
2 changed files with 15 additions and 2 deletions
@@ -0,0 +1,9 @@
---
"mattpocock-skills": patch
---
Restore **`wayfinder`**'s early exit when the frontier grilling turns up no fog.
The skill used to have a **Skipping The Decision Map** section: if the opening grilling surfaced no fog of war, there was no map to build, so it offered to skip straight to implementing. That clause was demoted to a parenthetical inside the Handoff section, then deleted as collateral when Handoff was removed — never an intentional cut.
It's back, co-located in **Chart the map** step 2 (Map the frontier), where the fog/no-fog outcome is actually determined: if breadth-first grilling surfaces no fog — the journey is small enough for one session — you don't need a map, so stop and ask the user how they'd like to proceed. The ask, rather than an auto-skip, is preserved from the original.
+6 -2
View File
@@ -7,6 +7,10 @@ A loose idea has arrived — too big for one agent session, and wrapped in fog:
The destination varies per effort, and naming it is the first act of charting — it shapes every ticket. It might be a spec to hand off and iterate on, a decision to lock before planning starts, or a change made in place like a data-structure migration. The map is domain-agnostic — engineering work, course content, whatever fits the shape.
## Plan, don't do
Wayfinder is **planning** by default: each ticket resolves a decision, and the map is done when the way is clear — nothing left to decide before someone goes and does the thing. The pull to just do the work is usually the signal you've reached the edge of the map and it's time to hand off. An effort can override this in its **Notes** — carrying execution into the map itself — but absent that, produce decisions, not deliverables.
## 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 — 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 — but they ride *inside* the name, never stand in for it.
@@ -70,7 +74,7 @@ The answer isn't part of the body — it's recorded on resolution (see [Work thr
- **Research**: Reading documentation, third-party APIs, or local resources like knowledge bases. Creates a markdown summary as a linked asset. Use 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. Links the prototype as an asset. Use 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, signing up for a service, provisioning access. The agent automates it where it can; otherwise it hands the human a precise checklist. 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.
- **Task**: Manual work that must happen before a *decision* can be made — nothing to decide, prototype, or research, but the discussion is blocked until it's done. Signing up for a service so its API can be judged, provisioning access, moving data so its shape can be seen. This is the one type that *does* rather than decides — and it earns its place by unblocking a decision, not by delivering the destination. The agent automates it where it can; otherwise it hands the human a precise checklist. 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
@@ -102,7 +106,7 @@ Two modes. Either way, **never resolve more than one ticket per session.**
User invokes with a loose idea.
1. **Name the destination.** Run a `/grilling` and `/domain-modeling` session to pin down what this map is finding its way to — the spec, decision, or change. The destination fixes the scope, so it's settled first.
2. **Map the frontier.** Grill again, **breadth-first** this time: fan out across the whole space rather than deep on any one thread, surfacing the open decisions and the first steps takeable now.
2. **Map the frontier.** Grill again, **breadth-first** this time: fan out across the whole space rather than deep on any one thread, surfacing the open decisions and the first steps takeable now. **If this surfaces no fog** — the way to the destination is already clear, the whole journey small enough for one session — you don't need a map. Stop and ask the user how they'd like to proceed.
3. **Create the map** (label `wayfinder:map`): Destination and Notes filled in, Decisions-so-far empty, the fog sketched into **Not yet specified**.
4. **Create the tickets you can specify now** as child issues of the map — then wire blocking edges in a **second pass** (issues need ids before they can reference each other). Wiring sorts them into the frontier and the blocked; everything you can't yet specify stays in the fog — the **Not yet specified** section.
5. Stop — charting the map is one session's work; do not also resolve tickets.