workflow_file_storage_and_requirement_protocol
道-方法 · 道层 skill 全文
本页是 <code>rules/skills/drafts/workflow_file_storage_and_requirement_protocol.md</code> 的逐字投影(仅隐私清洗,零改写)。
时点提示:本页是仓内文件 rules/skills/drafts/workflow_file_storage_and_requirement_protocol.md 的逐字投影(仅做隐私清洗:仓库根绝对路径→相对路径、家目录→~/;除此零改写)。若源文件后续有修订,以仓内真源为准。
报告元数据(frontmatter)
name: workflow_file_storage_and_requirement_protocol
status: draft (Beta) — 2026-06-13 起草(PR-4,session 0468dca9);2026-06-17 对齐 fa-3(schema 真源 = DESIGN_FA_ARCHITECTURE_SSOT.md;本 skill 是道导航/方法,不再平行重述 schema 细节,schema 看 fa SSOT);晋级前需 ≥3 个真实 program 按本 SOP 建/重组并过 fa_structure_gate,且 DDP 多文件需求记录在 ≥2 program 上跑通
tier: 道(治理)
description: 一个 adhoc program(job)内部「文件放哪 / 需求怎么记 / 报告锚什么」的统一 SOP。指导后续所有文件的存放与需求记录:fa-3 存放架构(根四件套 + 真源/运行二分 + 单一真源指针 + 溯源四键 + 任务分层 audits//reorgs/ + 缓冲 _buffer/ + 过时化)+ DDP 优化的需求记录协议(设计/执行两级分离 + 按领域多文件 + 忠于原文 + 时间轴 + 角色化写入)+ 报告锚设计需求。触发场景:在 adhoc program 内新建/放置任何文件、记录用户需求、写实现/收口报告、或重组一个旧 program。配套确定层工具 fa_structure_gate + requirement_doc scaffold。文件存放与需求记录 SOP(道·治理)
这是 program 内部的存放与需求记录统一规范,指导后续所有文件。它把 r001 的 fa-1 存放架构 + r002 的 DDP 优化(需求记录协议)合成一份可机械验证的治理。WORKSPACE「文件存放架构」节决定「文件放进哪个 job」(job 间),本 SOP 决定 job 内部怎么组织。理论依据见 WORKSPACE 节同款(Glushko/Pirolli/Ousterhout/Simon/Brooks/Weinberg)+ DDP v0.4 角色协议。
一句话
一个 program 内部,真源与运行产物二分、设计需求与执行需求文件级分离、需求按领域多文件逐字记录且自带时间轴、报告锚设计需求、副本只放指针不复制——这五条对人和机器都可读、可机械校验(fa_structure_gate + requirement_doc),新 session 零先验即可遵循。
何时用
放任何文件、记任何用户需求、写任何实现/收口报告、重组任何旧 program 前,先过本 SOP。trivial 单文件查询不必。
Part 1 — 文件存放(fa-3 架构)
根四件套(每个 program 必备,固定名):
README.md— 唯一入口:人读路由(放什么/不放什么/相关目录)+<!-- GENERATED:BEGIN/END -->结构地图块(机读:槽位→类型)+ frontmatterschema_version: fa-3。ORIGINAL_PROMPT.md— 用户原话逐字,append-only,带 session 锚 + 日期。REQUIREMENTS_DESIGN.md— 设计需求唯一真源(「做成什么样」)。program 跨多领域时升为索引 +requirements/design/<域>.md多文件(见 Part 2)。EXECUTION_REQUIREMENTS.md— 执行需求唯一真源(「这轮怎么安排」),引设计需求 id 不复制。
固定槽位(按需建,固定名):
runs/rNNN_<YYYYMMDD>_<label>/— 运行区,每次执行一个 run:RUN.md(purpose/session_id/task_id/产物/verdict/closed_at)+plan.yaml+gates/+logs/+raw/。closed_at落定后 append-only;重跑开新 run,不加_r2/_r3文件名后缀(杜绝平铺碎片)。inputs/— 外部快照/副本:每子项 frontmatter 带source_path+snapshot_at(机读指针)。reports/— 对外报告:frontmatter 带requirement_anchor指 REQUIREMENTS_DESIGN(见 Part 3)。design/ research/ impl/ tests/ data/ logs/— 沿语义。- 【fa-3 元任务专属槽位】
audits/<topic>/— 审计/多模型检查(元任务),多轮聚一处 + 一份CONCLUSION.md汇总真源;reorgs/<slug>_<date>/— 版本重组/迁移任务(方案 + 执行记录 + 过时化操作);_buffer/— 没设好存放规则的新内容暂存,每项带why_buffered,归位后清空。判据:对本 job 产物的审计/重组/报告(元任务,轻)进专属槽位,不挤runs/(常规执行)/impl/(重实现)。详见 fa-3 SSOT §2.4/2.5。 - 其他功能目录(如
requirements/)必须登记进 README GENERATED 块,否则 FG6 FLAG。
三条贯穿纪律:
- 单一真源 + 指针不复制:一类信息一个真源文件;第二处只放一行指针(含机读:真源路径 + 时间)。绝不复制(复制 N 份违反近可分解性,维护成本 O(n),也违反用户原则)。派生内容写进真源的 GENERATED 块,不另起平行文件(
X.generated.md/ 独立MAP.md/MANIFEST.yaml都是反例)。 - 溯源四键:每个
.md产物 frontmatter 带req_id/task_id/session_id/created_at(Stage-3 标准,tools/provenance_mark/)。 - 时序自带:真源文档带 CHANGELOG,「最新版本是哪个 / 变化如何发生」从文档内部可读,不靠文件名后缀或 mtime。
Part 2 — 需求记录(DDP 优化协议)
DDP 的首要产物是需求记录(不是设计细节)。采纳 design_doc_protocol_loop_codex_20260501/protocol_versions/v0.4/ 的角色化多文件协议,按下面重定心:
(a) 设计需求 vs 执行需求两级文件级分离:设计需求(「模块应做成什么样」)进 REQUIREMENTS_DESIGN/requirements/design/;执行需求(「这轮怎么跑」)进 EXECUTION_REQUIREMENTS。节内分节挡不住夹杂,必须文件级分离。
(b) 设计需求按领域多文件:program 跨多模块时,REQUIREMENTS_DESIGN.md = 索引(域→文件→版本→一句话,GENERATED 块),requirements/design/<域>.md = 每域一文件权威源(对齐 v0.4 INDEX + detail docs / CONTENT-ROUTING)。一个领域一个文件,不同领域内容分开存。
(c) 忠于原文逐字:需求原文逐字保留,不转述、不蒸馏、不把「你对我的要求/方法论」改写进去。逐条挂 provenance(session id + raw turn 锚)。独立分析(agent 的实现建议/说明)与需求原文分文件/分区记录,标哪个 agent 哪个 session(DD-04)。机械保障 = 复用现成 requirement_doc 原语:R1 原文区 sha256 冻结(改一字 FLAG)+ R2 说明必须锚 R1 引文 ID 不得改写 + R3 分析强标 agent+session,配 check_requirement_doc(RD1-RD4)。这套已存在(不另造),多文件域记录理想形态 = 每域文件 R1 冻结。
(d) 时间轴强制:每个需求文件带 CHANGELOG(| 版本 | 日期 | session | 变更 |)+ 版本号(设计版本采 v0.4 D<major>.<minor>.<patch>,语义=需求变了多少:Major 推翻需求/删组件、Minor 新增需求内容、Patch 修正)。prompt 里出现新设计关注点,及时回写对应域文件 + CHANGELOG 加一行。
(e) 设计细节可选:需求文件只放需求 + 时间轴,可不记设计细节(设计/需求解耦)。真要做设计时,设计细节进 design/ 的设计文档(另一产物,走 design_doc 三层 + check_completeness)。
(f) 角色化写入(协议层采纳,运行时按需):写需求记录时分离角色——Designer 从原文抽取、Decomposer 按领域路由到文件、Writer 逐字写入、Reviewer 验忠实度。渐进式披露:每角色只读自己需要的。多文件/跨 session 时用独立 sub-agent 承担 Writer(注入完整背景 + 严格逐字纪律),主 agent 验。
Part 3 — 报告锚定(FA-9)
实现/收口/走查类报告,需求锚 = 被实现对象的设计需求真源(REQUIREMENTS_DESIGN 及其域文件),逐条对照实现情况。报告 session 自身的局部诉求只约束报告形式,不得成为报告主轴。报告 frontmatter requirement_anchor 指设计需求文件路径,使锚定层级可机械检查(fa_structure_gate FG3)。
(反例标本:infra_production_push_20260611/reports/ 锚了报告 session 的 RQ-1~6 局部诉求当主轴,设计需求对照退成一个子报告——这是两级未分离 + 报告锚错层级的产物,本 SOP 三条合起来防它复发。)
Part 4 — 迁移与弃用纪律
4.1 新内容
新内容一律按 fa-3 + 本 SOP 存放。
4.2 旧内容弃用:区分「归档」与「过时化」两种操作
旧内容有两种正确处理,按它是「该从活跃区挪走」还是「被新版取代但留原处作历史」选其一。两者都不用纯指针桩冒充已处理。
(A) 归档(physical archive) — 内容完成、过时或冗余,该从活跃区挪走:物理移动到 archive/(常规)或 redundant_archive/(冗余),走 rules/ARCHIVE_SOP.md 台账。归档区必须是真实文件,绝不是指针/链接/「见某某」占位(纯指针桩违反 ARCHIVE_SOP §4.3);原位置不留 redirect stub(仅当存在外部硬引用且经判定,按 ARCHIVE_SOP §9 例外保留极简指针)。借机纠正历史错放;只移动不增补内容。
(B) 过时化(obsolescence,fa-3 §2.6 / FA-22) — 一个真源被新版 supersede,旧版要留原处作历史 rationale:① frontmatter 加 status: obsolete/superseded + superseded_by: <新真源路径>;② 需名级可辨时目录加 _OBSOLETE 后缀,走 reference_validator CASCADE 更新引用,绝不裸 git mv;③ 旧内容不删,只标过时 +(必要时)改名 + 收口指针指向新真源。改名是高后果操作:引用海量时只标 frontmatter + banner、不改名(核引用量后定)。
判别:要把东西挪走 → (A) 归档;要把东西留原处但标明被取代 → (B) 过时化。
两种 archive 区分(A 的两个桶):
archive/:项目完成后的常规过时归档,有历史查阅价值。redundant_archive/:整理后确定不再需要的冗余内容(重复、被明确替代、无活跃引用)。
4.3 物理迁移工具
物理迁移走 reference_validator rename(CASCADE 更新引用),分步过门,不裸 git mv。reference_validator 现不覆盖 adhoc_jobs(SCAN_DIRS 排除),故 adhoc 间物理搬迁前必须手工核活跃引用链(TODO/CRONTAB/test/cron),或先把 adhoc_jobs 纳入 reference_validator 覆盖(fa-3 S2 切片)再搬。
重组用指针时,指针只合法指代三类用途——存放位置 / 旧代码位置(已过时化或已归档的历史实现)/ 新代码库位置(live 工具真源);authored 真源物理在位。运行产物按这三类判:是历史/外部 live 则指针合法、且被指向物状态须明确(obsolete/archived/live),是当前一等内容则物理归位。绝不用指针把本该物理一等的当前内容留在旧文件夹冒充已整合(迁移捷径指针 = 反模式)。
验收(机械可查)
- 存放:
python3 tools/fa_structure_gate/check.py --job <dir>(FG1-FG6:根四件套 / 两级需求文件或索引+域目录 / 报告 requirement_anchor / runs 命名+RUN.md / inputs 来源指针 / 功能目录登记)。 - 需求记录:
python3 tools/requirement_doc/scaffold.py(生成域文件骨架 + 索引 + CHANGELOG);忠于原文逐字由主 agent 抽样回原文对账(不外包给自报)。 - 溯源:
python3 tools/provenance_mark/check.py --dir <dir>(四键齐没齐)。 - 报告:
check_report_completeness(RPT-01 四点 + requirement_anchor 锚设计需求)。 - 设计文档(若有):
design_doc/check_completeness(DC1-DC4)。
边界 / claim ceiling
证据 observational+bounded:本 SOP 是 r001(fa-1)+ r002(DDP 优化)两个真实 program 采用的综合,fa_structure_gate 在 2 个 program 上 PASS、DDP 多文件需求记录在 PP reorg 上 demo 一次。未经 ≥3 program 长期采用验证;角色化写入协议层采纳、全角色运行时工具化(v0.4 七角色端到端)列 deferred 演进。本 SOP 是道(怎么组织 + 为什么),具体工具路径查 tools/INDEX.md,工具替换后道仍成立。
SSOT + 模块化接缝
本 SOP 的 fa-3 存放架构(Part 1)是文件存放 SSOT,与代码/设计模块化判断是正交的两件事:
- fa-3 存放 SSOT(Part 1 + 真源
DESIGN_FA_ARCHITECTURE_SSOT.md):L1/L2/L3 真分层、根四件套、固定槽位、报告锚、generated view 纪律。 - 模块化判断:一个能力一个权威实现、适配归边界、accidental 复杂度应消除、补丁须记债——这是
workflow_modular_design_entropy_control(道·代码级模块化)的职责。两 skill 指针引用,不复制。 - 接缝:新增槽位/工具/skill 时若可能产生第二个真源或并行实现,先经 modular skill 的「度」门,再决定是否修改 fa 存放规则。
- refresh_decision:是 L1/L2 层事件指针(SL-4,
runs/<run>/l2_events.jsonl),用于判定已有投影或上下文是否需要刷新。任何 L2 真源写入、prompt/receipt 改变当前 L2 判断、或需要把刷新决定交给 runtime/human 的时刻,都必须追加一条refresh_decision;fa 不重新拥有跨域成熟度生命周期决策。 - 成熟度生命周期:晋级/promotion 归
evolvable_workflow(道·演化工作流)所有;fa 可存stage/trace 指针,不做生命周期判断。
配套与跨域
- 确定层:
fa_structure_gate(存放)/requirement_doc(需求多文件,含append子命令把逐字需求 + provenance 四键 + sha256 填进requirements/design/<域>.md,--suggest-domain派 LLM 小 session 定域)/record_router(工作目录选定:resolve按任务定记录位置、suggest派小 session 建议路径,2026-06-18 RR-3)/check_requirement_doc --job(DDP 填充 gate:RD5 SP-表源 anchor 可达 / RD6 记录⊆域文件 / sha256 冻结 + regulator 判落域,2026-06-18 RR-1d)/provenance_mark(四键)/reference_validator(迁移 CASCADE)。 - 需求→DDP 填充流水线(2026-06-18,真源
adhoc_jobs/context_infra_base_tooling_buildout_20260615/impl/ddp_requirement_recording_completion_20260618/):record_router resolve/suggest定记录位置(任务关联:顶层 vs adhoc_job)→requirement_doc append [--suggest-domain]把需求逐字冻结填进正确域文件(落域由 LLM 小 session 判,确定层+语义层联动,兑现 DDP-06)→check_requirement_doc --jobgate 验填充正确(防 anchor 断裂复发,兑现 RR-1d)。全自动捕获(RR-4 hook)为 deferred S3。 - 弃用与归档操作细则见
rules/ARCHIVE_SOP.md。 - 道层联系:[[workflow_requirement_intake]](单条新需求入库)/ [[workflow_requirement_decomposition_core]](冻结做什么)/ [[workflow_design_doc_protocol]](要做设计细节时)/ [[workflow_landing_to_production]](产物落地)。
- 真源:fa-3 schema(现行)
adhoc_jobs/file_architecture_unification_20260613/design/DESIGN_FA_ARCHITECTURE_SSOT.md(D3.0.0,综合 fa-1+fa-2+FA-17..23;旧 fa-1DESIGN_FILE_ARCHITECTURE.md§2.4 已归档design/archive/,rationale 回链不复制);DDP 优化.../design/DDP_OPTIMIZATION_AND_REORG_DESIGN.md;v0.4 角色协议adhoc_jobs/design_doc_protocol_loop_codex_20260501/protocol_versions/v0.4/。