- Load
~/.claude/plugins/config/claude-for-legal-zh/legal-clinic/CLAUDE.md→ jurisdiction, practice area, alert-day cadence. - Use the following workflow.
- Route by flag:
--add: capture case, type, description, due date, source, owner. Write to~/.claude/plugins/config/claude-for-legal-zh/legal-clinic/deadlines.yaml. Check for duplicates first.--report(default): cross-case summary — overdue, next 3 days, next 7 days, next 14 days; by owner; by practice area; unassigned flag.--update [id]: modify fields; record a dated note.--complete [id]: mark complete; confirm with the student that the work was actually submitted/served.--close [id]: close without completion; requires a reason in the notes.
- Confirm before any write.
Deadlines
Purpose
The biggest operational risk for a clinic is missing a deadline. Students handle multiple cases at once, work part-time, and turn over every semester. Deadlines that exist only in an individual student's head get missed at handoff, forgotten during finals week, and missed when a student unexpectedly leaves the clinic. This skill is the centralized operational record.
Once a deadline is missed, the supervising attorney bears responsibility. The skill is calibrated to that risk level — alerts fire early, overdue items remain visible until explicitly resolved, and handoff (via /semester-handoff) passes the deadline list forward to the next student.
Load context
~/.claude/plugins/config/claude-for-legal-zh/legal-clinic/CLAUDE.md→ jurisdiction, practice area, deadline alert days (default 14/7/3/1), supervising attorney~/.claude/plugins/config/claude-for-legal-zh/legal-clinic/deadlines.yaml— categorized ledger
Jurisdiction assumptions. Deadline calculations and alert thresholds assume the jurisdiction set in CLAUDE.md. Deadlines, interruption/extension rules, period-computation rules, and local court practices differ materially across provinces and specific courts. If the matter involves a different province, specific court local rules, or a court-level issue, confirm the deadline against the jurisdictional rules with your supervising attorney before relying on it.
Modes
Flags:--add | --report | --update | --complete | --close(default: report)
--add — record a new deadline
Inputs:
- Case number + name (which case)
- Practice area
- Type: answer period / hearing / statute of limitations / evidence period / appeal period / application-for-enforcement period / administrative reconsideration / other
- Description — one line stating what must be done
- Due date (including time and time zone if applicable)
- Source — where the deadline comes from (court summons date, statutory basis such as Article 188 of the Civil Code, Article 128 of the Civil Procedure Law)
- Responsible student — the name of the student responsible
The skill automatically generates id identifier:[案件]-[简短描述]-[YYYY-MM]。
Extracted from other skills: when /client-intake、/draft or /status surfaces a deadline in its output, it should hand off to this skill with fields pre-filled. The student confirms and adds it.
Check before adding: if a deadline with the same case_id + type + due_date exists, flag it as a possible duplicate and ask before adding.
Sanity-check bands. After the student inputs a deadline, do not compute or verify—but do a rough sanity check against the typical range for that submission type, and flag the student if the date is far outside the range. This is a scaffold to help students self-check for major arithmetic errors, not a substitute for computing against the rules.
Check bands are set per jurisdiction. Load the check band file for this clinic's jurisdiction from references/plausibility-bands/{省份}.md . If the jurisdiction's check band file does not exist at cold start, write warnings: no-plausibility-bandfor every entry in this session, and tell the supervising attorney how to create the check band file.
Sanity-check logic:
- Load the check band table for this clinic's jurisdiction (plus the always-applicable nationwide periods).
- After the student inputs
due:, compare it with the typical range for that submission type. - If within range, write the entry. Say nothing—check bands exist to catch errors, not to celebrate correct computations.
- If clearly out of range, stop before writing and prompt for re-checking.
- If the check band for that type is unknown (an uncommon submission type), do not run a sanity check.
This skill does not compute deadlines. If the student inputs due: in the [需核实] field because they have not done the computation yet, then write the entry with due: [需核实] —the sanity-check band only runs when the student provides a concrete date. Computation remains with the student and the supervising attorney.
--report(default) — cross-case summary
Read ~/.claude/plugins/config/claude-for-legal-zh/legal-clinic/deadlines.yaml. Produce:
# 截止日期报告 — [今天日期]
**活跃截止日期:** [N]
**逾期:** [N] ⚠️
**本周到期(未来7天):** [N]
---
## ⚠️ 逾期(标记需立即关注)
| ID | 案件 | 类型 | 截止日期 | 负责人 | 逾期天数 |
|---|---|---|---|---|---|
## 🔴 今天到期 / 未来3天
| ID | 案件 | 类型 | 截止日期 | 负责人 |
|---|---|---|---|---|
## 🟡 4-7天内到期
| ID | 案件 | 类型 | 截止日期 | 负责人 |
|---|---|---|---|---|
## 🟢 8-14天内到期
[列表]
## 14天之后
[仅计数——扩展至30天详情用 `/deadlines --report --horizon=30`]
---
## 按负责学生(工作量分配)
| 学生 | 逾期 | 未来7天 | 未来14天 | 活跃总数 |
|---|---|---|---|---|
## 按实践领域
[相同表格,按领域分组]
## 未分配截止日期
[列表——如有任何活跃截止日期没有负责学生则标记]
--update — modify an existing deadline
Common updates: deadline change (court extension), responsible-person change (reassignment), adding notes.
Write a dated note for every update; the history is visible in the entry.
--complete — mark complete
- Set
status: completed,completed_date: [今天]。 - Confirm with the student that the actual work has been completed and submitted/served.
- Remove from active reports but keep in the yaml.
--close — close without completion
Applies to deadlines that no longer apply—the case settled, the motion was withdrawn, the party is no longer pursuing the matter. Requires stating the reason in notes: .
Alert cadence
By the ~/.claude/plugins/config/claude-for-legal-zh/legal-clinic/CLAUDE.md deadline alert days. Default 14, 7, 3, 1.
Alerts are not pushed automatically—this plugin has no scheduled task/agent behavior. But every invocation of /deadlines(or /status, which routes to this skill for deadline checks) will pull up in the report any matters that have hit an alert threshold.
If a deadline passes its due date and is not marked complete, move it to status: overdue and keep it there in every report until it is explicitly resolved. Overdue deadlines are not closed automatically.
Skill interactions
/client-intake: When intake surfaces time-sensitive urgency, propose running/deadlines --add。/draft: with pre-filled fields. When a document draft references a deadline (response due, objection window), propose adding it./status: The status skill reads the relevant case's~/.claude/plugins/config/claude-for-legal-zh/legal-clinic/deadlines.yamland includes its active deadlines in the output./semester-handoff: Read deadlines.yaml to identify all active deadlines in departing students' cases; each handoff memo carries the deadlines forward./supervisor-review-queue(if formal review is enabled): Cases with approaching deadlines get priority in the review queue.
What this skill does not do
- Compute deadlines from triggering events. If the complaint is served today, the response period under Article 128 of the Civil Procedure Law is 15 days; this skill does not perform that calculation—students apply the rules and record the resulting date. (Autonomous calculation would create a professional responsibility the skill should not assume; the rules vary by jurisdiction and court level.)
- File or serve any document. The skill tracks dates; filing occurs outside the plugin.
- Automatic notifications. No scheduled notifications. Reports present alerts when invoked; they do not push.
- Override local rules. If a deadline recorded by a student contradicts local rules, the skill cannot catch it. For this reason, for any non-standard deadline, annotate
[需核实:确认对照本地规则]。