Legal Wayfinder — Decision Maps for Big Legal Matters
SkillAI & modelsDecision-map decomposition for legal matters too big or too foggy for one session. Charts a map (destination, decisions so far, fog, out-of-scope) plus decision tickets under bcc-output/YYYY-MM-DD-<slug>/wayfinder/, then works tickets one at a time until the route to the deliverable is clear, then hands off to execution. Trigger when: charting a big legal matter (/legal-chart), working the next decision ticket (/legal-way), or a briefing is too foggy for a static execution plan. Do NOT trigger for: normal matters that fit /briefing or /legal-5step, quality-gate loops (legal-goal / legal-loop), or single-question research.
Available today. Use it from your connected AI after setup.
No other account needed.
Connect ahel once, and every AI you use reads what you have installed.
Then ask your AI: use the Legal Wayfinder — Decision Maps for Big Legal Matters skill
What this skill tells your AI
The instructions your AI receives, as published by fedec65/bettercallclaude in bettercallclaude/skills/legal-wayfinder/SKILL.md and read by ahel’s review.
A big legal matter arrives wrapped in fog: the route from intake to deliverable is not visible yet. Wayfinding finds that route by resolving decisions — not by executing work slices. The map is the plan; execution happens only after handoff.
Plan, don't do. Every ticket resolves a decision. Supporting memos and prototypes are linked as assets, but no client deliverable is drafted inside the map. A matter may override this in the map's Notes (carrying execution into the map); absent that, produce decisions, not deliverables.
Refer by name. In everything the attorney reads, refer to a ticket by its title,
never a bare id. Ids ride inside the linked name: [Limitation period open?](tickets/t01-limitation-period-open.md).
Storage
Everything lives inside the matter folder — never in memory keys, never synced anywhere:
bcc-output/YYYY-MM-DD-<slug>/wayfinder/
map.md
tickets/
t01-limitation-period-open.md
t02-forum-choice-zh-or-federal.md
assets/ ← research memos, prototype outlines linked from tickets
The Map (map.md)
---
matter: <slug>
status: charting | working | ready-for-handoff | handed-off
privacy-mode: strict | balanced | cloud
classifier: ollama | none
jurisdiction: federal | <canton>
language: DE | FR | IT | EN
---
## Destination
<1–2 lines: the deliverable this matter is finding its way to. Fixes scope;
every session orients to it before choosing a ticket.>
## Notes
<skills to consult (swiss-legal-research, privacy-routing, swiss-citation-formats),
standing preferences. Per-matter execution override is expressed here if needed.>
## Decisions so far
<!-- index, one line per resolved ticket: gist + link; never restate the detail -->
## Not yet specified
<!-- fog: in-scope questions you can sense but cannot phrase sharply yet -->
## Out of scope
<!-- work consciously ruled beyond the destination + why; never graduates -->
The map is an index, not a store: a decision lives in exactly one place — its ticket. The map gists and links.
Tickets (tickets/tXX-<slug>.md)
---
id: t01
title: Limitation period open?
type: research
status: open
blocked-by: []
claimed-in: ""
---
## Question
<the decision this ticket resolves, sized to one agent session>
## Resolution
<filled on close: the decision + evidence; assets linked, never pasted>
Ticket types
| Type | Mode | Resolves | Rules |
|---|---|---|---|
research | AFK | A fact a decision waits on (precedent, statute, deadline) | Researcher agent + MCP servers; memo in assets/; R1 (citations only via swiss-caselaw:cite) and R2 (verbatim quotations) enforced |
grilling | HITL | Client facts, priorities, risk appetite | Conversation with the attorney, one question at a time. Never answer for the human — an agent that answers its own grilling questions has broken the ticket |
prototype | HITL | "How should it look/behave" | Cheap concrete artifact to react to — outline of the Klageschrift, rough clause structure — linked from assets/ |
task | HITL or AFK | Work that unblocks a decision (gather contract file, obtain court records) | Precise checklist for attorney/client, or driven alone where possible; resolution records what was done and resulting facts later tickets depend on |
Frontier and claiming
The frontier is every ticket with status: open, empty claimed-in, and all
blocked-by tickets status: resolved or ruled-out. /legal-way picks the lowest-numbered frontier
ticket unless the attorney names one. Claim by setting claimed-in to a session stamp
(ISO date + time) before any work; refuse a ticket already claimed. One ticket per
/legal-way invocation — research tickets are the only exception (they may be batched
or fired in parallel by /legal-chart).
Fog of war
The map is deliberately incomplete. Beyond the live tickets lies fog — questions you can sense but cannot phrase sharply yet because they hang on open decisions. The test:
- Ticket when the question is already sharp — even if blocked.
- Not yet specified when it is not yet phrasable that sharply. Never pre-slice fog into ticket-sized pieces; one patch may graduate into several tickets, or none.
Resolving a ticket graduates whatever it made sharp: create new tickets (create-then-wire blocking edges in a second pass), and clear each graduated patch from Not yet specified so it lives only as its ticket.
Out of scope
Fog gathers only toward the destination; work beyond it is out of scope and never
graduates. When a live ticket turns out to sit past the destination, set it
status: ruled-out (not resolved) and add one line to Out of scope: gist + why +
link. It stays out of Decisions so far — a scope boundary is not a step on the route.
Edge cases
- Outgrown ticket: if resolving a ticket sprawls beyond one session's worth, split
it — create the successor tickets plus any fresh fog, and close the original
resolvedwith a pointer to its children in the Resolution. - Stale research: a research resolution in fast-moving law may note
revalidate: true. Re-open it only by creating a fresh ticket referencing the old one — never by editing a recorded resolution.
Privacy (Anwaltsgeheimnis)
The map's privacy-mode governs every ticket; the PreToolUse hook keeps guarding writes
regardless. classifier is probed once at chart time (ollama_check_status) — never
re-probed per ticket. Degradation follows the privacy-routing decision matrix:
| Content | classifier: ollama | classifier: none |
|---|---|---|
| PUBLIC | cloud preferred | cloud OK |
| CONFIDENTIAL | local preferred | anonymize → cloud + warning |
| PRIVILEGED / undeterminable (strict) | local required | no automated clear: stay local-only, or ask the attorney directly before any cloud call |
A research ticket touching privileged facts with no classifier does not hard-fail the map: convert to conversation — ask the attorney to reformulate the question in anonymous terms, then proceed as CONFIDENTIAL. Fail closed; never "just send it".
Handoff
Hand off only when every ticket is resolved or ruled-out and the fog is empty.
A claimed ticket still counts as open — in-flight work in another session blocks
handoff. When /legal-way reaches that state, set
status: ready-for-handoff and — instead of stopping — emit a handoff pack:
destination + Decisions so far + linked assets, shaped to feed the orchestrator's
Briefing-Sourced Execution protocol. Route to /legal-5step or the orchestrator. With
--gate, pre-build a /legal-goal record so execution runs under the worker–evaluator
loop from day one. Set status: handed-off once the pack is delivered.
Honest termination
Never present an unresolved map as clear. If the map is dead — fog non-empty, nothing
graduatable, no open tickets — surface it to the attorney: the destination needs
redrawing or external input is missing (which is itself a task ticket).
Plugin Scope Constraint
For all wayfinding tasks, use exclusively BetterCallClaude agents, skills, and MCP servers. Do not delegate legal work to generic or external skills, agents, or tools outside this plugin.
Signals
- GitHub stars
- 38
- Forks
- 8
- Last commit
- Sep 2026
Advanced
- Catalog kind
- skill
- Gateway key
legal-wayfinder- Source
- github.com/fedec65/bettercallclaude