Commit graph

24 commits

Author SHA1 Message Date
Dazza Greenwood
88c8906831
Fix handoff_request extractor truncating nested payloads at the first }
`HANDOFF_RE` used a non-greedy `.*?\}`, so the match ended at the first
closing brace. Every real `handoff_request` nests objects (`payload`,
and `payload.params`), so the captured substring was truncated
mid-object and `json.loads` raised — `extract_handoff` rejected every
well-formed handoff as `invalid_json` before the target allowlist and
schema validators ever ran. In practice the cross-agent handoff path
did not function for any realistic payload.

Replace the full-match regex with a start anchor (`HANDOFF_START_RE`)
and extract the complete object with `json.JSONDecoder().raw_decode`,
which is string- and brace-nesting aware and returns exactly one
complete JSON value plus its end offset. Multi-line payloads now parse
as well. The audit log's `raw_len` field, previously `len(m.group(0))`,
is now derived from the decoded object's span (`end - m.start()`), and
its three later uses on the target/schema/params rejection paths are
updated to the new variable. Downstream validation — target allowlist,
payload and per-intent schemas, sanitize/frame — is unchanged.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-22 14:56:41 -07:00
Matt Piccolella
cd76401457
Merge pull request #54 from dlaw-ant/dlaw/cookbook-attribution
Stamp metadata.anthropic_cookbook on managed-agent deploys
2026-05-20 18:20:27 -07:00
Daniel Law
c705e020f3
Stamp metadata.anthropic_cookbook on managed-agent deploys 2026-05-20 23:34:07 +00:00
Tobin South
4d55f53962
Post-merge cleanup: whitespace, doc sync, canonical skill names, root CLAUDE.md (#33)
Cleanup pass following the CoCounsel merge (#4) and Lexis removal (#5):
- Normalize whitespace and JSON indentation across plugin metadata files
- Sync marketplace.json with plugin.json (ip-legal description, Courtroom5 title field)
- Add missing ai-inventory and invention-intake rows to README skill reference
- Replace stale short-form skill names in customize/cold-start SKILL.md prose with canonical directory names across 11 plugins (same bug class as the /setup -> /cold-start-interview QA fix)
- Fix FYY -> FYI typo and a phantom WebFetch claim in launch-radar docs
- Address review findings: line-wrapped /check-claims, /renewals-due -> /renewal-tracker, stale /setup in references/, agent.yaml comment contradiction, redundant 'intake intake'
- Add root CLAUDE.md with validation conventions (claude plugin validate, I1-I11 invariants, frontmatter requirements) and a marketplace.json description + $schema

No behavioral changes. claude plugin validate passes clean.
2026-05-15 14:10:09 -07:00
Tobin South
9cecd91b0f
Merge pull request #5 from anthropics/markpike/remove-lexis
Remove Lexis references at partner request
2026-05-12 11:58:49 -07:00
Mark Pike
210fd7a6cf
Remove Lexis references at partner request 2026-05-12 11:45:01 -07:00
Tobin South
993f6619fc
Merge pull request #4 from anthropics/tobin/add-cocounsel-legal
Add CoCounsel Legal partner plugin under external_plugins/
2026-05-12 09:34:18 -07:00
tobin
7603d0a8c1
Fix CoCounsel Legal author email to cocounselsupport@tr.com 2026-05-12 09:26:26 -07:00
tobin
d29d2ce0ca
Add CoCounsel Legal partner plugin under external_plugins/
Adds the Thomson Reuters CoCounsel Legal plugin (Westlaw Deep Research)
as a vendor-maintained plugin under a new external_plugins/ directory,
following the partner-built layout used elsewhere.

- external_plugins/cocounsel-legal/: plugin.json, .mcp.json (HTTP MCP
  server with OAuth), deep-research skill, vendor README
- .claude-plugin/marketplace.json: register cocounsel-legal pointing at
  ./external_plugins/cocounsel-legal with Thomson Reuters as author
- README.md: document external_plugins/ in the repo layout, add an
  'External / partner-built' section, list the CoCounsel Legal connector,
  and add a skill reference entry
2026-05-12 09:00:40 -07:00
Matt Piccolella
52e06d17db
Merge pull request #3 from anthropics/mattpic-ant-patch-1
Update README.md
2026-05-12 08:58:54 -07:00
Matt Piccolella
f30ffa40b3
Update QUICKSTART.md 2026-05-12 08:55:59 -07:00
Matt Piccolella
fae1e3ecb7
Update README.md 2026-05-12 08:54:52 -07:00
Matt Piccolella
53fbd79bc2
Update README.md 2026-05-12 08:51:16 -07:00
Matt Piccolella
5244bbc376
Update README.md
Add video recording to README
2026-05-12 08:50:24 -07:00
Matt Piccolella
2d3259870a
Merge pull request #2 from anthropics/markpike/launch-morning-fixes
Launch morning fixes from overnight QA re-run
2026-05-12 08:33:55 -07:00
Mark Pike
942961fc1f
Launch morning fixes from QA re-run
Four findings from the overnight QA re-run against the post-fix build:

1. renewal-register.yaml storage path. Was references/renewal-register.yaml
   inside the skill directory, which lives in the plugin cache and gets
   wiped on update. Moved to the config directory path that survives
   updates. Silent data loss bug for any user who built up a register.

2. /setup references. Docs pointed at /<plugin>:setup which does not
   exist (the command is /cold-start-interview). QUICKSTART.md, two
   SKILL.md files, and a commented-out template all had the stale
   reference. This was the only hard give-up moment in the cold-install
   path.

3. False-premise defense promoted to all 12 plugins. corporate-legal
   had the strongest anti-fabrication rule in the suite: decline to
   characterize a statute you cannot retrieve. It was only in 1 of 12.
   Generalized and added to the shared guardrail block in all 12.

4. Currency-watch corrections in ai-governance-legal. The EU Digital
   Omnibus entry said high-risk deferrals were still being negotiated
   in the same bullet that cited the May 7 agreement that settled them.
   Illinois HB 3773 was marked pending when it has been in force since
   Jan 1, 2026, and was conflated with the distinct AIPA.
2026-05-12 06:44:02 -07:00
Matt Piccolella
d96c61846e
Merge pull request #1 from anthropics/fix/orchestrate-handoff-param-patterns
Tighten handoff param patterns; ad-hoc questions use the practice profile
2026-05-11 15:59:46 -07:00
Matt Piccolella
78abd16e99
Add CLA workflow, CONTRIBUTING note, and align copyright header format 2026-05-11 15:55:23 -07:00
Matt Piccolella
4944122c01
Add Code of Conduct 2026-05-11 14:29:18 -07:00
Matt Piccolella
22649cf9aa
Add copyright and SPDX license headers to scripts 2026-05-11 14:02:12 -07:00
Matt Piccolella
cf268c9a53
Bump all plugins to 1.0.0 for public launch 2026-05-11 13:54:32 -07:00
Matt Piccolella
68ed72ecba
Ad-hoc questions use the practice profile without invoking a skill
The rich practice context from setup — jurisdiction footprint, risk
posture, playbook positions — was only accessible through structured
skills. A lawyer asking a quick question in the plugin's domain got a
generalist answer.

Now the plugin CLAUDE.md instructs Claude to read the practice profile
and apply the plugin's guardrails for ANY question in the domain, not
just skill invocations. A configured plugin feels like a colleague who
already knows your practice, not a form you fill out. The skills are
the structured workflows; this is everything in between.
2026-05-11 13:53:00 -07:00
Matt Piccolella
f7ccda739f
Tighten handoff param patterns to block prompt injection via spaces
Param values for matter_id and clause are interpolated directly into the
steering-prompt templates. Their patterns previously permitted spaces, which
would let a hostile document smuggle a natural-language sentence into the
prompt through a field that looks like an ID. Restrict both to slug shape
(no spaces); descriptive context belongs in the note/event fields, which are
never interpolated and are wrapped in the data frame.

Also render templates via format_map with an empty-string default so an
optional param the template references (e.g. playbook_monitor's clause)
degrades gracefully instead of raising KeyError, and ignore __pycache__.
2026-05-11 13:50:41 -07:00
Matt Piccolella
d541734b08
Initial commit of Claude for Legal 2026-05-11 13:44:26 -07:00