SuperAPI AI Directory

legal-client-brief

Writing & research

View repository

Updated 10-15 20:10

About this skill

Client Briefing

Product Positioning and Routing

Generate a high-frequency information outreach package for existing clients. Typical frequency is daily, weekly, or triggered by major events, with the goal of continuously providing useful information and maintaining relationships, without repeatedly producing complete industry research.

Dimension legal-client-brief legal-industry-report
Usage Stage Daily/Weekly Incremental Tracking Monthly/Quarterly Comprehensive Research
Core Relationship Existing Client Maintenance Market Display and Prospect Acquisition
Information Scope New changes within this window Industry panorama, structure, and trends
Delivery Briefing + WeChat Moments + Official Account One formal report
Visual Tone Compact, mobile-friendly Formal, institutional, retainable
Status Always stop first at DRAFT PUBLIC_REVIEW

When the user needs to produce a long-term displayable monthly or quarterly report, switch to legal-industry-report. This skill must not re-publish the full text of the previous issue after changing the date; when there is no effective increment, it should output "No important changes worth reaching out about in this issue" rather than padding the list.

Real Capability Boundaries

This skill is responsible for "running one issue": reading the profile, limiting the window, retrieval, verification, drafting three channel copies, validation, and local packaging. Pure cron, launchd, or CI can only repackage existing Markdown; periodic research must be triggered by an Agent scheduler capable of online research.

This skill does not send WeChat, WeChat Moments, official account, email, or client system messages, does not automatically remove DRAFT, and does not modify the source whitelist. All publishing actions are completed by the lawyer outside this skill.

Inputs and Configuration

For first-time use, copy and fill in:

  1. config/report-profile.example.md → config/report-profile.md: Brand, editor, and briefing visuals.
  2. config/audience-profile.example.md → config/audience-profile.md: De-identified industry profiles, business priorities, and risk themes of existing clients.
  3. config/sources-whitelist.example.txt → config/sources-whitelist.txt: Domains allowed to be cited in the body and the two channel copies.
  4. Optional:config/industry-rules.local.example.yaml → config/industry-rules.local.yaml: Supplementary rules for subdivided industries.

Real configuration is excluded by the root directory .gitignore ; if any of the first three items is missing, stop and do not generate client-facing drafts with default values.

Parameters for each issue:

Parameter Required Default Description
period_start / period_end Yes None Incremental information window
cadence Yes None daily、weekly or event
industry_keywords No Client profile Search terms for this issue
previous_cutoff No Previous issue cutoff date Deduplication and determining new changes
max_items No 5 Maximum number of key changes

Permissions and Security Boundaries

This skill sends de-identified keywords to whitelisted public websites or user-authorized databases, reads local configuration and templates, and writes Markdown, HTML, PDF, metadata, and a review checklist.

Customer profiles only include industry, size range, business stage, and risk themes; avoid full names of real customers, contact accounts, undisclosed business data, and unnecessary personal information about natural persons. Pages outside the whitelist may be used for lead discovery, but must not enter the fact chain, main text, Moments posts, or official account posts.

Single-issue generation process

  1. Load window and profile: check the configuration, confirm cadence / period_start / period_end / previous_cutoff。

  2. Parse industry rules:

    python3 scripts/resolve_industry_rules.py \
      --industry "<行业>" \
      --mode brief \
      --output <追踪计划.json>
    

    The rule pack provides events to monitor and customer-relevant questions, but candidate sources must still pass the local whitelist.

  3. Find only increments: record the title, publisher, publication date, URL, whether it is within the window, new changes relative to the previous issue, relationship to the customer profile, and reason for adoption/rejection.

  4. Select 1–5 signals: prioritize items that are "new, true, relevant to the customer, and convertible into action." Do not pad the count when there is insufficient value.

  5. Verify cases: cases must have a case number, court, judgment date, verification link, and verification date; if verification is impossible, write "No verifiable cases were included in this issue."

  6. Draft the three-piece set:

    • templates/brief-skeleton.md: complete briefing that explains the changes, customer relevance, and action recommendations.
    • templates/moments-copy.md: short Moments copy, highlighting one core signal and one action prompt.
    • templates/wechat-draft.md: draft official account article, suitable for mobile reading and retaining sources and disclaimer.
  7. Run gates:

    python3 scripts/validate_report.py \
      --kind brief \
      --input <客户简报_DRAFT.md> \
      --whitelist config/sources-whitelist.txt
    
    python3 scripts/validate_channels.py \
      --moments <朋友圈_DRAFT.md> \
      --wechat <公众号_DRAFT.md> \
      --whitelist config/sources-whitelist.txt \
      --brief <客户简报_DRAFT.md>
    
  8. Build draft package:

    python3 scripts/build_report.py \
      --kind brief \
      --input <客户简报_DRAFT.md> \
      --moments-copy <朋友圈_DRAFT.md> \
      --wechat-draft <公众号_DRAFT.md> \
      --profile config/report-profile.md \
      --audience-profile config/audience-profile.md \
      --whitelist config/sources-whitelist.txt \
      --cadence weekly \
      --period-start <YYYY-MM-DD> \
      --period-end <YYYY-MM-DD>
    
  9. Visual and manual review: render all PDF pages as images, check compactness, tables, cropping, and abnormal blank space; open sources one by one, and review legal meaning and channel expression.

  10. Stop at DRAFT: report only local paths, automated gate results, and matters pending manual judgment.

Three-channel writing discipline

  • Complete briefing: answer "what happened, why it is relevant to this type of customer, and what can be done now."
  • Moments: one core judgment, at most three key points, and one lightweight action prompt; do not pile up links and do not write definitive conclusions about individual cases.
  • Official account: the title and lead may be shareable, but the main text must still retain factual boundaries, sources, and disclaimer; marketing slogans must not be written as legal conclusions.
  • The facts, dates, and conclusion direction of the three drafts must be consistent; channel compression may only reduce information and must not change facts.

Output contract

  • 客户简报_<audience>_<cadence>_<period_end>_DRAFT.md
  • Same name .html、.pdf、.meta.json、.checklist.md
  • 朋友圈_<audience>_<period_end>_DRAFT.md
  • 公众号_<audience>_<period_end>_DRAFT.md

Metadata status is fixed as DRAFT, binding the hashes of the three Markdown files, PDF, profile, whitelist, and brand configuration.

Hard Fail

Stop if any of the following occurs:

  • The three required configurations are missing, empty, or report_kind is not brief。
  • Any file in the three-piece set is missing _DRAFT filename or main-text DRAFT marker.
  • Residual placeholders,[P?] or standalone ...。
  • Any file contains a URL outside the whitelist.
  • A key change is not within the window, or the new change relative to the previous issue is not explained.
  • The case evidence fields are incomplete and have not been rewritten as "No verifiable cases were included in this issue."
  • The three drafts conflict on facts, or present industry information as definitive legal advice for a specific client.
  • The PDF is empty, not A4, visibly cropped/overlapping/garbled, or contains abnormal blank pages.
  • Any automatic sending, external push, or automatic removal of DRAFT paths.

Automated gates do not prove that legal judgments and channel propagation effects are correct; before lawyer review, keep NOT_VERIFIED。

Scheduling

Read only one according to the deployment environment:

  • Agent automation platform:deploy/workbuddy-deploy.md
  • OpenClaw or other Agent scheduler:deploy/openclaw-deploy.md
  • Pure cron / launchd / CI capability boundaries:deploy/generic-cron-deploy.md

Dependencies

Unified installation of Python packages:

python3 -m pip install -r scripts/requirements.txt
python3 -m playwright install chromium

Mermaid CLI is an optional dependency:npm install -g @mermaid-js/mermaid-cli. When missing, it degrades to a code block; the script will not install it automatically.

Read on demand

  • Industry rules:references/industry-rules.yaml
  • Full briefing and channel templates:templates/brief-skeleton.md、templates/moments-copy.md、templates/wechat-draft.md
  • Manual review:templates/checklist-template.md
  • Visual specifications:references/design-spec.md
  • Troubleshooting: run in sequence validate_industry_rules.py、industry_rules_selftest.py、validate_report_selftest.py、validate_channels_selftest.py