| name | canada-memo |
| title | canada-memo |
| description | 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. |
| author | barndonmai |
| author_url | https://github.com/barndonmai/specter/tree/main/openclaw/skills/canada_memo |
| license | MIT |
| version | 0.1.0 |
| execution_mode | open |
| jurisdiction | ca |
| practice | personal-injury |
| language | en |
canada-memo
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.
Trigger
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 hurt
canada slip and fall on icy sidewalk in Toronto
CANADA: 55yo woman rear-ended on highway, soft tissue, treatment gap
Canada — bicyclist hit by SUV in Ottawa
How to call
Strip the leading Canada (and any leading punctuation/whitespace) to get
the fact pattern, then call:
from openclaw.skills.canada_memo.client import generate_memo
memo_text = generate_memo(facts)
Or via shell from within the OpenClaw harness:
cd ~/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 …).
What NOT to do
- Do not ask clarifying questions before running the 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.
- Do not call
harvester_query.search for Canadian queries that match
this trigger — that would route to the small Canada vector slice without
running the full memo (stats + Claude analysis + 3 key precedents).
- Do not invent precedents. Everything the memo cites comes from real
CanLII data already in
case_stressor/chroma_db.
After the memo
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
endpoint with the prior facts as and the
new message as . (Future enhancement — for now the agent
can re-run the baseline memo with adjusted filters.)