Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Rapid NDA screening with GREEN/YELLOW/RED classification. 10-point checklist for incoming NDAs. Use when triaging NDAs, screening non-disclosure agreements, or routing NDAs for approval.
.claude/skills/borghei-nda-triage/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-01 | ✗→✓ | ▲ Improved | 332% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 108% | 0% |
| case-04 | ✗→✓ | ▲ Improved | 67% | 0% |
| case-05 | ✗→✓ | ▲ Improved | 382% | 0% |
| case-06 | ✗→✓ | ▲ Improved | 75% | 0% |
> ⚠️ EXPERIMENTAL — This skill is provided for educational and informational purposes only. It does NOT constitute legal advice. All responsibility for usage rests with the user. Consult qualified legal professionals before acting on any output.
Rapid NDA screening tool that classifies incoming NDAs as GREEN (standard approval), YELLOW (counsel review), or RED (significant issues). Uses a 10-point screening checklist to evaluate agreement structure, definitions, obligations, carveouts, and problematic provisions.
Before triaging the NDA, confirm these inputs. If any is unknown or vague, ASK — do not assume:
Stop rule: ask only the 2-3 that most change the output. If the user says "just draft it," proceed and list your assumptions at the top of the output.
Scans NDA text for red flags and outputs GREEN/YELLOW/RED classification with reasoning.
bash# Screen an NDA file python scripts/nda_screener.py nda_draft.txt # JSON output for integration python scripts/nda_screener.py incoming_nda.md --json # Save screening results python scripts/nda_screener.py nda_draft.txt --output screening.json --json
What it detects:
Classification Rules:
| Level | Criteria | Routing | |-------|----------|---------| | GREEN | All 5 carveouts present, no problematic provisions, standard structure | Business approver; no counsel needed | | YELLOW | 1-2 missing carveouts, minor problematic provisions, or non-standard terms | Legal counsel review within 48 hours | | RED | 3+ missing carveouts, non-compete/non-solicitation, IP assignment, perpetual term with no exit | Senior counsel review; do not sign |
Generates a compliance checklist for an NDA, checking all 10 screening criteria with pass/fail status.
bash# Generate checklist for an NDA python scripts/nda_checklist.py nda_draft.txt # JSON output python scripts/nda_checklist.py nda_draft.txt --json # Save checklist python scripts/nda_checklist.py nda_draft.txt --output checklist.json --json
10-Point Screening Criteria:
| # | Criterion | What It Checks | |---|-----------|---------------| | 1 | Agreement Structure | Mutual vs. one-way; parties identified; purpose stated | | 2 | Definition of Confidential Info | Scope, specificity, marking requirements | | 3 | Obligations | Standard of care, use restrictions, disclosure limits | | 4 | Standard Carveouts | 5 required: public knowledge, prior possession, independent development, third-party receipt, legal compulsion | | 5 | Permitted Disclosures | Representatives, advisors, affiliates with need-to-know | | 6 | Term & Duration | Reasonable term, survival period, obligations after expiry | | 7 | Return/Destruction | Obligation to return or destroy upon request/termination | | 8 | Remedies | Injunctive relief, damages, indemnification scope | | 9 | Problematic Provisions | Non-solicitation, non-compete, exclusivity, residuals, IP assignment, audit rights | | 10 | Governing Law | Jurisdiction, dispute resolution mechanism |
references/nda_screening_criteria.md
Complete evaluation reference covering:
.txt or .md filenda_screener.py for quick RED/YELLOW/GREEN classificationnda_checklist.py for detailed 10-point evaluationbash# Screen multiple NDAs for nda in ndas/*.txt; do echo "=== $nda ===" python scripts/nda_screener.py "$nda" echo "" done # Generate JSON report for all NDAs for nda in ndas/*.txt; do python scripts/nda_screener.py "$nda" --json --output "results/$(basename $nda .txt).json" done
| Classification | Approver | Timeline | Escalation | |---------------|----------|----------|------------| | GREEN | Business owner or designated approver | Same day; sign within 24 hours | None required | | YELLOW | Legal counsel review | 48-hour turnaround | Escalate to senior counsel if no response in 72 hours | | RED | Senior legal counsel | 5 business day turnaround | Escalate to General Counsel if deal-critical |
All of the following must be true for GREEN classification:
Any one of the following triggers RED classification:
| Problem | Cause | Solution | |---------|-------|----------| | Screener classifies everything as YELLOW | NDA uses non-standard formatting that breaks pattern matching | Ensure NDA is clean plain text; remove PDF artifacts and headers/footers | | Missing carveouts false positive | Carveouts are present but use unusual language | Review the full "Exceptions" or "Exclusions" section manually; the screener checks common phrasings | | Non-compete not detected | Non-compete is embedded in definitions or obligations section rather than standalone | Search the full document for "compete", "competitive", "restrict" manually | | Checklist shows PASS but screener shows RED | Checklist evaluates presence; screener evaluates content quality | Use both tools together; the screener's RED overrides checklist PASS | | Script errors on large files | NDA text exceeds expected size (>100KB) | Ensure the file contains only the NDA text, not appendices or exhibits |
Covers:
Does NOT cover:
nda-review for deep clause analysis and redline generation| Anti-Pattern | Why It Fails | Better Approach | |-------------|-------------|-----------------| | Signing GREEN-classified NDAs without any human review | Automated screening cannot catch business-context risks (e.g., NDA with a direct competitor) | GREEN classification means low legal risk, not zero risk; business approver must still review | | Using triage as a substitute for deep NDA review on complex deals | Triage checks structure and red flags, not clause quality or negotiation position | Run nda-review skill for M&A, joint venture, or high-value partnership NDAs | | Ignoring YELLOW classifications because "it's just an NDA" | YELLOW items like missing carveouts or residuals clauses create real legal exposure | Route all YELLOW NDAs to counsel; missing independent development carveout alone can cost millions | | Treating all NDAs as equal regardless of counterparty relationship | NDA with a startup partner requires different scrutiny than NDA with a Fortune 500 vendor | Adjust review depth based on counterparty, deal value, and information sensitivity |
Purpose: Scans NDA text for red flags and problematic provisions. Outputs GREEN/YELLOW/RED classification with detailed reasoning.
Usage:
bashpython scripts/nda_screener.py <nda_file> [--json] [--output FILE]
Flags:
| Flag | Short | Default | Description | |------|-------|---------|-------------| | nda_file | (positional) | | Path to NDA text file (.txt or .md) | | --json | | off | Output in JSON format | | --output | -o | (stdout) | Write output to file |
Example Output (JSON):
json{ "file": "vendor_nda.txt", "classification": "YELLOW", "red_flags": [ { "id": "missing_carveout_independent_development", "severity": "YELLOW", "description": "Missing independent development carveout", "recommendation": "Add standard independent development exception" } ], "carveouts": { "public_knowledge": true, "prior_possession": true, "independent_development": false, "third_party_receipt": true, "legal_compulsion": true }, "summary": "1 missing carveout; no critical issues. Route to counsel for review." }
Purpose: Generates a 10-point compliance checklist for an NDA, evaluating each screening criterion as PASS/FAIL with notes.
Usage:
bashpython scripts/nda_checklist.py <nda_file> [--json] [--output FILE]
Flags:
| Flag | Short | Default | Description | |------|-------|---------|-------------| | nda_file | (positional) | | Path to NDA text file (.txt or .md) | | --json | | off | Output in JSON format | | --output | -o | (stdout) | Write output to file |
Example Output:
NDA COMPLIANCE CHECKLIST
========================
File: vendor_nda.txt
Overall: YELLOW (8/10 PASS)
# Criterion Status Notes
1 Agreement Structure PASS Mutual NDA; both parties identified
2 Definition of Confidential PASS Reasonably scoped with marking requirement
3 Obligations PASS Standard of care; use restrictions present
4 Standard Carveouts FAIL Missing: independent development
5 Permitted Disclosures PASS Representatives and advisors covered
6 Term & Duration PASS 3-year term with 2-year survival
7 Return/Destruction PASS Return or destroy within 30 days
8 Remedies PASS Injunctive relief; no liquidated damages
9 Problematic Provisions FAIL Residuals clause detected
10 Governing Law PASS Delaware law; state courts| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-01 | fail→pass | 6,062 | 4,013 | -34% | 1 | 1 | 0% | 855 | 3,697 | +332% | 0 | 0 | — |
case-02 | fail→fail | 8,101 | 4,009 | -51% | 1 | 1 | 0% | 1,142 | 3,725 | +226% | 0 | 0 | — |
case-03 | fail→pass | 20,501 | 24,844 | +21% | 1 | 1 | 0% | 3,428 | 7,145 | +108% | 0 | 0 | — |
case-04 | fail→pass | 19,448 | 11,796 | -39% | 1 | 1 | 0% | 2,869 | 4,784 | +67% | 0 | 0 | — |
case-05 | fail→pass | 6,967 | 12,836 | +84% | 1 | 1 | 0% | 1,046 | 5,038 | +382% | 0 | 0 | — |
case-06 | fail→pass | 10,902 | 2,620 | -76% | 1 | 1 | 0% | 1,963 | 3,443 | +75% | 0 | 0 | — |
case-07 | fail→pass | 6,410 | 4,955 | -23% | 1 | 1 | 0% | 1,054 | 3,910 | +271% | 0 | 0 | — |
case-08 | fail→pass | 11,481 | 6,386 | -44% | 1 | 1 | 0% | 1,805 | 4,094 | +127% | 0 | 0 | — |
case-09 | fail→pass | 11,133 | 8,807 | -21% | 1 | 1 | 0% | 1,485 | 4,440 | +199% | 0 | 0 | — |
case-10 | fail→pass | 12,942 | 7,412 | -43% | 1 | 1 | 0% | 1,845 | 4,071 | +121% | 0 | 0 | — |
case-11 | fail→pass | 10,199 | 5,971 | -41% | 1 | 1 | 0% | 1,511 | 4,025 | +166% | 0 | 0 | — |
case-12 | fail→pass | 11,555 | 5,977 | -48% | 1 | 1 | 0% | 1,682 | 4,015 | +139% | 0 | 0 | — |
case-13 | pass→pass | 9,147 | 6,179 | -32% | 1 | 1 | 0% | 1,330 | 4,100 | +208% | 0 | 0 | — |
case-14 | fail→pass | 11,830 | 4,733 | -60% | 1 | 1 | 0% | 1,656 | 3,817 | +130% | 0 | 0 | — |
case-15 | fail→pass | 9,414 | 2,138 | -77% | 1 | 1 | 0% | 1,361 | 3,396 | +150% | 0 | 0 | — |
case-16 | pass→pass | 9,200 | 4,779 | -48% | 1 | 1 | 0% | 1,378 | 3,855 | +180% | 0 | 0 | — |
case-17 | fail→pass | 12,116 | 6,334 | -48% | 1 | 1 | 0% | 1,931 | 4,034 | +109% | 0 | 0 | — |
case-18 | fail→pass | 8,487 | 3,275 | -61% | 1 | 1 | 0% | 1,115 | 3,512 | +215% | 0 | 0 | — |
case-19 | fail→pass | 6,650 | 2,669 | -60% | 1 | 1 | 0% | 879 | 3,459 | +294% | 0 | 0 | — |
case-20 | pass→pass | 11,159 | 7,663 | -31% | 1 | 1 | 0% | 1,644 | 4,227 | +157% | 0 | 0 | — |
case-21 | pass→fail | 9,514 | 8,453 | -11% | 1 | 1 | 0% | 1,359 | 4,265 | +214% | 0 | 0 | — |
case-22 | pass→pass | 10,245 | 8,145 | -20% | 1 | 1 | 0% | 1,425 | 4,299 | +202% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +68 percentage points is the difference between those two pass rates over the 22 comparable cases. 1 case got worse with the skill loaded, and it is included in that figure.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.