docs: 待拍板收编批建账 + 免拍板三补丁 + AP 压速批文档面值同步
- 新建 design/gdd/06-待拍板清单.md:全项目待拍板唯一登记处(四循环 × 系统小节四列表,70 条收编、跨文档重复 5 组合并);17 份系统文档「待拍板」节缩为一句话指路存根;02-系统清单补 06 行;doc-conventions v6 新增「待拍板单点登记」条款 - 免拍板三补丁(06 清单第一类,零拍板零代码):战斗表现 v0.2 新增一屏样张验收标准(四件锁定物过判口径,判据落到 art-bible/battle.md 已冻结口径);战斗结算 v0.9 新增呈现只读面节(presentation_snapshot / is_battle_live / query_reward_identity / settlement_snapshot / battle_finished 五件对外契约登记);音频 v0.2 新增临时音效覆盖清单(必覆盖五挂点 / 选配二 / 不覆盖二 + 切片验收口径),顺手修明细行型 15→10 陈旧两处;06 清单三条改「已解决(2026-09-16)」留痕 - 行动经济 v0.2:AP 压速批文档面值同步 8→6(补上一提交代码批漏改的正文两处与调参表两行) - 会话收口自动化:.zcode/ 钩子(SessionStart 快照 + Stop 守卫 active.md 登记,四场景手工测试通过) - active.md 条目 54/55
This commit is contained in:
1 parent
05509d3e61
commit
4f0603305e
24 files changed
+339
-133
No files matched your search
@@ -0,0 +1,33 @@
|
||||
{
|
||||
"hooks": {
|
||||
"enabled": true,
|
||||
"events": {
|
||||
"SessionStart": [
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"type": "process",
|
||||
"command": "bash",
|
||||
"args": ["${ZCODE_PROJECT_DIR}/.zcode/hooks/session-snapshot.sh"],
|
||||
"timeoutMs": 10000,
|
||||
"statusMessage": "记录会话工作区快照(active.md 收口检查用)"
|
||||
}
|
||||
]
|
||||
}
|
||||
],
|
||||
"Stop": [
|
||||
{
|
||||
"hooks": [
|
||||
{
|
||||
"type": "process",
|
||||
"command": "bash",
|
||||
"args": ["${ZCODE_PROJECT_DIR}/.zcode/hooks/stop-active-md-guard.sh"],
|
||||
"timeoutMs": 10000,
|
||||
"statusMessage": "active.md 会话收口检查"
|
||||
}
|
||||
]
|
||||
}
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,14 @@
|
||||
#!/usr/bin/env bash
|
||||
# 会话开始:快照工作区状态(status 哈希 + diff 内容哈希)与 active.md 修改时间,供 Stop 收口检查对比
|
||||
proj="${ZCODE_PROJECT_DIR:-$PWD}"
|
||||
sid="${CLAUDE_SESSION_ID:-default}"
|
||||
state="/tmp/zcode-active-md-guard"
|
||||
mkdir -p "$state"
|
||||
{
|
||||
date +%s
|
||||
git -C "$proj" status --porcelain 2>/dev/null | sort | sha1sum | cut -d' ' -f1
|
||||
git -C "$proj" diff HEAD 2>/dev/null | sha1sum | cut -d' ' -f1
|
||||
stat -c %Y "$proj/production/session-state/active.md" 2>/dev/null || echo 0
|
||||
} > "$state/$sid.snap"
|
||||
rm -f "$state/$sid.reminded"
|
||||
exit 0
|
||||
@@ -0,0 +1,23 @@
|
||||
#!/usr/bin/env bash
|
||||
# 会话结束收口检查:工作区相对会话开始有改动(status 行或 diff 内容任一变化)、
|
||||
# 且 active.md 本会话未更新时,以 exit 2 阻止停止并经 stderr 注入登记提醒(每会话至多一次)
|
||||
proj="${ZCODE_PROJECT_DIR:-$PWD}"
|
||||
sid="${CLAUDE_SESSION_ID:-default}"
|
||||
state="/tmp/zcode-active-md-guard"
|
||||
snap="$state/$sid.snap"
|
||||
active_md="$proj/production/session-state/active.md"
|
||||
[ -f "$snap" ] || exit 0
|
||||
[ -f "$state/$sid.reminded" ] && exit 0
|
||||
start_status=$(sed -n 2p "$snap")
|
||||
start_diff=$(sed -n 3p "$snap")
|
||||
start_mtime=$(sed -n 4p "$snap")
|
||||
now_status=$(git -C "$proj" status --porcelain 2>/dev/null | sort | sha1sum | cut -d' ' -f1)
|
||||
now_diff=$(git -C "$proj" diff HEAD 2>/dev/null | sha1sum | cut -d' ' -f1)
|
||||
[ "$now_status" = "$start_status" ] && [ "$now_diff" = "$start_diff" ] && exit 0
|
||||
now_mtime=$(stat -c %Y "$active_md" 2>/dev/null || echo 0)
|
||||
[ "$now_mtime" -gt "$start_mtime" ] && exit 0
|
||||
touch "$state/$sid.reminded"
|
||||
cat >&2 <<'MSG'
|
||||
[会话收口检查] 本会话产生了工作区改动,但 production/session-state/active.md 未在本会话内更新。若本会话包含实质工作(代码/文档/数值/设计拍板/缺陷修复),请先在 active.md 末尾追加一条编号批次条目(做了什么·拍板了什么·验证结果·遗留与下一步),再行结束;若本次确无可登记事项(纯问答、只读核查),忽略本提醒直接结束。另:待拍板事项登记 design/gdd/06-待拍板清单.md(裁决后改状态列留痕),不要写进 active.md 条目表。
|
||||
MSG
|
||||
exit 2
|
||||
Reference in new issue
Block a user