docs(卡片): 需求卡片落位迁至 reports/——路径依赖、规则说明、流水线闸、工作流技能全量同步
用户裁:需求卡片属过程件,不留在 design/;统一落 reports/(不新设目录,卡片靠「需求卡片-」文件名前缀与报告区分)。 搬移: - 10 张在役卡片 design/research/ → reports/(git mv,历史保留) - 卡内相对链接全部重基准:../gdd→../design/gdd、../art→../design/art、../../→../、 同目录 research 引用→../design/research/(营地澄清、playnote、资源配比提案); 链接解析校验 BROKEN=0 路径依赖(全库 48 处): - 06 待办清单 10 条卡片路径、roadmap 迭代 31 行 2 条、reports/iter31 报告与反哺点各 1 条 - 代码术语审计报告 2 处、会话提示 1 处、资源配比提案 1 处 规则说明: - AGENTS.md Project Layout:design/research 行注明「需求卡片不在此」;reports 行扩为「过程件容器」 - doc-conventions §11 暂存地表拆为两处;§12.1 状态机示例改 reports/ - reports/README.md:定位由「迭代批产出物」扩为「过程件容器」并新增需求卡片行 流水线闸: - pipeline_gate.py CARD_DIR / RESEARCH_RE / 报错文案三处改 reports/(闸 PASS,卡片口径 10 张全过) 工作流技能(.zcode/skills,不入 git): - req-card :8 落位 / :27 三份已退役范本改指现行卡片 / :92 06 回写口径 - iter :19、iter-plan :28/:66、batch-closure :3/:63/:65 - 用户级副本 C:/Users/DK/.workbuddy/skills/req-card/SKILL.md 同步三处(技能列表启动时加载,需重开会话生效) 未动:design/art、design/qa、提案、playnote、道具退役素材库、会话交接件(归其它会话)。 闸:run_all_gates.sh --docs 验收通过。
This commit is contained in:
1 parent
a2d446d9e0
commit
0616af94fb
21 files changed
+81
-81
No files matched your search
@@ -40,7 +40,7 @@ RESERVED_RETIRED = "已退役(git 历史可考)"
|
||||
|
||||
# ---- 卡片机检(2026-10-18 卡片冲突修订批补)----
|
||||
CARD_GLOB = "需求卡片-*.md"
|
||||
CARD_DIR = "design/research"
|
||||
CARD_DIR = "reports"
|
||||
SYNC_RULE_DATE = (2026, 10, 17) # req-card §6:实现批禁写 design/ 与根规则文件,义务一律列反哺点
|
||||
SOURCE_RULE_DATE = (2026, 10, 18) # req-card §2:设计事实源必填
|
||||
SOURCE_MARKS = ("设计事实源", "唯一事实源") # 两种合格写法,与库内既有卡片实际形态对齐
|
||||
@@ -50,7 +50,7 @@ BANNED_DOC_MARKS = ("design/", "../gdd/", "../registry/", "../research/", "../qa
|
||||
|
||||
DATE_RE = re.compile(r"\d{4}-\d{2}-\d{2}")
|
||||
VER_RE = re.compile(r"[vV]\d+(?:\.\d+)*")
|
||||
RESEARCH_RE = re.compile(r"design/research/[^\s()(),,]+")
|
||||
RESEARCH_RE = re.compile(r"reports/需求卡片-[^\s()(),,]+")
|
||||
ITER_RE = re.compile(r"迭代\s*(\d+)")
|
||||
APPROVAL_RE = re.compile(r"〔用户特批([^〕]*)〕")
|
||||
CRED_RE = re.compile(r"[((]([^()()]*)[))]")
|
||||
@@ -147,7 +147,7 @@ def check_segment(word, creds, line, issues, where, root):
|
||||
rp = m.group(0)
|
||||
break
|
||||
if rp is None:
|
||||
red("凭据缺失", "「已写卡」括号内须为 design/research/ 下的卡片路径")
|
||||
red("凭据缺失", "「已写卡」括号内须为 reports/ 下的需求卡片路径")
|
||||
elif not (root / rp).is_file():
|
||||
red("卡片路径不存在", "已写卡路径 %s 相对仓库根不存在" % rp)
|
||||
return base, rp, None
|
||||
|
||||
Reference in new issue
Block a user