ooligo
claude-skill

Derive a negotiation playbook from executed agreements

Difficulty
advanced
Setup time
4-8 hours
For
legal-ops-manager · in-house-counsel
Legal Ops

Stack

A Claude Skill that reads a folder of executed agreements and derives the negotiation playbook they support: the standard position per clause with the arithmetic behind it, the full range of places you actually land, the worst term you have ever signed, and a coverage report naming every field the corpus cannot supply. The bundle ships at apps/web/public/artifacts/playbook-from-precedent-claude-skill/ and contains SKILL.md plus three reference files, one of which you fill in before the first run.

The Skill is read-only. It proposes positions with evidence attached and approves none of them, because a playbook position is a delegation of signature authority and belongs to a named person.

The gap it closes

Playbooks get written from memory. Someone senior recalls where the company usually lands, writes it into a Word document, and the document becomes the standard — which works until the person leaves or the recollection turns out to describe three deals from 2023. The obvious correction is to derive the playbook from the contracts instead, and the obvious correction has a defect that is easy to miss and expensive to ship.

A folder of executed agreements is a censored sample. It contains every negotiation that ended in a signature and no negotiation that ended in a walk. That property is not a data-quality problem you can clean up; it is what the folder is. And it lands precisely on the field a playbook exists to state. The walk-away is definitionally the position that produces no executed agreement, so it is the one thing the corpus is guaranteed not to contain. Any tool that reads signed contracts and emits a confident red line has invented it.

What the corpus does support is the bound running the other way. The most adverse term in the file is an upper bound on your demonstrated tolerance: you did not walk there, because there is a signature on it. Phase 5 emits that as worst_signed with an agreement ID and a date, and refuses to emit walk_away at all. Phase 7 then runs the test backwards — if a drafter asserts a red line at 12-month fees and the corpus contains a signed uncapped IP indemnity, that contradiction is flagged with the agreement and the date. It matters commercially rather than editorially: a counterparty holding your prior agreement can produce it, and a line you have already crossed is not a line.

When to use

When a playbook is being written or rewritten and the drafters are working from recollection. When an existing playbook is being audited against practice and the question is where the written standard and the signed reality diverged. When signature authority is moving to a business team and the escalation thresholds have to survive being questioned. When a CLM rollout needs seed positions and the vendor’s extraction has produced clause frequencies with no segmentation behind them.

When NOT to use

  • Fewer than roughly 25 executed agreements on your own paper for the agreement type. Below that the arithmetic in Phase 4 cannot separate a position from a coincidence, and the run returns a coverage report with almost nothing in it. Read the agreements.
  • You need the walk-away. The corpus cannot produce one, for the reason above. If that is the deliverable, this is the wrong tool.
  • The corpus is mostly counterparty paper and nobody can label which is which. Phase 1 refuses rather than producing a plausible answer.
  • You want positions approved, not drafted. The output is a proposal with citations. Approval is a legal decision.
  • Nobody will fill in the manifest. references/1-corpus-manifest.md is what makes every segmentation possible. Without it the run has one undifferentiated pile and reports a blended position for unrelated negotiations.

What the skill actually does

Seven phases, fixed order, with hard refusals in two of them.

Phase 1 joins every agreement to its manifest row, and refuses if more than 10% of the corpus lacks paper_of_origin. It does not guess the field from the document. This refusal exists because the characteristic failure here is silent: a term appears in 78% of executed agreements, gets written down as the company standard, and is in fact an artifact of 78% of those agreements having been signed on the other side’s form. Frequency measured across mixed paper is a measurement of your counterparties’ drafting preferences reported under your name.

Phases 2 and 3 split extraction from normalization — verbatim quote with a page pointer first, comparable value in a stated unit second. A single pass conflates “the clause says X” with “X equals Y in our units,” and once those merge the normalization errors hide inside quotes nobody re-reads. A clause slot with no match renders as absent, which is a value that participates in the statistics rather than a parse failure that gets dropped.

Phase 4 is where the threshold lives. Cells are (clause, paper_of_origin, agreement_type, counterparty_tier), and the modal value is reported with the Wilson score interval on its proportion rather than the raw percentage. A candidate earns the standard label only when the 95% lower bound clears 0.60. That rule is what makes small samples behave, and the arithmetic is worth seeing: a term appearing in 8 of 10 agreements is 80% by count and carries a 95% interval of roughly 49% to 94%, which spans “most of the time” and “barely more than half” and therefore cannot be called a standard. The same 80% at 20 of 25 has a lower bound near 61% and clears. Roughly 25 same-paper instances per clause is the practical floor; shorter cells render as insufficient-evidence with the sample size they would need, never as a softened position.

Phase 6 gates the fallback ladder on two conditions — redline history supplied, and a genuinely multi-modal distribution rather than one cluster with noise. Executed text records where you landed, not what you opened with, so deriving a fallback_1 / fallback_2 ladder from final PDFs asserts an intent the evidence does not carry. When the conditions fail the output says observed_range under that name, and a required fallback_ladder_reason field stops “we had no version history” from being indistinguishable from “there is no ladder here.”

Phase 7 splits every cell on a 24-month recency window and reports divergent cells as two positions with dates rather than averaging them, because a 2022 liability cap averaged with a 2026 one describes neither. The report writes to references/3-coverage-report-template.md, which opens with the not-inferable and insufficient-evidence rows and puts the derived positions last, since those need the least review.

Cost and throughput

Model spend is not the constraint. A 15-page MSA runs roughly 8,000 to 12,000 tokens — an estimate, not a measured figure — so a 60-agreement corpus is on the order of 600,000 input tokens. At Anthropic’s published rate for Claude Opus 5 of $5 per million input tokens, that is about $3 of input plus extraction output, landing the whole pass under $10.

The human cost is the number that matters. Filling in the manifest is 1-3 minutes per agreement if the metadata is already in a CLM and 5-10 if someone has to open each file, so a 60-agreement corpus is a half-day of intake before the first run. Add roughly 2-4 hours reviewing the coverage report, most of it on the contradiction and drift sections. The manifest persists, so the second run is a diff and costs a fraction of the first. Quarterly re-runs are the cadence worth committing to — DocJuris’s survey of roughly 300 legal departments, published in October 2024, found that even at the most mature stage the recurring failure is ownership, with the first version of the playbook never improving.

Failure modes

  • The paper-of-origin confound. A frequency built across mixed paper reads as your standard and is your counterparties’. Guard: Phase 1 refuses above a 10% missing rate, and paper_of_origin is a cell dimension rather than a filter, so a counterparty-paper position can never silently merge into the own-paper one.
  • Small-n false confidence. Eight instances out of ten looks decisive and is not. Guard: the standard label requires a Wilson 95% lower bound above 0.60, and failing cells report n_required instead of a hedge.
  • Inventing the walk-away. The most valuable field in a playbook is the one the corpus cannot supply, which is exactly the pressure that produces a fabricated one. Guard: walk_away is a single-value enum in references/2-clause-position-schema.md — there is no code path that derives one.
  • A red line your own file already crossed. Guard: Phase 7 tests any asserted walk-away backwards against worst_signed and flags contradictions with the agreement ID and date.
  • Bargaining position read as preference. Positions look weaker in the enterprise segment because that is where you conceded, not because the standard differs there. Guard: counterparty_tier is a cell dimension, and when segments disagree materially the blended position is suppressed and the suppression is named in the report.
  • Extraction accuracy taken on faith. Clause identification is not solved — CUAD, the expert-annotated benchmark of 13,000-plus labels across 510 commercial contracts and 41 clause types, exists because model performance on exactly this task has room to improve. Guard: every normalized value keeps its source quote and page pointer, so the second pass is auditable against the first without reopening the PDF.

vs alternatives

vs DraftWise Playbook Studio. The direct off-the-shelf answer, launched on 25 February 2026, and the vendor’s claim is that it compresses playbook creation from six-plus manual hours to five minutes by extracting positions from deal history. If you are already on DraftWise, use it — it is integrated with drafting, which this bundle is not. What its launch material does not state is a minimum corpus size, a segmentation requirement, or what it does when the evidence is thin, and those three are the whole substance of the problem. Run this skill against the same corpus as a check on the positions rather than as a replacement for the product.

vs Spellbook Benchmarks. Spellbook’s 2026 State of Contracts work publishes 270-plus clause benchmarks across 13 contract types drawn from hundreds of thousands of contracts in 30 countries, on a give-to-get data model. That answers a different question — where the market sits — and it is the better instrument for arguing that a counterparty’s ask is off-market. It cannot tell you where you sit, and the gap between the two is often the most useful finding available. Use both; do not substitute one.

vs your CLM’s clause library. Ironclad and Juro will both surface clause frequencies across your repository, and if you already have the repository that is the cheapest starting point. The parts they typically do not give you are the paper-of-origin segmentation, the confidence bound that separates a position from a coincidence, and the explicit refusal to state a walk-away. Those three are what this bundle adds on top.

vs writing it in a Word document from memory. The honest comparison, since it is what most teams do, and it is fine at ten agreements where one person has read all of them. Past that the failure is not that memory is wrong but that nothing distinguishes the well-evidenced positions from the recalled ones, so the whole document carries the same authority. The coverage report’s value is that it grades itself.

Related: clause-extraction-claude-skill for the extraction layer this builds on, clause-library-design for structuring the library the positions land in, and contract-redline-claude-skill for applying the playbook once it exists.

Files in this artifact

Download all (.zip)