diff --git a/.claude-plugin/marketplace.json b/.claude-plugin/marketplace.json index 824088e..bcdf2ed 100644 --- a/.claude-plugin/marketplace.json +++ b/.claude-plugin/marketplace.json @@ -1,5 +1,7 @@ { + "$schema": "https://anthropic.com/claude-code/marketplace.schema.json", "name": "claude-for-legal", + "description": "Reference agents, skills, and data connectors for the legal workflows we see most — in-house commercial, privacy, product, corporate, employment, litigation, regulatory, AI governance, IP, and the learning side of the practice (law school clinics and students).", "owner": { "name": "Anthropic" }, @@ -95,7 +97,7 @@ { "name": "ip-legal", "source": "./ip-legal", - "description": "Runs first-pass trademark clearance and freedom-to-operate triage, drafts and triages cease-and-desist letters and DMCA takedowns (send and respond), checks open source compliance, reviews IP clauses, and tracks registrations and renewal deadlines.", + "description": "Runs first-pass trademark clearance and freedom-to-operate triage, screens invention disclosures for initial patentability, drafts and triages cease-and-desist letters and DMCA takedowns (send and respond), checks open source compliance, reviews IP clauses, and tracks registrations and renewal deadlines.", "author": { "name": "Anthropic" } diff --git a/CLAUDE.md b/CLAUDE.md new file mode 100644 index 0000000..d6705e9 --- /dev/null +++ b/CLAUDE.md @@ -0,0 +1,130 @@ +# CLAUDE.md + +Guidance for working on this repo. `claude-for-legal` is a Claude Code plugin +marketplace — twelve first-party legal plugins, one vendor plugin, and five +managed-agent cookbooks. Most work here is editing prompt content (skills, +agents, hooks), plugin metadata, or cookbook config — not application code. + +## Layout + +``` +.claude-plugin/marketplace.json # the marketplace manifest — one entry per plugin +/ # 12 first-party plugins (commercial-legal, privacy-legal, ...) + .claude-plugin/plugin.json # plugin manifest (name, version, description, author) + .mcp.json # MCP servers the plugin connects to + CLAUDE.md # practice-profile TEMPLATE (see "Plugin CLAUDE.md" below) + README.md # per-plugin docs + skills//SKILL.md # one skill per directory + agents/.md # subagent definitions + hooks/hooks.json # hook config (most plugins ship an empty stub) + .gitignore +external_plugins// # vendor-maintained plugins (CoCounsel) +managed-agent-cookbooks// # CMA agent.yaml + subagents/ + steering-examples.json +scripts/ # validate.py, lint-tool-scope.py, orchestrate.py, + # deploy-managed-agent.sh, test-cookbooks.sh +references/ # shared templates (company-profile, dashboard) +``` + +## Validation — run before opening a PR + +This repo follows the same conventions `anthropics/claude-plugins-official` +enforces in CI. Run the equivalent checks locally: + +```bash +# 1. Marketplace + per-plugin schema validation (source of truth) +claude plugin validate .claude-plugin/marketplace.json +for d in */; do [ -f "$d/.claude-plugin/plugin.json" ] && claude plugin validate "$d"; done +claude plugin validate external_plugins/cocounsel-legal + +# 2. Cookbook tool-scope lint (orchestrators must not over-grant tools) +python3 scripts/lint-tool-scope.py + +# 3. JSON/YAML sanity +python3 -c "import json,glob; [json.load(open(f)) for f in glob.glob('**/*.json', recursive=True)]" +``` + +### Marketplace invariants (I1–I11) + +`claude-plugins-official` layers these on top of the schema check. They apply +here too — the ones most likely to trip a contributor: + +- **I1** — `plugins[]` should be alpha-sorted by name (case-insensitive). + *Currently a known warning: the array is in a curated display order. If you + add a plugin, ask before re-sorting the whole array.* +- **I2** — no duplicate plugin names. +- **I3** — `description` 10–2000 chars, no leading/trailing whitespace. +- **I8** — every vendored `source` (`"./"`) must point at a directory that + contains `.claude-plugin/plugin.json`. +- **I9** — `source` paths/URLs must contain no shell metacharacters or `..`. +- **I10** — no hidden Unicode (zero-width chars, bidi controls) in + `name`/`description`. +- **I11** — `name` must match `^[a-z0-9][a-z0-9-]{1,63}$`. + +### Frontmatter requirements + +Every `agents/*.md` needs `name` and `description`. Every +`skills//SKILL.md` needs `description`. Every `commands/*.md` needs +`description`. Multi-line descriptions use `>` block scalars and that's fine — +`claude plugin validate` parses them correctly. + +## Conventions + +### Keep `marketplace.json` in sync with `plugin.json` + +For first-party plugins, `marketplace.json`'s `name`, `description`, and +`author` should match the plugin's own `.claude-plugin/plugin.json` field for +field. If you change a plugin's description in one place, change it in the +other. + +### Skill names in prose must be canonical + +When a `SKILL.md` (especially `customize` or `cold-start-interview`) tells the +user "run `/foo`," `foo` must be the actual `skills//` directory name. +Short forms like `/triage` for `/use-case-triage` look right in prose but are +dead commands — the user types them and nothing happens. Refs to Claude Code +built-ins (`/mcp`, `/plugin`) and to other plugins (`/:`) +are fine. + +### Plugin CLAUDE.md is a template, not project context + +Each `/CLAUDE.md` is a practice-profile template that the +`cold-start-interview` skill copies to `~/.claude/plugins/config/claude-for-legal//CLAUDE.md` +on the user's machine. It is *not* loaded as project context when the plugin is +installed — `claude plugin validate` warns about this and the warning is +expected. Don't "fix" it by moving the content into a skill. + +### `external_plugins/` is vendor-maintained + +Plugins under `external_plugins/` are built and maintained by the vendor +(README.md has the policy). Don't change vendor-authored content without +checking with them first; whitespace normalization and formatting are usually +fine since the vendor lands changes via PR rather than mirroring a fork. + +### Formatting + +- 2-space indent in all JSON and `.mcp.json` files. +- Final newline at end of every text file. +- No trailing whitespace. +- Markdown tables: pipe-aligned columns are nice but not required; just keep + the column count consistent. + +## Cookbooks + +Each `managed-agent-cookbooks//` has `agent.yaml` (the orchestrator), +`subagents/*.yaml` (the leaves), `steering-examples.json`, and `README.md`. Two +rules that `scripts/lint-tool-scope.py` enforces: + +1. The orchestrator gets local-only tools (`read`, `grep`, `glob`, + `agent_toolset`); MCP and write tools belong to specific subagent leaves. +2. The README's security table and the `agent.yaml` comments must match what + the YAML actually grants. Don't claim a tool a subagent doesn't have. + +## Things to leave alone + +- Per-plugin `.gitignore` files differ slightly across plugins. Probably + intentional; ask before unifying. +- `hooks/hooks.json` is missing in two plugins. Hooks are optional; the missing + files are not a bug. +- `references/` lives only at repo root and is not shipped inside any plugin + directory. Several plugin `CLAUDE.md` templates reference it as if it were — + that's a known gap, not a thing to silently move. diff --git a/README.md b/README.md index 5427caa..5bdc249 100644 --- a/README.md +++ b/README.md @@ -150,7 +150,7 @@ managed-agent-cookbooks/ # Claude Managed Agent cookbooks — one dir per sched launch-radar/ reg-monitor/ renewal-watcher/ -scripts/ # deploy-managed-agent.sh · validate.py · orchestrate.py · lint-tool-scope.py +scripts/ # deploy-managed-agent.sh · validate.py · orchestrate.py · lint-tool-scope.py · test-cookbooks.sh .claude-plugin/ marketplace.json # plugin registry ``` @@ -361,6 +361,7 @@ The full map across all plugins. The cold-start interview is the first thing to | Command | Skill | What it does | |---|---|---| | `/ai-governance-legal:cold-start-interview` | cold-start-interview | Cold-start — learns your AI governance practice | +| `/ai-governance-legal:ai-inventory` | ai-inventory | EU AI Act per-system inventory — track each system's role and risk tier | | `/ai-governance-legal:use-case-triage` | use-case-triage | Classify AI use case — approved, conditional, or no | | `/ai-governance-legal:aia-generation` | aia-generation | Run an AI impact assessment in house format | | `/ai-governance-legal:vendor-ai-review` | vendor-ai-review | Review vendor AI terms against governance positions | @@ -465,6 +466,7 @@ The full map across all plugins. The cold-start interview is the first thing to | `/ip-legal:cold-start-interview` | cold-start-interview | Cold-start — learn your IP practice and posture | | `/ip-legal:clearance` | clearance | Trademark clearance first pass — knockout + similar marks | | `/ip-legal:fto-triage` | fto-triage | Freedom-to-operate triage, not an FTO opinion | +| `/ip-legal:invention-intake` | invention-intake | Invention disclosure first-pass screen — novelty, obviousness, §101, bar dates | | `/ip-legal:cease-desist` | cease-desist | Draft a C&D or triage one you received | | `/ip-legal:takedown` | takedown | DMCA notice, response triage, or §512(g) counter-notice | | `/ip-legal:infringement-triage` | infringement-triage | Infringement triage across all four IP rights | diff --git a/ai-governance-legal/.claude-plugin/plugin.json b/ai-governance-legal/.claude-plugin/plugin.json index 4de03d7..9edc8de 100644 --- a/ai-governance-legal/.claude-plugin/plugin.json +++ b/ai-governance-legal/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/ai-governance-legal/README.md b/ai-governance-legal/README.md index 80be5f6..69239c8 100644 --- a/ai-governance-legal/README.md +++ b/ai-governance-legal/README.md @@ -32,6 +32,7 @@ positions and house style. | Command | Does | |---|---| | `/ai-governance-legal:cold-start-interview` | Cold-start interview — writes your practice profile | +| `/ai-governance-legal:ai-inventory [list \| add \| edit \| classify \| show]` | Manage the EU AI Act per-system inventory — track each system's role and risk tier | | `/ai-governance-legal:use-case-triage [use case]` | Classify a use case against your registry (approved / conditional / never) | | `/ai-governance-legal:aia-generation [use case]` | Run an AI impact assessment (AIA) in your house style | | `/ai-governance-legal:vendor-ai-review [vendor/file]` | Review a vendor AI agreement against your positions | @@ -45,6 +46,7 @@ positions and house style. | Skill | Purpose | |---|---| | **cold-start-interview** | Writes `~/.claude/plugins/config/claude-for-legal/ai-governance-legal/CLAUDE.md` from interview + seed docs | +| **ai-inventory** | EU AI Act per-system inventory — role (provider, deployer, importer, distributor, authorized rep, product manufacturer) and risk tier per system | | **use-case-triage** | Classifies use cases against the registry; flags missing assessments | | **aia-generation** | AI impact assessment (AIA) in house format | | **vendor-ai-review** | AI-specific vendor contract review against governance positions | diff --git a/ai-governance-legal/skills/cold-start-interview/SKILL.md b/ai-governance-legal/skills/cold-start-interview/SKILL.md index 8f66a47..31a0648 100644 --- a/ai-governance-legal/skills/cold-start-interview/SKILL.md +++ b/ai-governance-legal/skills/cold-start-interview/SKILL.md @@ -269,7 +269,7 @@ that's where to go deep first. ### Part 2: Regulatory footprint (2-3 min) > Which regulations are actually on your radar? I don't want to assume — tell me -> what's real for you. (This feeds /gap-check and /policy-monitor — the gap analysis diffs new regulations against your stated scope, and policy-monitor only watches regimes you've marked in scope.) +> what's real for you. (This feeds /reg-gap-analysis and /policy-monitor — the gap analysis diffs new regulations against your stated scope, and policy-monitor only watches regimes you've marked in scope.) **Do not assume any regulation applies. Ask the user which regimes they think apply, then research the AI-specific regulations currently in effect or pending in the jurisdictions where the company operates, deploys AI, or has affected parties. This landscape changes quickly — verify currency.** @@ -336,7 +336,7 @@ walk through each one. **The red lines question:** > "What's the use case that's an automatic no — the thing someone could propose -> and you'd stop them immediately without needing to think about it?" (This feeds /triage — the skill checks proposed AI use cases against these red lines before doing anything else, and flags anything on the list as automatic stop.) +> and you'd stop them immediately without needing to think about it?" (This feeds /use-case-triage — the skill checks proposed AI use cases against these red lines before doing anything else, and flags anything on the list as automatic stop.) Common categories to probe if they're slow: biometric data, emotion detection, political/religious inference, fully automated adverse decisions affecting employment @@ -360,7 +360,7 @@ or credit, uses involving children. **Escalation:** -> "When a review finds something that needs someone more senior to sign off — a vendor AI agreement with training-on-data or liability issues, an AI use case that doesn't fit your registry, a regulatory gap that needs a decision, or a call above your authority — who does that go to? Give me a name or a role (the GC, the Chief Privacy Officer, your boss), or say 'I decide myself.' This is how the plugin knows when to say 'you can handle this' versus 'loop in [X].' (This feeds every skill's routing logic — /triage, /review-vendor-ai, and /gap-check all check the escalation matrix before telling you to hand something up.)" +> "When a review finds something that needs someone more senior to sign off — a vendor AI agreement with training-on-data or liability issues, an AI use case that doesn't fit your registry, a regulatory gap that needs a decision, or a call above your authority — who does that go to? Give me a name or a role (the GC, the Chief Privacy Officer, your boss), or say 'I decide myself.' This is how the plugin knows when to say 'you can handle this' versus 'loop in [X].' (This feeds every skill's routing logic — /use-case-triage, /vendor-ai-review, and /reg-gap-analysis all check the escalation matrix before telling you to hand something up.)" Also ask: - Has anything been escalated to the board or C-suite over AI in the last year? @@ -374,7 +374,7 @@ Also ask: ### Part 5: Seed documents (3-4 min) > "I want to see what you actually have. Tell me which of these exist, and share -> what you can. (The AI policy feeds /policy-monitor drift detection; the prior impact assessment becomes the /aia-generation template; the vendor agreements become the starting playbook for /review-vendor-ai.)" +> what you can. (The AI policy feeds /policy-monitor drift detection; the prior impact assessment becomes the /aia-generation template; the vendor agreements become the starting playbook for /vendor-ai-review.)" > > 1. **AI or acceptable use policy.** Your internal or public-facing policy on how > AI can and can't be used. This tells me your committed positions. diff --git a/ai-governance-legal/skills/customize/SKILL.md b/ai-governance-legal/skills/customize/SKILL.md index 21c20d2..2a31db0 100644 --- a/ai-governance-legal/skills/customize/SKILL.md +++ b/ai-governance-legal/skills/customize/SKILL.md @@ -70,9 +70,9 @@ cold-start interview and without hand-editing YAML. conditional rather than approved, surface more AIA follow-ups, and recommend more conservative vendor AI redlines." - *Adding an escalation contact:* "Every skill that routes escalations - (`/triage`, `/review-vendor-ai`, `/gap-check`) will now include this + (`/use-case-triage`, `/vendor-ai-review`, `/reg-gap-analysis`) will now include this contact on the relevant risk bands." - - *New use case registry entry:* "`/triage` will match against this entry + - *New use case registry entry:* "`/use-case-triage` will match against this entry on its next run. Existing AIAs aren't rewritten — re-run them if you want the new posture reflected." @@ -92,7 +92,7 @@ cold-start interview and without hand-editing YAML. - **Never delete a section.** If the user wants to "remove" something, set it to `[Not configured]` and explain what that means for the plugin's behavior. - ("Removing your escalation chain means `/triage` will flag escalation-worthy + ("Removing your escalation chain means `/use-case-triage` will flag escalation-worthy items but won't route them to a specific person.") - **Flag internal inconsistency.** If the change would make the profile inconsistent (e.g., risk posture aggressive + escalation "everything goes to diff --git a/commercial-legal/.claude-plugin/plugin.json b/commercial-legal/.claude-plugin/plugin.json index 2757e2d..476c169 100644 --- a/commercial-legal/.claude-plugin/plugin.json +++ b/commercial-legal/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/commercial-legal/skills/cold-start-interview/SKILL.md b/commercial-legal/skills/cold-start-interview/SKILL.md index bce2573..f35e0ca 100644 --- a/commercial-legal/skills/cold-start-interview/SKILL.md +++ b/commercial-legal/skills/cold-start-interview/SKILL.md @@ -173,7 +173,7 @@ Two quick questions before we get into commercial-contracts specifics. These sha #### Who's using this? -> Who'll be using this plugin day to day? (This feeds the work-product header on every /review, /amendment-history, and /renewals-due output — lawyer gets "PRIVILEGED & CONFIDENTIAL — ATTORNEY WORK PRODUCT"; non-lawyer gets "RESEARCH NOTES — NOT LEGAL ADVICE" plus research-framed outputs.) +> Who'll be using this plugin day to day? (This feeds the work-product header on every /review, /amendment-history, and /renewal-tracker output — lawyer gets "PRIVILEGED & CONFIDENTIAL — ATTORNEY WORK PRODUCT"; non-lawyer gets "RESEARCH NOTES — NOT LEGAL ADVICE" plus research-framed outputs.) > > 1. **Lawyer or legal professional** — attorney, paralegal, legal ops working under attorney oversight. > 2. **Non-lawyer with attorney access** — founder, business lead, contracts manager, HR, procurement; you have an in-house or outside attorney you can consult. @@ -347,7 +347,7 @@ If they don't have one: proceed with the questions below. **Approval levels** -> When a review finds something that needs someone more senior to sign off — a term that's above playbook (a higher LoL cap, an indemnity structure outside your fallbacks), a risk that needs a second opinion, or a decision that's above your authority — who does that go to? Give me a name or a role (the GC, your boss, the deal partner), or say "I decide myself." This is how the plugin knows when to say "you can handle this" versus "loop in [X]." (This feeds /escalate — the skill drafts the escalation ask using this matrix, and /review uses it to decide whether a flagged term lands in your lane or somebody else's.) +> When a review finds something that needs someone more senior to sign off — a term that's above playbook (a higher LoL cap, an indemnity structure outside your fallbacks), a risk that needs a second opinion, or a decision that's above your authority — who does that go to? Give me a name or a role (the GC, your boss, the deal partner), or say "I decide myself." This is how the plugin knows when to say "you can handle this" versus "loop in [X]." (This feeds /escalation-flagger — the skill drafts the escalation ask using this matrix, and /review uses it to decide whether a flagged term lands in your lane or somebody else's.) **Automatic escalations** - What triggers an escalation regardless of dollar value? (Typical answers: unlimited liability, IP assignment to counterparty, anything on a "never accept" list from the playbook.) diff --git a/commercial-legal/skills/customize/SKILL.md b/commercial-legal/skills/customize/SKILL.md index 703d9eb..bf02ea3 100644 --- a/commercial-legal/skills/customize/SKILL.md +++ b/commercial-legal/skills/customize/SKILL.md @@ -67,7 +67,7 @@ cold-start interview and without hand-editing YAML. anything above 6 months as a deviation; existing deal-debrief entries stay as logged." - *New escalation approver:* "Any redline exceeding your own authority - will now route to this approver — `/escalate` will include them by + will now route to this approver — `/escalation-flagger` will include them by default for the matching risk band." - *Risk posture middle → aggressive:* "I'll accept more vendor-friendly positions without flagging them and shift the `[review]` bar higher." diff --git a/corporate-legal/.claude-plugin/plugin.json b/corporate-legal/.claude-plugin/plugin.json index c323a8f..0eb79ac 100644 --- a/corporate-legal/.claude-plugin/plugin.json +++ b/corporate-legal/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/employment-legal/.claude-plugin/plugin.json b/employment-legal/.claude-plugin/plugin.json index ea2dbd8..426eee4 100644 --- a/employment-legal/.claude-plugin/plugin.json +++ b/employment-legal/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/external_plugins/cocounsel-legal/.claude-plugin/plugin.json b/external_plugins/cocounsel-legal/.claude-plugin/plugin.json index a5f64a9..ca83b69 100644 --- a/external_plugins/cocounsel-legal/.claude-plugin/plugin.json +++ b/external_plugins/cocounsel-legal/.claude-plugin/plugin.json @@ -6,4 +6,4 @@ "name": "Thomson Reuters", "email": "cocounselsupport@tr.com" } -} \ No newline at end of file +} diff --git a/external_plugins/cocounsel-legal/.mcp.json b/external_plugins/cocounsel-legal/.mcp.json index 125a269..435e421 100644 --- a/external_plugins/cocounsel-legal/.mcp.json +++ b/external_plugins/cocounsel-legal/.mcp.json @@ -1,11 +1,11 @@ { - "mcpServers": { - "cocounsel-legal": { - "type": "http", - "url": "https://legal-mcp.thomsonreuters.com/mcp", - "oauth": { - "clientId": "QCgP4IGN5JiLqXRHxiAVr3wu1ySo2nQx" - } - } + "mcpServers": { + "cocounsel-legal": { + "type": "http", + "url": "https://legal-mcp.thomsonreuters.com/mcp", + "oauth": { + "clientId": "QCgP4IGN5JiLqXRHxiAVr3wu1ySo2nQx" + } } -} \ No newline at end of file + } +} diff --git a/external_plugins/cocounsel-legal/README.md b/external_plugins/cocounsel-legal/README.md index 9808e32..c4bd777 100644 --- a/external_plugins/cocounsel-legal/README.md +++ b/external_plugins/cocounsel-legal/README.md @@ -9,7 +9,7 @@ CoCounsel Legal brings Westlaw Deep Research into Claude for CoCounsel Legal sub ## Example use cases -1. Research how California courts have treated non-compete agreements for executive employees since 2020. +1. Research how California courts have treated non-compete agreements for executive employees since 2020. 2. I asked you to research California non-competes earlier. Can you now retrieve the full report? 3. Follow up on that research: how does Texas law differ on executive non-competes for the same period? @@ -43,4 +43,4 @@ Any questions answerable from caselaw, statutes, regulations, administrative mat ### Links - **Documentation:** https://legal-mcp.thomsonreuters.com/docs/connector-guide -- **Support:** cocounselsupport@tr.com \ No newline at end of file +- **Support:** cocounselsupport@tr.com diff --git a/ip-legal/.claude-plugin/plugin.json b/ip-legal/.claude-plugin/plugin.json index 9f04414..347b10c 100644 --- a/ip-legal/.claude-plugin/plugin.json +++ b/ip-legal/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/law-student/.claude-plugin/plugin.json b/law-student/.claude-plugin/plugin.json index 4789e6c..8a0075d 100644 --- a/law-student/.claude-plugin/plugin.json +++ b/law-student/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/law-student/skills/customize/SKILL.md b/law-student/skills/customize/SKILL.md index de4f6d0..d02610e 100644 --- a/law-student/skills/customize/SKILL.md +++ b/law-student/skills/customize/SKILL.md @@ -58,13 +58,13 @@ hand-editing YAML. what changes downstream, confirm, write it to the config. Examples: - - *Adding a new class:* "`/outline` will scaffold a new outline for this + - *Adding a new class:* "`/outline-builder` will scaffold a new outline for this class. `/flashcards` will add a new subject bucket. `/cold-call-prep` will ask for a seat and a topic when you invoke it for this class." - - *Learning style Socratic → summary-first:* "`/drill` won't ask you to + - *Learning style Socratic → summary-first:* "`/socratic-drill` won't ask you to answer first — it'll present the rule and example, then quiz you on application." - - *Adding a bar subject:* "`/bar-prep` will include this subject in + - *Adding a bar subject:* "`/bar-prep-questions` will include this subject in rotation and weight it higher if you mark it weak." 5. **Close.** @@ -81,7 +81,7 @@ hand-editing YAML. inconsistent (e.g., "summary-first" learning style + "maximum pushback" Socratic setting), flag the tension. - **Flag guardrail degradation.** The "no rewriting your writing" rule on - `/write` and `/irac` is load-bearing — the value of the skill is + `/legal-writing` and `/irac-practice` is load-bearing — the value of the skill is structural feedback, not ghost-writing. If the user asks to turn that off, confirm they understand that the plugin will not write their work for them. diff --git a/legal-builder-hub/.claude-plugin/plugin.json b/legal-builder-hub/.claude-plugin/plugin.json index fd3d9a4..1601408 100644 --- a/legal-builder-hub/.claude-plugin/plugin.json +++ b/legal-builder-hub/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/legal-builder-hub/skills/customize/SKILL.md b/legal-builder-hub/skills/customize/SKILL.md index 42fc988..e596d6a 100644 --- a/legal-builder-hub/skills/customize/SKILL.md +++ b/legal-builder-hub/skills/customize/SKILL.md @@ -43,11 +43,11 @@ whole cold-start interview and without hand-editing YAML. community skills from - **Update preferences** — check cadence (daily / weekly / on demand), notification channel (Slack / in-session), auto-update vs. prompt - - **QA strictness** — how aggressively `/qa` flags issues on a candidate + - **QA strictness** — how aggressively `/skills-qa` flags issues on a candidate skill before install (lenient / middle / strict), and which failure-mode checks are on - **Skill install defaults** — install scope (user / project), whether - to run `/qa` automatically before install + to run `/skills-qa` automatically before install - **Integrations** — Slack / document storage status, fallbacks 3. **Ask what they want to change.** @@ -59,9 +59,9 @@ whole cold-start interview and without hand-editing YAML. what changes downstream, confirm, write it to the config. Examples: - - *Adding a new watched registry:* "`/browse` will search this registry - alongside the existing ones. `/update` will check it on its next run." - - *QA strictness strict → middle:* "`/qa` will report the same findings + - *Adding a new watched registry:* "`/registry-browser` will search this registry + alongside the existing ones. `/auto-updater` will check it on its next run." + - *QA strictness strict → middle:* "`/skills-qa` will report the same findings but not block install on the medium band unless you confirm." - *Auto-update on → off:* "The hub will prompt you before applying updates instead of applying them automatically." @@ -88,7 +88,7 @@ whole cold-start interview and without hand-editing YAML. profile that doesn't match any installed plugin), flag the tension. - **Flag guardrail degradation.** The Legal Skill Design Framework checks (nine design parameters, three legal failure modes, trust-surface check) - are what `/qa` exists to run — turning them off defeats the point. If the + are what `/skills-qa` exists to run — turning them off defeats the point. If the user wants to lower strictness, recommend the middle band rather than disabling the check. - **One change at a time.** Don't re-ask the whole interview. diff --git a/legal-clinic/.claude-plugin/plugin.json b/legal-clinic/.claude-plugin/plugin.json index f04eee8..ee6df7c 100644 --- a/legal-clinic/.claude-plugin/plugin.json +++ b/legal-clinic/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/legal-clinic/.mcp.json b/legal-clinic/.mcp.json index 118a349..fb07461 100644 --- a/legal-clinic/.mcp.json +++ b/legal-clinic/.mcp.json @@ -21,7 +21,8 @@ "Courtroom5": { "type": "http", "url": "https://mcp.courtroom5.com", - "description": "Courtroom5 — jurisdiction-aware guidance for self-represented litigants: case intake, deadline calculations, procedural next steps" + "title": "Courtroom5", + "description": "Courtroom5 — jurisdiction-aware guidance for self-represented litigants: case intake, deadline calculations, procedural next steps." }, "Descrybe": { "type": "http", diff --git a/legal-clinic/skills/customize/SKILL.md b/legal-clinic/skills/customize/SKILL.md index c426536..853e496 100644 --- a/legal-clinic/skills/customize/SKILL.md +++ b/legal-clinic/skills/customize/SKILL.md @@ -62,11 +62,11 @@ re-running the whole cold-start interview and without hand-editing YAML. what changes downstream, confirm, write it to the config. Examples: - - *Adding a new practice area:* "`/intake` will route matters of this + - *Adding a new practice area:* "`/client-intake` will route matters of this type through the new template. `/draft`, `/memo`, and `/client-letter` will use the practice-area prompts. `/research-start` will add the corresponding Westlaw search terms." - - *Supervision style informal → formal review queue:* "`/queue` becomes + - *Supervision style informal → formal review queue:* "`/supervisor-review-queue` becomes active — student output will land there for supervisor sign-off before it goes to the client." - *New semester rollover:* "I'll archive the prior semester's active @@ -82,7 +82,7 @@ re-running the whole cold-start interview and without hand-editing YAML. - **Never delete a section.** If the user wants to "drop" a practice area, offer to mark it `[Archived]` and explain that archiving keeps case - history accessible but hides the template from `/intake` routing. + history accessible but hides the template from `/client-intake` routing. - **Flag internal inconsistency.** If the change would make the profile inconsistent (e.g., formal review queue on + informal supervision note; or practice area on + no jurisdiction rules configured), flag the @@ -90,7 +90,7 @@ re-running the whole cold-start interview and without hand-editing YAML. - **Flag guardrail degradation.** These are load-bearing and should not be removed: the "NOT final work product" framing on `/draft`, plain-language standards on client-facing outputs, "does NOT decide case acceptance" on - `/intake`, "NOT substantive advice" on `/client-letter`, and the + `/client-intake`, "NOT substantive advice" on `/client-letter`, and the scaffold-not-analysis framing on `/memo`. These exist because students ship work product — if the safeguards go, the risk of student work reaching a client without supervisor review goes up. Confirm the diff --git a/litigation-legal/.claude-plugin/plugin.json b/litigation-legal/.claude-plugin/plugin.json index d6a0d54..dc01257 100644 --- a/litigation-legal/.claude-plugin/plugin.json +++ b/litigation-legal/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/litigation-legal/skills/customize/SKILL.md b/litigation-legal/skills/customize/SKILL.md index 0236cd7..242335b 100644 --- a/litigation-legal/skills/customize/SKILL.md +++ b/litigation-legal/skills/customize/SKILL.md @@ -64,7 +64,7 @@ cold-start interview and without hand-editing YAML. what changes downstream, confirm, write it to the config. Examples: - - *Side mixed → defense-only:* "`/new-matter` intake will stop asking the + - *Side mixed → defense-only:* "`/matter-intake` will stop asking the plaintiff-side questions. `/demand-draft` will still work for defense-side pre-suit demands but the starting frame will be different." - *Risk calibration tightening high-risk threshold:* "More inbound diff --git a/managed-agent-cookbooks/launch-radar/README.md b/managed-agent-cookbooks/launch-radar/README.md index 72feff2..ca2bc06 100644 --- a/managed-agent-cookbooks/launch-radar/README.md +++ b/managed-agent-cookbooks/launch-radar/README.md @@ -34,7 +34,7 @@ Tracker tickets are untrusted input. A product manager can put arbitrary text in | Tier | Touches untrusted tracker content? | Tools | Connectors | |---|---|---|---| | **`tracker-reader`** | **Yes** | `Read`, `Grep` only | Linear, Jira (atlassian), Asana (read-only) | -| `risk-classifier` / Orchestrator | No | `Read`, `Grep`, `Glob`, `WebFetch`, `Agent` | Orchestrator only: Linear / Jira / Asana / Drive (read-only) | +| `risk-classifier` / Orchestrator | No | `Read`, `Grep`, `Glob`, `Agent` | Orchestrator only: Linear / Jira / Asana / Drive (read-only) | | **`memo-writer`** (Write-holder) | No | `Read`, `Write`, `Edit` | None | `tracker-reader` returns a length-capped, schema-validated JSON list of launches. `risk-classifier` has no MCP and no network; it works from the validated list plus the user's calibration file. `memo-writer` is the only worker with Write, and produces `./out/launch-radar-.md`. The orchestrator holds no Write and never parses raw ticket bodies itself. diff --git a/managed-agent-cookbooks/launch-radar/agent.yaml b/managed-agent-cookbooks/launch-radar/agent.yaml index 609da47..1e3c356 100644 --- a/managed-agent-cookbooks/launch-radar/agent.yaml +++ b/managed-agent-cookbooks/launch-radar/agent.yaml @@ -24,8 +24,8 @@ system: informed by this memo. Do not soften that framing in the memo. tools: - # Orchestrator is scoped to local-only tools; MCP and web_fetch are held by - # the subagent leaves (see callable_agents). + # Orchestrator is scoped to local-only tools; MCP is held by the + # subagent leaves (see callable_agents). - type: agent_toolset_20260401 default_config: { enabled: false } configs: diff --git a/managed-agent-cookbooks/reg-monitor/subagents/materiality-filter.yaml b/managed-agent-cookbooks/reg-monitor/subagents/materiality-filter.yaml index f4a5924..5ef615c 100644 --- a/managed-agent-cookbooks/reg-monitor/subagents/materiality-filter.yaml +++ b/managed-agent-cookbooks/reg-monitor/subagents/materiality-filter.yaml @@ -5,7 +5,7 @@ system: You receive the validated feed-item list from the feed-reader. You classify each item against the deploying team's watchlist and materiality threshold (read from the regulatory-legal configuration on disk — regulators - watched, policy-area tags, and the "always material / review-worthy / FYY" + watched, policy-area tags, and the "always material / review-worthy / FYI" tiers). For each item, emit exactly one classification: diff --git a/privacy-legal/.claude-plugin/plugin.json b/privacy-legal/.claude-plugin/plugin.json index 0f63d14..6f8f3c1 100644 --- a/privacy-legal/.claude-plugin/plugin.json +++ b/privacy-legal/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/privacy-legal/skills/customize/SKILL.md b/privacy-legal/skills/customize/SKILL.md index 688560a..291b074 100644 --- a/privacy-legal/skills/customize/SKILL.md +++ b/privacy-legal/skills/customize/SKILL.md @@ -63,10 +63,10 @@ cold-start interview and without hand-editing YAML. what changes downstream, confirm, write it to the config. Examples: - - *Sub-processor notice 30 days → 14 days:* "`/review-dpa` will now flag + - *Sub-processor notice 30 days → 14 days:* "`/dpa-review` will now flag anything shorter than 14 days as a deviation. Existing DPAs stay as logged." - - *New DSAR exemption in the playbook:* "`/draft-dsar` will surface this + - *New DSAR exemption in the playbook:* "`/dsar-response` will surface this exemption in the assessment step where the facts match." - *Risk posture middle → conservative:* "I'll flag more activities for PIA escalation, recommend stricter SCC clauses, and be more @@ -95,7 +95,7 @@ cold-start interview and without hand-editing YAML. tension. - **Flag guardrail degradation.** The `[review]` flag, source attribution tags, `[verify]` tags on cited regulations, and the DPIA-trigger - mandatory-check on `/triage` are load-bearing — do not remove. If + mandatory-check on `/use-case-triage` are load-bearing — do not remove. If statutory DSAR timelines are adjusted below the regulatory minimum, refuse and explain why. - **One change at a time.** Don't re-ask the whole interview. diff --git a/product-legal/.claude-plugin/plugin.json b/product-legal/.claude-plugin/plugin.json index 20c0456..aa229de 100644 --- a/product-legal/.claude-plugin/plugin.json +++ b/product-legal/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/product-legal/skills/customize/SKILL.md b/product-legal/skills/customize/SKILL.md index f242685..0f812df 100644 --- a/product-legal/skills/customize/SKILL.md +++ b/product-legal/skills/customize/SKILL.md @@ -62,12 +62,12 @@ cold-start interview and without hand-editing YAML. Examples: - *Risk calibration tightening "fine" → "needs a real look" for a - pattern:* "`/triage` and `/launch-review` will start flagging this + pattern:* "`/is-this-a-problem` and `/launch-review` will start flagging this pattern. Existing reviews stay as written; re-run if you want the new posture applied." - *New launch-review category:* "`/launch-review` will add a section for this category. `/is-this-a-problem` will pattern-match it in triage." - - *Marketing claims posture tightening:* "`/check-claims` will flag more + - *Marketing claims posture tightening:* "`/marketing-claims-review` will flag more language as needing substantiation or reframing." 5. **For shared-profile changes** (company name, industry, jurisdictions, @@ -93,6 +93,6 @@ cold-start interview and without hand-editing YAML. launch requires GC sign-off"), flag the tension. - **Flag guardrail degradation.** The `[review]` flag, source attribution tags, and `[verify]` tags on cited regulations are load-bearing — do not - remove. The substantiation requirement on claims is the thing `/check- - claims` exists for; weakening it defeats the skill. + remove. The substantiation requirement on claims is the thing + `/marketing-claims-review` exists for; weakening it defeats the skill. - **One change at a time.** Don't re-ask the whole interview. diff --git a/references/company-profile-template.md b/references/company-profile-template.md index 18f8541..e616978 100644 --- a/references/company-profile-template.md +++ b/references/company-profile-template.md @@ -1,7 +1,7 @@ # Company Profile *Shared by all Claude for Legal plugins. The first plugin you set up writes this; the rest read it. -Edit directly or re-run any plugin's `/setup` to update.* +Edit directly or re-run any plugin's `/cold-start-interview` to update.* **Practice setting:** [Solo/small firm | Midsize/large firm | In-house | Government/legal aid/clinic] **Name:** [Company or firm name] diff --git a/regulatory-legal/.claude-plugin/plugin.json b/regulatory-legal/.claude-plugin/plugin.json index a274c7e..20a50ea 100644 --- a/regulatory-legal/.claude-plugin/plugin.json +++ b/regulatory-legal/.claude-plugin/plugin.json @@ -5,4 +5,4 @@ "author": { "name": "Anthropic" } -} \ No newline at end of file +} diff --git a/regulatory-legal/skills/customize/SKILL.md b/regulatory-legal/skills/customize/SKILL.md index 2b46335..63aa0b7 100644 --- a/regulatory-legal/skills/customize/SKILL.md +++ b/regulatory-legal/skills/customize/SKILL.md @@ -43,11 +43,11 @@ without hand-editing YAML. to each, owner per policy - **Materiality threshold** — when a regulatory change rises to "notable" vs. "report" vs. "digest only"; how this threshold filters - `/watch` output + `/reg-feed-watcher` output - **Gap response process** — who triages, SLA per severity, downstream owners (policy, product, training) - **Feed configuration** — regulator feeds, Thomson Reuters - connectors, cadence of the `/watch` sweep, digest channel + connectors, cadence of the `/reg-feed-watcher` sweep, digest channel - **People** — regulatory counsel, policy owners, comment drafter, escalation chain - **Workflow** — matter workspaces, open gaps tracker, comment deadline @@ -64,13 +64,13 @@ without hand-editing YAML. what changes downstream, confirm, write it to the config. Examples: - - *Adding a regulator to the watchlist:* "`/watch` will sweep this - regulator on its next run. `/diff` will accept inputs from this + - *Adding a regulator to the watchlist:* "`/reg-feed-watcher` will sweep this + regulator on its next run. `/policy-diff` will accept inputs from this regulator's rulemaking feed." - - *Tightening materiality threshold:* "`/watch` digest will be + - *Tightening materiality threshold:* "`/reg-feed-watcher` digest will be shorter — items below the new threshold will drop from the weekly digest but stay searchable." - - *New policy added to the library:* "`/diff` will include this policy + - *New policy added to the library:* "`/policy-diff` will include this policy when matching new rules against the library. The comment tracker will tag comments affecting this policy."