Nda triage
Skill event4u-app/agent-config/dist/agent-src/skills/nda-triage
Universal AI Agent OS — audited skills, governance rules, replayable state. One contract, every host agent.
npx -y skills add event4u-app/agent-config --skill nda-triageAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 7 stars7 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
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'.
SKILL.md
6.8 KB, ~1.6k tokens by cl100k_base, as published. Nobody here has run it
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: EUorJurisdiction: 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-profileor 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. TagJurisdiction: 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.