- Add CLAUDE.md (root + ETL subdirectory + db subdirectory) consolidating all Kiro steering docs - Add .mcp.json migrated from .kiro/settings/mcp.json (test DBs enabled, prod disabled) - Add .claude/commands/ (audit, doc-sync, db-docs) replacing Kiro skills - Add .claude/hooks/ (session_start, post_edit_audit, stop_audit_check) replacing Kiro hooks - Add .claude/settings.json registering all hooks - Add scripts/audit/prescan.py merging Kiro's audit_flagger + compliance_prescan - Remove .kiro/agents, hooks, scripts, settings, skills, state (migrated or obsolete) - Update .gitignore for Claude Code Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
105 lines
3.4 KiB
Markdown
105 lines
3.4 KiB
Markdown
# /audit — 变更审计
|
||
|
||
回顾本次会话中你所做的所有文件变更,结合自动预扫描结果,执行审计落盘。
|
||
|
||
## 执行步骤
|
||
|
||
### 第 1 步:运行预扫描脚本(Python,零 token)
|
||
|
||
运行:
|
||
```bash
|
||
python scripts/audit/prescan.py
|
||
```
|
||
|
||
该脚本自动完成:
|
||
- 从 git status 获取所有变更文件
|
||
- 分类高风险文件 + 生成 risk_tags
|
||
- 合规检查:代码→文档映射、迁移 SQL 检测、DDL 基线检查
|
||
|
||
读取输出的 JSON。如果 `audit_required: false`,告知用户"无需审计"并结束。
|
||
|
||
**备选**:如果 git status 包含大量非本次会话的历史变更,可以用 `--files` 参数只传入本次会话的文件:
|
||
```bash
|
||
python scripts/audit/prescan.py --files "file1.py,file2.sql,..."
|
||
```
|
||
文件列表从你的对话记忆(本次会话的 Edit/Write 工具调用)中提取。
|
||
|
||
### 第 2 步:补充语义上下文
|
||
|
||
预扫描脚本能告诉你"哪些文件变了、是否高风险、文档是否缺失",但它不知道**为什么改**。
|
||
|
||
从对话记忆中补充:
|
||
- 每个变更文件的修改原因(用户的需求是什么)
|
||
- 改动的技术思路和设计决策
|
||
- 与其他模块的关联影响
|
||
|
||
将预扫描 JSON + 语义上下文合并,作为第 3 步的输入。
|
||
|
||
### 第 3 步:委托子代理写审计记录
|
||
|
||
用 Agent 工具启动子代理,传入:
|
||
1. 预扫描 JSON 结果(完整)
|
||
2. 每个变更的原因和内容概要(你补充的语义上下文)
|
||
|
||
子代理的任务指令:
|
||
|
||
> 在 `docs/audit/changes/` 目录下创建审计记录文件,文件名格式 `<YYYY-MM-DD>__<英文短标识>.md`。
|
||
>
|
||
> 使用以下格式:
|
||
>
|
||
> ```markdown
|
||
> # 变更审计记录:<中文标题>
|
||
>
|
||
> | 字段 | 值 |
|
||
> |------|-----|
|
||
> | 日期 | YYYY-MM-DD HH:MM:SS |
|
||
>
|
||
> ## 操作摘要
|
||
> <1-3 段,说清楚做了什么、为什么做>
|
||
>
|
||
> ## 变更文件
|
||
> 按新增/修改/删除分组,每个文件一行,简要说明改动内容。
|
||
>
|
||
> ## 改动注解
|
||
> 对每个变更文件写注解:
|
||
> - 高风险文件(ETL 任务/后端路由/数据库迁移/金额相关):写详细注解(变更类型、原因、思路、结果)
|
||
> - 普通文件:一行简要说明
|
||
> - 删除的文件:只记录删除原因
|
||
>
|
||
> ## 数据库变更(如有)
|
||
> 列出新建/修改/删除的表、字段、约束、索引。标注迁移执行状态。
|
||
>
|
||
> ## 风险与回滚
|
||
> - 风险点(标注高/中/低)
|
||
> - 回滚要点
|
||
>
|
||
> ## 验证
|
||
> - 至少 1 条可执行的验证方式(测试命令 / SQL / 联调步骤)
|
||
>
|
||
> ## 合规检查
|
||
> - 列出文档同步状态(已同步 / 待补齐 / 不适用)
|
||
> ```
|
||
>
|
||
> 当前北京时间通过 `python -c "from datetime import datetime, timezone, timedelta; print(datetime.now(timezone(timedelta(hours=8))).strftime('%Y-%m-%d %H:%M:%S'))"` 获取。
|
||
>
|
||
> 审计记录语言使用简体中文。
|
||
>
|
||
> 完成后运行 `python scripts/audit/gen_audit_dashboard.py` 刷新审计一览表。
|
||
>
|
||
> 最终只返回:done / files_written / next_step。
|
||
|
||
### 第 4 步:补齐缺失的文档同步
|
||
|
||
根据预扫描 JSON 中 `code_without_docs` 列出的不合规项,逐项补齐:
|
||
- 读取对应代码文件当前内容
|
||
- 更新对应文档
|
||
|
||
如果补齐工作量大(>3 个文档),委托子代理处理。
|
||
|
||
### 第 5 步:向用户报告
|
||
|
||
简短回执:
|
||
- 审计记录文件路径
|
||
- 合规检查结果(全部通过 / N 项已补齐 / N 项待用户处理)
|
||
- 下一步建议(如 "commit when ready")
|