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