---
id: FEAT-0030
type: feature
status: closed
stage: done
title: 提交溯源与扫描器 (Commit Traceability & Scanner)
created_at: '2026-01-11T00:00:00'
updated_at: '2026-01-11T23:20:12.781652'
closed_at: '2026-01-11T23:20:12.781699'
parent: EPIC-0004
solution: implemented
dependencies: []
related: []
domains: []
tags:
- '#EPIC-0004'
- '#FEAT-0030'
author: Monoco Agent
uid: 63fac0
---

## FEAT-0030: 提交溯源与扫描器 (Commit Traceability & Scanner)

## 目标 (Objective)

通过强制执行 Git 提交规范并扫描 Git 历史记录生成交付报告，实现“逻辑隔离”机制。这确保了代码变更与任务意图的强关联。

## 需求 (Requirements)

### 1. `monoco issue commit` 增强 (严格模式)

- [x] **严格策略 (Strict Policy)**: 提交必须包含 Issue ID (`--issue`) 或者显式标记为游离 (`--detached`)。
  - 如果两者都未提供，报错: `Error: Traceability required. Specify --issue <ID> or --detached.`
- [x] **自动关联 (Linkage)**: 当使用 `--issue` 时，自动在提交信息的页脚追加 `Ref: <ISSUE-ID>`。
- [x] **交互/回退 (Interactive/Fallbacks)**:
  - 如果使用了 `--issue`，可以从 `type`/`scope`/`subject` 构建消息。
  - 如果使用了 `--detached`，必须提供标准的 `message`。

### 2. `monoco issue submit` 扫描器

- [x] **扫描逻辑 (Scan Logic)**: 在 `git log` 中搜索包含 `Ref: <ISSUE-ID>` (或在主题中匹配 ID 模式) 的提交。
- [x] **聚合 (Aggregation)**:
  - 对涉及的文件进行去重。
  - 计算基本统计数据（插入、删除）。
- [x] **持久化 (Persistance)**:
  - 将 `## Delivery` 章节追加到 Issue Markdown 中。
  - 更新 Frontmatter 的 `delivery` 字段（机器可读）。

## 技术实现 (Technical Implementation)

- 使用 `git log --grep="Ref: FEAT-XXXX" --name-only` 进行检索。
- 确保幂等性（多次运行 `submit` 不应重复生成 Delivery 章节）。

## Review Comments

- [x] Self-Review
