$npx -y skills add pa1nrui1/legal-skills --skill 法律文书出稿前审查在法律业务 Skill 生成正文或要素式字段后、法律文书模板与导出生成本地 Word 前触发。用于审查 draft.html/preflight-meta.json 或 complaint-data.json/fill-plan.json、读取复查摘要、法规校验摘要、来源边界和用户确认记录,决定是否可以进入正式 DOCX 导出;发现问题后必须闭环推进到业务 Skill 整改、用户确认或材料读取流程。
| 1 | # 法律文书出稿前审查 |
| 2 | |
| 3 | 本 Skill 是正式本地 Word 输出前的强制闭环审查节点,不替代业务 Skill 的事实判断、法律分析和正文起草。 |
| 4 | |
| 5 | ## 法律工作总控规则(强制) |
| 6 | |
| 7 | 执行本 Skill 前,必须先遵循: |
| 8 | - skills/legal/法律工作总控/references/practice-profile.md |
| 9 | - skills/legal/法律工作总控/references/source-boundary-protocol.md |
| 10 | |
| 11 | 本 Skill 继承 `practice-profile.md` 的子 Skill 执行质量门;材料读取、法规核验、用户确认和来源边界缺失时,不得进入正式导出链路。 |
| 12 | |
| 13 | ## 触发条件 |
| 14 | |
| 15 | - 最终产物是本地 `.docx` 的法律文书、报告、清单、笔录、意见书、函件、合同或正式交付文件。 |
| 16 | - 普通线性文书:业务 Skill 已生成 `draft.html` 和 `preflight-meta.json`,准备进入 `法律文书模板与导出`。 |
| 17 | - 要素式表单文书:业务 Skill 已生成 `complaint-data.json` 和 `fill-plan.json`,准备进入 DOCX 母版克隆填充链路。 |
| 18 | - 用户直接点名业务 Skill 输出 Word 时,也必须先经过本 Skill。 |
| 19 | |
| 20 | 格式测试稿、非正式实验稿可以例外,但必须明确标注不是正式交付。 |
| 21 | |
| 22 | ## 输入 |
| 23 | |
| 24 | 普通线性文书必须提供: |
| 25 | |
| 26 | - `draft.html`:语义 HTML,使用 `h1`、`h2`、`h3`、`p`、`section`、`table` 等标签。 |
| 27 | - `preflight-meta.json`:出稿前元数据,使用“声明 + 证据路径”,不得只写布尔值。 |
| 28 | |
| 29 | `preflight-meta.json` 至少包含: |
| 30 | |
| 31 | ```json |
| 32 | { |
| 33 | "source_skill": "诉讼文书起草", |
| 34 | "doc_type": "取保候审申请书", |
| 35 | "output_purpose": "正式交付", |
| 36 | "profile": "litigation_standard", |
| 37 | "template_selection_path": ".../template-selection.json", |
| 38 | "content_template_id": "registered_template_id", |
| 39 | "content_template_version": "1.0", |
| 40 | "content_template_sha256": "sha256", |
| 41 | "profile_id": "litigation_standard", |
| 42 | "profile_version": "1.0", |
| 43 | "format_standard": "litigation_standard", |
| 44 | "matter_path": "...", |
| 45 | "system_record_path": "...", |
| 46 | "evidence": { |
| 47 | "reading_review_path": "...", |
| 48 | "legal_verification_path": "...", |
| 49 | "source_boundary_path": "...", |
| 50 | "user_confirmation_source": "..." |
| 51 | }, |
| 52 | "required_confirmations": [], |
| 53 | "known_gaps": [] |
| 54 | } |
| 55 | ``` |
| 56 | |
| 57 | 要素式表单文书必须提供: |
| 58 | |
| 59 | - `complaint-data.json`:结构化字段,字段应有来源或缺口说明。 |
| 60 | - `fill-plan.json`:字段到 DOCX 母版的表格坐标和锚点映射。 |
| 61 | - `qc-meta.json`:模板 ID、事项路径、来源记录、读取复查、法规校验和用户确认记录。 |
| 62 | |
| 63 | ## 审查命令 |
| 64 | |
| 65 | ```bash |
| 66 | python scripts/preflight_check.py \ |
| 67 | --html draft.html \ |
| 68 | --meta preflight-meta.json \ |
| 69 | --output-html draft_checked.html \ |
| 70 | --report 出稿前审查报告.md |
| 71 | ``` |
| 72 | |
| 73 | ## 审查规则 |
| 74 | |
| 75 | - 核验 `draft.html`、`preflight-meta.json` 和证据路径是否存在、可读、内容匹配。 |
| 76 | - 核验读取复查摘要、法规校验摘要、来源边界记录、用户确认记录是否真实存在。 |
| 77 | - 如正文引用法律、法规、司法解释、案例、裁判规则等内容,必须有法规校验摘要。 |
| 78 | - 如 `required_confirmations` 非空,必须能在用户确认记录中找到对应确认内容。 |
| 79 | - 检查固定身份信息: |
| 80 | - 律所:【律所名称】 |
| 81 | - 律师:【律师姓名】 |
| 82 | - 地址:【律所地址】 |
| 83 | - 电话:【联系电话】 |
| 84 | - 邮箱:【电子邮箱】 |
| 85 | - 检查 HTML 结构至少包含标题和正文;含表格时必须保留为真实 `table`。 |
| 86 | - 检查 `profile` 是否能匹配 `法律文书模板与导出/assets/profiles/` 中的 profile;未命中时使用 `fallback_desktop_word`。 |
| 87 | - 如 `preflight-meta.json` 记录了 `template_selection_path` 或 `content_template_id`,必须核验模板选择记录、模板版本、模板 sha256、profile 版本和兼容 profile;未登记模板、sha256 不一致、profile 不兼容或解除委托协议误用 `entrustment_contract` 时,必须阻断。 |
| 88 | - 要素式表单文书检查模板 ID 是否命中 `template-clone-manifest.json`。 |
| 89 | - 检查 `fill-plan.json` 中每个字段是否有唯一表格坐标和锚点;重复锚点不得只用全局文本定位。 |
| 90 | - 检查字段缺口、金额、日期、主体、诉请和落款是否已确认;未确认字段不得写入正式字段。 |
| 91 | |
| 92 | ## 自动修正边界 |
| 93 | |
| 94 | 允许自动修正: |
| 95 | |
| 96 | - 固定身份信息错误或缺漏。 |
| 97 | - 简单 HTML 类名和标签修复。 |
| 98 | - Markdown 表格转 HTML 表格。 |
| 99 | - 明显格式类问题。 |
| 100 | |
| 101 | 禁止自动修正: |
| 102 | |
| 103 | - 事实、金额、日期、案号、诉讼请求、罪名。 |
| 104 | - 授权范围、收费方式、合同核心条款。 |
| 105 | - 法律依据、裁判项、风险结论。 |
| 106 | - 用户尚未确认的实体选择。 |
| 107 | |
| 108 | ## 输出状态 |
| 109 | |
| 110 | 审查报告必须包含: |
| 111 | |
| 112 | - `review_status` |
| 113 | - `next_owner` |
| 114 | - `next_action` |
| 115 | - `return_to_skill` |
| 116 | - `revision_items` |
| 117 | - `confirmation_questions` |
| 118 | - `evidence_required` |
| 119 | - `rerun_required` |
| 120 | |
| 121 | 状态含义: |
| 122 | |
| 123 | - `PASS`:可以进入 `法律文书模板与导出`。 |
| 124 | - `FIXED_PASS`:已完成低风险自动修正,可以进入 `法律文书模板与导出`。 |
| 125 | - `NEEDS_BUSINESS_REVISION`:退回业务 Skill 整改正文、结构、法律分析或元数据。 |
| 126 | - `NEEDS_USER_CONFIRMATION`:需要集中向用户确认事实、选择项、授权、收费、诉请、金额或期限。 |
| 127 | - `NEEDS_MATERIAL`:需要补充材料、重新读取、OCR 或补充读取复查摘要。 |
| 128 | - `HARD_BLOCK`:存在无法继续推进的根本问题。 |
| 129 | |
| 130 | ## 闭环推进 |
| 131 | |
| 132 | - 不得只拦截问题;必须给出下一步归属和动作。 |
| 133 | - `NEEDS_BUSINESS_REVISION`:退回 `source_skill`,按 `revision_items` 整改后重新运行本 Skill。 |
| 134 | - `NEEDS_USER_CONFIRMATION`:向用户集中确认 `confirmation_questions`,写入用户确认记录后重新运行本 Skill。 |
| 135 | - `NEEDS_MATERIAL`:回到 `法律工作总控` 的材料读取、OCR、读取复查和法规校验流程。 |
| 136 | - 只有 `PASS` 或 `FIXED_PASS` 可以进入 `法律文书模板与导出`。 |