# 证据时间线生成

> 证据时间线生成技能。根据用户提供的证据材料，自动提取时间信息并按时间顺序整理，生成证据时间线 Markdown 文档和 HTML 思维导图文件。TRIGGER when: (1) 用户提及"时间线"、"时间轴"、"事件排序"、"证据时间线"、"案件时间线"等关键词，(2) 用户提供证据材料并要求按时间整理，(3) 用户需要可视化展示案件事件发展过程，(4) 用户准备诉讼材料需要梳理时间脉络。输出：证据时间线 Markdown 文档 + HTML 交互式思维导图（基于 ECharts）。IMPORTANT: 必须基于用户实际提供的材料内容提取时间信息，严禁编造或推测任何事件；时间必须准确，无法确认的时间需标注"时间不详"。NOT for: 证据质证、证据效力评估、法律分析。

- Skill: `ahang1598/skill-156` (Agent Skill, multi-file: 12 files)
- Install (CLI): `npx skillmds@latest add ahang1598/skill-156`
- Raw SKILL.md: https://api.skillmd.com/api/skills/ahang1598/skill-156/raw
- Safety review: pending (external: skill-scanner PASS, skillspector PASS)
- Works with: Claude Code, Claude.ai, OpenAI Codex
- Category: Web & Frontend
- Author: ahang1598 (https://skillmd.com/u/ahang1598)
- Updated: 2026-09-09
- Page: https://skillmd.com/skills/ahang1598/skill-156

---


# 证据时间线生成技能

专业的证据时间线生成技能，帮助律师从案件材料中提取时间信息，按时间顺序梳理事件脉络，生成结构化的时间线文档和可视化思维导图。

## 前置条件

**必须**：用户已提供或准备提供以下材料之一：
- 证据材料（合同、协议、往来函件、聊天记录、付款凭证等）
- 案件事实描述（包含时间信息）
- 证据清单或证据说明
- 案件相关文档（PDF、Word、图片等）

若用户未提供任何材料，先询问用户案件基本情况和已有证据材料，不可在无材料的情况下执行生成。

## 约束原则

### 1. 真实性约束
时间线中所有事件、时间、证据信息必须严格基于用户提供的材料提取，**严禁编造、推测或虚构**任何事件 — 错误的时间线会严重误导案件分析和诉讼策略。

### 2. 时间准确性
- 提取的时间必须准确反映材料中的原始时间信息
- 无法确认具体日期的事件，使用最精确的描述（如"2019年3月"、"2019年初"、"时间不详"）
- 同一事件有多个时间信息时，以关键行为发生时间为准
- 所有时间统一格式：YYYY年MM月DD日（完整日期）、YYYY年MM月（仅月份）、YYYY年（仅年份）

### 3. 完整性要求
- 材料中所有包含时间信息的事件都应提取并列入时间线
- 不得自行筛选或遗漏重要事件
- 若时间信息存在矛盾，在时间线中标注并提示用户确认

### 4. 逻辑性要求
- 事件必须严格按时间顺序排列（从早到晚）
- 同一日期多个事件按逻辑顺序排列
- 相关事件应归类到同一分组（如"合同签署阶段"、"履约阶段"、"违约阶段"、"诉讼准备阶段"等）

## 不适用场景

本技能**不适用于**以下场景：
- **证据质证意见撰写** → 使用 `综合证据策略` 模式A（综合证据分析）
- **证据合法性审查** → 使用 `综合证据策略` 模式A（综合证据分析）
- **法律分析或案件评估** → 使用 `律师办案小结`
- **类案检索** → 使用 `律师类案检索与报告`

## 工作流程

**以下阶段必须严格按顺序执行。每个阶段必须在前一阶段完成后才能开始，不得跳步。**

### 阶段一：材料接收与时间信息提取

1. **接收用户材料**：
   - 用户可能以文字描述、文件上传、或粘贴文本形式提供材料
   - 若材料不清晰或缺失关键时间信息，主动询问补充

2. **提取案件基本信息**：
   - 案件名称/项目名称
   - 当事人信息（甲方、乙方、丙方等）
   - 协议编号（如有）
   - 担保人信息（如有）

3. **提取时间事件信息**：
   对每份证据材料提取以下信息：

   | 提取字段 | 说明 | 示例 |
   |----------|------|------|
   | **时间** | 事件发生的具体时间 | "2019年3月25日"、"2019年3月"、"2019年初" |
   | **事件描述** | 简要描述事件内容 | "合作协议签署"、"保证金支付3000万" |
   | **证据来源** | 该事件对应的证据名称 | "合作协议"、"电子回单" |
   | **页码** | 证据在材料中的页码；材料无物理页码时用条款编号替代（如"协议书§3.1"、"附件4§1"），不得留空或写"P-" | "P1-10"、"P11"、"通用条款§6.2.1" |
   | **事件类型** | 事件分类 | "合同签署"、"付款"、"违约"、"催告"、"诉讼准备" |
   | **关键金额** | 涉及的金额（如有） | "3000万"、"450万"、"10万" |
   | **备注** | 其他重要信息 | "截止日期"、"约定节点" |

4. **时间信息标准化**：
   - 统一时间格式：YYYY年MM月DD日、YYYY年MM月、YYYY年
   - **相对时间零推算（强制）**：如"交付后10日内"、"签署后3日内"等相对表述，**仅当触发日期在材料中已确认时**才换算为绝对日期；触发日期未确认的一律**保留原文相对表述**，备注标注"待实际发生后确定"，**严禁基于假设推算绝对日期**
   - 模糊时间处理：如"2019年初"保持不变，在备注中标注"时间不精确"

### 阶段二：时间线整理与分组

1. **按时间排序**：
   - 所有事件严格按时间从早到晚排序
   - 同一日期的多个事件按逻辑顺序排列（如"上午签约"→"下午付款"）

2. **事件分组**（建议分组，可根据案件调整）：
   - **案件基本信息**：当事人、协议编号、合作项目等
   - **前期准备阶段**：意向书、股东会决议、尽职调查等
   - **合同签署阶段**：协议签署、担保设定等
   - **履约阶段**：付款、交付、验收等
   - **违约阶段**：未履行、延迟履行、质量不合格等
   - **催告与协商阶段**：法务函、律师函、协商会议等
   - **诉讼准备阶段**：律师费、保险费、保全申请等
   - **约定期限与条件**：条件触发型约定（见下方专项规则）

   **条件触发型事件专项规则（强制）**：材料中仅有触发条件、无确定发生时间的事件（如"逾期交付时按日计违约金"、"设计不合格时重做"、责任上限条款等），**不参与时间排序**，统一归入「约定期限与条件」分组，分组标题标注"按类型排列，非时间排序"。此类事件不计入"严格按时间排序"的合规判定；其中纯条款约定（如违约金上限、赔偿上限）不含时间信息的，作为该分组的备注条目列出，不作为独立时间事件。

3. **关键节点标注**：
   - 合同生效日
   - 重要付款截止日
   - 违约发生日
   - 诉讼时效节点
   - 合同期限届满日

### 阶段三：Markdown 时间线文档生成

生成结构化的 Markdown 时间线文档，**以时间线为主**，仅包含案件基本信息和时间线事件；不得额外生成“关键争议点”“证据清单”“法律分析意见”等章节。格式如下：

```markdown
# {案件名称} - 证据材料时间线

## 案件基本信息

| 项目 | 内容 |
|------|------|
| 案件名称 | {案件名称} |
| 协议编号 | {协议编号，如无则省略或标注未提供} |
| 甲方 | {甲方名称，如无则省略} |
| 乙方 | {乙方名称，如无则省略} |
| 其他当事人 | {其他主体，如无则省略} |

## 时间线事件

### {时间分组1}（如：前期准备阶段）

#### {YYYY年MM月}

| 时间 | 事件 | 核心摘要 | 证据 | 页码 | 备注 |
|------|------|----------|------|------|------|
| YYYY-MM-DD | {事件标题或简要描述} | {1-2句核心法律事实摘要} | {证据名称} | P{页码} | {备注} |

### {时间分组2}（如：合同签署阶段）

...

---

**生成日期**：YYYY年MM月DD日
**材料来源**：{用户提供的材料说明}
```

**禁止输出**：Markdown 文档中不再生成“关键争议点”“证据清单”章节；如用户另行需要，应作为独立任务或附加输出处理。

### 阶段四：HTML 可打印时间线生成

调用 Python 脚本生成**适合 A4/A3 打印的静态 HTML 时间轴**，所有事件完全展开无需点击。

**脚本路径**：`scripts/generate_timeline_print.py`

**使用方法**（`--mode timeline` 必传，生成纵向时间轴；不传时脚本默认亦为 timeline）：
```bash
cd {skill_directory}
python3 scripts/generate_timeline_print.py \
  --case-name "{\u6848件名称}" \
  --output "outputs/{\u6848件名称}_\u65f6\u95f4\u7ebf.html" \
  --data-file "{JSON\u6570\u636e\u6587\u4ef6\u8def\u5f84}" \
  --mode timeline
```

**数据格式（JSON）**：

仅需提供 `timeline` 字段（按月分组格式）。**month 字段格式（强制）**：严格使用"YYYY年MM月"或"YYYY年MM月-YYYY年MM月"，**不得附加括号说明**（如"2025年2月（合同生效后）"为错误写法），补充说明一律移入事件的 `note` 字段：

```json
{
  "case_name": "案件名称",
  "timeline": [
    {
      "month": "2019年2月",
      "events": [
        {
          "date": "2月25日",
          "event": "股东会决议",
          "summary": "公司股东会通过决议，授权管理层签署本次合作销售协议及相关担保文件。",
          "evidence": "股东会决议书",
          "page": "P32",
          "amount": "",
          "note": ""
        }
      ]
    },
    {
      "month": "2019年4月",
      "events": [
        {
          "date": "4月1日",
          "event": "保证金支付",
          "summary": "乙方依约向甲方支付3000万元保证金，合同约定合作期满后予以退还，逾期按日千分之一计罚息。",
          "evidence": "电子回单",
          "page": "P11",
          "amount": "3000万",
          "note": "合同约定3月29日前支付，实际于4月1日支付"
        }
      ]
    }
  ]
}
```

**事件字段说明**：

| 字段 | 必填 | 说明 |
|------|------|------|
| `date` | ✅ | 日期（如"4月1日"、"2019年4月1日"） |
| `event` | ✅ | 事件标题（简短，10字以内） |
| `summary` | **强烈建议** | **核心信息摘要**：1-2句话说明该事件的法律意义、关键条款或事实背景，由 AI 提炼生成 |
| `evidence` | 可选 | 对应的证据名称 |
| `page` | 可选 | 证据页码（如"P11"、"P1-10"）；材料无物理页码时用条款编号替代（如"协议书§3.1"），不得留空或写"P-" |
| `amount` | 可选 | 涉及金额（如"3000万"），有则显示橙色金额标签 |
| `note` | 可选 | 补充备注（如时间偏差、矛盾点等） |

**`summary` 字段生成要求（必读）**：

在构建 JSON 数据时，AI 必须为每个事件提炼 `summary`，撰写要点如下：
- **长度**：1~2句，30~80字
- **内容**：从证据材料原文中提炼该事件的核心法律事实，包括关键主体、行为、金额、期限或法律后果
- **语言**：简洁客观，使用法言法语，无需主观判断
- **禁止**：不得编造材料中未提及的事实
- **矛盾事件分工（强制）**：事件本身含时间/条款矛盾时，`summary` 只写法律事实本身（如"合同约定设计周期为10天"），矛盾说明写入 `note` 字段（如"⚠ 专用条款§X 另约定20天，两处矛盾，待用户确认"），不得在 summary 中只描述矛盾而不写事实

| 事件类型 | summary 示例 |
|---------|-------------|
| 合同签署 | "甲乙丙三方签署合作销售协议，约定乙方代理锦溪项目销售，合作期自签署日起至2019年9月29日，甲方支付佣金450万并退还保证金。" |
| 付款行为 | "乙方通过银行转账向甲方支付保证金3000万元，合同约定3月29日前完成，实际付款日期为4月1日，迟延3天。" |
| 违约事件 | "甲方未能在约定的8月15日前取得预售许可证，依合同构成违约，应向乙方支付佣金450万元。" |
| 催告函件 | "乙方通过律师向甲方发出法务函，要求其在收函后15日内退还保证金3000万并支付违约金，否则提起诉讼。" |
| 诉讼准备 | "乙方委托律师代理本案，支付律师费10万元，同时投保财产保全保险，保全金额3758.75万元。" |

**事件类型自动识别**（根据 `event` 关键词自动着色，下表与脚本 `TYPE_RULES` 保持一致）：

| 类型 | 颜色 | 触发关键词 |
|------|------|------------|
| 合同签署 | 深蓝 | 合同、协议、签署、签订、签字、盖章、合作协议、补充协议 |
| 付款/资金 | 绿色 | 付款、支付、缴纳、转账、回款、保证金、押金、定金、佣金、货款、工程款、结算、万元 |
| 违约/逾期 | 红色 | 违约、逾期、未履行、拒绝、拒付、未支付、未取得、未按时 |
| 通知/函件 | 橙色 | 函、通知、律师函、法务函、催款、催告、告知、发函、函件 |
| 约定节点 | 黄褐 | 截止、到期、届满、期限、节点、前、之前、约定、期满 |
| 诉讼准备 | 紫色 | 律师费、诉讼费、保险费、诉讼、保全、仲裁、立案、起诉、开庭、判决、申请 |
| 前期准备 | 蓝灰 | 决议、股东会、尽职、调查、意向、洽谈、备忘录、可行性 |
| 其他（兜底） | 灰色 | 未匹配任何关键词时自动使用默认灰色，不会着色异常 |

**输出文件**：
- 文件路径：`outputs/{案件名称}_时间线.html`
- 文件格式：纯 HTML + CSS，无需网络、无需 CDN
- 打印方式：浏览器打开后点击"打印 / 存为 PDF"按钮
- 页面规格：
  - 默认 **A4 纵向**（210mm × 297mm，边距 15mm）
  - 页面内点击"切换 A3 / A4"可切换为 **A3 纵向**（297mm × 420mm）
- 功能特性：
  - ✅ 所有事件完全展开，无需交互
  - ✅ 纯静态文件，直接用浏览器打开即可
  - ✅ 自带打印/PDF 按钮
  - ✅ A4/A3 一键切换
  - ✅ 事件按类型自动着色
  - ✅ 事件卡片防分页断行（page-break-inside: avoid）

### 阶段五：输出与确认

1. **提供文件路径**：
   - Markdown 文档：`outputs/{案件名称}_时间线.md`
   - HTML 时间线：`outputs/{案件名称}_时间线.html`

2. **时间线完整性确认**：
   - 向用户展示时间线概览（按月份统计事件数量）
   - 提示用户检查是否有遗漏的重要事件
   - 询问是否需要调整事件分组或补充说明

3. **关键节点提示**：
   - 标注诉讼时效相关节点
   - 提示可能已过期或即将过期的权利
   - 仅作为时间线备注或后续建议提示，不生成“关键争议点”章节

4. **后续建议**：
   - 建议补充的证据材料
   - 建议进一步核实的时间信息
   - 建议采取的诉讼策略方向

## 输出格式

### 1. Markdown 时间线文档

**文件命名**：`{案件名称}_时间线.md`

**文档结构**：
- 案件基本信息（表格）
- 时间线事件（按分组和月份组织）

**不得包含**：
- 关键争议点章节
- 证据清单章节
- 法律分析意见或诉讼策略章节

**格式要求**：
- 使用标准 Markdown 语法
- 表格对齐清晰
- 时间节点使用加粗标注
- 关键金额使用加粗或高亮

### 2. HTML 可打印时间线

**文件命名**：`{\u6848件名称}_\u65f6间线.html`

**技术栈**：
- 纯 HTML + CSS，无需 JavaScript 库或 CDN
- 兑容现代浏览器（Chrome、Firefox、Safari、Edge）

**视觉设计**：
- 背景：白色打印友好
- 标题区：案件名称 + 生成日期
- 时间轴：左侧日期 + 垂直轴线 + 右侧事件卡片
- 分组展示：按年月显示深色标签小标题
- 事件卡片：左边框着色区分类型

**输出效果（与原 ECharts 思维导图对比）**：

| 对比项 | 原 ECharts | 新可打印版 |
|--------|-----------|------------|
| 展开方式 | 需要点击展开 | 全部自动展开 |
| 打印支持 | 不适合打印 | A4/A3 一键打印 |
| 页面分行 | 没有控制 | 自动防断行 |
| 内容密度 | 展开后节点小 | 全显示内容充分 |
| CDN 依赖 | 需要联网 | 无需网络 |

## 异常处理

### 用户未提供材料
若用户仅说"帮我生成时间线"但无任何案件材料：
- 明确告知用户需要提供的材料类型
- 提供材料清单模板供用户参考
- 不得基于不充分的信息强行生成时间线

### 时间信息缺失
若证据材料中缺乏明确的时间信息：
- 在时间线中标注"时间不详"
- 向用户说明并询问是否可补充
- 不得编造或推测时间

### 时间信息矛盾
若不同证据对同一事件的时间描述不一致：
- 在时间线中同时列出多个时间
- 标注"时间存在矛盾，请用户确认"
- 向用户说明矛盾点并请求澄清

### 材料信息严重不足
若用户提供的材料缺乏关键信息（如无当事人名称、无协议编号等）：
- 在文档中标注"该信息未提供"
- 明确提示用户需要补充的信息
- 不得编造缺失信息

### HTML 生成失败
若 Python 脚本执行失败：
- 检查 Python 环境及 echarts 依赖
- 提供详细的错误日志
- 降级方案：仅提供 Markdown 文档，并在文档中说明"HTML 思维导图生成失败"
- 建议用户检查 Python 环境后重试

## 参考文件说明

本技能包含以下参考文件：

| 文件 | 用途 | 何时使用 |
|------|------|----------|
| references/timeline-print-template.html | 可打印 HTML 时间轴模板 | 生成 HTML 时间线时加载 |
| references/mindmap-template.html | ECharts 思维导图模板 | 备用，主输出已改为可打印版 |
| references/timeline-format.md | 时间线格式规范 | 生成 Markdown 时间线时参考格式和结构 |
| references/event-classification.md | 事件分类指南 | 对事件进行分组和归类时参考 |

## 示例

### 输入示例

用户提供：
```
案件：锦溪颅景御府项目合作纠纷
材料：合作协议、股东会决议、电子回单、法务函、保险费凭证、律师费凭证、保险单
```

### 输出示例

**Markdown 文档**：`锦溪颅景御府项目_时间线.md`
- 包含案件基本信息表格
- 按月份组织的时间线（2019年2月-10月）
- 每个事件包含时间、事件、核心摘要、证据、页码和备注
- 不包含关键争议点、证据清单等非时间线章节

**HTML 时间线**：`锦溪颅景御府项目_时间线.html`
- 垂直时间轴布局，6个月份分组，12 项事件完全展开
- 事件按类型自动着色（合同-蓝、付款-绳、违约-红、函件-橙等）
- 支持 A4/A3 打印，可直接存为 PDF

## 技术实现

### Python 脚本说明

`scripts/generate_timeline_print.py` 脚本功能：
1. 接收 JSON 格式的时间线数据（支持分月分组格式和平铺格式）
2. 基于 `references/timeline-print-template.html` 模板生成可打印 HTML
3. 自动识别事件类型并着色
4. 支持 A4/A3 页面切换

**依赖要求**：
- Python 3.7+
- 无需额外安装包（仅使用标准库）

**执行示例**：
```bash
cd /path/to/lawd-evidence-timeline-generator
python3 scripts/generate_timeline_print.py \
  --case-name "锦溪颅景御府项目" \
  --output "outputs/锦溪颅景御府项目_时间线.html" \
  --data-file "scripts/example_data.json"
```

## 使用场景

| 场景 | 描述 |
|------|------|
| 合同纠纷案件 | 梳理合同签署、履约、违约、催告等时间节点 |
| 建设工程案件 | 整理开工、竣工、验收、结算等关键时间 |
| 劳动争议案件 | 梳理入职、合同签订、工资发放、解除劳动关系等时间 |
| 知识产权案件 | 整理申请日、授权日、侵权发生日等时间线 |
| 侵权损害赔偿 | 梳理侵权行为发生、发现、取证、起诉等时间 |

## 参考资料

- [references/mindmap-template.html](references/mindmap-template.html) — HTML 思维导图模板
- [references/timeline-format.md](references/timeline-format.md) — 时间线格式规范
- [references/event-classification.md](references/event-classification.md) — 事件分类指南
- [scripts/generate_timeline_mindmap.py](scripts/generate_timeline_mindmap.py) — HTML 生成脚本

## 可选套件上下文（不影响独立使用）

1. 工作目录根存在 `套件运行规则.md` 时必须先读取并执行；不存在时以本技能硬规则为准，不影响独立使用。
2. 工作目录根存在 `办案画像.md` 时，只读取与当前任务有关的诉讼立场、风险偏好和文书风格；不存在时按本技能默认运行，不追问、不报错。
3. 仅当用户明确切换到某案或提供唯一案件路径时，读取 `cases/{案件简称}/案件画像.md`；不得猜测案件，不得跨案带入。
4. 画像只影响表达与偏好，不得覆盖事实、法律依据、必备结构、验证结果或本技能硬规则。
5. 已明确绑定唯一案件且案件管家可用时，成果完成后提交标准案件事件；无案件不建档、不回写，回写失败不得阻塞成果交付。

