Install any skill in seconds. Free to start, no credit card required.
Get Started Free →When the user's message starts with "Canada" (case-insensitive), generate a full Ontario PI Case Assessment Memo from the case_stressor corpus and return it verbatim. This is the primary handler for Canadian fact patterns — DO NOT ask clarifying questions first; run the memo and let the lawyer react.
| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-08 | ✗→✓ | ▲ Improved | -50% | 0% |
| case-12 | ✗→✓ | ▲ Improved | 49% | 0% |
| case-20 | ✗→✓ | ▲ Improved | 13% | 0% |
| case-07 | ✓→✗ | ▼ Worse | -78% | 0% |
| case-10 | ✓→✗ | ▼ Worse | -74% | 0% |
The case_stressor pipeline produces a structured PI Case Assessment Memo backed by 340 real Ontario PI decisions. This skill is the agent's hook into that pipeline.
Use this skill whenever the user's message starts with the word "Canada" / "canada" / "CANADA" (any case), with or without a comma after.
Examples that trigger:
Canada, my child was playing soccer outside Target and got hurtcanada slip and fall on icy sidewalk in TorontoCANADA: 55yo woman rear-ended on highway, soft tissue, treatment gapCanada — bicyclist hit by SUV in OttawaStrip the leading Canada (and any leading punctuation/whitespace) to get the fact pattern, then call:
pythonfrom openclaw.skills.canada_memo.client import generate_memo memo_text = generate_memo(facts)
Or via shell from within the OpenClaw harness:
bashcd ~/Specter && python3 -m openclaw.skills.canada_memo.client \ "my child was playing soccer outside Target and got hurt"
The function returns a single markdown string. Print it verbatim as the WhatsApp reply — do not summarize, do not paraphrase, do not add headers. The memo already contains its own structure (PI CASE ASSESSMENT MEMO …).
The corpus is fact-pattern-indexed; a thin query still returns useful comparables. The memo itself flags "facts not provided" gaps inside the WEAKEST POINTS section — let the memo do the asking.
harvester_query.search for Canadian queries that matchthis trigger — that would route to the small Canada vector slice without running the full memo (stats + Claude analysis + 3 key precedents).
CanLII data already in case_stressor/chroma_db.
The memo ends with:
> TYPE "what if changed fact]?" TO STRESS-TEST YOUR CASE
If the user's NEXT message starts with what if, route to the /canada/whatif endpoint with the prior facts as original_facts and the new message as modified_facts. (Future enhancement — for now the agent can re-run the baseline memo with adjusted filters.)
The memo takes ~10–25 seconds because it embeds the query via Voyage and asks Claude Opus to write the analysis from the retrieved cases. Set the WhatsApp typing indicator if the surface supports it; otherwise just let the memo land.
The memo is grounded in the case_stressor query result. Don't:
If the user wants more detail on a single cited case, call caselaw_query with that citation — that's the next-layer skill.
Other measured skills in the registry, with their headline benchmark lift.