[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-anthropic-tabular-review":3,"mdc-pzt6qw-key":37,"related-repo-anthropic-tabular-review":2579,"related-org-anthropic-tabular-review":2674},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":12,"stars":26,"repoUrl":27,"updatedAt":28,"license":29,"forks":30,"topics":31,"repo":32,"sourceUrl":35,"mdContent":36},"tabular-review","perform tabular legal document reviews","Tabular review — one row per document, one column per data point, every cell cited to source. Built for M&A diligence (\"review these 200 target contracts for change-of-control, assignment, and MAC clauses\") but works for any batch review that needs a spreadsheet out the other end. Use when user says \"tabular review\", \"review grid\", \"build a grid\", \"extract these fields from these contracts\", \"review these documents for X, Y, Z\", \"give me a spreadsheet of\", \"batch review\", or points at a folder of documents and asks to compare them.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},"anthropic","Anthropic","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fanthropic.png","anthropics",[13,17,20,23],{"name":14,"slug":15,"type":16},"Contracts","contracts","tag",{"name":18,"slug":19,"type":16},"Data Analysis","data-analysis",{"name":21,"slug":22,"type":16},"Documents","documents",{"name":24,"slug":25,"type":16},"Legal","legal",8721,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-for-legal","2026-05-13T06:03:42.848012",null,1642,[],{"repoUrl":27,"stars":26,"forks":30,"topics":33,"description":34},[],"A suite of plugins for legal workflows","https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fclaude-for-legal\u002Ftree\u002FHEAD\u002Fcorporate-legal\u002Fskills\u002Ftabular-review","---\nname: tabular-review\ndescription: >\n  Tabular review — one row per document, one column per data point, every cell\n  cited to source. Built for M&A diligence (\"review these 200 target contracts\n  for change-of-control, assignment, and MAC clauses\") but works for any batch\n  review that needs a spreadsheet out the other end. Use when user says \"tabular\n  review\", \"review grid\", \"build a grid\", \"extract these fields from these\n  contracts\", \"review these documents for X, Y, Z\", \"give me a spreadsheet of\",\n  \"batch review\", or points at a folder of documents and asks to compare them.\n---\n\n# \u002Ftabular-review\n\n1. Load `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcorporate-legal\u002FCLAUDE.md` → diligence structure, thresholds, house format.\n2. Confirm: what documents, what columns, where does the output go.\n3. Build the typed schema. Write `.review-schema.yaml`. Confirm with the user.\n4. Sample run (3–5 docs). Adjust schema. Confirm.\n5. Fan out — one sub-agent per document, parallel. Each cell: value + state + verbatim quote + location.\n6. Normalization pass. Flag outliers and inconsistencies.\n7. Output: `.xlsx` or Google Sheets (ask which), plus `.csv` + `_sources.csv` + markdown always. Work-product header.\n8. Summary: verification workload (counts of not_present \u002F unclear \u002F needs_review per column), flagged columns, where the files are, reminder that every cell is a lead not a finding.\n\n```\n\u002Fcorporate-legal:tabular-review\n\u002Fcorporate-legal:tabular-review --schema .review-schema.yaml --docs .\u002Fvdr\u002F02-Contracts\u002F\n\u002Fcorporate-legal:tabular-review --template ma-diligence\n```\n\n**`--schema \u003Cpath>`:** Use an existing schema file instead of building one. Useful for re-runs and incremental additions.\n\n**`--template \u003Cname>`:** Start from a template in `references\u002F`. Currently: `ma-diligence`.\n\n**`--docs \u003Cpath>`:** Document source. A local folder, a Drive folder ID, or a VDR path. If omitted, asks.\n\n**`--output \u003Cxlsx|gsheets|csv>`:** Output format. If omitted, asks.\n\n**`--sample \u003Cn>`:** Sample size for the schema check. Default 5.\n\n---\n\n## Matter context\n\n**Matter context.** Check `## Matter workspaces` in the practice-level CLAUDE.md. If `Enabled` is `✗` (the default for in-house users), skip the rest of this paragraph — skills use practice-level context and the matter machinery is invisible. If enabled and there is no active matter, ask: \"Which matter is this for? Run `\u002Fcorporate-legal:matter-workspace switch \u003Cslug>` or say `practice-level`.\" Load the active matter's `matter.md` for matter-specific context and overrides. Write outputs to the matter folder at `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcorporate-legal\u002Fmatters\u002F\u003Cmatter-slug>\u002F`. Never read another matter's files unless `Cross-matter context` is `on`.\n\n---\n\n## Purpose\n\nYou have a pile of documents and a list of questions you need answered consistently across every one. A diligence request list. A vendor contract audit. A lease portfolio review. The output is a table: document rows, data-point columns, and every cell traceable to the exact words in the source.\n\nThis is not issue spotting. `diligence-issue-extraction` finds the 30 problems hiding in 2,000 documents. This skill answers the same 15 questions about all 2,000 documents. Both are legitimate; they answer different questions.\n\nThis is also not a replacement for a human reading the document. Every cell this skill produces is a **lead that needs verification**, not a finding. The output is designed to make verification fast, not to skip it.\n\n## Load context\n\n- `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcorporate-legal\u002FCLAUDE.md` → diligence structure, materiality thresholds, house format preferences\n- `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcorporate-legal\u002Fdeals\u002F[code]\u002Fdeal-context.md` if working a specific deal\n- An existing schema file if the user has one (`.review-schema.yaml`)\n\n## The column type system\n\nThe thing that makes a tabular review useful is that Column C means the same thing in row 1 as in row 200. Free text drifts. Types hold.\n\nEvery column has a **type** that constrains the answer format:\n\n| Type | What it returns | Use for |\n|---|---|---|\n| `verbatim` | Exact quote from the document, character-for-character | Defined terms, operative clause language, anything where the words matter |\n| `classify` | One value from a fixed list you define | Yes\u002FNo, present\u002Fabsent, clause variants (e.g., \"sole consent\" \u002F \"consent not unreasonably withheld\" \u002F \"silent\") |\n| `date` | ISO date | Effective date, expiration, termination notice deadline |\n| `duration` | Number + unit | Term length, notice period, survival period |\n| `currency` | Number + currency code | Caps, thresholds, fees, purchase price references |\n| `number` | Bare number | Counts, percentages, page references |\n| `free` | Short free text summary | Use sparingly — this is the type that drifts. Only when the others genuinely don't fit. |\n\n**The verbatim rule:** Every non-`verbatim` column also captures the exact source quote that supports the answer, as a companion field. The answer in the cell is the interpretation; the quote is the evidence. A `classify` cell that says \"consent not unreasonably withheld\" is useless without the sentence it came from, because the reviewer's job is to check whether that's the right read.\n\n## The three states of \"not found\"\n\nA blank cell hides information. Force one of three explicit states whenever you can't produce a positive answer:\n\n| State | Meaning | When to use |\n|---|---|---|\n| `not_present` | The document was read and the clause is not there | You are confident the subject matter isn't addressed |\n| `unclear` | Something is there but you can't classify it confidently | Ambiguous drafting, partial clause, conflicting provisions |\n| `needs_review` | You found something but a human must make the call | Edge case, unusual drafting, the answer depends on a judgment the schema doesn't capture |\n\nThese are three different pieces of information. A deal team handles \"the contract is silent on assignment\" very differently from \"the assignment clause is ambiguous.\" Collapsing them into one blank cell loses the distinction.\n\n## Workflow\n\n### Step 0: What and where\n\nConfirm:\n1. **Documents.** Where are they? VDR MCP (Box, Datasite, iManage), local folder, Google Drive folder, or a list of files. How many? If >200, warn that this will take a while and offer to start with a materiality-filtered subset.\n2. **Schema.** What columns? Two paths:\n   - User picks a template from `references\u002F` (M&A diligence standard is the default)\n   - User describes columns in natural language and you structure them into the typed schema\n3. **Output.** Excel (`.xlsx`) or Google Sheets — ask which the team works in. CSV and markdown always written as fallbacks. Output goes to the deal folder, Drive, or wherever the user says.\n\n### Step 1: Build and confirm the schema\n\nTurn the user's column list into a structured schema. For each column: a stable `id`, a human `label`, a `type`, a `prompt` (the question a reviewer reading the document would ask), and for `classify` columns an `options` list.\n\nWrite it to `.review-schema.yaml` next to the output. This file is the reusable artifact — the user can edit it, add a column, re-run against new documents. Show it to the user and confirm before fanning out.\n\n```yaml\nschema:\n  name: \"M&A Diligence — Project [Code]\"\n  created: 2026-05-07\n  columns:\n    - id: counterparty\n      label: \"Counterparty\"\n      type: verbatim\n      prompt: \"Who is the contracting party other than the target?\"\n    - id: effective_date\n      label: \"Effective Date\"\n      type: date\n      prompt: \"When did the agreement become effective?\"\n    - id: change_of_control\n      label: \"Change of Control\"\n      type: classify\n      options: [silent, consent_required, consent_not_unreasonably_withheld, automatic_termination, notice_only]\n      prompt: \"Does the agreement address a change of control of the target? What does it require?\"\n    - id: assignment\n      label: \"Assignment Restrictions\"\n      type: classify\n      options: [silent, consent_required, consent_not_unreasonably_withheld, freely_assignable, assignable_to_affiliates]\n      prompt: \"Can the target assign this agreement? What restrictions apply?\"\n    # ... more columns\n```\n\n### Step 2: Sample run\n\nDo not fan out to 200 documents on an untested schema. Run 3–5 documents first. Show the user the rows. Look for:\n- Columns where most answers are `unclear` — the prompt is ambiguous, rewrite it\n- `classify` columns where answers don't fit the options — add options or change to `free`\n- `verbatim` columns returning paraphrases — reinforce that it must be character-for-character\n\nAdjust the schema, re-run the sample, confirm. This saves the user from a full run that has to be thrown out.\n\n### Step 3: Fan out\n\nOne sub-agent per document, in parallel. Each sub-agent:\n\n1. Reads the entire document (not a RAG chunk — the whole thing).\n2. For each column, finds the relevant provision.\n3. Returns a structured row: for each column, `{value, state, quote, location}`.\n   - `value` is the typed answer (or null if `state` is not `answered`)\n   - `state` is `answered | not_present | unclear | needs_review`\n   - `quote` is the verbatim supporting text (exact, no paraphrase, no ellipsis inside a sentence — if you cut, cut at sentence boundaries and mark it)\n   - `location` is where the quote lives (section number, heading, page — whatever the document gives you)\n\n**The quote is not optional, and the verbatim rule is mechanical, not exhortation.** Each sub-agent must comply with all of the following before returning a cell with `state: answered`:\n\n- The `quote` MUST be a character-for-character copy of contiguous text from the source document, retrievable at the `location` the sub-agent cites. Do NOT compose a quote from a section heading plus standard boilerplate you expect to be there. Do NOT paraphrase and call it verbatim. Do NOT reconstruct a quote from memory of how such clauses \"usually\" read. Do NOT fill gaps in the source with ellipsis-stitching across non-contiguous text.\n- The `location` must be specific enough for the normalization pass to re-open the document and re-read the same span — a section number, heading, or page reference the reviewer can navigate to.\n- If the sub-agent cannot locate and copy the exact text (source truncated, OCR garbage, provision implied but not written, section heading visible but body not loaded), the cell state is `needs_review`, the `value` is null, and `notes` MUST contain `quote_unavailable: \u003Creason>`. It is NEVER acceptable to set `state: answered` with a composed or reconstructed quote.\n- The same rule applies to `verbatim`-typed columns AND to the companion source quotes attached to `classify` \u002F `date` \u002F `duration` \u002F `currency` \u002F `number` \u002F `free` cells. The supporting quote carries the same verbatim obligation as the cell value.\n\nThe normalization pass in Step 4 spot-checks this by re-reading the source at the cited `location` and comparing the stored `quote` character-for-character against the source text. A mismatch downgrades the cell to `needs_review`, notes `quote_mismatch`, and flags the whole column for a wider spot-check — if one sub-agent composed a quote, others in the same run may have too.\n\n### Step 4: Normalize\n\nAfter the fan-out, read the whole table column by column. This is the pass that catches the failure mode of every tabular review tool: the same clause interpreted inconsistently across documents.\n\nFor each `classify` column:\n- Check that every `answered` value is in the options list. Outliers get re-classified or bumped to `needs_review`.\n- Check for clusters: if 180 documents say `consent_required` and 20 say `consent_not_unreasonably_withheld`, that's probably real. If 195 say `consent_required` and 5 say `freely_assignable`, look at the 5 — they're either genuinely different or misclassified.\n\nFor each `date` \u002F `duration` \u002F `currency` column:\n- Check format consistency. Normalize.\n- Flag implausible values (a 99-year term, a $1 cap) as `needs_review`.\n\nFor each `verbatim` column AND for the companion source quotes on every other column:\n- Spot-check by re-opening the source document at the cited `location` for a random sample (at least 3–5 rows per column, or 10% of rows, whichever is larger) and comparing the stored `quote` character-for-character against the source.\n- If any quote is composed, paraphrased, reconstructed, or cannot be located at the cited span: downgrade that cell to `needs_review` with `quote_mismatch` in notes, and flag the whole column — expand the spot-check to the rest of the column rather than assuming the other rows are clean. One fabricated quote is enough to justify widening the check.\n- A cell with `state: answered` and a mismatched quote is a higher-severity failure than an `unclear` or `needs_review` cell — it misrepresents the evidence trail. Downgrade aggressively.\n\n### Step 5: Output\n\nWrite the table in three formats:\n\n**Markdown** (always, for in-session review):\n```markdown\n| Document | Counterparty | Effective Date | Change of Control | Assignment | ⚠️ Flags |\n|---|---|---|---|---|---|\n| Vendor MSA — Acme | Acme Corp | 2023-04-01 | consent_required | consent_required | — |\n| Supply Agmt — Beta | Beta LLC | 2021-11-15 | ⚠️ unclear | silent | CoC ambiguous §14.2 |\n```\n\n**CSV** (`.csv`, always):\nOne file for the values, one companion file for the quotes and locations (`_sources.csv`). Keeps the main file clean and the evidence trail complete.\n\n**Excel** (`.xlsx`) or **Google Sheets** — whichever the user works in. Ask; don't guess. Both follow the same workbook structure (see `references\u002Fexcel-output.md` and `references\u002Fgsheets-output.md`). For Excel: Claude in Excel (Office agent) if available, `openpyxl` fallback. For Sheets: Sheets MCP if available, Sheets API via ADC, CSV-import fallback. In the spreadsheet output:\n- Each data column is paired with a hidden source column containing the quote and location. Cell comments (Excel) or notes (Sheets) on the visible column surface the quote on hover.\n- Color code by state: white = answered, yellow = unclear or needs_review, gray = not_present.\n- A `Verified` column per data column, blank by default. The reviewer marks it. This is the verify\u002Fflag pattern that makes the table auditable — the deal team can see at a glance what a human has actually checked.\n- A `_schema` sheet with the column definitions, so the file is self-documenting.\n\nPrepend the work-product header from the plugin config `## Outputs` as a top row. Alongside it, include a distribution note:\n\n> This review is derived from source documents that may be privileged, confidential, or both. It inherits the sources' privilege and confidentiality status — distribution beyond the privilege circle can waive privilege. Store with the matter's privileged files and make distribution decisions deliberately.\n\n### Step 6: Summary\n\nAfter the table is written, give the user a one-screen readout:\n- Document count, column count, rows completed\n- Count of `not_present`, `unclear`, `needs_review` per column — this is the verification workload\n- Any columns where the normalization pass flagged >10% of rows\n- Where the output files are\n- A reminder: every cell is a lead, not a finding. Verification required before this informs a rep, a schedule, or a memo.\n\n## Close with the next-steps decision tree\n\nEnd with the next-steps decision tree per CLAUDE.md `## Outputs`. Customize the options to what this skill just produced — the five default branches (draft the X, escalate, get more facts, watch and wait, something else) are a starting point, not a lock-in. The tree is the output; the lawyer picks.\n\n## What this skill does not do\n\n- **It does not replace reading the documents.** It tells you where to look.\n- **It does not produce confidence scores.** A 0.73 is not information. The `unclear` \u002F `needs_review` states and the verbatim quotes are the confidence signal — if the quote doesn't support the value, flag it.\n- **It does not silently skip documents.** Every document the user pointed at gets a row. A document that couldn't be read gets a row of `needs_review` with a note.\n- **It does not pretend a paraphrase is a quote.** The evidence trail is the whole point.\n\n## Relationship to other skills\n\n- `diligence-issue-extraction` finds issues; this extracts data points. If an extraction reveals an issue (a MAC clause that references a specific earnings target, a poison pill), note it and suggest running diligence-issue-extraction on that document.\n- `material-contract-schedule` builds one specific table (the disclosure schedule). It can consume this skill's output directly — the schedule is a filtered, reformatted view of a tabular review.\n- `ai-tool-handoff` hands bulk review to Luminance\u002FKira when the corpus is too large or the team prefers a dedicated platform. This skill is the in-house option for anything it can handle — run it first, hand off the residue.\n\n## Output safeguards\n\nEvery output gets the work-product header. Every cell gets a source citation or a flagged state. The summary explicitly says verification is required. The Excel `Verified` column makes the verification state auditable. This is not a tool that lets you skip reading; it's a tool that makes reading faster.\n",{"data":38,"body":39},{"name":4,"description":6},{"type":40,"children":41},"root",[42,50,136,148,166,197,212,227,242,246,253,333,336,342,347,360,372,378,415,421,426,438,625,649,655,660,753,758,764,771,776,836,842,892,904,1481,1487,1492,1532,1537,1543,1548,1640,1657,1782,1816,1822,1827,1839,1896,1918,1937,1948,2015,2021,2026,2036,2237,2261,2308,2346,2359,2368,2374,2379,2427,2433,2445,2451,2514,2520,2555,2561,2573],{"type":43,"tag":44,"props":45,"children":46},"element","h1",{"id":4},[47],{"type":48,"value":49},"text","\u002Ftabular-review",{"type":43,"tag":51,"props":52,"children":53},"ol",{},[54,69,74,87,92,97,102,131],{"type":43,"tag":55,"props":56,"children":57},"li",{},[58,60,67],{"type":48,"value":59},"Load ",{"type":43,"tag":61,"props":62,"children":64},"code",{"className":63},[],[65],{"type":48,"value":66},"~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcorporate-legal\u002FCLAUDE.md",{"type":48,"value":68}," → diligence structure, thresholds, house format.",{"type":43,"tag":55,"props":70,"children":71},{},[72],{"type":48,"value":73},"Confirm: what documents, what columns, where does the output go.",{"type":43,"tag":55,"props":75,"children":76},{},[77,79,85],{"type":48,"value":78},"Build the typed schema. Write ",{"type":43,"tag":61,"props":80,"children":82},{"className":81},[],[83],{"type":48,"value":84},".review-schema.yaml",{"type":48,"value":86},". Confirm with the user.",{"type":43,"tag":55,"props":88,"children":89},{},[90],{"type":48,"value":91},"Sample run (3–5 docs). Adjust schema. Confirm.",{"type":43,"tag":55,"props":93,"children":94},{},[95],{"type":48,"value":96},"Fan out — one sub-agent per document, parallel. Each cell: value + state + verbatim quote + location.",{"type":43,"tag":55,"props":98,"children":99},{},[100],{"type":48,"value":101},"Normalization pass. Flag outliers and inconsistencies.",{"type":43,"tag":55,"props":103,"children":104},{},[105,107,113,115,121,123,129],{"type":48,"value":106},"Output: ",{"type":43,"tag":61,"props":108,"children":110},{"className":109},[],[111],{"type":48,"value":112},".xlsx",{"type":48,"value":114}," or Google Sheets (ask which), plus ",{"type":43,"tag":61,"props":116,"children":118},{"className":117},[],[119],{"type":48,"value":120},".csv",{"type":48,"value":122}," + ",{"type":43,"tag":61,"props":124,"children":126},{"className":125},[],[127],{"type":48,"value":128},"_sources.csv",{"type":48,"value":130}," + markdown always. Work-product header.",{"type":43,"tag":55,"props":132,"children":133},{},[134],{"type":48,"value":135},"Summary: verification workload (counts of not_present \u002F unclear \u002F needs_review per column), flagged columns, where the files are, reminder that every cell is a lead not a finding.",{"type":43,"tag":137,"props":138,"children":142},"pre",{"className":139,"code":141,"language":48},[140],"language-text","\u002Fcorporate-legal:tabular-review\n\u002Fcorporate-legal:tabular-review --schema .review-schema.yaml --docs .\u002Fvdr\u002F02-Contracts\u002F\n\u002Fcorporate-legal:tabular-review --template ma-diligence\n",[143],{"type":43,"tag":61,"props":144,"children":146},{"__ignoreMap":145},"",[147],{"type":48,"value":141},{"type":43,"tag":149,"props":150,"children":151},"p",{},[152,164],{"type":43,"tag":153,"props":154,"children":155},"strong",{},[156,162],{"type":43,"tag":61,"props":157,"children":159},{"className":158},[],[160],{"type":48,"value":161},"--schema \u003Cpath>",{"type":48,"value":163},":",{"type":48,"value":165}," Use an existing schema file instead of building one. Useful for re-runs and incremental additions.",{"type":43,"tag":149,"props":167,"children":168},{},[169,179,181,187,189,195],{"type":43,"tag":153,"props":170,"children":171},{},[172,178],{"type":43,"tag":61,"props":173,"children":175},{"className":174},[],[176],{"type":48,"value":177},"--template \u003Cname>",{"type":48,"value":163},{"type":48,"value":180}," Start from a template in ",{"type":43,"tag":61,"props":182,"children":184},{"className":183},[],[185],{"type":48,"value":186},"references\u002F",{"type":48,"value":188},". Currently: ",{"type":43,"tag":61,"props":190,"children":192},{"className":191},[],[193],{"type":48,"value":194},"ma-diligence",{"type":48,"value":196},".",{"type":43,"tag":149,"props":198,"children":199},{},[200,210],{"type":43,"tag":153,"props":201,"children":202},{},[203,209],{"type":43,"tag":61,"props":204,"children":206},{"className":205},[],[207],{"type":48,"value":208},"--docs \u003Cpath>",{"type":48,"value":163},{"type":48,"value":211}," Document source. A local folder, a Drive folder ID, or a VDR path. If omitted, asks.",{"type":43,"tag":149,"props":213,"children":214},{},[215,225],{"type":43,"tag":153,"props":216,"children":217},{},[218,224],{"type":43,"tag":61,"props":219,"children":221},{"className":220},[],[222],{"type":48,"value":223},"--output \u003Cxlsx|gsheets|csv>",{"type":48,"value":163},{"type":48,"value":226}," Output format. If omitted, asks.",{"type":43,"tag":149,"props":228,"children":229},{},[230,240],{"type":43,"tag":153,"props":231,"children":232},{},[233,239],{"type":43,"tag":61,"props":234,"children":236},{"className":235},[],[237],{"type":48,"value":238},"--sample \u003Cn>",{"type":48,"value":163},{"type":48,"value":241}," Sample size for the schema check. Default 5.",{"type":43,"tag":243,"props":244,"children":245},"hr",{},[],{"type":43,"tag":247,"props":248,"children":250},"h2",{"id":249},"matter-context",[251],{"type":48,"value":252},"Matter context",{"type":43,"tag":149,"props":254,"children":255},{},[256,261,263,269,271,277,279,285,287,293,295,301,303,309,311,317,319,325,326,332],{"type":43,"tag":153,"props":257,"children":258},{},[259],{"type":48,"value":260},"Matter context.",{"type":48,"value":262}," Check ",{"type":43,"tag":61,"props":264,"children":266},{"className":265},[],[267],{"type":48,"value":268},"## Matter workspaces",{"type":48,"value":270}," in the practice-level CLAUDE.md. If ",{"type":43,"tag":61,"props":272,"children":274},{"className":273},[],[275],{"type":48,"value":276},"Enabled",{"type":48,"value":278}," is ",{"type":43,"tag":61,"props":280,"children":282},{"className":281},[],[283],{"type":48,"value":284},"✗",{"type":48,"value":286}," (the default for in-house users), skip the rest of this paragraph — skills use practice-level context and the matter machinery is invisible. If enabled and there is no active matter, ask: \"Which matter is this for? Run ",{"type":43,"tag":61,"props":288,"children":290},{"className":289},[],[291],{"type":48,"value":292},"\u002Fcorporate-legal:matter-workspace switch \u003Cslug>",{"type":48,"value":294}," or say ",{"type":43,"tag":61,"props":296,"children":298},{"className":297},[],[299],{"type":48,"value":300},"practice-level",{"type":48,"value":302},".\" Load the active matter's ",{"type":43,"tag":61,"props":304,"children":306},{"className":305},[],[307],{"type":48,"value":308},"matter.md",{"type":48,"value":310}," for matter-specific context and overrides. Write outputs to the matter folder at ",{"type":43,"tag":61,"props":312,"children":314},{"className":313},[],[315],{"type":48,"value":316},"~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcorporate-legal\u002Fmatters\u002F\u003Cmatter-slug>\u002F",{"type":48,"value":318},". Never read another matter's files unless ",{"type":43,"tag":61,"props":320,"children":322},{"className":321},[],[323],{"type":48,"value":324},"Cross-matter context",{"type":48,"value":278},{"type":43,"tag":61,"props":327,"children":329},{"className":328},[],[330],{"type":48,"value":331},"on",{"type":48,"value":196},{"type":43,"tag":243,"props":334,"children":335},{},[],{"type":43,"tag":247,"props":337,"children":339},{"id":338},"purpose",[340],{"type":48,"value":341},"Purpose",{"type":43,"tag":149,"props":343,"children":344},{},[345],{"type":48,"value":346},"You have a pile of documents and a list of questions you need answered consistently across every one. A diligence request list. A vendor contract audit. A lease portfolio review. The output is a table: document rows, data-point columns, and every cell traceable to the exact words in the source.",{"type":43,"tag":149,"props":348,"children":349},{},[350,352,358],{"type":48,"value":351},"This is not issue spotting. ",{"type":43,"tag":61,"props":353,"children":355},{"className":354},[],[356],{"type":48,"value":357},"diligence-issue-extraction",{"type":48,"value":359}," finds the 30 problems hiding in 2,000 documents. This skill answers the same 15 questions about all 2,000 documents. Both are legitimate; they answer different questions.",{"type":43,"tag":149,"props":361,"children":362},{},[363,365,370],{"type":48,"value":364},"This is also not a replacement for a human reading the document. Every cell this skill produces is a ",{"type":43,"tag":153,"props":366,"children":367},{},[368],{"type":48,"value":369},"lead that needs verification",{"type":48,"value":371},", not a finding. The output is designed to make verification fast, not to skip it.",{"type":43,"tag":247,"props":373,"children":375},{"id":374},"load-context",[376],{"type":48,"value":377},"Load context",{"type":43,"tag":379,"props":380,"children":381},"ul",{},[382,392,403],{"type":43,"tag":55,"props":383,"children":384},{},[385,390],{"type":43,"tag":61,"props":386,"children":388},{"className":387},[],[389],{"type":48,"value":66},{"type":48,"value":391}," → diligence structure, materiality thresholds, house format preferences",{"type":43,"tag":55,"props":393,"children":394},{},[395,401],{"type":43,"tag":61,"props":396,"children":398},{"className":397},[],[399],{"type":48,"value":400},"~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcorporate-legal\u002Fdeals\u002F[code]\u002Fdeal-context.md",{"type":48,"value":402}," if working a specific deal",{"type":43,"tag":55,"props":404,"children":405},{},[406,408,413],{"type":48,"value":407},"An existing schema file if the user has one (",{"type":43,"tag":61,"props":409,"children":411},{"className":410},[],[412],{"type":48,"value":84},{"type":48,"value":414},")",{"type":43,"tag":247,"props":416,"children":418},{"id":417},"the-column-type-system",[419],{"type":48,"value":420},"The column type system",{"type":43,"tag":149,"props":422,"children":423},{},[424],{"type":48,"value":425},"The thing that makes a tabular review useful is that Column C means the same thing in row 1 as in row 200. Free text drifts. Types hold.",{"type":43,"tag":149,"props":427,"children":428},{},[429,431,436],{"type":48,"value":430},"Every column has a ",{"type":43,"tag":153,"props":432,"children":433},{},[434],{"type":48,"value":435},"type",{"type":48,"value":437}," that constrains the answer format:",{"type":43,"tag":439,"props":440,"children":441},"table",{},[442,466],{"type":43,"tag":443,"props":444,"children":445},"thead",{},[446],{"type":43,"tag":447,"props":448,"children":449},"tr",{},[450,456,461],{"type":43,"tag":451,"props":452,"children":453},"th",{},[454],{"type":48,"value":455},"Type",{"type":43,"tag":451,"props":457,"children":458},{},[459],{"type":48,"value":460},"What it returns",{"type":43,"tag":451,"props":462,"children":463},{},[464],{"type":48,"value":465},"Use for",{"type":43,"tag":467,"props":468,"children":469},"tbody",{},[470,493,515,537,559,581,603],{"type":43,"tag":447,"props":471,"children":472},{},[473,483,488],{"type":43,"tag":474,"props":475,"children":476},"td",{},[477],{"type":43,"tag":61,"props":478,"children":480},{"className":479},[],[481],{"type":48,"value":482},"verbatim",{"type":43,"tag":474,"props":484,"children":485},{},[486],{"type":48,"value":487},"Exact quote from the document, character-for-character",{"type":43,"tag":474,"props":489,"children":490},{},[491],{"type":48,"value":492},"Defined terms, operative clause language, anything where the words matter",{"type":43,"tag":447,"props":494,"children":495},{},[496,505,510],{"type":43,"tag":474,"props":497,"children":498},{},[499],{"type":43,"tag":61,"props":500,"children":502},{"className":501},[],[503],{"type":48,"value":504},"classify",{"type":43,"tag":474,"props":506,"children":507},{},[508],{"type":48,"value":509},"One value from a fixed list you define",{"type":43,"tag":474,"props":511,"children":512},{},[513],{"type":48,"value":514},"Yes\u002FNo, present\u002Fabsent, clause variants (e.g., \"sole consent\" \u002F \"consent not unreasonably withheld\" \u002F \"silent\")",{"type":43,"tag":447,"props":516,"children":517},{},[518,527,532],{"type":43,"tag":474,"props":519,"children":520},{},[521],{"type":43,"tag":61,"props":522,"children":524},{"className":523},[],[525],{"type":48,"value":526},"date",{"type":43,"tag":474,"props":528,"children":529},{},[530],{"type":48,"value":531},"ISO date",{"type":43,"tag":474,"props":533,"children":534},{},[535],{"type":48,"value":536},"Effective date, expiration, termination notice deadline",{"type":43,"tag":447,"props":538,"children":539},{},[540,549,554],{"type":43,"tag":474,"props":541,"children":542},{},[543],{"type":43,"tag":61,"props":544,"children":546},{"className":545},[],[547],{"type":48,"value":548},"duration",{"type":43,"tag":474,"props":550,"children":551},{},[552],{"type":48,"value":553},"Number + unit",{"type":43,"tag":474,"props":555,"children":556},{},[557],{"type":48,"value":558},"Term length, notice period, survival period",{"type":43,"tag":447,"props":560,"children":561},{},[562,571,576],{"type":43,"tag":474,"props":563,"children":564},{},[565],{"type":43,"tag":61,"props":566,"children":568},{"className":567},[],[569],{"type":48,"value":570},"currency",{"type":43,"tag":474,"props":572,"children":573},{},[574],{"type":48,"value":575},"Number + currency code",{"type":43,"tag":474,"props":577,"children":578},{},[579],{"type":48,"value":580},"Caps, thresholds, fees, purchase price references",{"type":43,"tag":447,"props":582,"children":583},{},[584,593,598],{"type":43,"tag":474,"props":585,"children":586},{},[587],{"type":43,"tag":61,"props":588,"children":590},{"className":589},[],[591],{"type":48,"value":592},"number",{"type":43,"tag":474,"props":594,"children":595},{},[596],{"type":48,"value":597},"Bare number",{"type":43,"tag":474,"props":599,"children":600},{},[601],{"type":48,"value":602},"Counts, percentages, page references",{"type":43,"tag":447,"props":604,"children":605},{},[606,615,620],{"type":43,"tag":474,"props":607,"children":608},{},[609],{"type":43,"tag":61,"props":610,"children":612},{"className":611},[],[613],{"type":48,"value":614},"free",{"type":43,"tag":474,"props":616,"children":617},{},[618],{"type":48,"value":619},"Short free text summary",{"type":43,"tag":474,"props":621,"children":622},{},[623],{"type":48,"value":624},"Use sparingly — this is the type that drifts. Only when the others genuinely don't fit.",{"type":43,"tag":149,"props":626,"children":627},{},[628,633,635,640,642,647],{"type":43,"tag":153,"props":629,"children":630},{},[631],{"type":48,"value":632},"The verbatim rule:",{"type":48,"value":634}," Every non-",{"type":43,"tag":61,"props":636,"children":638},{"className":637},[],[639],{"type":48,"value":482},{"type":48,"value":641}," column also captures the exact source quote that supports the answer, as a companion field. The answer in the cell is the interpretation; the quote is the evidence. A ",{"type":43,"tag":61,"props":643,"children":645},{"className":644},[],[646],{"type":48,"value":504},{"type":48,"value":648}," cell that says \"consent not unreasonably withheld\" is useless without the sentence it came from, because the reviewer's job is to check whether that's the right read.",{"type":43,"tag":247,"props":650,"children":652},{"id":651},"the-three-states-of-not-found",[653],{"type":48,"value":654},"The three states of \"not found\"",{"type":43,"tag":149,"props":656,"children":657},{},[658],{"type":48,"value":659},"A blank cell hides information. Force one of three explicit states whenever you can't produce a positive answer:",{"type":43,"tag":439,"props":661,"children":662},{},[663,684],{"type":43,"tag":443,"props":664,"children":665},{},[666],{"type":43,"tag":447,"props":667,"children":668},{},[669,674,679],{"type":43,"tag":451,"props":670,"children":671},{},[672],{"type":48,"value":673},"State",{"type":43,"tag":451,"props":675,"children":676},{},[677],{"type":48,"value":678},"Meaning",{"type":43,"tag":451,"props":680,"children":681},{},[682],{"type":48,"value":683},"When to use",{"type":43,"tag":467,"props":685,"children":686},{},[687,709,731],{"type":43,"tag":447,"props":688,"children":689},{},[690,699,704],{"type":43,"tag":474,"props":691,"children":692},{},[693],{"type":43,"tag":61,"props":694,"children":696},{"className":695},[],[697],{"type":48,"value":698},"not_present",{"type":43,"tag":474,"props":700,"children":701},{},[702],{"type":48,"value":703},"The document was read and the clause is not there",{"type":43,"tag":474,"props":705,"children":706},{},[707],{"type":48,"value":708},"You are confident the subject matter isn't addressed",{"type":43,"tag":447,"props":710,"children":711},{},[712,721,726],{"type":43,"tag":474,"props":713,"children":714},{},[715],{"type":43,"tag":61,"props":716,"children":718},{"className":717},[],[719],{"type":48,"value":720},"unclear",{"type":43,"tag":474,"props":722,"children":723},{},[724],{"type":48,"value":725},"Something is there but you can't classify it confidently",{"type":43,"tag":474,"props":727,"children":728},{},[729],{"type":48,"value":730},"Ambiguous drafting, partial clause, conflicting provisions",{"type":43,"tag":447,"props":732,"children":733},{},[734,743,748],{"type":43,"tag":474,"props":735,"children":736},{},[737],{"type":43,"tag":61,"props":738,"children":740},{"className":739},[],[741],{"type":48,"value":742},"needs_review",{"type":43,"tag":474,"props":744,"children":745},{},[746],{"type":48,"value":747},"You found something but a human must make the call",{"type":43,"tag":474,"props":749,"children":750},{},[751],{"type":48,"value":752},"Edge case, unusual drafting, the answer depends on a judgment the schema doesn't capture",{"type":43,"tag":149,"props":754,"children":755},{},[756],{"type":48,"value":757},"These are three different pieces of information. A deal team handles \"the contract is silent on assignment\" very differently from \"the assignment clause is ambiguous.\" Collapsing them into one blank cell loses the distinction.",{"type":43,"tag":247,"props":759,"children":761},{"id":760},"workflow",[762],{"type":48,"value":763},"Workflow",{"type":43,"tag":765,"props":766,"children":768},"h3",{"id":767},"step-0-what-and-where",[769],{"type":48,"value":770},"Step 0: What and where",{"type":43,"tag":149,"props":772,"children":773},{},[774],{"type":48,"value":775},"Confirm:",{"type":43,"tag":51,"props":777,"children":778},{},[779,789,819],{"type":43,"tag":55,"props":780,"children":781},{},[782,787],{"type":43,"tag":153,"props":783,"children":784},{},[785],{"type":48,"value":786},"Documents.",{"type":48,"value":788}," Where are they? VDR MCP (Box, Datasite, iManage), local folder, Google Drive folder, or a list of files. How many? If >200, warn that this will take a while and offer to start with a materiality-filtered subset.",{"type":43,"tag":55,"props":790,"children":791},{},[792,797,799],{"type":43,"tag":153,"props":793,"children":794},{},[795],{"type":48,"value":796},"Schema.",{"type":48,"value":798}," What columns? Two paths:\n",{"type":43,"tag":379,"props":800,"children":801},{},[802,814],{"type":43,"tag":55,"props":803,"children":804},{},[805,807,812],{"type":48,"value":806},"User picks a template from ",{"type":43,"tag":61,"props":808,"children":810},{"className":809},[],[811],{"type":48,"value":186},{"type":48,"value":813}," (M&A diligence standard is the default)",{"type":43,"tag":55,"props":815,"children":816},{},[817],{"type":48,"value":818},"User describes columns in natural language and you structure them into the typed schema",{"type":43,"tag":55,"props":820,"children":821},{},[822,827,829,834],{"type":43,"tag":153,"props":823,"children":824},{},[825],{"type":48,"value":826},"Output.",{"type":48,"value":828}," Excel (",{"type":43,"tag":61,"props":830,"children":832},{"className":831},[],[833],{"type":48,"value":112},{"type":48,"value":835},") or Google Sheets — ask which the team works in. CSV and markdown always written as fallbacks. Output goes to the deal folder, Drive, or wherever the user says.",{"type":43,"tag":765,"props":837,"children":839},{"id":838},"step-1-build-and-confirm-the-schema",[840],{"type":48,"value":841},"Step 1: Build and confirm the schema",{"type":43,"tag":149,"props":843,"children":844},{},[845,847,853,855,861,863,868,869,875,877,882,884,890],{"type":48,"value":846},"Turn the user's column list into a structured schema. For each column: a stable ",{"type":43,"tag":61,"props":848,"children":850},{"className":849},[],[851],{"type":48,"value":852},"id",{"type":48,"value":854},", a human ",{"type":43,"tag":61,"props":856,"children":858},{"className":857},[],[859],{"type":48,"value":860},"label",{"type":48,"value":862},", a ",{"type":43,"tag":61,"props":864,"children":866},{"className":865},[],[867],{"type":48,"value":435},{"type":48,"value":862},{"type":43,"tag":61,"props":870,"children":872},{"className":871},[],[873],{"type":48,"value":874},"prompt",{"type":48,"value":876}," (the question a reviewer reading the document would ask), and for ",{"type":43,"tag":61,"props":878,"children":880},{"className":879},[],[881],{"type":48,"value":504},{"type":48,"value":883}," columns an ",{"type":43,"tag":61,"props":885,"children":887},{"className":886},[],[888],{"type":48,"value":889},"options",{"type":48,"value":891}," list.",{"type":43,"tag":149,"props":893,"children":894},{},[895,897,902],{"type":48,"value":896},"Write it to ",{"type":43,"tag":61,"props":898,"children":900},{"className":899},[],[901],{"type":48,"value":84},{"type":48,"value":903}," next to the output. This file is the reusable artifact — the user can edit it, add a column, re-run against new documents. Show it to the user and confirm before fanning out.",{"type":43,"tag":137,"props":905,"children":909},{"className":906,"code":907,"language":908,"meta":145,"style":145},"language-yaml shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","schema:\n  name: \"M&A Diligence — Project [Code]\"\n  created: 2026-05-07\n  columns:\n    - id: counterparty\n      label: \"Counterparty\"\n      type: verbatim\n      prompt: \"Who is the contracting party other than the target?\"\n    - id: effective_date\n      label: \"Effective Date\"\n      type: date\n      prompt: \"When did the agreement become effective?\"\n    - id: change_of_control\n      label: \"Change of Control\"\n      type: classify\n      options: [silent, consent_required, consent_not_unreasonably_withheld, automatic_termination, notice_only]\n      prompt: \"Does the agreement address a change of control of the target? What does it require?\"\n    - id: assignment\n      label: \"Assignment Restrictions\"\n      type: classify\n      options: [silent, consent_required, consent_not_unreasonably_withheld, freely_assignable, assignable_to_affiliates]\n      prompt: \"Can the target assign this agreement? What restrictions apply?\"\n    # ... more columns\n","yaml",[910],{"type":43,"tag":61,"props":911,"children":912},{"__ignoreMap":145},[913,931,960,979,992,1015,1041,1059,1085,1106,1131,1148,1173,1194,1219,1236,1301,1326,1347,1372,1388,1446,1471],{"type":43,"tag":914,"props":915,"children":918},"span",{"class":916,"line":917},"line",1,[919,925],{"type":43,"tag":914,"props":920,"children":922},{"style":921},"--shiki-light:#E53935;--shiki-default:#F07178;--shiki-dark:#F07178",[923],{"type":48,"value":924},"schema",{"type":43,"tag":914,"props":926,"children":928},{"style":927},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[929],{"type":48,"value":930},":\n",{"type":43,"tag":914,"props":932,"children":934},{"class":916,"line":933},2,[935,940,944,949,955],{"type":43,"tag":914,"props":936,"children":937},{"style":921},[938],{"type":48,"value":939},"  name",{"type":43,"tag":914,"props":941,"children":942},{"style":927},[943],{"type":48,"value":163},{"type":43,"tag":914,"props":945,"children":946},{"style":927},[947],{"type":48,"value":948}," \"",{"type":43,"tag":914,"props":950,"children":952},{"style":951},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[953],{"type":48,"value":954},"M&A Diligence — Project [Code]",{"type":43,"tag":914,"props":956,"children":957},{"style":927},[958],{"type":48,"value":959},"\"\n",{"type":43,"tag":914,"props":961,"children":963},{"class":916,"line":962},3,[964,969,973],{"type":43,"tag":914,"props":965,"children":966},{"style":921},[967],{"type":48,"value":968},"  created",{"type":43,"tag":914,"props":970,"children":971},{"style":927},[972],{"type":48,"value":163},{"type":43,"tag":914,"props":974,"children":976},{"style":975},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[977],{"type":48,"value":978}," 2026-05-07\n",{"type":43,"tag":914,"props":980,"children":982},{"class":916,"line":981},4,[983,988],{"type":43,"tag":914,"props":984,"children":985},{"style":921},[986],{"type":48,"value":987},"  columns",{"type":43,"tag":914,"props":989,"children":990},{"style":927},[991],{"type":48,"value":930},{"type":43,"tag":914,"props":993,"children":995},{"class":916,"line":994},5,[996,1001,1006,1010],{"type":43,"tag":914,"props":997,"children":998},{"style":927},[999],{"type":48,"value":1000},"    -",{"type":43,"tag":914,"props":1002,"children":1003},{"style":921},[1004],{"type":48,"value":1005}," id",{"type":43,"tag":914,"props":1007,"children":1008},{"style":927},[1009],{"type":48,"value":163},{"type":43,"tag":914,"props":1011,"children":1012},{"style":951},[1013],{"type":48,"value":1014}," counterparty\n",{"type":43,"tag":914,"props":1016,"children":1018},{"class":916,"line":1017},6,[1019,1024,1028,1032,1037],{"type":43,"tag":914,"props":1020,"children":1021},{"style":921},[1022],{"type":48,"value":1023},"      label",{"type":43,"tag":914,"props":1025,"children":1026},{"style":927},[1027],{"type":48,"value":163},{"type":43,"tag":914,"props":1029,"children":1030},{"style":927},[1031],{"type":48,"value":948},{"type":43,"tag":914,"props":1033,"children":1034},{"style":951},[1035],{"type":48,"value":1036},"Counterparty",{"type":43,"tag":914,"props":1038,"children":1039},{"style":927},[1040],{"type":48,"value":959},{"type":43,"tag":914,"props":1042,"children":1044},{"class":916,"line":1043},7,[1045,1050,1054],{"type":43,"tag":914,"props":1046,"children":1047},{"style":921},[1048],{"type":48,"value":1049},"      type",{"type":43,"tag":914,"props":1051,"children":1052},{"style":927},[1053],{"type":48,"value":163},{"type":43,"tag":914,"props":1055,"children":1056},{"style":951},[1057],{"type":48,"value":1058}," verbatim\n",{"type":43,"tag":914,"props":1060,"children":1062},{"class":916,"line":1061},8,[1063,1068,1072,1076,1081],{"type":43,"tag":914,"props":1064,"children":1065},{"style":921},[1066],{"type":48,"value":1067},"      prompt",{"type":43,"tag":914,"props":1069,"children":1070},{"style":927},[1071],{"type":48,"value":163},{"type":43,"tag":914,"props":1073,"children":1074},{"style":927},[1075],{"type":48,"value":948},{"type":43,"tag":914,"props":1077,"children":1078},{"style":951},[1079],{"type":48,"value":1080},"Who is the contracting party other than the target?",{"type":43,"tag":914,"props":1082,"children":1083},{"style":927},[1084],{"type":48,"value":959},{"type":43,"tag":914,"props":1086,"children":1088},{"class":916,"line":1087},9,[1089,1093,1097,1101],{"type":43,"tag":914,"props":1090,"children":1091},{"style":927},[1092],{"type":48,"value":1000},{"type":43,"tag":914,"props":1094,"children":1095},{"style":921},[1096],{"type":48,"value":1005},{"type":43,"tag":914,"props":1098,"children":1099},{"style":927},[1100],{"type":48,"value":163},{"type":43,"tag":914,"props":1102,"children":1103},{"style":951},[1104],{"type":48,"value":1105}," effective_date\n",{"type":43,"tag":914,"props":1107,"children":1109},{"class":916,"line":1108},10,[1110,1114,1118,1122,1127],{"type":43,"tag":914,"props":1111,"children":1112},{"style":921},[1113],{"type":48,"value":1023},{"type":43,"tag":914,"props":1115,"children":1116},{"style":927},[1117],{"type":48,"value":163},{"type":43,"tag":914,"props":1119,"children":1120},{"style":927},[1121],{"type":48,"value":948},{"type":43,"tag":914,"props":1123,"children":1124},{"style":951},[1125],{"type":48,"value":1126},"Effective Date",{"type":43,"tag":914,"props":1128,"children":1129},{"style":927},[1130],{"type":48,"value":959},{"type":43,"tag":914,"props":1132,"children":1134},{"class":916,"line":1133},11,[1135,1139,1143],{"type":43,"tag":914,"props":1136,"children":1137},{"style":921},[1138],{"type":48,"value":1049},{"type":43,"tag":914,"props":1140,"children":1141},{"style":927},[1142],{"type":48,"value":163},{"type":43,"tag":914,"props":1144,"children":1145},{"style":951},[1146],{"type":48,"value":1147}," date\n",{"type":43,"tag":914,"props":1149,"children":1151},{"class":916,"line":1150},12,[1152,1156,1160,1164,1169],{"type":43,"tag":914,"props":1153,"children":1154},{"style":921},[1155],{"type":48,"value":1067},{"type":43,"tag":914,"props":1157,"children":1158},{"style":927},[1159],{"type":48,"value":163},{"type":43,"tag":914,"props":1161,"children":1162},{"style":927},[1163],{"type":48,"value":948},{"type":43,"tag":914,"props":1165,"children":1166},{"style":951},[1167],{"type":48,"value":1168},"When did the agreement become effective?",{"type":43,"tag":914,"props":1170,"children":1171},{"style":927},[1172],{"type":48,"value":959},{"type":43,"tag":914,"props":1174,"children":1176},{"class":916,"line":1175},13,[1177,1181,1185,1189],{"type":43,"tag":914,"props":1178,"children":1179},{"style":927},[1180],{"type":48,"value":1000},{"type":43,"tag":914,"props":1182,"children":1183},{"style":921},[1184],{"type":48,"value":1005},{"type":43,"tag":914,"props":1186,"children":1187},{"style":927},[1188],{"type":48,"value":163},{"type":43,"tag":914,"props":1190,"children":1191},{"style":951},[1192],{"type":48,"value":1193}," change_of_control\n",{"type":43,"tag":914,"props":1195,"children":1197},{"class":916,"line":1196},14,[1198,1202,1206,1210,1215],{"type":43,"tag":914,"props":1199,"children":1200},{"style":921},[1201],{"type":48,"value":1023},{"type":43,"tag":914,"props":1203,"children":1204},{"style":927},[1205],{"type":48,"value":163},{"type":43,"tag":914,"props":1207,"children":1208},{"style":927},[1209],{"type":48,"value":948},{"type":43,"tag":914,"props":1211,"children":1212},{"style":951},[1213],{"type":48,"value":1214},"Change of Control",{"type":43,"tag":914,"props":1216,"children":1217},{"style":927},[1218],{"type":48,"value":959},{"type":43,"tag":914,"props":1220,"children":1222},{"class":916,"line":1221},15,[1223,1227,1231],{"type":43,"tag":914,"props":1224,"children":1225},{"style":921},[1226],{"type":48,"value":1049},{"type":43,"tag":914,"props":1228,"children":1229},{"style":927},[1230],{"type":48,"value":163},{"type":43,"tag":914,"props":1232,"children":1233},{"style":951},[1234],{"type":48,"value":1235}," classify\n",{"type":43,"tag":914,"props":1237,"children":1239},{"class":916,"line":1238},16,[1240,1245,1249,1254,1259,1264,1269,1273,1278,1282,1287,1291,1296],{"type":43,"tag":914,"props":1241,"children":1242},{"style":921},[1243],{"type":48,"value":1244},"      options",{"type":43,"tag":914,"props":1246,"children":1247},{"style":927},[1248],{"type":48,"value":163},{"type":43,"tag":914,"props":1250,"children":1251},{"style":927},[1252],{"type":48,"value":1253}," [",{"type":43,"tag":914,"props":1255,"children":1256},{"style":951},[1257],{"type":48,"value":1258},"silent",{"type":43,"tag":914,"props":1260,"children":1261},{"style":927},[1262],{"type":48,"value":1263},",",{"type":43,"tag":914,"props":1265,"children":1266},{"style":951},[1267],{"type":48,"value":1268}," consent_required",{"type":43,"tag":914,"props":1270,"children":1271},{"style":927},[1272],{"type":48,"value":1263},{"type":43,"tag":914,"props":1274,"children":1275},{"style":951},[1276],{"type":48,"value":1277}," consent_not_unreasonably_withheld",{"type":43,"tag":914,"props":1279,"children":1280},{"style":927},[1281],{"type":48,"value":1263},{"type":43,"tag":914,"props":1283,"children":1284},{"style":951},[1285],{"type":48,"value":1286}," automatic_termination",{"type":43,"tag":914,"props":1288,"children":1289},{"style":927},[1290],{"type":48,"value":1263},{"type":43,"tag":914,"props":1292,"children":1293},{"style":951},[1294],{"type":48,"value":1295}," notice_only",{"type":43,"tag":914,"props":1297,"children":1298},{"style":927},[1299],{"type":48,"value":1300},"]\n",{"type":43,"tag":914,"props":1302,"children":1304},{"class":916,"line":1303},17,[1305,1309,1313,1317,1322],{"type":43,"tag":914,"props":1306,"children":1307},{"style":921},[1308],{"type":48,"value":1067},{"type":43,"tag":914,"props":1310,"children":1311},{"style":927},[1312],{"type":48,"value":163},{"type":43,"tag":914,"props":1314,"children":1315},{"style":927},[1316],{"type":48,"value":948},{"type":43,"tag":914,"props":1318,"children":1319},{"style":951},[1320],{"type":48,"value":1321},"Does the agreement address a change of control of the target? What does it require?",{"type":43,"tag":914,"props":1323,"children":1324},{"style":927},[1325],{"type":48,"value":959},{"type":43,"tag":914,"props":1327,"children":1329},{"class":916,"line":1328},18,[1330,1334,1338,1342],{"type":43,"tag":914,"props":1331,"children":1332},{"style":927},[1333],{"type":48,"value":1000},{"type":43,"tag":914,"props":1335,"children":1336},{"style":921},[1337],{"type":48,"value":1005},{"type":43,"tag":914,"props":1339,"children":1340},{"style":927},[1341],{"type":48,"value":163},{"type":43,"tag":914,"props":1343,"children":1344},{"style":951},[1345],{"type":48,"value":1346}," assignment\n",{"type":43,"tag":914,"props":1348,"children":1350},{"class":916,"line":1349},19,[1351,1355,1359,1363,1368],{"type":43,"tag":914,"props":1352,"children":1353},{"style":921},[1354],{"type":48,"value":1023},{"type":43,"tag":914,"props":1356,"children":1357},{"style":927},[1358],{"type":48,"value":163},{"type":43,"tag":914,"props":1360,"children":1361},{"style":927},[1362],{"type":48,"value":948},{"type":43,"tag":914,"props":1364,"children":1365},{"style":951},[1366],{"type":48,"value":1367},"Assignment Restrictions",{"type":43,"tag":914,"props":1369,"children":1370},{"style":927},[1371],{"type":48,"value":959},{"type":43,"tag":914,"props":1373,"children":1375},{"class":916,"line":1374},20,[1376,1380,1384],{"type":43,"tag":914,"props":1377,"children":1378},{"style":921},[1379],{"type":48,"value":1049},{"type":43,"tag":914,"props":1381,"children":1382},{"style":927},[1383],{"type":48,"value":163},{"type":43,"tag":914,"props":1385,"children":1386},{"style":951},[1387],{"type":48,"value":1235},{"type":43,"tag":914,"props":1389,"children":1391},{"class":916,"line":1390},21,[1392,1396,1400,1404,1408,1412,1416,1420,1424,1428,1433,1437,1442],{"type":43,"tag":914,"props":1393,"children":1394},{"style":921},[1395],{"type":48,"value":1244},{"type":43,"tag":914,"props":1397,"children":1398},{"style":927},[1399],{"type":48,"value":163},{"type":43,"tag":914,"props":1401,"children":1402},{"style":927},[1403],{"type":48,"value":1253},{"type":43,"tag":914,"props":1405,"children":1406},{"style":951},[1407],{"type":48,"value":1258},{"type":43,"tag":914,"props":1409,"children":1410},{"style":927},[1411],{"type":48,"value":1263},{"type":43,"tag":914,"props":1413,"children":1414},{"style":951},[1415],{"type":48,"value":1268},{"type":43,"tag":914,"props":1417,"children":1418},{"style":927},[1419],{"type":48,"value":1263},{"type":43,"tag":914,"props":1421,"children":1422},{"style":951},[1423],{"type":48,"value":1277},{"type":43,"tag":914,"props":1425,"children":1426},{"style":927},[1427],{"type":48,"value":1263},{"type":43,"tag":914,"props":1429,"children":1430},{"style":951},[1431],{"type":48,"value":1432}," freely_assignable",{"type":43,"tag":914,"props":1434,"children":1435},{"style":927},[1436],{"type":48,"value":1263},{"type":43,"tag":914,"props":1438,"children":1439},{"style":951},[1440],{"type":48,"value":1441}," assignable_to_affiliates",{"type":43,"tag":914,"props":1443,"children":1444},{"style":927},[1445],{"type":48,"value":1300},{"type":43,"tag":914,"props":1447,"children":1449},{"class":916,"line":1448},22,[1450,1454,1458,1462,1467],{"type":43,"tag":914,"props":1451,"children":1452},{"style":921},[1453],{"type":48,"value":1067},{"type":43,"tag":914,"props":1455,"children":1456},{"style":927},[1457],{"type":48,"value":163},{"type":43,"tag":914,"props":1459,"children":1460},{"style":927},[1461],{"type":48,"value":948},{"type":43,"tag":914,"props":1463,"children":1464},{"style":951},[1465],{"type":48,"value":1466},"Can the target assign this agreement? What restrictions apply?",{"type":43,"tag":914,"props":1468,"children":1469},{"style":927},[1470],{"type":48,"value":959},{"type":43,"tag":914,"props":1472,"children":1474},{"class":916,"line":1473},23,[1475],{"type":43,"tag":914,"props":1476,"children":1478},{"style":1477},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[1479],{"type":48,"value":1480},"    # ... more columns\n",{"type":43,"tag":765,"props":1482,"children":1484},{"id":1483},"step-2-sample-run",[1485],{"type":48,"value":1486},"Step 2: Sample run",{"type":43,"tag":149,"props":1488,"children":1489},{},[1490],{"type":48,"value":1491},"Do not fan out to 200 documents on an untested schema. Run 3–5 documents first. Show the user the rows. Look for:",{"type":43,"tag":379,"props":1493,"children":1494},{},[1495,1507,1522],{"type":43,"tag":55,"props":1496,"children":1497},{},[1498,1500,1505],{"type":48,"value":1499},"Columns where most answers are ",{"type":43,"tag":61,"props":1501,"children":1503},{"className":1502},[],[1504],{"type":48,"value":720},{"type":48,"value":1506}," — the prompt is ambiguous, rewrite it",{"type":43,"tag":55,"props":1508,"children":1509},{},[1510,1515,1517],{"type":43,"tag":61,"props":1511,"children":1513},{"className":1512},[],[1514],{"type":48,"value":504},{"type":48,"value":1516}," columns where answers don't fit the options — add options or change to ",{"type":43,"tag":61,"props":1518,"children":1520},{"className":1519},[],[1521],{"type":48,"value":614},{"type":43,"tag":55,"props":1523,"children":1524},{},[1525,1530],{"type":43,"tag":61,"props":1526,"children":1528},{"className":1527},[],[1529],{"type":48,"value":482},{"type":48,"value":1531}," columns returning paraphrases — reinforce that it must be character-for-character",{"type":43,"tag":149,"props":1533,"children":1534},{},[1535],{"type":48,"value":1536},"Adjust the schema, re-run the sample, confirm. This saves the user from a full run that has to be thrown out.",{"type":43,"tag":765,"props":1538,"children":1540},{"id":1539},"step-3-fan-out",[1541],{"type":48,"value":1542},"Step 3: Fan out",{"type":43,"tag":149,"props":1544,"children":1545},{},[1546],{"type":48,"value":1547},"One sub-agent per document, in parallel. Each sub-agent:",{"type":43,"tag":51,"props":1549,"children":1550},{},[1551,1556,1561],{"type":43,"tag":55,"props":1552,"children":1553},{},[1554],{"type":48,"value":1555},"Reads the entire document (not a RAG chunk — the whole thing).",{"type":43,"tag":55,"props":1557,"children":1558},{},[1559],{"type":48,"value":1560},"For each column, finds the relevant provision.",{"type":43,"tag":55,"props":1562,"children":1563},{},[1564,1566,1572,1574],{"type":48,"value":1565},"Returns a structured row: for each column, ",{"type":43,"tag":61,"props":1567,"children":1569},{"className":1568},[],[1570],{"type":48,"value":1571},"{value, state, quote, location}",{"type":48,"value":1573},".\n",{"type":43,"tag":379,"props":1575,"children":1576},{},[1577,1603,1618,1629],{"type":43,"tag":55,"props":1578,"children":1579},{},[1580,1586,1588,1594,1596,1602],{"type":43,"tag":61,"props":1581,"children":1583},{"className":1582},[],[1584],{"type":48,"value":1585},"value",{"type":48,"value":1587}," is the typed answer (or null if ",{"type":43,"tag":61,"props":1589,"children":1591},{"className":1590},[],[1592],{"type":48,"value":1593},"state",{"type":48,"value":1595}," is not ",{"type":43,"tag":61,"props":1597,"children":1599},{"className":1598},[],[1600],{"type":48,"value":1601},"answered",{"type":48,"value":414},{"type":43,"tag":55,"props":1604,"children":1605},{},[1606,1611,1612],{"type":43,"tag":61,"props":1607,"children":1609},{"className":1608},[],[1610],{"type":48,"value":1593},{"type":48,"value":278},{"type":43,"tag":61,"props":1613,"children":1615},{"className":1614},[],[1616],{"type":48,"value":1617},"answered | not_present | unclear | needs_review",{"type":43,"tag":55,"props":1619,"children":1620},{},[1621,1627],{"type":43,"tag":61,"props":1622,"children":1624},{"className":1623},[],[1625],{"type":48,"value":1626},"quote",{"type":48,"value":1628}," is the verbatim supporting text (exact, no paraphrase, no ellipsis inside a sentence — if you cut, cut at sentence boundaries and mark it)",{"type":43,"tag":55,"props":1630,"children":1631},{},[1632,1638],{"type":43,"tag":61,"props":1633,"children":1635},{"className":1634},[],[1636],{"type":48,"value":1637},"location",{"type":48,"value":1639}," is where the quote lives (section number, heading, page — whatever the document gives you)",{"type":43,"tag":149,"props":1641,"children":1642},{},[1643,1648,1650,1656],{"type":43,"tag":153,"props":1644,"children":1645},{},[1646],{"type":48,"value":1647},"The quote is not optional, and the verbatim rule is mechanical, not exhortation.",{"type":48,"value":1649}," Each sub-agent must comply with all of the following before returning a cell with ",{"type":43,"tag":61,"props":1651,"children":1653},{"className":1652},[],[1654],{"type":48,"value":1655},"state: answered",{"type":48,"value":163},{"type":43,"tag":379,"props":1658,"children":1659},{},[1660,1679,1690,1732],{"type":43,"tag":55,"props":1661,"children":1662},{},[1663,1665,1670,1672,1677],{"type":48,"value":1664},"The ",{"type":43,"tag":61,"props":1666,"children":1668},{"className":1667},[],[1669],{"type":48,"value":1626},{"type":48,"value":1671}," MUST be a character-for-character copy of contiguous text from the source document, retrievable at the ",{"type":43,"tag":61,"props":1673,"children":1675},{"className":1674},[],[1676],{"type":48,"value":1637},{"type":48,"value":1678}," the sub-agent cites. Do NOT compose a quote from a section heading plus standard boilerplate you expect to be there. Do NOT paraphrase and call it verbatim. Do NOT reconstruct a quote from memory of how such clauses \"usually\" read. Do NOT fill gaps in the source with ellipsis-stitching across non-contiguous text.",{"type":43,"tag":55,"props":1680,"children":1681},{},[1682,1683,1688],{"type":48,"value":1664},{"type":43,"tag":61,"props":1684,"children":1686},{"className":1685},[],[1687],{"type":48,"value":1637},{"type":48,"value":1689}," must be specific enough for the normalization pass to re-open the document and re-read the same span — a section number, heading, or page reference the reviewer can navigate to.",{"type":43,"tag":55,"props":1691,"children":1692},{},[1693,1695,1700,1702,1707,1709,1715,1717,1723,1725,1730],{"type":48,"value":1694},"If the sub-agent cannot locate and copy the exact text (source truncated, OCR garbage, provision implied but not written, section heading visible but body not loaded), the cell state is ",{"type":43,"tag":61,"props":1696,"children":1698},{"className":1697},[],[1699],{"type":48,"value":742},{"type":48,"value":1701},", the ",{"type":43,"tag":61,"props":1703,"children":1705},{"className":1704},[],[1706],{"type":48,"value":1585},{"type":48,"value":1708}," is null, and ",{"type":43,"tag":61,"props":1710,"children":1712},{"className":1711},[],[1713],{"type":48,"value":1714},"notes",{"type":48,"value":1716}," MUST contain ",{"type":43,"tag":61,"props":1718,"children":1720},{"className":1719},[],[1721],{"type":48,"value":1722},"quote_unavailable: \u003Creason>",{"type":48,"value":1724},". It is NEVER acceptable to set ",{"type":43,"tag":61,"props":1726,"children":1728},{"className":1727},[],[1729],{"type":48,"value":1655},{"type":48,"value":1731}," with a composed or reconstructed quote.",{"type":43,"tag":55,"props":1733,"children":1734},{},[1735,1737,1742,1744,1749,1751,1756,1757,1762,1763,1768,1769,1774,1775,1780],{"type":48,"value":1736},"The same rule applies to ",{"type":43,"tag":61,"props":1738,"children":1740},{"className":1739},[],[1741],{"type":48,"value":482},{"type":48,"value":1743},"-typed columns AND to the companion source quotes attached to ",{"type":43,"tag":61,"props":1745,"children":1747},{"className":1746},[],[1748],{"type":48,"value":504},{"type":48,"value":1750}," \u002F ",{"type":43,"tag":61,"props":1752,"children":1754},{"className":1753},[],[1755],{"type":48,"value":526},{"type":48,"value":1750},{"type":43,"tag":61,"props":1758,"children":1760},{"className":1759},[],[1761],{"type":48,"value":548},{"type":48,"value":1750},{"type":43,"tag":61,"props":1764,"children":1766},{"className":1765},[],[1767],{"type":48,"value":570},{"type":48,"value":1750},{"type":43,"tag":61,"props":1770,"children":1772},{"className":1771},[],[1773],{"type":48,"value":592},{"type":48,"value":1750},{"type":43,"tag":61,"props":1776,"children":1778},{"className":1777},[],[1779],{"type":48,"value":614},{"type":48,"value":1781}," cells. The supporting quote carries the same verbatim obligation as the cell value.",{"type":43,"tag":149,"props":1783,"children":1784},{},[1785,1787,1792,1794,1799,1801,1806,1808,1814],{"type":48,"value":1786},"The normalization pass in Step 4 spot-checks this by re-reading the source at the cited ",{"type":43,"tag":61,"props":1788,"children":1790},{"className":1789},[],[1791],{"type":48,"value":1637},{"type":48,"value":1793}," and comparing the stored ",{"type":43,"tag":61,"props":1795,"children":1797},{"className":1796},[],[1798],{"type":48,"value":1626},{"type":48,"value":1800}," character-for-character against the source text. A mismatch downgrades the cell to ",{"type":43,"tag":61,"props":1802,"children":1804},{"className":1803},[],[1805],{"type":48,"value":742},{"type":48,"value":1807},", notes ",{"type":43,"tag":61,"props":1809,"children":1811},{"className":1810},[],[1812],{"type":48,"value":1813},"quote_mismatch",{"type":48,"value":1815},", and flags the whole column for a wider spot-check — if one sub-agent composed a quote, others in the same run may have too.",{"type":43,"tag":765,"props":1817,"children":1819},{"id":1818},"step-4-normalize",[1820],{"type":48,"value":1821},"Step 4: Normalize",{"type":43,"tag":149,"props":1823,"children":1824},{},[1825],{"type":48,"value":1826},"After the fan-out, read the whole table column by column. This is the pass that catches the failure mode of every tabular review tool: the same clause interpreted inconsistently across documents.",{"type":43,"tag":149,"props":1828,"children":1829},{},[1830,1832,1837],{"type":48,"value":1831},"For each ",{"type":43,"tag":61,"props":1833,"children":1835},{"className":1834},[],[1836],{"type":48,"value":504},{"type":48,"value":1838}," column:",{"type":43,"tag":379,"props":1840,"children":1841},{},[1842,1860],{"type":43,"tag":55,"props":1843,"children":1844},{},[1845,1847,1852,1854,1859],{"type":48,"value":1846},"Check that every ",{"type":43,"tag":61,"props":1848,"children":1850},{"className":1849},[],[1851],{"type":48,"value":1601},{"type":48,"value":1853}," value is in the options list. Outliers get re-classified or bumped to ",{"type":43,"tag":61,"props":1855,"children":1857},{"className":1856},[],[1858],{"type":48,"value":742},{"type":48,"value":196},{"type":43,"tag":55,"props":1861,"children":1862},{},[1863,1865,1871,1873,1879,1881,1886,1888,1894],{"type":48,"value":1864},"Check for clusters: if 180 documents say ",{"type":43,"tag":61,"props":1866,"children":1868},{"className":1867},[],[1869],{"type":48,"value":1870},"consent_required",{"type":48,"value":1872}," and 20 say ",{"type":43,"tag":61,"props":1874,"children":1876},{"className":1875},[],[1877],{"type":48,"value":1878},"consent_not_unreasonably_withheld",{"type":48,"value":1880},", that's probably real. If 195 say ",{"type":43,"tag":61,"props":1882,"children":1884},{"className":1883},[],[1885],{"type":48,"value":1870},{"type":48,"value":1887}," and 5 say ",{"type":43,"tag":61,"props":1889,"children":1891},{"className":1890},[],[1892],{"type":48,"value":1893},"freely_assignable",{"type":48,"value":1895},", look at the 5 — they're either genuinely different or misclassified.",{"type":43,"tag":149,"props":1897,"children":1898},{},[1899,1900,1905,1906,1911,1912,1917],{"type":48,"value":1831},{"type":43,"tag":61,"props":1901,"children":1903},{"className":1902},[],[1904],{"type":48,"value":526},{"type":48,"value":1750},{"type":43,"tag":61,"props":1907,"children":1909},{"className":1908},[],[1910],{"type":48,"value":548},{"type":48,"value":1750},{"type":43,"tag":61,"props":1913,"children":1915},{"className":1914},[],[1916],{"type":48,"value":570},{"type":48,"value":1838},{"type":43,"tag":379,"props":1919,"children":1920},{},[1921,1926],{"type":43,"tag":55,"props":1922,"children":1923},{},[1924],{"type":48,"value":1925},"Check format consistency. Normalize.",{"type":43,"tag":55,"props":1927,"children":1928},{},[1929,1931,1936],{"type":48,"value":1930},"Flag implausible values (a 99-year term, a $1 cap) as ",{"type":43,"tag":61,"props":1932,"children":1934},{"className":1933},[],[1935],{"type":48,"value":742},{"type":48,"value":196},{"type":43,"tag":149,"props":1938,"children":1939},{},[1940,1941,1946],{"type":48,"value":1831},{"type":43,"tag":61,"props":1942,"children":1944},{"className":1943},[],[1945],{"type":48,"value":482},{"type":48,"value":1947}," column AND for the companion source quotes on every other column:",{"type":43,"tag":379,"props":1949,"children":1950},{},[1951,1970,1989],{"type":43,"tag":55,"props":1952,"children":1953},{},[1954,1956,1961,1963,1968],{"type":48,"value":1955},"Spot-check by re-opening the source document at the cited ",{"type":43,"tag":61,"props":1957,"children":1959},{"className":1958},[],[1960],{"type":48,"value":1637},{"type":48,"value":1962}," for a random sample (at least 3–5 rows per column, or 10% of rows, whichever is larger) and comparing the stored ",{"type":43,"tag":61,"props":1964,"children":1966},{"className":1965},[],[1967],{"type":48,"value":1626},{"type":48,"value":1969}," character-for-character against the source.",{"type":43,"tag":55,"props":1971,"children":1972},{},[1973,1975,1980,1982,1987],{"type":48,"value":1974},"If any quote is composed, paraphrased, reconstructed, or cannot be located at the cited span: downgrade that cell to ",{"type":43,"tag":61,"props":1976,"children":1978},{"className":1977},[],[1979],{"type":48,"value":742},{"type":48,"value":1981}," with ",{"type":43,"tag":61,"props":1983,"children":1985},{"className":1984},[],[1986],{"type":48,"value":1813},{"type":48,"value":1988}," in notes, and flag the whole column — expand the spot-check to the rest of the column rather than assuming the other rows are clean. One fabricated quote is enough to justify widening the check.",{"type":43,"tag":55,"props":1990,"children":1991},{},[1992,1994,1999,2001,2006,2008,2013],{"type":48,"value":1993},"A cell with ",{"type":43,"tag":61,"props":1995,"children":1997},{"className":1996},[],[1998],{"type":48,"value":1655},{"type":48,"value":2000}," and a mismatched quote is a higher-severity failure than an ",{"type":43,"tag":61,"props":2002,"children":2004},{"className":2003},[],[2005],{"type":48,"value":720},{"type":48,"value":2007}," or ",{"type":43,"tag":61,"props":2009,"children":2011},{"className":2010},[],[2012],{"type":48,"value":742},{"type":48,"value":2014}," cell — it misrepresents the evidence trail. Downgrade aggressively.",{"type":43,"tag":765,"props":2016,"children":2018},{"id":2017},"step-5-output",[2019],{"type":48,"value":2020},"Step 5: Output",{"type":43,"tag":149,"props":2022,"children":2023},{},[2024],{"type":48,"value":2025},"Write the table in three formats:",{"type":43,"tag":149,"props":2027,"children":2028},{},[2029,2034],{"type":43,"tag":153,"props":2030,"children":2031},{},[2032],{"type":48,"value":2033},"Markdown",{"type":48,"value":2035}," (always, for in-session review):",{"type":43,"tag":137,"props":2037,"children":2041},{"className":2038,"code":2039,"language":2040,"meta":145,"style":145},"language-markdown shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","| Document | Counterparty | Effective Date | Change of Control | Assignment | ⚠️ Flags |\n|---|---|---|---|---|---|\n| Vendor MSA — Acme | Acme Corp | 2023-04-01 | consent_required | consent_required | — |\n| Supply Agmt — Beta | Beta LLC | 2021-11-15 | ⚠️ unclear | silent | CoC ambiguous §14.2 |\n","markdown",[2042],{"type":43,"tag":61,"props":2043,"children":2044},{"__ignoreMap":145},[2045,2108,2116,2176],{"type":43,"tag":914,"props":2046,"children":2047},{"class":916,"line":917},[2048,2053,2058,2062,2067,2071,2076,2080,2085,2089,2094,2098,2103],{"type":43,"tag":914,"props":2049,"children":2050},{"style":927},[2051],{"type":48,"value":2052},"|",{"type":43,"tag":914,"props":2054,"children":2055},{"style":975},[2056],{"type":48,"value":2057}," Document ",{"type":43,"tag":914,"props":2059,"children":2060},{"style":927},[2061],{"type":48,"value":2052},{"type":43,"tag":914,"props":2063,"children":2064},{"style":975},[2065],{"type":48,"value":2066}," Counterparty ",{"type":43,"tag":914,"props":2068,"children":2069},{"style":927},[2070],{"type":48,"value":2052},{"type":43,"tag":914,"props":2072,"children":2073},{"style":975},[2074],{"type":48,"value":2075}," Effective Date ",{"type":43,"tag":914,"props":2077,"children":2078},{"style":927},[2079],{"type":48,"value":2052},{"type":43,"tag":914,"props":2081,"children":2082},{"style":975},[2083],{"type":48,"value":2084}," Change of Control ",{"type":43,"tag":914,"props":2086,"children":2087},{"style":927},[2088],{"type":48,"value":2052},{"type":43,"tag":914,"props":2090,"children":2091},{"style":975},[2092],{"type":48,"value":2093}," Assignment ",{"type":43,"tag":914,"props":2095,"children":2096},{"style":927},[2097],{"type":48,"value":2052},{"type":43,"tag":914,"props":2099,"children":2100},{"style":975},[2101],{"type":48,"value":2102}," ⚠️ Flags ",{"type":43,"tag":914,"props":2104,"children":2105},{"style":927},[2106],{"type":48,"value":2107},"|\n",{"type":43,"tag":914,"props":2109,"children":2110},{"class":916,"line":933},[2111],{"type":43,"tag":914,"props":2112,"children":2113},{"style":927},[2114],{"type":48,"value":2115},"|---|---|---|---|---|---|\n",{"type":43,"tag":914,"props":2117,"children":2118},{"class":916,"line":962},[2119,2123,2128,2132,2137,2141,2146,2150,2155,2159,2163,2167,2172],{"type":43,"tag":914,"props":2120,"children":2121},{"style":927},[2122],{"type":48,"value":2052},{"type":43,"tag":914,"props":2124,"children":2125},{"style":975},[2126],{"type":48,"value":2127}," Vendor MSA — Acme ",{"type":43,"tag":914,"props":2129,"children":2130},{"style":927},[2131],{"type":48,"value":2052},{"type":43,"tag":914,"props":2133,"children":2134},{"style":975},[2135],{"type":48,"value":2136}," Acme Corp ",{"type":43,"tag":914,"props":2138,"children":2139},{"style":927},[2140],{"type":48,"value":2052},{"type":43,"tag":914,"props":2142,"children":2143},{"style":975},[2144],{"type":48,"value":2145}," 2023-04-01 ",{"type":43,"tag":914,"props":2147,"children":2148},{"style":927},[2149],{"type":48,"value":2052},{"type":43,"tag":914,"props":2151,"children":2152},{"style":975},[2153],{"type":48,"value":2154}," consent_required ",{"type":43,"tag":914,"props":2156,"children":2157},{"style":927},[2158],{"type":48,"value":2052},{"type":43,"tag":914,"props":2160,"children":2161},{"style":975},[2162],{"type":48,"value":2154},{"type":43,"tag":914,"props":2164,"children":2165},{"style":927},[2166],{"type":48,"value":2052},{"type":43,"tag":914,"props":2168,"children":2169},{"style":975},[2170],{"type":48,"value":2171}," — ",{"type":43,"tag":914,"props":2173,"children":2174},{"style":927},[2175],{"type":48,"value":2107},{"type":43,"tag":914,"props":2177,"children":2178},{"class":916,"line":981},[2179,2183,2188,2192,2197,2201,2206,2210,2215,2219,2224,2228,2233],{"type":43,"tag":914,"props":2180,"children":2181},{"style":927},[2182],{"type":48,"value":2052},{"type":43,"tag":914,"props":2184,"children":2185},{"style":975},[2186],{"type":48,"value":2187}," Supply Agmt — Beta ",{"type":43,"tag":914,"props":2189,"children":2190},{"style":927},[2191],{"type":48,"value":2052},{"type":43,"tag":914,"props":2193,"children":2194},{"style":975},[2195],{"type":48,"value":2196}," Beta LLC ",{"type":43,"tag":914,"props":2198,"children":2199},{"style":927},[2200],{"type":48,"value":2052},{"type":43,"tag":914,"props":2202,"children":2203},{"style":975},[2204],{"type":48,"value":2205}," 2021-11-15 ",{"type":43,"tag":914,"props":2207,"children":2208},{"style":927},[2209],{"type":48,"value":2052},{"type":43,"tag":914,"props":2211,"children":2212},{"style":975},[2213],{"type":48,"value":2214}," ⚠️ unclear ",{"type":43,"tag":914,"props":2216,"children":2217},{"style":927},[2218],{"type":48,"value":2052},{"type":43,"tag":914,"props":2220,"children":2221},{"style":975},[2222],{"type":48,"value":2223}," silent ",{"type":43,"tag":914,"props":2225,"children":2226},{"style":927},[2227],{"type":48,"value":2052},{"type":43,"tag":914,"props":2229,"children":2230},{"style":975},[2231],{"type":48,"value":2232}," CoC ambiguous §14.2 ",{"type":43,"tag":914,"props":2234,"children":2235},{"style":927},[2236],{"type":48,"value":2107},{"type":43,"tag":149,"props":2238,"children":2239},{},[2240,2245,2247,2252,2254,2259],{"type":43,"tag":153,"props":2241,"children":2242},{},[2243],{"type":48,"value":2244},"CSV",{"type":48,"value":2246}," (",{"type":43,"tag":61,"props":2248,"children":2250},{"className":2249},[],[2251],{"type":48,"value":120},{"type":48,"value":2253},", always):\nOne file for the values, one companion file for the quotes and locations (",{"type":43,"tag":61,"props":2255,"children":2257},{"className":2256},[],[2258],{"type":48,"value":128},{"type":48,"value":2260},"). Keeps the main file clean and the evidence trail complete.",{"type":43,"tag":149,"props":2262,"children":2263},{},[2264,2269,2270,2275,2277,2282,2284,2290,2292,2298,2300,2306],{"type":43,"tag":153,"props":2265,"children":2266},{},[2267],{"type":48,"value":2268},"Excel",{"type":48,"value":2246},{"type":43,"tag":61,"props":2271,"children":2273},{"className":2272},[],[2274],{"type":48,"value":112},{"type":48,"value":2276},") or ",{"type":43,"tag":153,"props":2278,"children":2279},{},[2280],{"type":48,"value":2281},"Google Sheets",{"type":48,"value":2283}," — whichever the user works in. Ask; don't guess. Both follow the same workbook structure (see ",{"type":43,"tag":61,"props":2285,"children":2287},{"className":2286},[],[2288],{"type":48,"value":2289},"references\u002Fexcel-output.md",{"type":48,"value":2291}," and ",{"type":43,"tag":61,"props":2293,"children":2295},{"className":2294},[],[2296],{"type":48,"value":2297},"references\u002Fgsheets-output.md",{"type":48,"value":2299},"). For Excel: Claude in Excel (Office agent) if available, ",{"type":43,"tag":61,"props":2301,"children":2303},{"className":2302},[],[2304],{"type":48,"value":2305},"openpyxl",{"type":48,"value":2307}," fallback. For Sheets: Sheets MCP if available, Sheets API via ADC, CSV-import fallback. In the spreadsheet output:",{"type":43,"tag":379,"props":2309,"children":2310},{},[2311,2316,2321,2334],{"type":43,"tag":55,"props":2312,"children":2313},{},[2314],{"type":48,"value":2315},"Each data column is paired with a hidden source column containing the quote and location. Cell comments (Excel) or notes (Sheets) on the visible column surface the quote on hover.",{"type":43,"tag":55,"props":2317,"children":2318},{},[2319],{"type":48,"value":2320},"Color code by state: white = answered, yellow = unclear or needs_review, gray = not_present.",{"type":43,"tag":55,"props":2322,"children":2323},{},[2324,2326,2332],{"type":48,"value":2325},"A ",{"type":43,"tag":61,"props":2327,"children":2329},{"className":2328},[],[2330],{"type":48,"value":2331},"Verified",{"type":48,"value":2333}," column per data column, blank by default. The reviewer marks it. This is the verify\u002Fflag pattern that makes the table auditable — the deal team can see at a glance what a human has actually checked.",{"type":43,"tag":55,"props":2335,"children":2336},{},[2337,2338,2344],{"type":48,"value":2325},{"type":43,"tag":61,"props":2339,"children":2341},{"className":2340},[],[2342],{"type":48,"value":2343},"_schema",{"type":48,"value":2345}," sheet with the column definitions, so the file is self-documenting.",{"type":43,"tag":149,"props":2347,"children":2348},{},[2349,2351,2357],{"type":48,"value":2350},"Prepend the work-product header from the plugin config ",{"type":43,"tag":61,"props":2352,"children":2354},{"className":2353},[],[2355],{"type":48,"value":2356},"## Outputs",{"type":48,"value":2358}," as a top row. Alongside it, include a distribution note:",{"type":43,"tag":2360,"props":2361,"children":2362},"blockquote",{},[2363],{"type":43,"tag":149,"props":2364,"children":2365},{},[2366],{"type":48,"value":2367},"This review is derived from source documents that may be privileged, confidential, or both. It inherits the sources' privilege and confidentiality status — distribution beyond the privilege circle can waive privilege. Store with the matter's privileged files and make distribution decisions deliberately.",{"type":43,"tag":765,"props":2369,"children":2371},{"id":2370},"step-6-summary",[2372],{"type":48,"value":2373},"Step 6: Summary",{"type":43,"tag":149,"props":2375,"children":2376},{},[2377],{"type":48,"value":2378},"After the table is written, give the user a one-screen readout:",{"type":43,"tag":379,"props":2380,"children":2381},{},[2382,2387,2412,2417,2422],{"type":43,"tag":55,"props":2383,"children":2384},{},[2385],{"type":48,"value":2386},"Document count, column count, rows completed",{"type":43,"tag":55,"props":2388,"children":2389},{},[2390,2392,2397,2399,2404,2405,2410],{"type":48,"value":2391},"Count of ",{"type":43,"tag":61,"props":2393,"children":2395},{"className":2394},[],[2396],{"type":48,"value":698},{"type":48,"value":2398},", ",{"type":43,"tag":61,"props":2400,"children":2402},{"className":2401},[],[2403],{"type":48,"value":720},{"type":48,"value":2398},{"type":43,"tag":61,"props":2406,"children":2408},{"className":2407},[],[2409],{"type":48,"value":742},{"type":48,"value":2411}," per column — this is the verification workload",{"type":43,"tag":55,"props":2413,"children":2414},{},[2415],{"type":48,"value":2416},"Any columns where the normalization pass flagged >10% of rows",{"type":43,"tag":55,"props":2418,"children":2419},{},[2420],{"type":48,"value":2421},"Where the output files are",{"type":43,"tag":55,"props":2423,"children":2424},{},[2425],{"type":48,"value":2426},"A reminder: every cell is a lead, not a finding. Verification required before this informs a rep, a schedule, or a memo.",{"type":43,"tag":247,"props":2428,"children":2430},{"id":2429},"close-with-the-next-steps-decision-tree",[2431],{"type":48,"value":2432},"Close with the next-steps decision tree",{"type":43,"tag":149,"props":2434,"children":2435},{},[2436,2438,2443],{"type":48,"value":2437},"End with the next-steps decision tree per CLAUDE.md ",{"type":43,"tag":61,"props":2439,"children":2441},{"className":2440},[],[2442],{"type":48,"value":2356},{"type":48,"value":2444},". Customize the options to what this skill just produced — the five default branches (draft the X, escalate, get more facts, watch and wait, something else) are a starting point, not a lock-in. The tree is the output; the lawyer picks.",{"type":43,"tag":247,"props":2446,"children":2448},{"id":2447},"what-this-skill-does-not-do",[2449],{"type":48,"value":2450},"What this skill does not do",{"type":43,"tag":379,"props":2452,"children":2453},{},[2454,2464,2487,2504],{"type":43,"tag":55,"props":2455,"children":2456},{},[2457,2462],{"type":43,"tag":153,"props":2458,"children":2459},{},[2460],{"type":48,"value":2461},"It does not replace reading the documents.",{"type":48,"value":2463}," It tells you where to look.",{"type":43,"tag":55,"props":2465,"children":2466},{},[2467,2472,2474,2479,2480,2485],{"type":43,"tag":153,"props":2468,"children":2469},{},[2470],{"type":48,"value":2471},"It does not produce confidence scores.",{"type":48,"value":2473}," A 0.73 is not information. The ",{"type":43,"tag":61,"props":2475,"children":2477},{"className":2476},[],[2478],{"type":48,"value":720},{"type":48,"value":1750},{"type":43,"tag":61,"props":2481,"children":2483},{"className":2482},[],[2484],{"type":48,"value":742},{"type":48,"value":2486}," states and the verbatim quotes are the confidence signal — if the quote doesn't support the value, flag it.",{"type":43,"tag":55,"props":2488,"children":2489},{},[2490,2495,2497,2502],{"type":43,"tag":153,"props":2491,"children":2492},{},[2493],{"type":48,"value":2494},"It does not silently skip documents.",{"type":48,"value":2496}," Every document the user pointed at gets a row. A document that couldn't be read gets a row of ",{"type":43,"tag":61,"props":2498,"children":2500},{"className":2499},[],[2501],{"type":48,"value":742},{"type":48,"value":2503}," with a note.",{"type":43,"tag":55,"props":2505,"children":2506},{},[2507,2512],{"type":43,"tag":153,"props":2508,"children":2509},{},[2510],{"type":48,"value":2511},"It does not pretend a paraphrase is a quote.",{"type":48,"value":2513}," The evidence trail is the whole point.",{"type":43,"tag":247,"props":2515,"children":2517},{"id":2516},"relationship-to-other-skills",[2518],{"type":48,"value":2519},"Relationship to other skills",{"type":43,"tag":379,"props":2521,"children":2522},{},[2523,2533,2544],{"type":43,"tag":55,"props":2524,"children":2525},{},[2526,2531],{"type":43,"tag":61,"props":2527,"children":2529},{"className":2528},[],[2530],{"type":48,"value":357},{"type":48,"value":2532}," finds issues; this extracts data points. If an extraction reveals an issue (a MAC clause that references a specific earnings target, a poison pill), note it and suggest running diligence-issue-extraction on that document.",{"type":43,"tag":55,"props":2534,"children":2535},{},[2536,2542],{"type":43,"tag":61,"props":2537,"children":2539},{"className":2538},[],[2540],{"type":48,"value":2541},"material-contract-schedule",{"type":48,"value":2543}," builds one specific table (the disclosure schedule). It can consume this skill's output directly — the schedule is a filtered, reformatted view of a tabular review.",{"type":43,"tag":55,"props":2545,"children":2546},{},[2547,2553],{"type":43,"tag":61,"props":2548,"children":2550},{"className":2549},[],[2551],{"type":48,"value":2552},"ai-tool-handoff",{"type":48,"value":2554}," hands bulk review to Luminance\u002FKira when the corpus is too large or the team prefers a dedicated platform. This skill is the in-house option for anything it can handle — run it first, hand off the residue.",{"type":43,"tag":247,"props":2556,"children":2558},{"id":2557},"output-safeguards",[2559],{"type":48,"value":2560},"Output safeguards",{"type":43,"tag":149,"props":2562,"children":2563},{},[2564,2566,2571],{"type":48,"value":2565},"Every output gets the work-product header. Every cell gets a source citation or a flagged state. The summary explicitly says verification is required. The Excel ",{"type":43,"tag":61,"props":2567,"children":2569},{"className":2568},[],[2570],{"type":48,"value":2331},{"type":48,"value":2572}," column makes the verification state auditable. This is not a tool that lets you skip reading; it's a tool that makes reading faster.",{"type":43,"tag":2574,"props":2575,"children":2576},"style",{},[2577],{"type":48,"value":2578},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2580,"total":2673},[2581,2595,2609,2626,2636,2647,2658],{"slug":2582,"name":2582,"fn":2583,"description":2584,"org":2585,"tags":2586,"stars":26,"repoUrl":27,"updatedAt":2594},"ai-inventory","track AI systems for EU AI Act","EU AI Act per-system inventory — track each AI system's role (provider, deployer, importer, distributor, authorized representative, product manufacturer) and risk tier (prohibited, high-risk, limited, minimal, GPAI, GPAI+systemic). Role and tier are assessed per system, not per company. Use when the user says \"ai inventory\", \"add an ai system\", \"what systems do we have\", \"classify this ai system\", \"eu ai act register\", or \"ai system registry\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2587,2590,2593],{"name":2588,"slug":2589,"type":16},"Compliance","compliance",{"name":2591,"slug":2592,"type":16},"Governance","governance",{"name":24,"slug":25,"type":16},"2026-05-14T06:02:19.677579",{"slug":2552,"name":2552,"fn":2596,"description":2597,"org":2598,"tags":2599,"stars":26,"repoUrl":27,"updatedAt":2608},"manage handoff to bulk legal review tools","Detects when Luminance, Kira, or a similar bulk-review tool is in use, hands off the high-volume clause extraction to it, and QAs its output per the trust level in `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fcorporate-legal\u002FCLAUDE.md`. Use when user says \"send to Luminance\", \"bulk review\", \"AI extraction\", or when diligence-issue-extraction hits a high-volume category.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2600,2603,2604,2605],{"name":2601,"slug":2602,"type":16},"Automation","automation",{"name":14,"slug":15,"type":16},{"name":24,"slug":25,"type":16},{"name":2606,"slug":2607,"type":16},"QA","qa","2026-05-14T06:01:31.00555",{"slug":2610,"name":2610,"fn":2611,"description":2612,"org":2613,"tags":2614,"stars":26,"repoUrl":27,"updatedAt":2625},"aia-generation","run AI impact assessments","Run an AI impact assessment — structured intake, risk analysis, regulatory classification per regime in scope, policy consistency diff, and recommendation with conditions. Uses the house-style structure learned from the seed impact assessment in `~\u002F.claude\u002Fplugins\u002Fconfig\u002Fclaude-for-legal\u002Fai-governance-legal\u002FCLAUDE.md`. Use when user says \"impact assessment for\", \"assess this AI use case\", \"run an AIA\", \"generate an AIA\", \"we need to document this AI system\", \"AI risk assessment for X\", or follows a conditional triage result.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2615,2616,2619,2622],{"name":24,"slug":25,"type":16},{"name":2617,"slug":2618,"type":16},"Policy","policy",{"name":2620,"slug":2621,"type":16},"Regulatory Compliance","regulatory-compliance",{"name":2623,"slug":2624,"type":16},"Risk Assessment","risk-assessment","2026-05-13T06:03:19.61029",{"slug":2627,"name":2627,"fn":2628,"description":2629,"org":2630,"tags":2631,"stars":26,"repoUrl":27,"updatedAt":2635},"amendment-history","trace contract amendment history","Trace how a contract has changed across its base agreement and all amendments — either a summary of all changes over time, or a provision trace for a specific clause. Use when the user says \"what changed in this contract over time\", \"show me the amendment history\", \"where's the latest [clause]\", \"how has [provision] evolved\", or uploads multiple versions of an agreement.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2632,2633,2634],{"name":14,"slug":15,"type":16},{"name":21,"slug":22,"type":16},{"name":24,"slug":25,"type":16},"2026-05-13T06:03:34.070339",{"slug":2637,"name":2637,"fn":2638,"description":2639,"org":2640,"tags":2641,"stars":26,"repoUrl":27,"updatedAt":2646},"auto-updater","check for community skill updates","Check installed community skills for updates. Shows a diff and requires explicit approval before applying. Use when the user says \"check for updates\", \"update my skills\", \"anything new for my installed skills\", or when invoked from the registry-sync agent.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2642,2643],{"name":2601,"slug":2602,"type":16},{"name":2644,"slug":2645,"type":16},"Plugin Development","plugin-development","2026-05-13T06:02:55.642269",{"slug":2648,"name":2648,"fn":2649,"description":2650,"org":2651,"tags":2652,"stars":26,"repoUrl":27,"updatedAt":2657},"bar-prep-questions","provide bar exam practice questions","Bar prep questions — MBE or essay, targeted at your weak subjects and bar jurisdiction. Tracks misses and comes back to patterns. Use when the user says \"bar prep\", \"MBE questions\", \"practice essay\", or \"test me for the bar\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2653,2656],{"name":2654,"slug":2655,"type":16},"Education","education",{"name":24,"slug":25,"type":16},"2026-07-24T05:41:43.01243",{"slug":2659,"name":2659,"fn":2660,"description":2661,"org":2662,"tags":2663,"stars":26,"repoUrl":27,"updatedAt":2672},"board-minutes","draft board and committee meeting minutes","Drafts board or committee meeting minutes in your house format. Auto-detects upcoming board and committee meetings from your calendar, asks for the agenda and any slides or pre-read materials, and produces a complete draft in the format learned from your seed minutes. Also handles written consents in lieu of meetings. Trigger: \"board minutes\", \"draft minutes\", \"upcoming board meeting\", \"committee minutes\", \"written consent\", or calendar detection of an upcoming board or committee event.\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2664,2667,2668,2669],{"name":2665,"slug":2666,"type":16},"Documentation","documentation",{"name":2591,"slug":2592,"type":16},{"name":24,"slug":25,"type":16},{"name":2670,"slug":2671,"type":16},"Meetings","meetings","2026-05-14T06:01:29.792942",118,{"items":2675,"total":2858},[2676,2697,2711,2723,2742,2753,2772,2792,2806,2821,2829,2842],{"slug":2677,"name":2677,"fn":2678,"description":2679,"org":2680,"tags":2681,"stars":2694,"repoUrl":2695,"updatedAt":2696},"algorithmic-art","create algorithmic art with p5.js","Creating algorithmic art using p5.js with seeded randomness and interactive parameter exploration. Use this when users request creating art using code, generative art, algorithmic art, flow fields, or particle systems. Create original algorithmic art rather than copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2682,2685,2688,2691],{"name":2683,"slug":2684,"type":16},"Creative","creative",{"name":2686,"slug":2687,"type":16},"Design","design",{"name":2689,"slug":2690,"type":16},"Generative Art","generative-art",{"name":2692,"slug":2693,"type":16},"JavaScript","javascript",161831,"https:\u002F\u002Fgithub.com\u002Fanthropics\u002Fskills","2026-04-06T17:56:15.455818",{"slug":2698,"name":2698,"fn":2699,"description":2700,"org":2701,"tags":2702,"stars":2694,"repoUrl":2695,"updatedAt":2710},"brand-guidelines","apply Anthropic brand colors and typography","Applies Anthropic's official brand colors and typography to any sort of artifact that may benefit from having Anthropic's look-and-feel. Use it when brand colors or style guidelines, visual formatting, or company design standards apply.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2703,2706,2707],{"name":2704,"slug":2705,"type":16},"Branding","branding",{"name":2686,"slug":2687,"type":16},{"name":2708,"slug":2709,"type":16},"Typography","typography","2026-04-06T17:56:05.042852",{"slug":2712,"name":2712,"fn":2713,"description":2714,"org":2715,"tags":2716,"stars":2694,"repoUrl":2695,"updatedAt":2722},"canvas-design","create posters and visual art as PNG or PDF","Create beautiful visual art in .png and .pdf documents using design philosophy. You should use this skill when the user asks to create a poster, piece of art, design, or other static piece. Create original visual designs, never copying existing artists' work to avoid copyright violations.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2717,2718,2719],{"name":2683,"slug":2684,"type":16},{"name":2686,"slug":2687,"type":16},{"name":2720,"slug":2721,"type":16},"PDF","pdf","2026-04-06T17:56:03.794732",{"slug":2724,"name":2724,"fn":2725,"description":2726,"org":2727,"tags":2728,"stars":2694,"repoUrl":2695,"updatedAt":2741},"claude-api","build apps with the Claude API","Reference for the Claude API \u002F Anthropic SDK — model ids, pricing, params, streaming, tool use, MCP, agents, caching, token counting, model migration.\nTRIGGER — read BEFORE opening the target file; don't skip because it \"looks like a one-liner\" — whenever: the prompt names Claude\u002FAnthropic in any form (Claude, Anthropic, Fable, Opus, Sonnet, Haiku, `anthropic`, `@anthropic-ai`, `claude-*`, `us.anthropic.*`, `[1m]`); the user asks about an LLM (pricing\u002Fmodel choice\u002Flimits\u002Fcaching) — never answer from memory; OR the task is LLM-shaped with provider unstated (agent\u002FMCP\u002Ftool-definition\u002Fmulti-agent\u002FRAG\u002FLLM-judge\u002Fcomputer-use; generate\u002Fsummarize\u002Fextract\u002Fclassify\u002Frewrite\u002Fconverse over NL; debugging refusals\u002Fcutoffs\u002Fstreaming\u002Ftool-calls\u002Ftokens).\nSKIP only when another provider is being worked on (overrides all triggers): OpenAI\u002FGPT\u002FGemini\u002FLlama\u002FMistral\u002FCohere\u002FOllama named in the query; OR `grep -rE 'openai|langchain_openai|google.generativeai|genai|mistralai|cohere|ollama'` over the project hits (run this grep FIRST if no provider named — don't Read the file).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2729,2732,2733,2736,2738],{"name":2730,"slug":2731,"type":16},"Agents","agents",{"name":9,"slug":8,"type":16},{"name":2734,"slug":2735,"type":16},"Anthropic SDK","anthropic-sdk",{"name":2737,"slug":2724,"type":16},"Claude API",{"name":2739,"slug":2740,"type":16},"LLM","llm","2026-07-28T05:36:08.213335",{"slug":2743,"name":2743,"fn":2744,"description":2745,"org":2746,"tags":2747,"stars":2694,"repoUrl":2695,"updatedAt":2752},"doc-coauthoring","co-author documentation and technical specs","Guide users through a structured workflow for co-authoring documentation. Use when user wants to write documentation, proposals, technical specs, decision docs, or similar structured content. This workflow helps users efficiently transfer context, refine content through iteration, and verify the doc works for readers. Trigger when user mentions writing docs, creating proposals, drafting specs, or similar documentation tasks.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2748,2749],{"name":2665,"slug":2666,"type":16},{"name":2750,"slug":2751,"type":16},"Technical Writing","technical-writing","2026-04-06T17:56:14.18897",{"slug":2754,"name":2754,"fn":2755,"description":2756,"org":2757,"tags":2758,"stars":2694,"repoUrl":2695,"updatedAt":2771},"docx","create and edit Word documents","Use this skill whenever the user wants to create, read, edit, or manipulate Word documents (.docx files) or Word templates (.dotx files). Triggers include: any mention of 'Word doc', 'word document', '.docx', '.dotx', or requests to produce professional documents with formatting like tables of contents, headings, page numbers, or letterheads. Also use when extracting or reorganizing content from .docx or .dotx files, inserting or replacing images in documents, performing find-and-replace in Word files, working with tracked changes or comments, or converting content into a polished Word document. If the user asks for a 'report', 'memo', 'letter', 'template', or similar deliverable as a Word or .docx file, use this skill. Do NOT use for PDFs, spreadsheets, Google Docs, or general coding tasks unrelated to document generation.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2759,2760,2762,2765,2768],{"name":21,"slug":22,"type":16},{"name":2761,"slug":2754,"type":16},"DOCX",{"name":2763,"slug":2764,"type":16},"Office","office",{"name":2766,"slug":2767,"type":16},"Templates","templates",{"name":2769,"slug":2770,"type":16},"Word","word","2026-07-18T05:16:23.136271",{"slug":2773,"name":2773,"fn":2774,"description":2775,"org":2776,"tags":2777,"stars":2694,"repoUrl":2695,"updatedAt":2791},"frontend-design","design production-grade frontend interfaces","Guidance for distinctive, intentional visual design when building new UI or reshaping an existing one. Helps with aesthetic direction, typography, and making choices that don't read as templated defaults.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2778,2779,2782,2785,2788],{"name":2686,"slug":2687,"type":16},{"name":2780,"slug":2781,"type":16},"Frontend","frontend",{"name":2783,"slug":2784,"type":16},"React","react",{"name":2786,"slug":2787,"type":16},"Tailwind CSS","tailwind-css",{"name":2789,"slug":2790,"type":16},"UI Components","ui-components","2026-04-06T17:56:16.723469",{"slug":2793,"name":2793,"fn":2794,"description":2795,"org":2796,"tags":2797,"stars":2694,"repoUrl":2695,"updatedAt":2805},"internal-comms","write internal company communications","A set of resources to help me write all kinds of internal communications, using the formats that my company likes to use. Claude should use this skill whenever asked to write some sort of internal communications (status reports, leadership updates, 3P updates, company newsletters, FAQs, incident reports, project updates, etc.).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2798,2801,2802],{"name":2799,"slug":2800,"type":16},"Communications","communications",{"name":2766,"slug":2767,"type":16},{"name":2803,"slug":2804,"type":16},"Writing","writing","2026-04-06T17:56:20.695522",{"slug":2807,"name":2807,"fn":2808,"description":2809,"org":2810,"tags":2811,"stars":2694,"repoUrl":2695,"updatedAt":2820},"mcp-builder","build MCP servers","Guide for creating high-quality MCP (Model Context Protocol) servers that enable LLMs to interact with external services through well-designed tools. Use when building MCP servers to integrate external APIs or services, whether in Python (FastMCP) or Node\u002FTypeScript (MCP SDK).",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2812,2813,2816,2817],{"name":2730,"slug":2731,"type":16},{"name":2814,"slug":2815,"type":16},"API Development","api-development",{"name":2739,"slug":2740,"type":16},{"name":2818,"slug":2819,"type":16},"MCP","mcp","2026-04-06T17:56:10.357665",{"slug":2721,"name":2721,"fn":2822,"description":2823,"org":2824,"tags":2825,"stars":2694,"repoUrl":2695,"updatedAt":2828},"read edit and manipulate PDF files","Use this skill whenever the user wants to do anything with PDF files. This includes reading or extracting text\u002Ftables from PDFs, combining or merging multiple PDFs into one, splitting PDFs apart, rotating pages, adding watermarks, creating new PDFs, filling PDF forms, encrypting\u002Fdecrypting PDFs, extracting images, and OCR on scanned PDFs to make them searchable. If the user mentions a .pdf file or asks to produce one, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2826,2827],{"name":21,"slug":22,"type":16},{"name":2720,"slug":2721,"type":16},"2026-04-06T17:56:02.483316",{"slug":2830,"name":2830,"fn":2831,"description":2832,"org":2833,"tags":2834,"stars":2694,"repoUrl":2695,"updatedAt":2841},"pptx","create and edit PowerPoint presentations","Use this skill any time a .pptx or .potx file is involved in any way — as input, output, or both. This includes: creating slide decks, pitch decks, or presentations; reading, parsing, or extracting text from any .pptx or .potx file (even if the extracted content will be used elsewhere, like in an email or summary); editing, modifying, or updating existing presentations; combining or splitting slide files; working with templates (.potx), layouts, speaker notes, or comments. Trigger whenever the user mentions \"deck,\" \"slides,\" \"presentation,\" or references a .pptx or .potx filename, regardless of what they plan to do with the content afterward. If a .pptx or .potx file needs to be opened, created, or touched, use this skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2835,2838],{"name":2836,"slug":2837,"type":16},"PowerPoint","powerpoint",{"name":2839,"slug":2840,"type":16},"Presentations","presentations","2026-07-18T05:16:24.1471",{"slug":2843,"name":2843,"fn":2844,"description":2845,"org":2846,"tags":2847,"stars":2694,"repoUrl":2695,"updatedAt":2857},"skill-creator","create and optimize agent skills","Create new skills, modify and improve existing skills, and measure skill performance. Use when users want to create a skill from scratch, edit, or optimize an existing skill, run evals to test a skill, benchmark skill performance with variance analysis, or optimize a skill's description for better triggering accuracy.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":11},[2848,2849,2850,2853,2856],{"name":2730,"slug":2731,"type":16},{"name":2665,"slug":2666,"type":16},{"name":2851,"slug":2852,"type":16},"Evals","evals",{"name":2854,"slug":2855,"type":16},"Performance","performance",{"name":2750,"slug":2751,"type":16},"2026-04-19T06:45:40.804",490]