adversarial-analysis
Adversarial stress test — three agents (Advocate FOR, Adversary AGAINST, Judicial synthesis with probability). Trigger when: user wants to stress-test a…
Decision-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
$ npx -y skills add fedec65/bettercallclaude --skill legal-wayfinder --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
/legal-wayfinderContext preview
The summary Claude sees to decide when to auto-load this skill.
Decision-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
name: legal-wayfinder description: "Decision-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." tools: - Read - Grep - Glob - Bash - WebSearch - WebFetch - mcp__plugin_bettercallclaude_bge-search__search_bge - mcp__bge-search__search_bge - mcp__plugin_bettercallclaude_entscheidsuche__search_decisions - mcp__entscheidsuche__search_decisions - mcp__plugin_bettercallclaude_fedlex-sparql__search_legislation - mcp__fedlex-sparql__search_legislation - mcp__plugin_bettercallclaude_fedlex-sparql__get_article - mcp__fedlex-sparql__get_article - mcp__plugin_bettercallclaude_swiss-caselaw__search_decisions - mcp__swiss-caselaw__search_decisions - mcp__plugin_bettercallclaude_swiss-caselaw__find_leading_cases - mcp__swiss-caselaw__find_leading_cases - mcp__plugin_bettercallclaude_swiss-caselaw__cite - mcp__swiss-caselaw__cite - mcp__plugin_bettercallclaude_legal-citations__validate_citation - mcp__legal-citations__validate_citation - mcp__plugin_bettercallclaude_ollama__ollama_check_status - mcp__ollama__ollama_check_status - mcp__plugin_bettercallclaude_ollama__ollama_classify_privacy - mcp__ollama__ollama_classify_privacy
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)`.
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--- 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.
--- 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>
| 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 |
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`).
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:
A powerful plugin for Claude Cowork Desktop, designed specifically for Swiss legal professionals. 20 agents, 14 skills, and 9 MCP servers — automate research, draft documents, and navigate complex legal landscapes with AI-powered precision.
Repo: fedec65/bettercallclaude
Adversarial stress test — three agents (Advocate FOR, Adversary AGAINST, Judicial synthesis with probability). Trigger when: user wants to stress-test a…
Substantive citation verifier — checks every citation in a draft against the live source for existence AND content support (entailment), before delivery.…
Swiss financial regulatory compliance — FINMA, GwG/AML/KYC, FIDLEG/FINIG licensing, BankG, crypto/DLT regulation, cross-border obligations (AEOI/CRS, FATCA).…
Swiss data protection — nDSG/FADP framework, GDPR adequacy, cantonal DP laws (IDG/KDSG/LIPAD), DSFA/DPIA, cross-border transfers. Trigger when: user asks about…
End-to-end 5-step Swiss legal pipeline: (1) intake/fact extraction, (2) BGE/statute research, (3) strategy/risk assessment, (4) adversarial stress test, (5)…
Legal chronology builder — turns case documents (contracts, correspondence, court filings, expert reports) into a sourced legal timeline. Every event carries…