docs(流程文档迁出GDD批): 待办清单与体验验证清单移到仓库根并去掉编号前缀
两文件是流水线流程件而非游戏描述件,此前住在 design/gdd/ 造成三处不适配: gdd_lint 必须为它们逐条关掉体裁规则、格式权威却写在 doc-conventions §12、 与同族的 roadmap(在仓库根)分居两处。迁到根后按 roadmap.md 的无编号风格改名。 - 迁出:design/gdd/06-待办清单.md → 待办清单.md;07-体验验证清单.md → 体验验证清单.md - 指向改写 53 个文件:GDD 各系统文档指路存根、四份规约、02 根索引、README/roadmap/AGENTS - 两份清单自身 74 处出站链接按新基址重指(../art → design/art、systems → design/gdd/systems) - gdd_lint:待办/体验验证两文件的 R1/R3/R5/R7 豁免行随迁删除(已脱离扫描面),后门表清零 - pipeline_gate 默认路径、log_analysis/render_gate 称谓、repo_structure_audit 根文件白名单同步 - 保护面补写:两份清单列入实现批禁写清单(AGENTS 两类批条 / process-conventions §12 / 架构文档域表), 条目状态只由流水线各段推进 - 范围外未动(用户令「全不碰」):reports/ 与 design/research/ 的 22 处历史指向、game/ 两处注释
This commit is contained in:
1 parent
32a0b53d70
commit
7aee5eb71a
53 files changed
+241
-254
No files matched your search
+13
-27
@@ -10,12 +10,11 @@ r"""gdd_lint.py — GDD lean 格式门禁
|
||||
规则(口径权威 = design/engineering/doc-conventions.md 第 5–6 节文档骨架与结构纪律):
|
||||
R1 散文段落 ≤ 240 字(代码块/表格/列表/引用不计)
|
||||
R3 正文禁止修订注记:~~删除线~~、"作废"、括号内"日期+评审/修订/拍板/裁决/核销"
|
||||
(登记处/清单按 RULE_EXEMPT 分域豁免)
|
||||
R4 禁止变更记录节:出现「版本历史/修订记录/变更记录/修改记录/更新记录/更新日志」标题即红
|
||||
(沿革只进 git commit log;扫描面 = 全 design/ + roadmap.md,见 --changelog-only)
|
||||
R5 流程/状态类章节必须含代码块图(字符画或 Mermaid);清单节/词条节按 RULE_EXEMPT 分域豁免
|
||||
R5 流程/状态类章节必须含代码块图(字符画或 Mermaid);词条节按 RULE_EXEMPT 分域豁免
|
||||
R6 表格列数一致(含转义 \| 识别)
|
||||
R7 括号嵌套跨度 ≤ 80 字(长括号 = 审计注记挤进正文的信号;登记处/清单按 RULE_EXEMPT 分域豁免)
|
||||
R7 括号嵌套跨度 ≤ 80 字(长括号 = 审计注记挤进正文的信号)
|
||||
R8 核心规则表:规则列必须是"谁·何时·做什么"陈述句所在的可读表——说明/要点列
|
||||
禁止出现编号引用(AC-x/F-x/EC-x/E-x/OQ-x/Rule-x/义务),引用只允许在依据类列
|
||||
R9 一页纸节点:任一标题节点的直接内容(到下一标题为止)≤ 80 行——装不下就拆子节点
|
||||
@@ -35,26 +34,14 @@ MAX_PARA = 240
|
||||
MAX_PAREN_SPAN = 80
|
||||
|
||||
# 规则分域(2026-10-03 用户裁「测试要快/要准」优化批):R1 的体裁前提是「规范文」
|
||||
# (短段+表格化);登记处/清单的自然形态就是长条目与叙事散文,硬套=自 2026-09-20
|
||||
# 上线起 8/8 常红零过滤价值(test-perf-report-2026-10-02 §6.2 实证)。R3/R7 不豁免——
|
||||
# 「provenance 出正文」对一切体裁有效;R4 变更记录节禁令自 2026-10-19 起对一切体裁有效。
|
||||
R1_EXEMPT = {
|
||||
"06-待办清单.md", # 全项目待办登记处:现状/状态/方案长条目为体裁
|
||||
"07-体验验证清单.md", # 体验验证读数清单:同上
|
||||
}
|
||||
# (短段+表格化)。「provenance 出正文」对一切体裁有效;R4 变更记录节禁令自 2026-10-19
|
||||
# 起对一切体裁有效。
|
||||
# 规则粒度分域豁免(2026-10-15 用户令「清单类文件与术语表不做 GDD 规范性检查」)。
|
||||
# 原则:**按规则豁免,不按文件拉黑**——体裁规则(R3/R5/R7)对登记处/清单/词条表
|
||||
# 不适用,但机械可判的完整性规则(R4/R6/R8/R9/R11)一律不豁免,真缺陷不得藏起来。
|
||||
# 各条理由:
|
||||
# R3 正文禁修订注记——登记处/清单的条目「带日期+裁决来源」是设计目的本身
|
||||
# (条目要能回答「这条谁在何时裁的」),禁它等于禁登记处的核心价值。
|
||||
# R5 流程/状态类节须含代码块图——节名含「流程/生命周期」即触发,但 07 的
|
||||
# 「㉖…全流程走查」「㉗…目检」是目检清单节、术语表的「开发流程」是词条节,
|
||||
# 两者都不是流程描述,属节名误匹配。
|
||||
# R7 括号跨度 ≤80 字——长括注在登记处/清单里是常态(现状+裁决+归属挤在一行)。
|
||||
# 原则:**按规则豁免,不按文件拉黑**——体裁规则对词条表不适用,但机械可判的完整性规则
|
||||
# (R4/R6/R8/R9/R11)一律不豁免,真缺陷不得藏起来。
|
||||
# R5 流程/状态类节须含代码块图——节名含「流程/生命周期」即触发,术语表的「开发流程」
|
||||
# 是词条节、不是流程描述,属节名误匹配。
|
||||
RULE_EXEMPT = {
|
||||
"06-待办清单.md": {"R3", "R7"},
|
||||
"07-体验验证清单.md": {"R3", "R5", "R7"},
|
||||
"术语表.md": {"R5"},
|
||||
}
|
||||
|
||||
@@ -181,17 +168,16 @@ def lint_file(path):
|
||||
issues.append(f"R9 节点「{node_name}」直接内容 {node_count} 行(>{MAX_NODE_LINES})——超一页,拆为子节点")
|
||||
infos.append(f"最大节点直接内容 {max(node_count, 0)} 行")
|
||||
|
||||
# R1 段落长度(登记处/清单文分域豁免,见 R1_EXEMPT 注)
|
||||
# R1 段落长度
|
||||
fname = Path(path).name
|
||||
ex = RULE_EXEMPT.get(fname, set()) # 规则粒度分域豁免(见 RULE_EXEMPT 注)
|
||||
if fname not in R1_EXEMPT:
|
||||
for p in paras:
|
||||
if len(p) > MAX_PARA:
|
||||
issues.append(f"R1 散文段 {len(p)} 字(>{MAX_PARA}): {p[:50]}…")
|
||||
for p in paras:
|
||||
if len(p) > MAX_PARA:
|
||||
issues.append(f"R1 散文段 {len(p)} 字(>{MAX_PARA}): {p[:50]}…")
|
||||
|
||||
# R2 表格占比已停用(见文件头注释)。
|
||||
|
||||
# R3 修订注记(代码块豁免;登记处/清单按 RULE_EXEMPT 豁免——变更记录节已整体禁设,无豁免域)
|
||||
# R3 修订注记(代码块豁免;变更记录节已整体禁设,无豁免域)
|
||||
body_no_code = "\n".join(l for l in text.splitlines() if l not in code_lines)
|
||||
for m in (() if "R3" in ex else re.finditer(r"~~.+?~~", body_no_code)):
|
||||
issues.append(f"R3 删除线残留: …{m.group(0)[:40]}…")
|
||||
|
||||
Reference in new issue
Block a user