nda-triage
When to use
- An inbound NDA lands and the question is which bucket — standard, needs-counsel, or full-review — so only the hard ones reach a lawyer's desk.
- A counterparty sends "our standard NDA" and someone needs a fast read before scheduling counsel time.
- A volume of NDAs needs first-pass sorting; triage is the throttle that protects attorney bandwidth.
Do NOT redline here (route to contract-review), and do NOT treat a triage signal as clearance — see legal-safety-floor. If the document is really a data-processing agreement, route to dpa-review.
Procedure
Step 0: Establish jurisdiction + thresholds (no defaults)
- Read the governing-law clause. If it is not EU or DE, STOP — hard refusal: "This pack covers EU/DE law only. Consult licensed local counsel for this jurisdiction." Never guess for out-of-scope law.
- Read the triage thresholds from
legal-practice-profile (mutual-vs-one-way stance, max term length, required carve-outs, governing-law allow-list, indemnity/penalty caps). This skill ships NO default NDA positions — they vary too much. Until the profile is configured, use [configure] placeholders in the verdict and flag every unset threshold.
- Tag the output with
Jurisdiction: EU or Jurisdiction: DE.
Step 1: Triage to GREEN / YELLOW / RED
Score the NDA against the profile thresholds, not against memory:
- GREEN — standard-approve — mutual/one-way matches stance, term within
[configure] max, all required carve-outs present, governing law on the allow-list, no penalty/liquidated-damages clause. Standard shape only.
- YELLOW — counsel review — one or two threshold deviations (longer term, missing a carve-out, one-way where mutual expected, broad definition of confidential info). A lawyer reads it; not a full review.
- RED — full review — penalty/indemnity clauses, IP-assignment riding inside the NDA, perpetual/unbounded term, governing law on the edge of scope, non-standard structure. Full attorney review before any signing conversation.
A non-lawyer cannot define what RED is — the profile + this rubric do.
Step 2: GREEN × non-lawyer → attorney gate (load-bearing)
If the verdict is GREEN and the practice-profile role is non-lawyer, the skill never self-approves signing. It MUST:
- STOP — do not advance to "you may sign".
- Emit
attorney-brief.md — a one-page brief (counterparty, term, mutual/one-way, carve-outs present/absent, why it scored GREEN, the thresholds checked).
- Refuse to proceed without an explicit yes from a licensed attorney. A non-lawyer GREEN is a triage signal, never a clearance.
For a lawyer role, GREEN still emits the verdict but the attorney is the gate.
Step 3: Emit the triage verdict
Produce triage-verdict.md carrying the Jurisdiction: tag, the bucket, the deviations found, the route, and the mandatory work-product line. Route per bucket: YELLOW/RED → contract-review for redlines. Never issue a final legal call (legal-safety-floor).
Related Skills
WHEN to use this
- The task is a fast first-pass sort of an inbound NDA into approve / counsel / full-review.
- The goal is to protect attorney bandwidth by filtering the easy ones.
WHEN NOT to use this
- Redlining or clause-by-clause negotiation — route to
contract-review.
- The document is a data-processing agreement (Art. 28 / controller-processor) — route to
dpa-review.
- General contract risk reading (MSA / SOW) — route to
contracts-cognition.
When the agent should load this
- "Kannst Du diese NDA kurz prüfen?"
- "Ist diese Geheimhaltungsvereinbarung Standard oder müssen wir die anwaltlich prüfen lassen?"
Output
triage-verdict.md — Jurisdiction: tag, GREEN/YELLOW/RED bucket, threshold deviations found, route (contract-review / dpa-review), and the mandatory work-product line.
attorney-brief.md (GREEN × non-lawyer, mandatory) — one-page brief: counterparty, term, mutual/one-way, carve-outs, why GREEN, thresholds checked; ends pending an explicit attorney yes.
Every output carries:
> ⚠️ Attorney review required on material use. This is a draft for a licensed attorney, not legal advice and not a legal conclusion.
Gotcha
- A GREEN for a non-lawyer is not permission to sign — it routes into the attorney gate (Step 2). Self-approving signing is the canonical failure this skill exists to prevent.
- Shipping a default term length / carve-out set is wrong: NDA norms vary by counterparty, sector, and house style. Read
legal-practice-profile; use [configure] until set.
- Out-of-scope governing law is a hard refusal, not a best-effort guess — a stale read for a jurisdiction the pack doesn't cover is worse than none.
- A penalty / liquidated-damages clause or IP-assignment hidden inside an NDA is RED regardless of how "standard" the rest looks.
- A missing
Jurisdiction: tag or work-product line fails the legal disclaimer/jurisdiction linters — never drop either.
Do NOT
- Do NOT self-approve a GREEN NDA for a non-lawyer; emit the attorney brief and wait for an explicit yes.
- Do NOT apply a default NDA position; read thresholds from
legal-practice-profile or mark [configure].
- Do NOT triage an out-of-scope (non-EU/DE) NDA; refuse and route to local counsel.
- Do NOT redline — route depth to
contract-review.
- Do NOT issue a final legal conclusion (
legal-safety-floor).
Runnable example
Inbound mutual NDA, non-lawyer (ops) role, profile configured.
- Step 0 — governing law =
DE (in scope). Thresholds loaded: mutual expected, max term 3y, carve-outs {independently-developed, publicly-known} required, no penalty clause. Tag Jurisdiction: DE.
- Step 1 — mutual ✓, term 2y ✓, both carve-outs present ✓, no penalty clause ✓ → GREEN.
- Step 2 — role is non-lawyer → attorney gate fires. Emit
attorney-brief.md (counterparty, 2y mutual, carve-outs present, scored GREEN against the 3y/mutual/no-penalty thresholds). Refuse to advance to "you may sign" without an explicit attorney yes.
- Step 3 —
triage-verdict.md: Jurisdiction: DE, bucket GREEN, no deviations, route = attorney gate (not contract-review), plus the work-product line.
1---2name: nda-triage3description: Use when triaging an inbound NDA fast — GREEN/YELLOW/RED so only the hard ones reach a lawyer. Triggers on 'check this NDA', 'can we sign this NDA', 'is this NDA standard'.4---56# nda-triage78## When to use910- An inbound NDA lands and the question is *which bucket* — standard, needs-counsel, or full-review — so only the hard ones reach a lawyer's desk.11- A counterparty sends "our standard NDA" and someone needs a fast read before scheduling counsel time.12- A volume of NDAs needs first-pass sorting; triage is the throttle that protects attorney bandwidth.1314Do NOT redline here (route to [`contract-review`](../contract-review/SKILL.md)), and do NOT treat a triage signal as clearance — see `legal-safety-floor`. If the document is really a data-processing agreement, route to [`dpa-review`](../dpa-review/SKILL.md).1516## Procedure1718### Step 0: Establish jurisdiction + thresholds (no defaults)19201. Read the governing-law clause. If it is **not EU or DE**, STOP — hard refusal: *"This pack covers EU/DE law only. Consult licensed local counsel for this jurisdiction."* Never guess for out-of-scope law.212. Read the triage thresholds from `legal-practice-profile` (mutual-vs-one-way stance, max term length, required carve-outs, governing-law allow-list, indemnity/penalty caps). This skill ships **NO** default NDA positions — they vary too much. Until the profile is configured, use `[configure]` placeholders in the verdict and flag every unset threshold.223. Tag the output with `Jurisdiction: EU` or `Jurisdiction: DE`.2324### Step 1: Triage to GREEN / YELLOW / RED2526Score the NDA against the profile thresholds, not against memory:2728- **GREEN — standard-approve** — mutual/one-way matches stance, term within `[configure]` max, all required carve-outs present, governing law on the allow-list, no penalty/liquidated-damages clause. *Standard shape only.*29- **YELLOW — counsel review** — one or two threshold deviations (longer term, missing a carve-out, one-way where mutual expected, broad definition of confidential info). A lawyer reads it; not a full review.30- **RED — full review** — penalty/indemnity clauses, IP-assignment riding inside the NDA, perpetual/unbounded term, governing law on the edge of scope, non-standard structure. Full attorney review before any signing conversation.3132A non-lawyer cannot define what RED is — the profile + this rubric do.3334### Step 2: GREEN × non-lawyer → attorney gate (load-bearing)3536If the verdict is **GREEN** and the practice-profile role is **non-lawyer**, the skill **never self-approves signing**. It MUST:37381. STOP — do not advance to "you may sign".392. Emit `attorney-brief.md` — a one-page brief (counterparty, term, mutual/one-way, carve-outs present/absent, why it scored GREEN, the thresholds checked).403. Refuse to proceed without an **explicit yes from a licensed attorney**. A non-lawyer GREEN is a triage signal, never a clearance.4142For a **lawyer** role, GREEN still emits the verdict but the attorney *is* the gate.4344### Step 3: Emit the triage verdict4546Produce `triage-verdict.md` carrying the `Jurisdiction:` tag, the bucket, the deviations found, the route, and the mandatory work-product line. Route per bucket: YELLOW/RED → [`contract-review`](../contract-review/SKILL.md) for redlines. Never issue a final legal call (`legal-safety-floor`).4748## Related Skills4950**WHEN to use this**5152- The task is a fast first-pass *sort* of an inbound NDA into approve / counsel / full-review.53- The goal is to protect attorney bandwidth by filtering the easy ones.5455**WHEN NOT to use this**5657- Redlining or clause-by-clause negotiation — route to [`contract-review`](../contract-review/SKILL.md).58- The document is a data-processing agreement (Art. 28 / controller-processor) — route to [`dpa-review`](../dpa-review/SKILL.md).59- General contract risk reading (MSA / SOW) — route to [`contracts-cognition`](../contracts-cognition/SKILL.md).6061## When the agent should load this6263- "Kannst Du diese NDA kurz prüfen?"64- "Ist diese Geheimhaltungsvereinbarung Standard oder müssen wir die anwaltlich prüfen lassen?"6566## Output67681. **`triage-verdict.md`** — `Jurisdiction:` tag, GREEN/YELLOW/RED bucket, threshold deviations found, route (contract-review / dpa-review), and the mandatory work-product line.692. **`attorney-brief.md`** *(GREEN × non-lawyer, mandatory)* — one-page brief: counterparty, term, mutual/one-way, carve-outs, why GREEN, thresholds checked; ends pending an explicit attorney yes.7071Every output carries:7273```74> ⚠️ Attorney review required on material use. This is a draft for a licensed attorney, not legal advice and not a legal conclusion.75```7677## Gotcha7879- A GREEN for a non-lawyer is **not** permission to sign — it routes into the attorney gate (Step 2). Self-approving signing is the canonical failure this skill exists to prevent.80- Shipping a default term length / carve-out set is wrong: NDA norms vary by counterparty, sector, and house style. Read `legal-practice-profile`; use `[configure]` until set.81- Out-of-scope governing law is a hard refusal, not a best-effort guess — a stale read for a jurisdiction the pack doesn't cover is worse than none.82- A penalty / liquidated-damages clause or IP-assignment hidden inside an NDA is RED regardless of how "standard" the rest looks.83- A missing `Jurisdiction:` tag or work-product line fails the legal disclaimer/jurisdiction linters — never drop either.8485## Do NOT8687- Do NOT self-approve a GREEN NDA for a non-lawyer; emit the attorney brief and wait for an explicit yes.88- Do NOT apply a default NDA position; read thresholds from `legal-practice-profile` or mark `[configure]`.89- Do NOT triage an out-of-scope (non-EU/DE) NDA; refuse and route to local counsel.90- Do NOT redline — route depth to [`contract-review`](../contract-review/SKILL.md).91- Do NOT issue a final legal conclusion (`legal-safety-floor`).9293## Runnable example9495Inbound mutual NDA, non-lawyer (ops) role, profile configured.9697- Step 0 — governing law = `DE` (in scope). Thresholds loaded: mutual expected, max term 3y, carve-outs {independently-developed, publicly-known} required, no penalty clause. Tag `Jurisdiction: DE`.98- Step 1 — mutual ✓, term 2y ✓, both carve-outs present ✓, no penalty clause ✓ → **GREEN**.99- Step 2 — role is non-lawyer → attorney gate fires. Emit `attorney-brief.md` (counterparty, 2y mutual, carve-outs present, scored GREEN against the 3y/mutual/no-penalty thresholds). Refuse to advance to "you may sign" without an explicit attorney yes.100- Step 3 — `triage-verdict.md`: `Jurisdiction: DE`, bucket GREEN, no deviations, route = attorney gate (not contract-review), plus the work-product line.