product-planning:删掉④段「原型说明文档」(用户令「第4部分完全没法用,都删除」)⇒ 四段改三段

- 删 references/stage-proto-doc/ 整目录(SKILL.md + references/doc-area-spec.md + references/guided-tour.md)。
  原做法=往原型 HTML 注入说明区注解层(场景 / 从左到右流程图 / 功能作用·输入边界·异常情况 三段说明 / 演示引导),实测不好用。
- 总入口 SKILL.md:description 与「三段结构」表、交接口表(去掉 ③→④)、产物落哪(去掉④行)、
  进入方式(去掉「只做原型说明文档」「已有原型,要补说明」两行)、只读清单、执行规则、反面清单同步改写;
  并在段名命名原则处留一条删除留痕(含用户原话与「新写法待定」)。
- ③段 stage-delivery:撤掉「与④段的界」一条,改掉「说明区归④段」的两处约束(3d 完即交付原型本身);历史条目加注。
- ①段/②段:段名对称链与越界条目改成三段。
- 闸门 check_naming.py:STAGES 去掉 stage-proto-doc(圈号数组改 ①②③、交界边去掉 ③→④),
  DEPRECATED 收进④段名与 4a/4b/4c 三个子步名。
- 未动:references/_留痕/ 下两份历史存档(含④段的旧口径,属正当留痕);SKILL.md 与 check_naming.py
  里 2026-10-02/10-06 两次事故记录(历史事实)。
- 验收:`check_naming.py --ws E:/ProgramData/AIProject/contentm_agent` = 通过 2045 / 失败 0 / 提示 31
  (新增 4 条提示全部落在 _留痕/ 里,正当)。
- 备份:tmp/_backup-stage-proto-doc-20261014/(原目录三件 + 改前 SKILL.md)。
This commit is contained in:
admin committed 2026-10-14 23:33:54 +08:00
1 parent 2f656098de
commit daf4e5675a
8 files changed
+43 -305

No files matched your search

+18 -19
View File
@@ -1,8 +1,8 @@
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
"""四段流水线**命名一致性**自检(纯静态文本比对,不需要渲染、不需要外部依赖)。
"""三段流水线**命名一致性**自检(纯静态文本比对,不需要渲染、不需要外部依赖)。
只查一件事:**四段的段名 / 子步名,在总入口、各段 SKILL.md、各段 references 之间有没有漂。**
只查一件事:**三段的段名 / 子步名,在总入口、各段 SKILL.md、各段 references 之间有没有漂。**
⛔ 本脚本**不查视觉、几何、配色** —— 那些判据归③段 §供给·工艺数值判据,本脚本一概不碰。
为什么需要它(不是"为了严谨",是实测过的两次真实事故):
@@ -48,15 +48,12 @@ STAGES = [
"h1": "# ③ 界面交互",
"subs": ["3a 视觉规范", "3b 原型", "3c GPT参考版", "3d 审查打磨"],
},
{
"slug": "stage-proto-doc",
"cn": "原型说明文档",
"h1": "# ④ 原型说明文档",
# 4b/4c 允许只在一处出现完整(总入口与段内都写全),但**两处都必须能读到**
"subs": ["4a 场景盘点", "4b 说明区", "4c 演示引导"],
},
]
# 2026-10-14 用户令:④段「原型说明文档」整段删除(原做法=往原型 HTML 注入说明区注解层,
# 实测不好用)⇒ `references/stage-proto-doc/` 连方法论一并撤掉,本表同步去掉该项。
# 该段的段名与子步名转入下面的 DEPRECATED(提示级),用来查正文里的残留引用。
# 已废止的旧名。出现在「废止理由块」里是正当的(那是留痕),
# 所以这里只做**提示级**检查(不计入 FAIL),人工确认上下文即可。
DEPRECATED = [
@@ -71,6 +68,8 @@ DEPRECATED = [
"00-问题定义.md", "01-需求澄清.md",
"10-参考实装拆解.md", "11-竞品分析.md", "12-用户画像.md",
"strategy/30-产品策略.md", "strategy/31-使用场景.md",
# 2026-10-14 ④段整段删除:段名与三个子步名一并废止
"④ 原型说明文档", "4a 场景盘点", "4b 说明区", "4c 演示引导",
]
# ⛔ 2026-10-06 用户定案:①段**产出白名单**——本段只许这五份,第 6 份须用户明确要求。
@@ -201,10 +200,10 @@ def check_root(root, label):
add("PASS", f"[{label}] 技能根存在", root)
# 1) 每段:frontmatter 闭合 + H1 与权威表一致 + 每个子步都有 H2
# ⚠️ 2026-10-05 整合后:四段收进 references/<slug>/,不再是技能根下的平级目录。
# ⚠️ 2026-10-05 整合后:三段收进 references/<slug>/,不再是技能根下的平级目录。
# 本函数按「技能包 = 一个目录,SKILL.md 在最外层」的形态定位:
# <root>/SKILL.md ← 总入口(曾为 <root>/product-planning/SKILL.md)
# <root>/references/<slug>/SKILL.md ← 四段(曾为 <root>/<slug>/SKILL.md)
# <root>/references/<slug>/SKILL.md ← 三段(曾为 <root>/<slug>/SKILL.md)
# ⛔ 不许改回平级探测:那会让整合形态静默退回「一目录套多技能」而门禁照样全绿。
for st in STAGES:
p = os.path.join(root, "references", st["slug"], "SKILL.md")
@@ -242,26 +241,26 @@ def check_root(root, label):
for st in STAGES:
num = STAGES.index(st) + 1
circled = "①②③④"[num - 1]
circled = "①②③"[num - 1]
# 段名必须以「圈号 + 空格 + 段名」成对出现,避免只匹配到散落正文
ok = f"**{circled} {st['cn']}**" in text
add("PASS" if ok else "FAIL",
f"[{label}] {rel} 四段表含 `{circled} {st['cn']}`", "")
f"[{label}] {rel} 三段结构表含 `{circled} {st['cn']}`", "")
# 子步:总入口表里每个子步都要能被逐个读到(防"4a 说明区/ 演示引导"这类漏列)
# 子步:总入口表里每个子步都要能被逐个读到
for st in STAGES:
for sub in st["subs"]:
if sub.split()[0] in ("3d", "4b", "4c"):
# 3d/4b/4c 在总入口可能与相邻子步合并书写,只要求"子步号 + 关键词"能被搜到
if sub.split()[0] in ("3d",):
# 3d 在总入口可能与相邻子步合并书写,只要求"子步号 + 关键词"能被搜到
kw = sub.split(" ", 1)[1] if " " in sub else sub
ok = (sub in text) or (kw in text)
else:
ok = sub in text
add("PASS" if ok else "FAIL",
f"[{label}] {rel} 四段表子步列含 `{sub}`", "")
f"[{label}] {rel} 三段结构表子步列含 `{sub}`", "")
# 交接口表:三条边必须都在
for edge in ("① → ②", "② → ③", "③ → ④"):
# 交接口表:两条边必须都在
for edge in ("① → ②", "② → ③"):
add("PASS" if edge in text else "FAIL",
f"[{label}] {rel} 交接口表含 `{edge}`", "")