playbook-easy-extract
Use when extracting the negotiated positions from a single prior contract as input to the Easy Playbook auto-generation pipeline.
Skill by LegalQuants
Chalk Labs
Need help deploying playbook-easy-extract?
Chalk Labs sets up agents like this inside real teams: connected to your tools, tested on your data, with a human in the loop where it matters.
Install
Works with Claude Code, Claude apps, Codex, Cursor, Gemini CLI, GitHub Copilot, VS Code, OpenCode, Goose, Windsurf. Read the repository before you give any tool access to your data.
npx agentmarket install skill/legalquants-playbook-easy-extract
Asks which of your tools to add it to (Claude Code, Codex, Cursor, VS Code, Windsurf, Gemini CLI, Claude Desktop) and shows the change first. See https://agentmart.dev/cli.
Get the weekly diff
The weekly diff: one email a week with new agent tools, notable updates and grade changes, plus security alerts for tools you follow. Double opt-in, one-click unsubscribe.
About
Use cases: documents, data, finance
Reviews
Write a reviewNo reviews yet. Installed it? Reviews come from verified installers only. How reviews work
Permissions
What this skill can do and what it asks for, from its SKILL.md. Checked Oct 25, 2026.
- Tools
- No tools found
- Secrets
- None asked for
- Install scripts
- None found
Network hosts it talks to 1
codeload.github.com· found in install command
Files it touches
~/.claude/skills/playbook-easy-extract
What's inside
- Skill name
playbook-easy-extract- Description
- Use when extracting the negotiated positions from a single prior contract as input to the Easy Playbook auto-generation pipeline. Reads a contract's text, identifies the clauses that take a substantive position on a contract issue (definition of confidential information, limitation of liability, indemnification, payment terms, etc.), and emits a structured list of {issue, clause_text, source_offsets} for downstream clustering. Output is intermediate; the in-house attorney evaluates the final assembled playbook, not this stage.
- License
- Apache-2.0
- Instructions
- 97 lines in SKILL.md · view on GitHub
Files (2)
- SKILL.md
- example_nda_mutual.md · examples/
SKILL.md (first lines)
# Playbook Easy Extract
Extract the **negotiated positions** from a single contract — the clauses where the parties take a substantive stance on a recurring contract issue — and emit a structured list the Easy Playbook generation pipeline can cluster.
## When this skill applies
This skill is **internal to the Easy Playbook generation pipeline (M3-A6)** — it is not a user-facing skill. The pipeline calls it once per uploaded corpus document; the per-document output is then clustered across the corpus to detect modal positions, and the result is assembled into a draft playbook the user-attorney reviews and edits.
Apply when given a single contract text and asked to enumerate the negotiated positions it takes. Do not apply for contract review, redlining, or any user-facing task — those are the job of the per-contract-type skills (`nda-review`, `msa-review-saas`, etc.).
## Workflow
Read the contract end-to-end before emitting any output. Identify every clause that:
1. **Takes a substantive position on a recurring contract issue.** Recurring issues are those that appear across most contracts of the same family: confidentiality definition, term, limitation of liability, indemnification, payment terms, governing law, etc. A clause that imposes an obligation, defines a key term, allocates risk, or sets a threshold is "substantive."
2. **Is recognizable as a position (not boilerplate).** Skip pure mechanical clauses (notices, severability, integration) — they don't represent a negotiated stance worth clustering. Include them only when the contract takes an unusual position on them.
3. **Is contained in identifiable, contiguous text.** Don't emit overlapping or fragmentary spans — pick the section/sentence that captures the position.
For each identified clause, emit one entry. The same contract typically yields 5–20 entries depending on length and complexity.
### Issue labeling
The `issue` field is a **short, descriptive label** the downstream clustering step uses to group like clauses across the corpus. Use common contract-issue vocabulary. Examples:
- `"Definition of Confidential Information"`
- `"Term of Confidentiality Obligation"`
- `"Limitation of Liability"`
- `"Indemnification — Mutual"`
- `"Payment Terms"`
- `"Governing Law"`
- `"Permitted Disclosures"`
- `"Service Level Agreement"`
Do NOT invent novel labels when a common one fits — clustering depends on label consistency. If a clause genuinely doesn't match a common issue, pick the most descriptive short noun phrase ("Audit Rights", "Data Retention Period", "Sub-processor Approval").
### Clause text
The `clause_text` field is a **verbatim quote** of the clause from the source document. Preserve the original wording, casing, and punctuation. Do not paraphrase or summarize — the clustering step embeds and compares these strings literally.
If the position spans multiple sentences, include all of them. If the position appears in a numbered list, include the list header and the relevant items. Don't include unrelated surrounding text.
### Source offsets
The `source_offsets` field is a pair `{start, end}` of 0-based character offsets into the normalized document text. The pipeline uses these to render highlights in the UI and to support the future "open in document" drilldown (Citation Engine integration).
If you cannot identify exact offsets, omit the field (`null`); the downstream pipeline tolerates missing offsets but will not show the in-document highlight.
## Output
Emit **strictly valid JSON** in this exact shape:
```json
{
"extracted_clauses": [
{
"issue": "Definition of Confidential Information",
"clause_text": "\"Confidential Information\" means any information disclosed by either party that is marked \"Confidential\" or is reasonably identifiable as confidential by its nature.",
"source_offsets": {"start": 1842, "end": 2010}
},
{
"issue": "Term of Confidentiality Obligation",
"clause_text": "The obligations of confidentiality survive for three (3) years after termination of this Agreement.",
"source_offsets": {"start": 5510, "end": 5610}
}
]
}
```
Wrap the JSON object in a single fenced code block if your output format requires markdown. The pipeline tolerates a leading ` ```json ` fence.
## Constraints
- **Output is intermediate, not authoritative.** Do not opine on whether a clause is favorable, unusual, or non-standard. That is the user-attorney's job downstream.
- **Do not invent clauses.** Every entry must correspond to text actually in the document.
- **Do not fix or rewrite clauses.** Quote verbatim, even if the drafting is messy.
- **Do not classify confidence.** The clustering step will quantify cross-corpus consistency; per-clause confidence is not part of this skill's contract.
- **Skip pure-boilerplate** unless the contract takes an unusual position on it. Standard severability / notice / integration clauses are not worth extracting; non-standard versions of those clauses are.
## Edge cases and refusals
- **Document is not a contract.** Emit an empty `extracted_clauses` list rather than fabricating positions.
- **Document is a contract template with placeholders** (e.g., `[INSERT TERM]`, `[CUSTOMER]`). Extract what's there but note in the placeholder that the clause is a template; downstream consumers may filter these out.
- **Document is in a language other than English.** Extract as best-effort; flag in the `clause_text` with a `[non-English source]` prefix on the issue label. The clustering step will probably collapse these into their own cluster.
- **Document is heavily redacted.** Emit only the unredacted positions; do not speculate about redacted content.
## Reference materials
- `examples/example_nda_mutual.md` — worked example of a 6-clause extraction from a routine mutual NDA.
## What this skill does not do
- Render a review or assessment. That's `nda-review` / `msa-review-saas` / etc.
- Compare a clause to a standard. That's the M3-A2 playbook executor's job.
- Cluster clauses across documents. That's the downstream `clustering.py` step (M3-A6 Phase 4).
- Compose a playbook. That's the `assembly.py` step (M3-A6 Phase 4).From LegalQuants/lq-ai, Apache-2.0.
More from LegalQuants/lq-ai
- 0.784score
nda-review
LegalQuants
Use when the user uploads or pastes a non-disclosure agreement and asks for review, redline, risk assessment, or a recommendation on whether to sign.
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
action-items-from-client-alert
LegalQuants
Use when the user provides a client alert, regulatory bulletin, law firm memo, or similar legal update and wants the time-sensitive action items, deadlines…
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
msa-review-saas
LegalQuants
Use when the user uploads or pastes a Software-as-a-Service Master Services Agreement (MSA), Master Subscription Agreement, SaaS Agreement, or Cloud Services…
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
vendor-privacy-policy-first-pass
LegalQuants
Use when the user has a vendor's published privacy policy (URL, PDF, or pasted text) and wants a fast triage assessment to decide whether deeper diligence is…
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
contract-qa
LegalQuants
Use when the user has a contract loaded and asks a specific question about it — what a clause means, where something is addressed, whether a term is unusual…
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
msa-review-commercial-purchase
LegalQuants
Use when the user uploads or pastes a Master Purchase Agreement, Master Supply Agreement, Master Goods Agreement, or commercial purchase MSA covering the…
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
comms-improver
LegalQuants
Use when the user has a piece of legal-jargon-heavy text and wants it rewritten in plain language for a specified non-legal audience.
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
enhance-prompt
LegalQuants
Use when the user has typed a short or vague prompt and the system is configured to expand prompts before submission, or when the user explicitly invokes…
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
dpa-checklist-review
LegalQuants
Use when the user provides a Data Processing Agreement, Data Processing Addendum, or HIPAA Business Associate Agreement and asks whether it contains the terms…
SkillAFreshness: A★ 156Claude Code +9 - 0.777score
orchestrator-harness
LegalQuants
Demonstrates an approved plan, bounded parallel delegation, progress collection and synthesis using sample findings.
SkillAFreshness: A★ 156Claude Code +9 - 0.777score
saved-notes-demo
LegalQuants
Demonstrate optional saved notes and a bundled helper across skill invocations.
SkillAFreshness: A★ 156Claude Code +9 - 0.777score
orchestration-topic-demo
LegalQuants
Produces a bounded sample topic outcome for the orchestration demonstration.
SkillAFreshness: A★ 156Claude Code +9
Signals
- Stars
- 156
- Forks
- 67
- Open issues
- 94
- Last commit (this folder)
- May 22, 2026 (5 months ago)
- Last release
- Oct 8, 2026 (23 days ago)
From GitHub (fetched Oct 24, 2026).
Details
- License
- Apache-2.0
- Repository
- github.com/LegalQuants/lq-ai
- First seen
- Oct 24, 2026
- Last checked
- Oct 24, 2026
- Source
- GitHubgithub-graphql
More from LegalQuants
- 0.784score
contract-qa
LegalQuants
Use when the user has a contract loaded and asks a specific question about it — what a clause means, where something is addressed, whether a term is unusual…
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
dpa-checklist-review
LegalQuants
Use when the user provides a Data Processing Agreement, Data Processing Addendum, or HIPAA Business Associate Agreement and asks whether it contains the terms…
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
action-items-from-client-alert
LegalQuants
Use when the user provides a client alert, regulatory bulletin, law firm memo, or similar legal update and wants the time-sensitive action items, deadlines…
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
comms-improver
LegalQuants
Use when the user has a piece of legal-jargon-heavy text and wants it rewritten in plain language for a specified non-legal audience.
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
nda-review
LegalQuants
Use when the user uploads or pastes a non-disclosure agreement and asks for review, redline, risk assessment, or a recommendation on whether to sign.
SkillAFreshness: A★ 156Claude Code +9 - 0.784score
enhance-prompt
LegalQuants
Use when the user has typed a short or vague prompt and the system is configured to expand prompts before submission, or when the user explicitly invokes…
SkillAFreshness: A★ 156Claude Code +9
Done for you
Rather not set it up yourself?
Chalk Labs scopes, builds and runs agents for your team: the task audit, the eval harness, the integrations and the weekly ops report. Fixed scope, priced before we start.
See how we build AI agents →Read the case studies
Chalk Labs is a two-founder AI and growth studio. We build AI agents, CRMs and MVPs for Web3 and AI companies, and have shipped 50+ product and token launches.
- launches shipped
- 50+
- launches shipped
- media placements
- 500+
- media placements
- founders on every account
- 2
- founders on every account
Press we've placed: Forbes · CoinDesk · Decrypt · Cointelegraph · The Block
Rahil Jain, Co-founder, Chalk Labs. Ex-Goldman Sachs engineer. You talk to the person who builds it.
Get playbook-easy-extract running in your business
Tell us what you want to automate. A founder replies within one working day with a plan, not a pitch deck.
Cite this page
playbook-easy-extract skill. Agent Mart. https://agentmart.dev/skills/legalquants-playbook-easy-extract (last updated 2026-10-24)