⚠️ 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.
Legal Canned Responses Skill
Overview
Production-ready toolkit for generating templated responses to common legal inquiries with built-in escalation detection. Covers 7 response categories with multiple sub-types each, plus a universal and category-specific escalation trigger system. Designed for legal operations teams handling high volumes of recurring inquiries while ensuring critical matters are routed to counsel.
Table of Contents
Tools
1. Response Generator (scripts/response_generator.py)
Generate formatted legal responses from templates with variable substitution and escalation detection.
python scripts/response_generator.py \
--category dsr --sub-type acknowledgment \
--var requestor_name="Jane Doe" \
--var request_type="access" \
--var request_date="2026-04-10"
python scripts/response_generator.py \
--category nda --sub-type standard-form \
--var counterparty="Acme Corp" \
--var purpose="due diligence" --json
python scripts/response_generator.py \
--category discovery --sub-type initial-notice \
--var matter_name="Smith v. Corp" \
--var custodians="Engineering,Sales"
2. Escalation Detector (scripts/escalation_detector.py)
Analyze inquiry text for escalation triggers and recommend routing.
python scripts/escalation_detector.py \
--text "We received a subpoena from the DOJ regarding our pricing practices"
python scripts/escalation_detector.py \
--text "A reporter from the Wall Street Journal is asking about our data practices" --json
python scripts/escalation_detector.py \
--category vendor \
--text "The vendor is threatening litigation over the contract dispute"
Reference Guides
| Reference |
Purpose |
references/response_templates.md |
Complete templates for all 7 categories with sub-types |
references/escalation_triggers.md |
Universal and category-specific escalation triggers |
Workflows
Template Lifecycle
- Creation -- Draft response template for identified recurring inquiry type
- Review -- Legal counsel reviews template for accuracy, tone, and compliance
- Publication -- Template added to system with metadata, variables, and triggers
- Use -- Staff selects category/sub-type, fills variables, generates response
- Feedback -- Track usage and collect feedback on template effectiveness
- Update -- Revise templates based on feedback, legal changes, or policy updates
- Retirement -- Archive templates that are no longer applicable
Response Generation Workflow
- Classify Inquiry -- Determine category (DSR, NDA, subpoena, etc.) and sub-type
- Check Escalation -- Run escalation detector on inquiry text
- If Escalation Detected -- Stop; route to counsel with escalation report
- If No Escalation -- Generate response with appropriate template and variables
- Review & Send -- Review generated response before sending; adjust if needed
Response Categories
| Category |
Sub-Types |
Description |
| Data Subject Requests (DSR) |
acknowledgment, verification, fulfillment, denial, extension |
GDPR/CCPA data subject right requests |
| Discovery/Litigation Holds |
initial-notice, reminder, modification, release |
Litigation hold management |
| Privacy Inquiries |
cookies, data-sharing, children, transfers |
General privacy questions |
| Vendor Legal Questions |
contract-status, amendments, certifications, audit |
Vendor/supplier legal matters |
| NDA Requests |
standard-form, counterparty-markup, decline, renewal |
Non-disclosure agreement lifecycle |
| Subpoena/Legal Process |
acknowledgment, objection, extension, compliance |
Legal process responses |
| Insurance Notifications |
initial-claim, supplemental-info, reservation-of-rights |
Insurance claim management |
DSR Sub-Types
| Sub-Type |
Use When |
Key Variables |
| acknowledgment |
New DSR received |
requestor_name, request_type, request_date |
| verification |
Identity verification needed |
requestor_name, verification_method |
| fulfillment |
Request completed |
requestor_name, request_type, data_description |
| denial |
Request denied with reason |
requestor_name, request_type, denial_reason |
| extension |
Need more time |
requestor_name, request_type, extension_reason, new_deadline |
Discovery/Litigation Hold Sub-Types
| Sub-Type |
Use When |
Key Variables |
| initial-notice |
New litigation hold issued |
matter_name, custodians, data_types |
| reminder |
Periodic hold reminder |
matter_name, reminder_number |
| modification |
Hold scope changed |
matter_name, modification_description |
| release |
Hold lifted |
matter_name, release_date |
Escalation System
Universal Triggers (Always Escalate)
| # |
Trigger |
Why |
| 1 |
Potential or active litigation |
Legal exposure requires counsel assessment |
| 2 |
Regulatory investigation or inquiry |
Regulatory response requires strategic approach |
| 3 |
Government or law enforcement contact |
Constitutional and procedural rights at stake |
| 4 |
Binding legal commitment requested |
Cannot create legal obligations without counsel |
| 5 |
Criminal liability exposure |
Requires immediate counsel involvement |
| 6 |
Media attention or press inquiry |
Reputational risk requires coordinated response |
| 7 |
Unprecedented or novel situation |
No template exists; bespoke legal analysis needed |
| 8 |
Multi-jurisdictional conflict |
Cross-border legal complexity requires expert analysis |
Escalation Response Protocol
- Stop -- Do not send any templated response
- Alert -- Notify designated counsel immediately
- Explain -- Provide escalation context with matched triggers
- Recommend -- Suggest routing based on trigger type
- Draft -- Mark any preliminary draft "FOR COUNSEL REVIEW ONLY"
Troubleshooting
| Problem |
Cause |
Solution |
| Missing variable in output |
Required variable not provided |
Check template requirements; provide all required --var parameters |
| Wrong template selected |
Category/sub-type mismatch |
Review category descriptions; ensure sub-type matches inquiry type |
| False positive escalation |
Common words matching trigger patterns |
Provide --category to use category-specific triggers; review matched triggers |
| False negative escalation |
Inquiry text too vague |
Add more context to inquiry text; run both universal and category-specific checks |
| Template too generic |
Using default values |
Replace all placeholder values with actual organization-specific details |
| Discovery hold sent to wrong custodians |
Custodian list outdated |
Verify custodian list against current employees and systems |
| Subpoena response not flagged |
Missing category context |
Always use --category subpoena for legal process; subpoena category always escalates |
| Response tone inappropriate |
Wrong audience context |
Select appropriate sub-type; customize tone per audience |
Success Criteria
- Response Time: Templated responses generated within 5 minutes vs. 30+ minutes manual drafting
- Escalation Accuracy: 100% of genuine escalation triggers detected (zero false negatives on CRITICAL triggers)
- Template Coverage: Templates cover 80%+ of recurring legal inquiry types
- Consistency: All responses within a category use consistent language, tone, and legal caveats
- Audit Trail: Every generated response logged with category, sub-type, date, and escalation status
Scope & Limitations
This skill covers:
- Template-based response generation for 7 common legal inquiry categories
- Escalation detection using keyword and pattern matching against known triggers
- Variable substitution for organization-specific customization
- Response metadata generation for audit trail purposes
This skill does NOT cover:
- Legal advice or attorney-client privileged analysis
- Automated sending of responses (generation only; human review required)
- Contract drafting, negotiation, or legal document creation
- Case management, docketing, or deadline tracking
- Jurisdiction-specific legal compliance validation of response content
Anti-Patterns
| Anti-Pattern |
Why It Fails |
Better Approach |
| Sending templated response without review |
May miss context-specific nuances; legal risk |
Always review generated response before sending |
| Ignoring escalation triggers |
Critical matters mishandled; legal exposure |
Run escalation detector on every inquiry; treat all triggers seriously |
| Using templates for novel situations |
Templates assume standard scenarios; novel situations need bespoke analysis |
Escalate novel situations to counsel; create new template after resolution |
| Hardcoding organization details in templates |
Templates become non-portable; updates missed |
Use variable substitution; maintain variables in configuration |
| Skipping identity verification for DSRs |
GDPR/CCPA require verification before fulfillment |
Always send verification sub-type before fulfillment |
Tool Reference
scripts/response_generator.py
Generate formatted legal responses with variable substitution.
usage: response_generator.py [-h] [--json]
--category {dsr,discovery,privacy,vendor,nda,subpoena,insurance}
--sub-type SUB_TYPE
[--var KEY=VALUE [KEY=VALUE ...]]
options:
-h, --help Show help message and exit
--json Output in JSON format
--category Response category
--sub-type Response sub-type within category
--var Variable substitution as KEY=VALUE pairs
scripts/escalation_detector.py
Analyze inquiry text for escalation triggers.
usage: escalation_detector.py [-h] [--json]
--text TEXT
[--category {dsr,discovery,privacy,vendor,nda,subpoena,insurance}]
options:
-h, --help Show help message and exit
--json Output in JSON format
--text Inquiry text to analyze for escalation triggers
--category Optional category for category-specific trigger detection
1---2name: legal-canned-responses3description: Generate templated responses for common legal inquiries with escalation detection. Use when drafting legal responses.4license: MIT + Commons Clause5---6> **⚠️ 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.
7
8# Legal Canned Responses Skill
9
10## Overview
11
12Production-ready toolkit for generating templated responses to common legal inquiries with built-in escalation detection. Covers 7 response categories with multiple sub-types each, plus a universal and category-specific escalation trigger system. Designed for legal operations teams handling high volumes of recurring inquiries while ensuring critical matters are routed to counsel.
13
14## Table of Contents
15
16- [Tools](#tools)
17- [Reference Guides](#reference-guides)
18- [Workflows](#workflows)
19- [Response Categories](#response-categories)
20- [Escalation System](#escalation-system)
21- [Troubleshooting](#troubleshooting)
22- [Success Criteria](#success-criteria)
23- [Scope & Limitations](#scope--limitations)
24- [Anti-Patterns](#anti-patterns)
25- [Tool Reference](#tool-reference)
26
27## Tools
28
29### 1. Response Generator (`scripts/response_generator.py`)
30
31Generate formatted legal responses from templates with variable substitution and escalation detection.
32
33```bash
34python scripts/response_generator.py \
35 --category dsr --sub-type acknowledgment \
36 --var requestor_name="Jane Doe" \
37 --var request_type="access" \
38 --var request_date="2026-04-10"
39
40python scripts/response_generator.py \
41 --category nda --sub-type standard-form \
42 --var counterparty="Acme Corp" \
43 --var purpose="due diligence" --json
44
45python scripts/response_generator.py \
46 --category discovery --sub-type initial-notice \
47 --var matter_name="Smith v. Corp" \
48 --var custodians="Engineering,Sales"
49```
50
51### 2. Escalation Detector (`scripts/escalation_detector.py`)
52
53Analyze inquiry text for escalation triggers and recommend routing.
54
55```bash
56python scripts/escalation_detector.py \
57 --text "We received a subpoena from the DOJ regarding our pricing practices"
58
59python scripts/escalation_detector.py \
60 --text "A reporter from the Wall Street Journal is asking about our data practices" --json
61
62python scripts/escalation_detector.py \
63 --category vendor \
64 --text "The vendor is threatening litigation over the contract dispute"
65```
66
67## Reference Guides
68
69| Reference | Purpose |
70|-----------|---------|
71| `references/response_templates.md` | Complete templates for all 7 categories with sub-types |
72| `references/escalation_triggers.md` | Universal and category-specific escalation triggers |
73
74## Workflows
75
76### Template Lifecycle
77
781. **Creation** -- Draft response template for identified recurring inquiry type
792. **Review** -- Legal counsel reviews template for accuracy, tone, and compliance
803. **Publication** -- Template added to system with metadata, variables, and triggers
814. **Use** -- Staff selects category/sub-type, fills variables, generates response
825. **Feedback** -- Track usage and collect feedback on template effectiveness
836. **Update** -- Revise templates based on feedback, legal changes, or policy updates
847. **Retirement** -- Archive templates that are no longer applicable
85
86### Response Generation Workflow
87
881. **Classify Inquiry** -- Determine category (DSR, NDA, subpoena, etc.) and sub-type
892. **Check Escalation** -- Run escalation detector on inquiry text
903. **If Escalation Detected** -- Stop; route to counsel with escalation report
914. **If No Escalation** -- Generate response with appropriate template and variables
925. **Review & Send** -- Review generated response before sending; adjust if needed
93
94## Response Categories
95
96| Category | Sub-Types | Description |
97|----------|-----------|-------------|
98| Data Subject Requests (DSR) | acknowledgment, verification, fulfillment, denial, extension | GDPR/CCPA data subject right requests |
99| Discovery/Litigation Holds | initial-notice, reminder, modification, release | Litigation hold management |
100| Privacy Inquiries | cookies, data-sharing, children, transfers | General privacy questions |
101| Vendor Legal Questions | contract-status, amendments, certifications, audit | Vendor/supplier legal matters |
102| NDA Requests | standard-form, counterparty-markup, decline, renewal | Non-disclosure agreement lifecycle |
103| Subpoena/Legal Process | acknowledgment, objection, extension, compliance | Legal process responses |
104| Insurance Notifications | initial-claim, supplemental-info, reservation-of-rights | Insurance claim management |
105
106### DSR Sub-Types
107
108| Sub-Type | Use When | Key Variables |
109|----------|----------|---------------|
110| acknowledgment | New DSR received | requestor_name, request_type, request_date |
111| verification | Identity verification needed | requestor_name, verification_method |
112| fulfillment | Request completed | requestor_name, request_type, data_description |
113| denial | Request denied with reason | requestor_name, request_type, denial_reason |
114| extension | Need more time | requestor_name, request_type, extension_reason, new_deadline |
115
116### Discovery/Litigation Hold Sub-Types
117
118| Sub-Type | Use When | Key Variables |
119|----------|----------|---------------|
120| initial-notice | New litigation hold issued | matter_name, custodians, data_types |
121| reminder | Periodic hold reminder | matter_name, reminder_number |
122| modification | Hold scope changed | matter_name, modification_description |
123| release | Hold lifted | matter_name, release_date |
124
125## Escalation System
126
127### Universal Triggers (Always Escalate)
128
129| # | Trigger | Why |
130|---|---------|-----|
131| 1 | Potential or active litigation | Legal exposure requires counsel assessment |
132| 2 | Regulatory investigation or inquiry | Regulatory response requires strategic approach |
133| 3 | Government or law enforcement contact | Constitutional and procedural rights at stake |
134| 4 | Binding legal commitment requested | Cannot create legal obligations without counsel |
135| 5 | Criminal liability exposure | Requires immediate counsel involvement |
136| 6 | Media attention or press inquiry | Reputational risk requires coordinated response |
137| 7 | Unprecedented or novel situation | No template exists; bespoke legal analysis needed |
138| 8 | Multi-jurisdictional conflict | Cross-border legal complexity requires expert analysis |
139
140### Escalation Response Protocol
141
1421. **Stop** -- Do not send any templated response
1432. **Alert** -- Notify designated counsel immediately
1443. **Explain** -- Provide escalation context with matched triggers
1454. **Recommend** -- Suggest routing based on trigger type
1465. **Draft** -- Mark any preliminary draft "FOR COUNSEL REVIEW ONLY"
147
148## Troubleshooting
149
150| Problem | Cause | Solution |
151|---------|-------|----------|
152| Missing variable in output | Required variable not provided | Check template requirements; provide all required `--var` parameters |
153| Wrong template selected | Category/sub-type mismatch | Review category descriptions; ensure sub-type matches inquiry type |
154| False positive escalation | Common words matching trigger patterns | Provide `--category` to use category-specific triggers; review matched triggers |
155| False negative escalation | Inquiry text too vague | Add more context to inquiry text; run both universal and category-specific checks |
156| Template too generic | Using default values | Replace all placeholder values with actual organization-specific details |
157| Discovery hold sent to wrong custodians | Custodian list outdated | Verify custodian list against current employees and systems |
158| Subpoena response not flagged | Missing category context | Always use `--category subpoena` for legal process; subpoena category always escalates |
159| Response tone inappropriate | Wrong audience context | Select appropriate sub-type; customize tone per audience |
160
161## Success Criteria
162
163- **Response Time**: Templated responses generated within 5 minutes vs. 30+ minutes manual drafting
164- **Escalation Accuracy**: 100% of genuine escalation triggers detected (zero false negatives on CRITICAL triggers)
165- **Template Coverage**: Templates cover 80%+ of recurring legal inquiry types
166- **Consistency**: All responses within a category use consistent language, tone, and legal caveats
167- **Audit Trail**: Every generated response logged with category, sub-type, date, and escalation status
168
169## Scope & Limitations
170
171**This skill covers:**
172- Template-based response generation for 7 common legal inquiry categories
173- Escalation detection using keyword and pattern matching against known triggers
174- Variable substitution for organization-specific customization
175- Response metadata generation for audit trail purposes
176
177**This skill does NOT cover:**
178- Legal advice or attorney-client privileged analysis
179- Automated sending of responses (generation only; human review required)
180- Contract drafting, negotiation, or legal document creation
181- Case management, docketing, or deadline tracking
182- Jurisdiction-specific legal compliance validation of response content
183
184## Anti-Patterns
185
186| Anti-Pattern | Why It Fails | Better Approach |
187|--------------|-------------|-----------------|
188| Sending templated response without review | May miss context-specific nuances; legal risk | Always review generated response before sending |
189| Ignoring escalation triggers | Critical matters mishandled; legal exposure | Run escalation detector on every inquiry; treat all triggers seriously |
190| Using templates for novel situations | Templates assume standard scenarios; novel situations need bespoke analysis | Escalate novel situations to counsel; create new template after resolution |
191| Hardcoding organization details in templates | Templates become non-portable; updates missed | Use variable substitution; maintain variables in configuration |
192| Skipping identity verification for DSRs | GDPR/CCPA require verification before fulfillment | Always send verification sub-type before fulfillment |
193
194## Tool Reference
195
196### `scripts/response_generator.py`
197
198Generate formatted legal responses with variable substitution.
199
200```
201usage: response_generator.py [-h] [--json]
202 --category {dsr,discovery,privacy,vendor,nda,subpoena,insurance}
203 --sub-type SUB_TYPE
204 [--var KEY=VALUE [KEY=VALUE ...]]
205
206options:
207 -h, --help Show help message and exit
208 --json Output in JSON format
209 --category Response category
210 --sub-type Response sub-type within category
211 --var Variable substitution as KEY=VALUE pairs
212```
213
214### `scripts/escalation_detector.py`
215
216Analyze inquiry text for escalation triggers.
217
218```
219usage: escalation_detector.py [-h] [--json]
220 --text TEXT
221 [--category {dsr,discovery,privacy,vendor,nda,subpoena,insurance}]
222
223options:
224 -h, --help Show help message and exit
225 --json Output in JSON format
226 --text Inquiry text to analyze for escalation triggers
227 --category Optional category for category-specific trigger detection
228```