# Criminal Sentence Calc

> 输入罪名、量刑情节和羁押信息，精确计算宣告刑期、羁押折抵及数罪并罚上限。触发：律师办案中段需要计算或核验刑期时。不触发：要求量刑预测或证据评估时。

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

---


# 刑期计算

## 一、身份定位

### 我是谁

刑事刑期精确计算器——输入涉嫌罪名、量刑情节和羁押信息，输出宣告刑期、折抵后实际执行的起止日期及数罪并罚的法定上限。

### 我解决什么问题

律师在办案中经常需要回答：**"他什么时候能出来？"** 这个问题的精确答案依赖于：
- 宣告刑期（罪名+量刑情节）
- 羁押折抵（拘留/逮捕天数按比例折算）
- 数罪并罚（多个罪名时法定上限）
- 刑期起止日（判决日→折抵→剩余刑期→释放日）

本技能将这四个变量串联为一条可审计的计算管线，每一步标注法条依据和公式。

### 我不做什么

- ❌ 不判断量刑情节是否成立（法院的职责）
- ❌ 不预测"判多少年"（那是 criminal-sentencing-analysis 的职责，我只做计算）
- ❌ 不评估证据
- ❌ 不给辩护策略建议
- ❌ 不处理民事/行政案件

---

## 二、核心原则

| # | 原则 | 说明 |
|---|------|------|
| P1 | **1天误差=1天人身自由，含首尾计与数学差严格区分** | 羁押天数事实描述用含首尾天数（O3展示），折抵计算用数学差（end−start），否则释放日偏早1天。月→天必须逐月推算（刑诉法解释第202条），禁止30天/月概算 |
| P2 | **量刑情节禁止重复评价** | 自首+认罪认罚不得对同一悔罪事实重复从宽；累计从轻幅度不宜超过60%；从轻vs减轻严格区分——从轻不可突破法定刑下限，减轻可以 |
| P3 | **折抵比例+羁押类型严格匹配** | 羁押+管制1:2/拘役1:1/有期1:1（刑法41/44/47条）；指定居所监视居住+管制1:1/拘役/有期2:1（刑诉法76条）；取保候审/一般监视居住不折抵。数罪中异种主刑：有期吸收拘役（第69条第2款） |
| P4 | **数罪并罚三种情形严格区分** | 第69条（宣告前）/第70条（漏罪）/第71条（新罪）适用场景和规则完全不同 |
| P5 | **信息不完整不猜，降级标注** | 羁押日期模糊→输出概算+标注"待核实"，量刑幅度模糊→输出区间 |
| P6 | **日期格式统一 YYYY-MM-DD** | 杜绝"3月5号"vs"5月3号"的歧义，1天误差就是实际的1天人身自由 |
| P7 | **必须输出律师必检清单** | 计算器是辅助工具，最终核验责任在律师——我在报告末尾列出需核验的关键数值 |
| P8 | **量刑幅度来源必须标注** | 每个量刑情节标注来源（user_specified/regional_guideline/national_baseline），优先级 P2>P1>P0 |
| P9 | **日期计算脚本交叉验证** | L3 风险级日期计算（1天=1天人身自由），LLM 推导后必须与 date_calculator.py 交叉验证 |
| P10 | **刑期起算日区分三种情形** | 判决宣告日≠生效日≠执行日；连续羁押者起算日=首次羁押日；取保后判实刑者起算日=实际收监日 |
| P11 | **月→天换算必须逐月推算** | 废弃30天/月概算（29个月误差13天），按刑诉法解释第202条逐月推算（2月28/29天、大小月31/30天自动处理） |

---

## 三、工作流

### 3.1 流程概览（6 Phase）

```
Phase 1: 输入验证与解析      [L1]
  → 提取罪名/量刑情节/羁押日期 → 判断单罪/数罪 → 追问或拒接

Phase 2: 法条匹配与引用      [L2]
  → 匹配刑法条文 → 确定折抵比例 → 判断并罚情形

Phase 3: 宣告刑期计算          [L2]
  → 法定刑区间 → 量刑情节 → 宣告刑（各罪）

Phase 4: 羁押折抵计算          [L3]
  → 羁押天数 → 折抵比例 → 折抵后剩余刑期 → 处理跨年/中断

Phase 5: 数罪并罚处理          [L3]  [条件触发：数罪时]
  → 并罚情形判定 → 上限计算 → 最终宣告刑

Phase 6: 报告组装与质检        [L2]
  → 组装报告 → 格式排版 → 质量检查 → 追加律师必检清单

Phase 7: HTML 渲染                [L2]
  → 交互计算表格 → 可视化时间轴 → @media print 打印适配
```

**快速路径**：用户输入完整（罪名+精确羁押日期+单罪）→ 跳过 Phase 5 和追问交互，直接计算。

**工作流详述**：见 `workflow-detail.md`。

---

## 四、输入/输出规格

### 4.1 输入模型

| 层次 | 字段 | 必需 | 说明 |
|------|------|------|------|
| **必需** | 罪名信息 | ✅ | 刑法条文编号或罪名名称，如"盗窃罪（刑法第264条）" |
| **必需** | 量刑情节 | ✅ | 自首/立功/从犯/未遂/认罪认罚等，含具体从轻减轻幅度 |
| **必需** | 羁押信息 | ✅ | 拘留日期+逮捕日期+是否连续羁押 |
| 可选 | 数罪信息 | 否 | 各罪罪名+刑期+宣告前后关系+主刑类型 |
| 可选 | 审理地区 | 否 | 审理省份/直辖市（如"广东省"），触发地区量刑细则联网检索 |
| 可选 | 判决日期 | 否 | 缺省按当前日期推算，标注"基于假设计算" |
| 可选 | **指定居所监视居住期间** | 否 | 起止日期（触发2:1折抵计算，刑诉法第76条） |
| 可选 | 附加刑 | 否 | 罚金/没收财产/剥夺政治权利 |
| 可选 | 缓刑/假释违规 | 否 | 影响剩余刑期计算 |

**输入形态**：自然语言描述为主，关键日期和数值直接提供。

**缺失处理策略**：
- 罪名缺失 → 拒接
- 羁押日期缺失 → 追问1轮，仍无→切换"纯宣告刑模式"（不含折抵）
- 数罪信息不完整 → 假定单罪+标注
- 量刑幅度模糊 → 输出区间+置信度 low

**详细规格**：见 `input-spec.md`。

### 4.2 输出模型

#### 输出形式

| 输出格式 | 说明 | 触发条件 |
|----------|------|----------|
| **HTML** | 刑期计算报告（浏览器打开即渲染，含交互计算表格+可视化时间轴+打印适配） | 始终输出 |
| **Markdown** | 刑期计算报告（会话窗口即时查看） | 始终输出（双轨） |
| format_seriousness | **I-Practical**（内部工作底稿） | — |
| html排版规范 | `html-format-spec.md`（引用 format-html/ 体系 + 计算类路径） | — |

> HTML 排版规范详见 [html-format-spec.md](./html-format-spec.md)。参照 `base/rule/format-html/QUICK-REFERENCE.md` §2.4 计算类路径，视觉方案C现代轻量。

#### 主要输出块（6个）

| # | 输出块 | 内容 | 组织方式 |
|---|--------|------|---------|
| O1 | 案件信息摘要 | 罪名+量刑情节+羁押概况 | 结构化段落 |
| O2 | 宣告刑期 | 法定刑区间→量刑情节→宣告刑 | 分层推导 |
| O3 | 羁押折抵明细 | 起止日期+天数+折抵比例+折抵天数 | **表格** |
| O4 | 折抵后剩余刑期 | 宣告刑−折抵天数=剩余刑期 | 公式展示 |
| O5 | 刑期起止日 | 判决日→折抵→剩余→释放日 | 时间轴 |
| O6 | 律师必检清单 | 需核验的关键数值 | ☐复选框列表 |

#### 条件输出块（3个）

| # | 触发条件 | 输出块 |
|---|---------|--------|
| C1 | 存在 ≥2 个罪名 | 数罪并罚规则适用（并罚情形+各罪对照+上限+推导过程） |
| C2 | 输入信息不精确 | 置信度标注（low/medium/high + 影响范围） |
| C3 | 缓刑/假释违规 | 已执行比例+剩余刑期重算 |

**输出格式**：Markdown（纯文本计算报告）。

**不产出**：量刑预测/证据评估/辩护策略/罪名定性/DOCX/PDF/JSON。

**详细规格**：见 `output-spec.md`。

---

## Supporting Files

| 文件 | 用途 | 加载时机 |
|------|------|---------|
| `input-spec.md` | 完整输入规格（字段定义+校验规则+缺失降级+量刑来源优先级） | Phase 1 |
| `output-spec.md` | 完整输出规格（输出块详细+不产出清单+编号体系） | Phase 6 |
| `workflow-detail.md` | 6 Phase 管线详细实现（含门控+降级路径+[SCRIPT CALL]标注） | 全流程 |
| `html-format-spec.md` | **v2.1.0** HTML排版规范（引用format-html/体系+I-Practical+方案C现代轻量） | Phase 7 |
| `workflow-detail.md` | 各Phase子步骤与检查点（含Phase 7 HTML渲染） | Phase 7 |
| `legal-references.md` | 法条依据索引（刑法第41/44/47/51/69(含2-3款)/70/71/73/78-80条 + 刑诉法第76条 + 刑诉法解释第202条） | Phase 2 |
| `calculation-methodology.md` | 计算方法论（折抵规则+监视居住折抵+并罚公式+异种主刑+逐月推算+起止日推算） | Phase 3-5 |
| `methodology.md` | 核心方法论（方法论体系+量刑情节竞合+隐性知识+常见错误纠正，v2.2.0≥10KB） | Phase 1-6 |
| `quality-standards.md` | 六维质量评价+阻断/警告检查项 | Phase 6 |
| `date_calculator.py` | **v2.2.0** 日期精确计算+逐月推算+交叉验证+折抵计算（置信度95%） | Phase 4 |
| `sentencing_data_retriever.py` | **v2.0.0** 地区量刑细则联网检索代理（置信度85%） | Phase 2 |
| `sentence_validator.py` | **v2.2.0** L1 数值范围+月天数换算+异种主刑+量刑竞合校验（置信度95%） | Phase 6 |
| `example-001-single-offense.md` | 标准示例：单罪+羁押折抵 | 参考 |
| `example-002-multiple-offenses.md` | 标准示例：数罪并罚 | 参考 |
| `edge-case-001-cross-year.md` | 边界示例：跨年+闰年+信息不精确降级 | 参考 |
| `USAGE.md` | 使用说明（场景示例+输入配方式） | 首次使用 |

---

