Compare commits

...
Author SHA1 Message Date
Matt PocockandClaude Opus 4.8 b25e2b3787 claude-handoff: add to in-progress README index
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 11:32:04 +01:00
Matt PocockandClaude Opus 4.8 5a7ee93f01 claude-handoff: say handoff summary, not document
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 11:26:55 +01:00
Matt PocockandClaude Opus 4.8 8347a41614 claude-handoff: require descriptive --name
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 11:25:18 +01:00
Matt PocockandClaude Opus 4.8 8f3401d1a1 claude-handoff: reuse original handoff wording
Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 11:24:51 +01:00
Matt PocockandClaude Opus 4.8 f8d12710f7 Add claude-handoff skill (in-progress)
User-invoked skill mirroring handoff, but hands the conversation summary
to a fresh background agent via `claude --bg` instead of saving a
markdown document.

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 11:22:35 +01:00
Matt Pocock a5c124ef9c Made wayfinder model-invocable 2026-07-02 11:01:48 +01:00
Matt PocockandGitHub c6b033e93a Merge pull request #420 from mattpocock/wayfinder-branch-terminology
fix(wayfinder): rename "Two branches" to "Two modes"
2026-07-02 09:57:03 +01:00
Matt PocockandClaude Opus 4.8 cb51924fbe fix(wayfinder): rename "Two branches" to "Two modes"
The word "branch" in the Invocation section primes git-aware agents
(Sonnet, GPT-5.5) to create git branches when running the skill,
littering established environments with per-session branches that then
have to be merged. Nothing here refers to git — the two "branches" are
the two invocation modes (chart the map / work through it). Rename to
"modes" to remove the false cue.

Fixes #418

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-02 09:51:01 +01:00
Matt PocockandGitHub ab6ef44652 Merge pull request #419 from mattpocock/wayfinder-map-is-index
refactor(wayfinder): make the map an index, not a store
2026-07-02 09:47:36 +01:00
Matt PocockandGitHub 7687025249 Merge pull request #413 from mattpocock/wayfinder-collaborative-tracker
feat(wayfinder): make the map collaborative via the issue tracker
2026-07-02 09:39:26 +01:00
3 changed files with 29 additions and 4 deletions
+1
View File
@@ -8,3 +8,4 @@ Skills that are still being developed. They're not ready to ship — expect roug
- **[writing-beats](./writing-beats/SKILL.md)** — Shape an article as a journey of beats, choose-your-own-adventure style. Pick a starting beat, write only that beat, then pivot to the next, until the article reaches a natural end.
- **[writing-fragments](./writing-fragments/SKILL.md)** — Grilling session that mines you for fragments — heterogeneous nuggets of writing — and appends them to a single document as raw material for a future article.
- **[writing-shape](./writing-shape/SKILL.md)** — Take a markdown file of raw material and shape it into an article paragraph by paragraph, arguing format choices at each step.
- **[claude-handoff](./claude-handoff/SKILL.md)** — Hand the current conversation off to a fresh background agent that picks up the work immediately, seeded with a handoff summary via `claude --bg`. User-invoked.
@@ -0,0 +1,18 @@
---
name: claude-handoff
description: Hand the current conversation off to a fresh background agent that picks up the work immediately.
argument-hint: "What will the next session be used for?"
disable-model-invocation: true
---
Write a handoff summary of the current conversation so a fresh agent can continue the work. Instead of saving it, launch a background agent seeded with the summary as its prompt: `claude --bg --name "<descriptive name>" "<handoff summary>"`. It starts in the current working directory and returns immediately; the user manages it with `claude agents`.
Always pass `-n`/`--name` with a descriptive name (e.g. `--name "Fix login bug"`) — it sets the display name shown in the job list, session picker, and terminal title.
Include a "suggested skills" section in the summary, which suggests skills that the agent should invoke.
Do not duplicate content already captured in other artifacts (PRDs, plans, ADRs, issues, commits, diffs). Reference them by path or URL instead.
Redact any sensitive information, such as API keys, passwords, or personally identifiable information — the summary becomes the agent's prompt.
If the user passed arguments, treat them as a description of what the next session will focus on and tailor the summary accordingly.
+10 -4
View File
@@ -1,7 +1,6 @@
---
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.
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.
@@ -12,7 +11,7 @@ The map is a single issue on this repo's issue tracker, labelled `wayfinder: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.
**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
@@ -20,13 +19,17 @@ The whole map at low resolution, loaded once per session. Open tickets are **not
```markdown
## Notes
<domain; skills every session should consult; standing preferences for this effort>
## Decisions so far
<!-- 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
<!-- see "Fog of war" for what belongs here -->
```
@@ -36,6 +39,7 @@ Each ticket is a **child issue** of the map; the tracker's issue id is its ident
```markdown
## Question
<the decision or investigation this ticket resolves>
```
@@ -70,7 +74,7 @@ Fog excludes only what's already decided (that's Decisions so far) and what's al
## Invocation
Two branches. Either way, **every session ends with a [Handoff](#handoff)** — never resolve more than one ticket per session.
Two modes. Either way, **every session ends with a [Handoff](#handoff)** — never resolve more than one ticket per session.
### Chart the map
@@ -103,11 +107,13 @@ End every session with a **Next steps** block the user can copy-paste. Two cases
> **Next steps** — 3 tickets unblocked. Clear the context, then open fresh sessions.
>
> **One session** — resolves the next unblocked ticket:
>
> ```
> Invoke /wayfinder with the map <map-url>.
> ```
>
> **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>.