母工作流 GuideDoc 与文档生成二次开发¶
本篇面向维护母工作流 Guide_Doc/ 和 tools/workflow_guidedoc_generator/ 的开发者,说明如何修改阶段指导契约、公共 FAQ、用户文档生成和注册逻辑。GuideDoc 的实际读者是执行阶段的 Agent,但本篇的目的不是教 Agent做任务,而是教开发者如何设计和实现这套指导系统。
二次开发目标¶
典型任务包括新增母阶段 GuideDoc、调整语义章节契约、增加用户文档类型、修复详细度算法、控制参考文档读取量、更新通用 FAQ 或改变 guide_docs 注册。修改后需要证明母 Agent读取到正确指导,同时生成工作流的用户文档没有被错误注入每个阶段。
母工作流修改入口¶
- 根
Guide_Doc/:母流程实际加载的公共和阶段指导。 - 根
config.yaml、评估/增量 YAML:GuideDoc 注册和阶段引用。 tools/workflow_guidedoc_generator/contract.py:稳定章节语义与兼容标题。tools/workflow_guidedoc_generator/core.py:spec 校验、渲染、写入和注册。tools/workflow_builder/core.py:固定用户文档模板。regression/:GuideDoc、交付文档和详细度回归。
目录和生成方式¶
母工作流公共指导位于根 Guide_Doc/。分阶段文档通常位于 Guide_Doc/stages/,常见问题位于同一公共目录并由各阶段引用。生成业务 GuideDoc 的实现位于 tools/workflow_guidedoc_generator/,注册信息进入业务配置。
一个阶段文档应包含什么¶
- 阶段目标和不在本阶段处理的内容。
- 必须读取的具体参考文件及读取顺序。
- 工具名称、参数来源、输出和失败处理。
- 需要生成或更新的具体文件。
- Checker 名称、参数和每项检查的含义。
- 最小可通过版本,使用稳定占位符而非某次业务文件名。
- 一个贴近实际的常见示例。
- 常见失败、确认方法和修复顺序。
- 实现计划中本阶段追加记录的格式。
最小示例的作用是消除 YAML、JSON、Markdown 标记或注册格式的歧义,不代表鼓励 Agent 只生成最小内容。存在正文长度要求时,应在示例后明确“该片段只展示结构,正式内容必须满足详细度要求”。
FAQ 的定位¶
阶段 FAQ 是前人运行后总结出的稳定经验,随 Workflow Builder 一起放在公共 Guide_Doc/,不是每次业务运行都自动改写。只有确认问题具有通用性、原因和修复方法都得到验证后,才更新 FAQ。
FAQ 条目建议包含症状、真正原因、错误做法、正确处理和适用阶段。业务专有文件名只能放在“示例”字段,不能变成通用强制产物。例如不能因为某次业务生成了 diag_checker.py,就在通用规则里要求所有工作流创建它。
读取成本控制¶
阶段任务应直接引用本阶段短文档,不要把数百行公共契约全文塞入每个 config 阶段。Agent 先读目录、摘要和最小示例,遇到具体问题再定向读 FAQ 或开发文档。评估和增量认知阶段同样采用预算化读取,建立初步认识不等于全文扫描所有 docs。
修改方法¶
- 先确认问题来自指导缺失,而不是 Checker 实现错误。
- 更新公共源文档和相应阶段引用。
- 如格式契约变化,同步更新最小示例、schema 和 Checker。
- 检查文字不含业务耦合、未来文件引用和矛盾步骤。
- 运行 GuideDoc 生成回归及配置引用检查。
文档质量检查¶
详细不等于反复说“必须详细”。高质量指导会给出字段、数据流、工具参数、判定条件和失败恢复。阶段描述至少应让没有参与过本次对话的 Agent 能够执行,不需要猜测文件名、模板名或输出位置。
GuideDoc spec 与文档类型¶
GuideDoc generator 同时处理阶段操作指导和最终用户文档,但两类文档使用不同契约。阶段 GuideDoc 强调 purpose、inputs、outputs、usage、execution、checks 和 failure recovery;用户文档强调有效正文长度、命令、输入输出和开发维护信息。开发者新增文档类型时,应先判断它由 Agent执行还是由人阅读,不能用同一组标题机械校验所有文档。
spec 应明确目标路径、文档类型、章节 id、heading、content 和注册阶段。id 是稳定语义,heading 可以中文化或调整措辞。只依靠标题文本会让“输入”“Inputs”“输入输出”被错误视为不同契约,因此当前实现保留兼容映射。
语义章节契约代码分析¶
源码位置:tools/workflow_guidedoc_generator/contract.py,符号 REQUIRED_SECTION_IDS、LEGACY_HEADING_IDS 和 section_id()。
显式 id 优先,使中文标题变更不影响验证。旧 spec 没有 id 时才按 heading 映射,提供向后兼容。新增必需章节会影响所有既有 GuideDoc,因此需要 schema 版本、默认迁移或充分回归;不能直接向 tuple 添加一个值并期望旧工作区自动通过。
REQUIRED_OPERATION_MARKERS 进一步检查关键章节是否真正说明 input/<TARGET>/、output/、make check_example 和 make run。它解决“标题齐全但正文空泛”的问题。不过 marker 只是最低证据,不应演变成所有业务文档都粘贴同一段命令。
spec 验证代码分析¶
源码位置:tools/workflow_guidedoc_generator/core.py,符号 validate_guidedoc_specs()。
验证器先通过 _safe() 限制 spec 和输出路径,再加载 YAML mapping,区分 user document 与 GuideDoc。对操作指导,它建立 section id 集合、检查缺失或重复、内容类型和 marker;对用户文档,调用 _effective_prose_length() 排除代码围栏、标题和格式噪声后计算正文。
这种顺序很重要:路径不安全应在读取或写入前失败;结构不合法时不要继续拼 Markdown;长度检查应基于实际说明而不是 YAML 序列化长度。若新增“源码分析”文档要求,应检查真实源码路径、代码围栏和分析章节,而不是把代码字符计入正文凑长度。
验证函数返回规范化 spec 列表供生成阶段使用。开发者不应在验证后再次从原始 YAML 读取一套未经规范化的字段,否则验证和生成会出现差异。
文档生成与注册代码分析¶
源码位置:tools/workflow_guidedoc_generator/core.py,符号 generate_guidedocs()。
生成器应使用原子写入,避免长文档写到一半时被 UCAgent 读取。注册只适用于 Agent需要加载的 GuideDoc;普通用户文档不应全部塞入 guide_docs,否则每个阶段上下文都会无意义增大。注册记录必须使用 workflow-relative 文件路径,并与阶段引用一致。
当多个 GuideDoc 批量生成时,最好先全部验证,再开始写入。这样第七份 spec 格式错误不会留下前六份新文件和旧 config 的混合状态。若当前实现不能事务化,report 至少要准确列出已写文件,供失败恢复清理。
阶段指导的最小可通过结构¶
以下结构只展示语义,不代表正式内容可以如此简略:
正式 spec 还要包含 outputs、usage、checks、failure_recovery,并给每个工具和 Checker 足够细节。最小示例应紧邻“正文必须满足详细度”的提醒,防止 Agent把示例原样复制为最终文档。
FAQ 的维护链路¶
阶段失败得到证据后,先在实现计划本阶段“问题与处理”记录业务现场。流程完成后再分类:如果是某业务专有约束,保留在业务计划或业务 GuideDoc;如果是生成器缺陷,修改代码和回归;如果是跨业务稳定误区,才写入公共 FAQ。
FAQ 条目要提供症状、影响、确认步骤、根因、正确修复和错误做法。比如“Checker 报未读取 .//workflow/x”的通用根因是路径未规范化,不应把 .// 作为未来 Agent必须模仿的正确格式。FAQ 更新后应检查哪些阶段需要引用,不要让所有阶段默认读取所有 FAQ。
阅读预算与上下文设计¶
GuideDoc 的目标是减少 Agent决策成本,不是增加阅读仪式。一个阶段应直接引用短而完整的本阶段文档;共享长契约通过索引和规则 id 按需查阅。评估和增量流程应先读目录、manifest 摘要和目标对象索引,再按 finding 读取源码。
任务描述中“完整了解整个流程”容易导致全文扫描 tools、checkers、docs 和报告,压缩后又重复读取。更可靠的指令是规定第一轮最多读取哪些索引、要输出什么认知摘要,以及在处理某个对象时允许追加哪些直接依赖。
二次开发案例:为母工作流增加阶段指导¶
假设新增“素材许可证审查”阶段。开发者先在中心 workflow spec 声明输入为具体素材清单文件、输出为许可证报告、Tool 为许可证元数据解析器、Checker 为许可状态检查。阶段 GuideDoc 解释来源白名单、未知许可证行为、网络失败恢复和报告证据。
如果只增加 GuideDoc 而没有中心阶段和 Checker,文档不会被执行;如果只增加 config 阶段没有 GuideDoc,Agent会猜测工具参数;如果注册整个 docs/ 目录,阶段上下文会爆炸。正确修改同时覆盖 spec、工具、Checker、GuideDoc 注册、最小 fixture 和回归。
扩展点与测试¶
新增章节语义时测试显式 id、旧 heading 映射、缺失章节、重复章节和未知 id。修改长度算法时测试代码块、表格、链接、中文和英文正文。修改注册时测试用户文档不被注入 Agent、GuideDoc 可读取、路径不逃逸以及重复生成幂等。
真实业务验收还要阅读生成后的文档,而不仅看 checker return code。结构正确但步骤与工具实际签名不一致,仍然是严重文档缺陷。
横切 GuideDoc 完整索引¶
下表中的文件都位于母工作流 Guide_Doc/。它们是母 Agent 的执行契约,不是本开发者文档的内容。修改前要先在 YAML 中查询引用阶段,避免一份长文被无意注入所有阶段上下文。
| 文件 | 作用 | 二次开发联动 |
|---|---|---|
workflow_build_guide.md | 中心构建设计的总原则,说明需求到子工作流的转换责任 | requirements manifest、实施计划、Builder 骨架和 requirement coverage Checker。 |
workflow_build_yaml_guide.md | wfgen/workflow_build.yaml 固定结构、最小可通过版本、常见示例与引用闭包 | config/checker/tool/guidedoc generator 对中心 spec 的读取和 WorkflowBuildConfigChecker。 |
tool_generation_guide.md | tool spec、真实实现、生成状态、批量生成和测试策略 | tools/workflow_tool_generator/、Tool 生成 Checker、eval_tools 及子工作流 docs/04。 |
checker_generation_guide.md | checker spec、docstring、正反 fixture、args 注册与误报防治 | tools/workflow_checker_generator/、Checker 生成 Checker、eval_checkers 及子工作流 docs/05。 |
config_generation_guide.md | config/inc 阶段结构、具体文件 reference/output、字数要求和自审 | tools/workflow_config_generator/、runtime audit、eval_flow 和所有生成阶段契约。 |
guidedoc_generation_guide.md | GuideDoc/user docs spec、section id、详细度、源码分析与注册边界 | tools/workflow_guidedoc_generator/、GuideDoc spec/generated/user docs Checker。 |
stage_check_guide.md | 阶段结束前一次性检查、失败证据与修复次序 | 阶段 task 的 Check 命令和 living plan “问题与处理”;避免每生成一个文件就重跑整组检查。 |
makefile_architecture_guide.md | 母 Makefile 变量优先级、run/eval/inc/UI 目标、loop/TUI/history 与工作区准备 | 根 Makefile、setup.py、QuickStart/Usage 命令和环境回归。 |
evaluation_contract.md | 评估全家桶共享报告 schema、严重度、证据、写入与不修改被评对象的契约 | JSON store、评估 Checker、报告 UI 和 aggregate。 |
evaluation_execution.md | 静态评估阅读预算、确定性命令、报告写入和防空转步骤 | EvaluationCommandRunner、StaticEvaluationAudit、全部 eval_*.yaml。 |
eval_tools.md | 工具存在、UCTool 协议、注册、可调用性和用户需求覆盖的静态评估清单 | eval_tools.yaml、tool audit rule id、eval/tools_report.json。 |
eval_checkers.md | Checker 存在、协议/docstring、args 注册、正反工作与业务充分性 | eval_checkers.yaml、checker audit rule id、eval/checkers_report.json。 |
eval_flow.md | config/inc 语义、阶段衔接、引用可达、Checker 可实现性和 GuideDoc 合理性 | eval_flow.yaml、flow audit rule id、eval/flow_report.json。 |
eval_env.md | Makefile、setup.py、ucagent_setup.sh、requirements、可移植性、权限和端口 | eval_env.yaml、environment audit rule id、eval/env_report.json。 |
eval_run.md | 唯一可启动子工作流的高成本评估,说明 runtime target、超时、卡住证据和终止 | eval_run.yaml、ChildWorkflowSupervisor、runtime report 与运行评估门禁。 |
incremental_workflow_discovery.md | inc 第一阶段的初步认知、索引优先和阅读预算 | IncrementalContextInventory、context report Checker;避免全文扫描导致连续压缩。 |
incremental_execution.md | inc run/batch/attempt、候选复制、修改、检查、部署、回归和终止状态机 | inc.yaml、stager/deployer、incremental report、applied changes 和 history。 |
incremental_evaluation.md | 批准新鲜度、修复范围、每条建议的验收证据与闭环 | approvals/suggestions、IncrementalApproval/Application/Regression Checker。 |
24 份阶段 GuideDoc 完整索引¶
Guide_Doc/stages/README.md 是阶段文档目录与共享结构说明。下列文件与主 config.yaml 的 24 个 stage 一一对应,文件名中的序号和 stage name 都应保持同步。
| 阶段 GuideDoc | 本阶段指导的主要目的 |
|---|---|
stages/00_extract_requirements_and_plan.md | 读取用户 guide 和样例,生成 requirements manifest、input manifest 与详细实施计划,明确 Tool/Checker/docs 必须比用户原话更具体。 |
stages/01_design_workflow_build_config.md | 把需求转为中心 workflow_build.yaml,提前规划 stage、Tool、Checker、reference、GuideDoc 和测试。 |
stages/02_build_initial_template.md | 调用 Builder 生成可检查的初始骨架,不越界代替后续业务实现。 |
stages/03_verify_tool_generation_loop.md | 证明 tool generator 本身能从 spec 安全生成、保留/替换并返回证据。 |
stages/04_design_smoke_business_tool_spec.md | 从需求选一个有代表性的业务 Tool,写完整 spec、真实源码方案和正反测试。 |
stages/05_implement_smoke_business_tool.md | 通过生成器物化烟雾 Tool,验证实际实现和注册,不由监督者手工补产物。 |
stages/06_strengthen_smoke_business_tool_tests.md | 增加边界、失败、路径和重复运行 fixture,防止只有幸运正例。 |
stages/07_initialize_smoke_workflow.md | 用初始 config/Make/GuideDoc 把烟雾 Tool 组成最小可运行子流程。 |
stages/08_verify_generated_tools_through_mcp.md | 从 UCAgent/MCP 加载路径调用工具,证明不是只能直接 import。 |
stages/09_freeze_smoke_baseline.md | 保存烟雾基线的 spec、测试和证据,作为后续批量生成的可比较标准。 |
stages/10_design_complete_runtime_configs.md | 设计全量 config/inc 阶段契约,自审 reference/output 可达、占位符、Tool/Checker 闭包。 |
stages/11_generate_complete_runtime_configs.md | 用 config generator 生成全量配置,运行语法、路径、注册和运行契约审计。 |
stages/12_design_all_business_tool_specs.md | 为所有需求能力设计工具 spec,明确真实算法、依赖、输出和测试映射。 |
stages/13_generate_all_business_tools.md | 批量生成工具源码与注册,允许独立产物并行准备、共享 config 串行提交。 |
stages/14_run_full_tool_test_suite.md | 一次性运行语法、direct、MCP、正反 fixture 和需求覆盖,修复后再重跑。 |
stages/15_design_all_document_specs.md | 规划 GuideDoc、README、01–05、requirements 等文档的类型、章节、详细度和源码分析证据。 |
stages/16_generate_all_documentation_and_dependencies.md | 批量物化文档和依赖,最后一次运行文档组检查,避免逐文件反复检查。 |
stages/17_generate_all_reusable_templates.md | 仅为真正可复用的业务模式生成模板与案例,不强迫所有业务建立无意义模板。 |
stages/18_complete_readme_and_makefile.md | 完成子工作流 README、Make 目标、环境入口与用户命令的一致性。 |
stages/19_mark_feature_complete.md | 将 manifest 能力标记与真实产物证据对齐,禁止没有证据就标“已完成”。 |
stages/20_verify_final_requirement_coverage.md | 从用户原始需求反向检查工具、Checker、阶段、文档与环境是否真正覆盖。 |
stages/21_clean_release_candidate.md | 清理非交付临时文件,确保临时数据只在 tmp/,不删除用户输入、报告和必需历史。 |
stages/22_prepare_and_verify_migration_packages.md | 生成迁移清单/包,校验相对路径、依赖、环境说明和包完整性。 |
stages/23_verify_migrated_release.md | 在新临时根解包、配置并运行检查,确认没有依赖构建机绝对路径。 |
新增或修改 GuideDoc 的标准流程¶
- 定位这是横切契约、评估/增量契约还是一个主阶段的操作指导,并查询当前 YAML 引用范围。
- 用具体文件、字段、Tool 参数、Checker 判定和失败证据写步骤,表述性内容使用中文,类名/字段/命令保留原文。
- 附最小可通过结构和一个常见完整示例,紧邻提醒“最小示例不满足正文详细度/字数”,防止 Agent 照抄简略示例。
- 将稳定通用故障写入对应 FAQ,只保留症状、根因、确认、正确修复和错误做法;不在每次业务运行中自动改母 FAQ。
- 同步 stage task、guide_docs 注册、对应 Checker、生成文档规则和文档回归,再用一个新业务观察 Agent 是否可独立执行。
继续阅读¶
评估和增量 GuideDoc 背后还有 JSON 状态、审批新鲜度、候选部署与回滚契约。请继续阅读评估与增量控制,不要只改自然语言指导而留下不一致状态机。