From legal-aid
Generates funder reporting data packages for legal aid. Reads CLAUDE.md cadence, queries case-management system, maps to funder formats (LSC, IOLTA, HUD, VAWA, etc.), flags gaps. Does not submit.
How this skill is triggered — by the user, by Claude, or both
Slash command
/legal-aid:lsc-report [funder=lsc|iolta|vawa|hud|foundation|state] [period=2026-Q1|2025-H2|...] [--dry-run][funder=lsc|iolta|vawa|hud|foundation|state] [period=2026-Q1|2025-H2|...] [--dry-run]The summary Claude sees in its skill listing — used to decide when to auto-load this skill
1. Load `~/.claude/plugins/config/claude-for-legal/legal-aid/CLAUDE.md` → funder reporting section, funders applied, reporting cadence, ownership, format pointers, sample-report path.
~/.claude/plugins/config/claude-for-legal/legal-aid/CLAUDE.md → funder reporting section, funders applied, reporting cadence, ownership, format pointers, sample-report path./legal-aid:lsc-report funder=lsc period=2026-H1
/legal-aid:lsc-report funder=iolta period=2025-annual
/legal-aid:lsc-report --dry-run
Funder reporting is the back end of the legal aid funnel. The same office that runs eligibility screening, intake, and case management at the front end has to extract, format, and submit data to LSC, IOLTA, HUD, VAWA, state appropriations, and foundation grantors at funder-specific cadences. Each report has its own format, categories, narrative requirements, and quirks. Getting it wrong puts funding at risk.
This skill reads the office's reporting configuration from CLAUDE.md, queries the case-management system for the data each funder wants, maps that data to the funder's expected format, flags gaps and miscoded entries, and produces a data package matching the office's prior reporting style. The reporting owner (managing attorney, grants person, or designated staffer) takes that package, reviews it, and runs the actual submission through the office's normal workflow.
What it doesn't do: submit. Submission to LSC's CSR system, the state IOLTA portal, HUD, the foundation's reporting interface — those run through the office's authenticated session, not the plugin. The plugin extracts and formats; the reporting owner submits.
~/.claude/plugins/config/claude-for-legal/legal-aid/CLAUDE.md → funders applied (from Part 0 of cold-start), funder-reporting section (cadence, ownership, case-management data feeding each report, office-specific subcategories, narrative templates), sample-report paths if uploaded at cold-start.
If the office didn't upload a sample report for the requested funder at cold-start, the skill falls back to a generic template and notes the gap. Match-to-prior-format is the default; generic-template is the fallback.
Different funders want different things. The skill recognizes these shapes and adapts:
Confirm funder and period. If not specified:
Which funder report? The next reports due per your cadence are:
- LSC: [2026-H1 CSR — due July 31, 2026]
- IOLTA: [2025 annual — due April 30, 2026 (overdue)]
- VAWA: [2026-Q1 — due April 30, 2026]
- [other funders per CLAUDE.md]
Or specify with
funder=andperiod=.
If a report is overdue, flag prominently. If the office is missing the configuration for a funder named in Part 0 of cold-start, route to /cold-start-interview --redo reporting to populate it.
Query criteria for the funder and period:
Output the query criteria in plain language so the reporting owner can verify before running.
If the case-management system is connected via MCP:
If not connected:
For each case in the population:
Use the office's prior report (uploaded at cold-start) to match format precisely — section headings, table structures, narrative conventions. If no prior report uploaded, use the funder's official template and note: "Format inferred from funder template; office prior report not available."
Flag for the reporting owner:
These flags are surfaced; the reporting owner resolves them.
# [Funder] Report Data Package: [Period]
---
[AI-ASSISTED DATA PACKAGE — requires reporting-owner review and managing-attorney sign-off before submission]
**Confidentiality.** This package contains aggregated and case-level data subject to office privilege rules, funder-specific confidentiality requirements (VAWA, HUD), and Rule 1.6. Store in the office's privileged file location. Distribution restricted to reporting owner and managing attorney until submission is approved.
---
**Funder:** [name] | **Period:** [period] | **Generated:** [date]
**Format basis:** [matched to office prior report uploaded [date] / generic funder template]
**Reporting owner:** [name from CLAUDE.md]
**Due date:** [date]
## Summary
- Cases in report population: [N]
- Cases with complete data: [N — N% of population]
- Cases with gaps requiring resolution: [N — see Gaps section]
- Possible miscoding flags: [N — see Miscoding section]
## Aggregate sections
[Funder-specific aggregate tables and narratives, matched to office prior format:]
[For LSC CSR:]
| CSR Category | Count | % |
|---|---|---|
| 1. Counsel and Advice | [N] | [pct] |
| 2. Brief Services | [N] | [pct] |
| ... | ... | ... |
[Demographic aggregate]
[Problem-code aggregate]
[For IOLTA: narrative + tables per office prior]
[For VAWA: service counts + aggregated demographic + confidentiality attestation prompt]
[etc.]
## Case-level data (where required)
[Funder-required case-level rows. For LSC CSR, this is per case with the LSC-required fields. For VAWA, aggregated only — no case-level data leaves the privileged store.]
[Table or structured list per funder format]
## Gaps requiring resolution before submission
- [Case ID] [Field missing] [Suggested action — e.g., "Demographic fields blank; check intake form for race/ethnicity; if not collected, document why per office's data-collection policy"]
- [Case ID] [Field missing] [...]
## Possible miscoding flags
- [Case ID] [Issue — e.g., "Coded LSC; facts suggest § 1626 alien restriction engaged; may belong under IOLTA. Recommend managing-attorney review."]
- [Case ID] [Issue — ...]
## Boundary cases
- [Case ID] [Close date / opening date relative to period — e.g., "Closed [date] — within 2 days of period boundary. Verify closure date is correct."]
## Confidentiality flags (VAWA only)
- [Case ID] [Concern — e.g., "Demographic aggregation with N=2 in this rural county may risk identifying clients. Suppress or further aggregate."]
## Narrative sections (where required)
[For IOLTA / foundation / state reports with narrative requirements:]
**Program description:** [Pulled from CLAUDE.md office profile; reporting owner edits as appropriate]
**Achievements this period:** [Drawn from closed-case outcomes; reporting owner reviews and edits]
- [Achievement summary 1]
- [Achievement summary 2]
**Challenges this period:** [Reporting owner authors; AI suggests prompts based on intake volume vs. capacity data]
- [Suggested prompt for reporting owner]
**Looking ahead:** [Reporting owner authors]
## Premises this package rests on
- [Data source(s) and query date]
- [Case-management system data as of [timestamp]]
- [Office prior report format reference, if used]
- [Funder template reference and version, if used as fallback]
## Verification prompts before submission
- Verify aggregate totals against case-management system independently — match the count in the report to the count in the system
- Resolve every gap and miscoding flag with the managing attorney
- Verify demographic aggregates against the office's data-collection policy and any consent limitations
- For VAWA: review every confidentiality flag and aggregate further if any case-level disclosure risk exists
- For LSC: confirm hours allocation matches the office's time-tracking system, not estimated from case count
- Confirm narrative sections are factually accurate and approved by the managing attorney before submission
- Save final-version package to the privileged file store with the submission acknowledgement
## Submission notes (from CLAUDE.md)
- Submission method: [LSC Grants Portal / state IOLTA portal / foundation portal / email to grants officer]
- Submission credentials: [held by reporting owner — not in this package]
- Submission deadline: [date]
- Office's typical submission window before deadline: [e.g., "2 weeks before deadline"]
--dry-runRun all steps except the final data package output. Show:
Useful for verifying configuration before a real reporting cycle, or for the managing attorney to see what the next quarter's report will look like.
/eligibility-screening → /client-intake → /draft etc. is the input this skill aggregates from. Skills that fail to propagate the matrix create gaps that surface here.[FUNDING RESTRICTION: ...] in earlier skills should match the funder allocation in case management; mismatches surface as miscoding flags.npx claudepluginhub lawdroidai/legal-aid-pluginGenerates audience-specific case status summaries for legal aid: client-facing (plain language), internal (managing attorney), court-ready (formal caption), or funder (ad-hoc monitoring update).
Parses a YAML-based litigation portfolio log and produces a rollup summary: risk distribution, upcoming deadlines/hearings, stale files, materiality totals, stage breakdown, and anomaly flags. Designed for quick scanning by a General Counsel.
Drafts structured legal matter status reports from emails, call notes, and updates. Analyzes progress vs activity, adds dates/actions, variance, escalations for internal/client use.