# Legal Client Brief

> 为既有客户画像生成每日、每周或事件触发的行业法律简报草稿，并同时形成完整简报、朋友圈文案和公众号文章三件套；执行增量窗口、白名单信源、案例核验和 DRAFT 人工发布门禁。本技能应在用户需要“客户简报”“每日/每周追踪”“朋友圈或公众号日常触达”时使用。不要用于全面月报/季报、具体客户法律意见或自动发布。

- Skill: `cat-xierluo/legal-client-brief` (Agent Skill, multi-file: 42 files)
- Install (CLI): `npx skillmds@latest add cat-xierluo/legal-client-brief`
- Raw SKILL.md: https://api.skillmd.com/api/skills/cat-xierluo/legal-client-brief/raw
- Safety review: pending
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Coding & Dev Tools
- License: CC-BY-NC
- Author: cat-xierluo (https://skillmd.com/u/cat-xierluo)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/cat-xierluo/legal-client-brief

---


# 客户简报

## 产品定位与路由

生成面向既有客户的高频信息触达包。典型频率是每日、每周或重大事件触发，目标是持续提供有用信息并维护关系，不重复制作完整行业研究。

| 维度 | `legal-client-brief` | `legal-industry-report` |
|---|---|---|
| 使用阶段 | 日常/每周增量跟踪 | 月度/季度全面研究 |
| 核心关系 | 既有客户维护 | 市场展示与潜客获取 |
| 信息范围 | 本窗口内的新变化 | 行业全景、结构与趋势 |
| 交付 | 简报 + 朋友圈 + 公众号 | 一份正式报告 |
| 视觉语气 | 紧凑、移动端友好 | 正式、机构化、可留存 |
| 状态 | 永远先停在 `DRAFT` | `PUBLIC_REVIEW` |

用户需要形成长期可展示的月报或季报时，改用 `legal-industry-report`。本技能不得把上一期全文换日期后重新发布；没有有效增量时，应输出“本期无值得触达的重要变化”，而不是凑条目。

## 真实能力边界

本技能负责“跑一期”：读取画像、限定窗口、检索、核验、起草三个渠道稿、校验和本地打包。纯 cron、launchd 或 CI 只能重新打包已有 Markdown；周期性研究必须由能联网研究的 Agent 调度器触发。

本技能不发送微信、朋友圈、公众号、邮件或客户系统消息，不自动去掉 `DRAFT`，不修改信源白名单。所有发布动作由律师在本技能之外完成。

## 输入与配置

首次使用复制并填写：

1. `config/report-profile.example.md` → `config/report-profile.md`：品牌、编辑人和简报视觉。
2. `config/audience-profile.example.md` → `config/audience-profile.md`：既有客户的去标识化行业画像、业务重点和风险主题。
3. `config/sources-whitelist.example.txt` → `config/sources-whitelist.txt`：正文与两个渠道稿允许引用的域名。
4. 可选：`config/industry-rules.local.example.yaml` → `config/industry-rules.local.yaml`：细分行业补充规则。

真实配置由根目录 `.gitignore` 排除；前三项缺一即停止，不用默认值生成客户向草稿。

每期参数：

| 参数 | 必填 | 默认 | 说明 |
|---|---|---|---|
| `period_start` / `period_end` | 是 | 无 | 增量信息窗口 |
| `cadence` | 是 | 无 | `daily`、`weekly` 或 `event` |
| `industry_keywords` | 否 | 客户画像 | 本期检索词 |
| `previous_cutoff` | 否 | 上期截止日 | 去重和判断新变化 |
| `max_items` | 否 | 5 | 重点变化上限 |

## 权限与安全边界

本技能会把脱敏关键词发送给白名单内公开网站或用户授权数据库，读取本地配置和模板，并写入 Markdown、HTML、PDF、元数据与复核清单。

客户画像只写行业、规模区间、业务阶段和风险主题；避免真实客户全称、联系人账号、未公开经营数据和无必要的自然人信息。白名单外页面可作线索发现，但不得进入事实链、正文、朋友圈稿或公众号稿。

## 单期生成流程

1. **加载窗口与画像**：检查配置，确认 `cadence / period_start / period_end / previous_cutoff`。
2. **解析行业规则**：

   ```bash
   python3 scripts/resolve_industry_rules.py \
     --industry "<行业>" \
     --mode brief \
     --output <追踪计划.json>
   ```

   规则包给出应监测事件和客户相关性问题，但候选信源仍必须经过本地白名单。
3. **只找增量**：记录标题、发布者、发布日期、URL、是否在窗口内、相对上期的新变化、与客户画像的关系及采用/剔除理由。
4. **选择 1—5 条信号**：优先选“新、真、与客户有关、能转化为行动”的事项。没有足够价值时不凑数。
5. **核验案例**：案例必须有案号、法院、裁判日期、核验链接与核验日期；无法核验则写“本期未收录可核验案例”。
6. **起草三件套**：
   - `templates/brief-skeleton.md`：完整简报，解释变化、客户相关性和行动建议。
   - `templates/moments-copy.md`：朋友圈短文案，突出一个核心信号和一个行动提示。
   - `templates/wechat-draft.md`：公众号文章草稿，适合移动阅读并保留信源与免责声明。
7. **运行门禁**：

   ```bash
   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. **构建草稿包**：

   ```bash
   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. **可视与人工复核**：把 PDF 全页渲染为图片，检查紧凑度、表格、裁切和异常空白；逐条打开信源，复核法律含义与渠道表达。
10. **停在 DRAFT**：只报告本地路径、自动门禁结果和待人工判断事项。

## 三渠道写作纪律

- **完整简报**：回答“发生了什么、为什么与这类客户有关、现在能做什么”。
- **朋友圈**：一个核心判断、最多三个要点、一个轻量行动提示；不堆链接、不写确定性个案结论。
- **公众号**：标题和导语可传播，正文仍须保留事实边界、来源和免责声明；不得把营销口号写成法律结论。
- 三份稿件的事实、日期和结论方向必须一致；渠道压缩只能减少信息，不能改变事实。

## 输出契约

- `客户简报_<audience>_<cadence>_<period_end>_DRAFT.md`
- 同名 `.html`、`.pdf`、`.meta.json`、`.checklist.md`
- `朋友圈_<audience>_<period_end>_DRAFT.md`
- `公众号_<audience>_<period_end>_DRAFT.md`

元数据状态固定为 `DRAFT`，绑定三份 Markdown、PDF、画像、白名单和品牌配置的哈希。

## Hard Fail

出现任一项即停止：

- 三个必需配置缺失、为空或 `report_kind` 不是 `brief`。
- 任一三件套文件缺失 `_DRAFT` 文件名或正文 DRAFT 标识。
- 残留占位符、`[P?]` 或独立的 `...`。
- 任一文件出现白名单外 URL。
- 重点变化不在窗口内，或没有说明相对上期的新变化。
- 案例证据字段不全且未改写为“本期未收录可核验案例”。
- 三份稿件事实冲突，或把行业信息写成针对具体客户的确定性法律意见。
- PDF 为空、非 A4、明显裁切/重叠/乱码或存在异常空白页。
- 任何自动发送、外部推送或自动去掉 `DRAFT` 的路径。

自动门禁不证明法律判断与渠道传播效果正确；律师复核前保持 `NOT_VERIFIED`。

## 调度

按部署环境只读取一份：

- Agent 自动化平台：`deploy/workbuddy-deploy.md`
- OpenClaw 或其他 Agent 调度器：`deploy/openclaw-deploy.md`
- 纯 cron / launchd / CI 能力边界：`deploy/generic-cron-deploy.md`

## 依赖

Python 包统一安装：

```bash
python3 -m pip install -r scripts/requirements.txt
python3 -m playwright install chromium
```

Mermaid CLI 为可选依赖：`npm install -g @mermaid-js/mermaid-cli`。缺失时降级为代码块；脚本不会自动安装。

## 按需读取

- 行业规则：`references/industry-rules.yaml`
- 完整简报与渠道模板：`templates/brief-skeleton.md`、`templates/moments-copy.md`、`templates/wechat-draft.md`
- 人工复核：`templates/checklist-template.md`
- 视觉规范：`references/design-spec.md`
- 故障排查：依次运行 `validate_industry_rules.py`、`industry_rules_selftest.py`、`validate_report_selftest.py`、`validate_channels_selftest.py`

