From lpm-skills
Produces portfolio-level morning briefings for legal portfolio managers handling multiple matters, triaging emails, call notes, calendars into meetings, deliverables, issues, and risks as a .docx file. For multi-matter daily sweeps.
npx claudepluginhub legalopsconsulting/lpm-skillsThis skill uses the workspace's default tool permissions.
Portfolio-level triage surface for an LPM running two or more active matters. The skill reads correspondence, matter state, and calendar data across the portfolio and produces a morning briefing structured around four primary elements: meetings, deliverables, issues, and risks. Supporting context orients the reader enough to form questions of others — it does not try to answer every question it...
Produces .docx working views on single legal matters for LPM use, structured by deliverables, issues, risks. Four modes: standard drill-down, decision-first, partner prep, handoff briefing.
Generates legal briefings from email, calendar, contracts, chat, and CRM sources for daily summaries, topic research, or incident response.
Searches, retrieves, and installs Agent Skills from prompts.chat registry using MCP tools like search_skills and get_skill. Activates for finding skills, browsing catalogs, or extending Claude.
Share bugs, ideas, or general feedback.
Portfolio-level triage surface for an LPM running two or more active matters. The skill reads correspondence, matter state, and calendar data across the portfolio and produces a morning briefing structured around four primary elements: meetings, deliverables, issues, and risks. Supporting context orients the reader enough to form questions of others — it does not try to answer every question itself.
The discipline the skill encodes is cross-matter ranking. An LPM running a portfolio does not read their matters sequentially. They rank across the book — a Green matter with a client call at 10:00 today beats a Red matter in steady state. This skill makes that ranking discipline explicit and reproducible.
For a single matter zoom-in, use matter-drill-down. For an audience-facing status report on one matter, use status-report-drafter.
Classify the input before selecting a mode. The cost of misclassification (running the wrong mode) is higher than the cost of the classification step.
Step 1 — Matter count. Scan inputs for matter identifiers, client names, or matter-specific context.
matter-drill-down using the exact handoff response specified in the Boundary section below. This is not a suggestion or a preference. Producing a portfolio-framed document on a single-matter input — including any hybrid labelled "Mode 1 — Portfolio briefing (single-matter input)" or similar — is a skill failure, not a graceful degradation. The pedantic response is the correct response.Step 2 — Timeframe. Identify the timeframe the user has specified or implied.
matter-drill-downStep 3 — Input tagging. If the user has tagged inputs by source ([FROM LC], [INTERNAL], [CLIENT]), use those tags to route attribution in the output. Do not strip them.
Step 4 — Matter silence detection. After confirming multi-matter input, check each matter on the portfolio roster against correspondence provided.
Before producing any briefing, check:
Portfolio roster. Inputs must identify the matters in the portfolio. Look for a roster (matter names + identifiers + lead partner + lead LPM + RAG) at the top of the input, or infer from matter-specific correspondence. If no roster is provided and cannot be inferred, ask once: "What matters are in scope for this briefing?" Do not proceed without a roster.
Timeframe. State the timeframe explicitly in the output header. Inferred from user language or inputs, not assumed.
Owner. State the LPM's name in the output header. If not provided, use a placeholder [LPM NAME] — do not assume.
Identifiers. The briefing references multiple matters. Each matter mini-briefing includes matter name and matter number in its heading. Matter numbers use placeholder [M-NUMBER] if not provided in inputs.
This skill produces a portfolio-level triage surface for the LPM's own consumption. It does not:
status-report-drafter)matter-drill-down)risk-and-issues-manager)scope-change-controller)budget-and-fee-manager)The briefing surfaces triggers that invoke those skills. It does not do their work.
If the user pastes single-matter content and asks for a briefing, stop. Do not produce any content beyond the routing response. The response is literally:
"Single-matter input detected (matter: [matter name]). The daily-briefing skill produces portfolio-level views across two or more active matters. Run
matter-drill-downon [matter] for a focused single-matter working view. No briefing produced from daily-briefing."
Do not produce a "matter-level briefing structured to the template where possible". Do not produce a "Mode 1 — Portfolio briefing (single-matter input)" hybrid. Do not produce "a useful output rather than being pedantic". The pedantic response is the correct response. Producing a portfolio-framed document on a single matter is a failure mode, not a graceful alternative. The template is designed for cross-matter ranking; a single-matter input cannot be ranked, and cross-matter patterns cannot be assessed from one matter. Reshaping the template for single-matter use produces a document that looks like a briefing and fails at the primary job of the skill.
Fires when: User requests a briefing across the portfolio with no specific timeframe, or when inputs span multiple matters without timeframe context.
Input: Correspondence, call notes, matter baseline, and calendar data (if available) across the portfolio.
Output: Portfolio briefing using the standard template (below).
Fires when: User requests a zoom-in from portfolio context — "drill into [matter]", "focus on [matter]" — but has not invoked matter-drill-down directly.
Handoff rule: If the user wants a working view on a single matter, route to matter-drill-down. Do not produce a single-matter briefing from this skill.
"You want the working view on [matter]. Invoke matter-drill-down for the full view. If you want a one-paragraph position summary of that matter within today's portfolio briefing, I can include it in a Mode 1 output."
Fires when: User asks for "Monday sweep", "weekend catchup", "what landed over the weekend", or the monday-sweep scheduled Routine invokes the skill.
Input: Correspondence spanning Friday 17:00 through Monday 07:00 (or equivalent weekend window), plus matter baseline. Calendar past window extended to Friday 17:00 to cover weekend meetings.
Output: Standard briefing template (below) with one addition:
Fires when: User specifies a timeframe — "last 48 hours", "since Wednesday", "this morning".
Input: Correspondence bounded to the specified window.
Output: Standard briefing template scoped to the timeframe. Calendar retrieval uses standard windows (past 7 days, week ahead) regardless of correspondence window. Flag explicitly where matter state precedes the timeframe and remains relevant.
Produce the template sections in this exact order. Do not reorder. Do not omit. If a section has no content, state "No items this period" and move on.
DAILY BRIEFING — [LPM Name]
Prepared: [Date and time]
Mode: [1 / 3 / 4 — name]
Portfolio: [Matter count — short names]
Timeframe: [Start through End]
LPM ownership: [Which matters user leads vs oversees]
SUMMARY
[3–5 lines. Cross-matter framing, not sequential matter summaries.
Name the portfolio-level signal in one sentence. Identify the one or
two items that shape the day. State what needs attention before 09:00.
Where a meeting today is the primary constraint on how the rest of
the briefing reads, name it here — e.g. "Client call on Meridian
at 10:00 is today's primary constraint."
Information Gap Flag when applicable: if three or more matters on
the portfolio roster are silent in the input, name this explicitly
in the Summary as a portfolio-level signal. Example:
"Three of six matters (Aldwych, Nexus, Hartwick) are silent in this
period's inputs — briefing covers the three matters with
correspondence received. Confirm status on the silent three before
acting on this briefing alone."
The purpose is to alert the reader that the briefing is partial,
not to fabricate content to fill the gap.]
[Mode 3 only:]
WEEKEND DEVELOPMENTS
- [Item with matter, source, and one-line summary]
- [...]
MEETINGS — TODAY AND THIS WEEK
Upcoming matter-relevant calls and meetings for the week ahead,
ranked by imminence. Past meetings (last 7 days; Mode 3: since
Friday 17:00) noted where no follow-up correspondence has been
identified — for the LPM's awareness, not as a directive.
Upcoming:
| # | When | Matter | Meeting | Attendees | Notes |
|---|---|---|---|---|---|
| 1 | [Day, time] | [...] | [...] | [...] | [...] |
Past — no follow-up identified (soft flag only):
| Matter | Meeting | Date | Note |
|---|---|---|---|
If no calendar data is available: state "Calendar not retrieved
this session — paste calendar entries or connect M365 Calendar
to populate." Do not invent meetings. Do not infer meetings
from correspondence references. If calendar is empty or
unavailable, this section states so and stops.
DELIVERABLES — DUE TODAY OR THIS WEEK
Ranked across the portfolio by urgency and impact, not within matters.
Maximum 8 items. If more than 8 genuinely qualify, flag capacity
pressure in the SUMMARY and rank the top 8.
| # | Matter | Deliverable | Owner | By when | Why this matters |
|---|---|---|---|---|---|
| 1 | [...] | [...] | [...] | [...] | [...] |
ISSUES — CURRENT
Problems requiring action. Each with status and enough context for
the reader to act or to form questions.
| Matter | Issue | Status | Context for action |
|---|---|---|---|
RISKS — PLAUSIBLE FUTURE
Problems that may materialise. Each with probability/timing signal
and mitigation context.
| Matter | Risk | Signal | Mitigation context |
|---|---|---|---|
CROSS-MATTER PATTERNS
Signals that appear only when matters are viewed together. Name the
dynamic, not just the items. Examples: partner load pressure, LPM
load pressure, fee-structure exposure wave, shared-client overlap,
regulatory-driven disruption. If no patterns present, state
"No cross-matter patterns identified this period".
PARTNER ATTENTION — PORTFOLIO VIEW
Items requiring a lead partner's decision, response, or action.
Referenced by deliverables or issues section number, not duplicated.
| Matter | Partner | Item | Urgency | Reference |
|---|---|---|---|---|
MATTER MINI-BRIEFINGS
Length varies with matter weight. A matter in steady state gets
1–2 lines. A matter in active flux gets a paragraph. Do not
normalise length.
### [Matter 1 name] ([Matter number])
RAG · Phase · Lead Partner · Lead LPM · Fee model · WIP/Budget
[1–5 lines: current position, what is shaping the week, watch items.]
### [Matter 2 name] ([Matter number])
[...]
READING LIST — WHAT TO OPEN FIRST
Triage judgment. Max 5 items. Each item is something that would
most change the reader's day if read first. Not a summary of
content elsewhere in the briefing. Read times included.
| # | Source | Matter | Why this first | Read time |
|---|---|---|---|---|
HANDOFFS FLAGGED
Single-matter skills to invoke as follow-through. Each row names
the matter and the specific trigger.
| Skill | Matter | Trigger | Priority |
|---|---|---|---|
End of briefing.
Output rule: Produce from available information. Use placeholders for unknowns (e.g. [DATE TBC], [LPM NAME]). Do not withhold pending complete data. Do not ask questions before producing. Do not end with "want me to produce this as a .docx?" — produce the .docx.
Attribution rule: When a named individual in the inputs has produced substantive analysis or a recommendation (financial variance call, LC silence escalation judgment, scope framing recommendation), attribute it by name in the relevant section. Do not generalise to "the team" or "the matter".
Portfolio briefings are not matter reports stacked end to end. An LPM does not read matter by matter — they rank across the book. A Green matter with a client call at 10:00 today genuinely beats a Red matter in steady state. RAG is a trailing indicator of matter health; meeting imminence and deadline urgency are the leading indicators of today's action requirement. The two are different axes.
In the Deliverables section, rank across matters. Do not group by matter.
Meeting imminence as a ranking signal. A matter with a client call or partner decision meeting today shapes how the rest of the briefing reads. Name the meeting in the SUMMARY when it is the day's primary constraint. The MEETINGS section surfaces it for planning; the SUMMARY contextualises it so the reader knows what is shaping the day before reading anything else.
Past meeting gap detection — judgment, not compliance. When a past meeting appears in the calendar record and no follow-up correspondence is identifiable, flag it softly in the past-meetings table. The question is not "was there a follow-up?" as a rule — it is "was this the type of meeting where a follow-up would be expected?" Apply this distinction:
The flag is for the LPM's awareness only. Use the language "no follow-up correspondence identified" — not "follow-up overdue" or "action required". The LPM decides whether to chase. Do not escalate a past meeting to the ISSUES table solely because no follow-up was found; independent evidence of a problem is required to promote it beyond the soft flag.
Calendar matching to matters. Use the shortest distinctive keyword from each matter name as the search term — "Project Meridian" → search for "Meridian". Match calendar entries to matters by subject line keyword, meeting organiser, or attendee list (partner name, LC name, matter-specific contacts). Flag any entry that appears matter-relevant but cannot be matched to a specific matter — the LPM may know the context.
A calendar entry for a silent matter. Record the meeting in the MEETINGS upcoming table. A scheduled call on a quiet matter is a legitimate meeting requiring preparation. It does not promote the matter to active status in Deliverables, Issues, Risks, or Mini-Briefings. The silence discipline holds everywhere except the MEETINGS section.
Do not invent meetings. If calendar data is absent or connected retrieval returns nothing, state so and leave the section empty. Do not infer meetings from correspondence (an email referencing "our call on Tuesday" does not populate the MEETINGS table — only confirmed calendar entries do).
A matter in steady state with no live items gets 1–2 lines in the mini-briefing section and no appearance in Deliverables, Issues, or Risks. Padding a steady-state matter to match an active matter's content is the failure mode that destroys the reader's trust in the skill within two uses. If a matter is quiet, say so in one line and move on.
If an input is silent on a matter in the portfolio roster, report that matter as "no substantive update this period" and move on. Do not invent state, infer positions from matter-type stereotypes, or fill gaps with generic commentary. The reader will chase.
Silence on its own is a risk, not an issue. LC has not responded for 8 days — risk (ratcheting toward issue). LC has formally rejected the instruction — issue. Do not promote risks to issues without confirmation.
Past meetings with no identified follow-up sit in the MEETINGS past-meetings table as soft flags. They are not risks and not issues unless independent evidence of a problem exists beyond the absence of a follow-up email.
The skill must actively look for patterns. Named patterns to check against every briefing:
Name the dynamic, not just the items. "Same LPM on both Amber matters" is descriptive. "LPM load pressure — both Amber matters assigned to the same LPM, both generating today-urgent work with no natural buffer between" names the pattern.
The reading list is not a summary of content elsewhere in the briefing. It is the reader's question: "If I only have 15 minutes before the first call, what would most change my day if I read it first?" Each item earns its place by being decision-changing, not by being important in general.
When a named human in the inputs has produced substantive operational judgment — a fee-variance analysis, a scope-framing recommendation, a tactical observation on how to handle a difficult client call — the briefing surfaces that judgment and attributes it by name. Generic attribution to "the team" is the failure mode. Senior LPM reasoning is valuable and named.
.docx by default. All outputs from this skill are produced as .docx files unless the user explicitly requests markdown output.
Produce, do not ask. Produce the .docx on invocation. Do not end output with "want me to produce this as a .docx?" or similar conditional offers. The skill produces the output; the user asks for variations if needed.
Label is "SUMMARY", not "BLUF". Reader-facing outputs use plain language section labels.
No preamble. The output opens with the identifier header. No "Here is your briefing..." or "I've analysed the inputs and..." preamble.
Anti-pattern: single-matter rescue. When input is single-matter, do not attempt to reshape the portfolio template for single-matter use. Do not produce a "Mode 1 (single-matter input)" hybrid. Do not add notes like "Cross-matter patterns cannot be assessed from a single matter" in a section that then retains the portfolio structure. Route and stop. The Boundary section specifies the exact routing response — use it verbatim.
Silent matters rule. A matter with no correspondence in the input has only two permitted appearances in the briefing: (a) its one-line mini-briefing stating "no substantive update this period's inputs"; (b) its roster-level facts (partner, LPM, RAG, phase) if referenced in a handoff or partner attention item. Do not produce deliverables, issues, risks, cross-matter pattern content, reading list items, or operational specifics for silent matters. Do not invent step plan deadlines, pricing queries, partner touchpoints, associate names, client names, deliverable dates, or any specific operational content. If a cross-matter pattern would require populating a silent matter to justify, either drop the pattern or name it at roster-level only (e.g., "Ben Okonkwo is lead LPM on one Red matter with active correspondence and one Green matter silent this period — monitor bandwidth allocation"). Under no circumstances fabricate content for silent matters from the roster, from training data, or from domain knowledge about similar matter types. The roster is not a licence to populate matters from general reasoning.
Acknowledgment-then-violate anti-pattern. If you have written in the Summary that a matter is silent, you must not then produce operational content for that matter anywhere else in the briefing. Acknowledging silence does not license populating content downstream. The Information Gap Flag in the Summary, the mini-briefing for each silent matter, any cross-matter pattern reference, and any handoffs or partner attention references must all be consistent. A silent matter is silent across the whole document.
Specific prohibited moves:
The test to apply: if the Summary has acknowledged a matter as silent, could the briefing be shown to the matter's lead partner without any content in it being unfamiliar to them? If not, fabrication has occurred. The skill must hold the silence line consistently.
Produce from available information. Placeholders for unknowns, not questions. If the LPM name is not in the inputs, use [LPM NAME]. If a matter number is not known, use [M-NUMBER]. Flag placeholders in an "Information to confirm" line at the end of the document, not at the start.
The briefing is an LPM triage surface. It surfaces matters requiring attorney attention but does not opine on legal strategy or client advice. Where a matter's critical item involves attorney judgment (legal risk assessment, client advice framing, privileged communications), the skill references the item and routes it to the lead partner for decision — it does not offer legal analysis.
The daily-briefing skill is the highest-level LPM skill. It consumes nothing from other skills; it surfaces triggers that invoke them. Standard handoffs (produced in the "Handoffs flagged" section of the output):
scope-change-controllerrisk-and-issues-managerstatus-report-draftermatter-drill-downlocal-counsel-managerbudget-and-fee-managerresource-plannerstakeholder-comms-plannerEach handoff row in the output includes matter, trigger, and priority.
Calendar retrieval (all modes). When the M365 Calendar connector is available, query outlook_calendar_search for each matter in the roster using the shortest distinctive matter name keyword. Run two windows per matter:
Cross-reference past calendar entries against retrieved email correspondence to identify meetings with no follow-up. Surface results in the MEETINGS section. Do not query calendar before checking whether the connector is available — if unavailable, state so in the MEETINGS section and proceed.
Mode 1 (Portfolio briefing). Connected mode enables the skill to query Outlook for matter folders identified in the roster, retrieve correspondence in the specified timeframe, query Calendar for the week ahead and the past 7 days, and produce the briefing without user paste.
Mode 3 (Monday sweep). Connected mode enables scheduled invocation via the monday-sweep Routine. Default correspondence window: Friday 17:00 → Monday 06:00. Calendar past window extends to Friday 17:00 to cover weekend meetings. The Routine queries all matter folders identified in the user's portfolio roster (persisted as Project Memory or stored artefact).
Mode 4 (Ad-hoc timeframe). Connected mode retrieves correspondence within the user-specified window. Calendar retrieval uses the standard windows (past 7 days, week ahead) regardless of the correspondence window.
Manual mode fallback. All four modes operate fully on pasted input. Calendar entries can be pasted directly alongside email and call notes; if so, process them using the same matching logic as connected mode. If no calendar data is provided and connected retrieval is unavailable, state "Calendar not retrieved this session" in the MEETINGS section and proceed with email and correspondence inputs only.
Future connectors. A DMS or practice management system connector would enable matter baseline retrieval (phase, fee model, WIP) from the system of record rather than from user-pasted roster. Deferred.