多彩编程 多彩编程MZPH · CODE BLOG
ARTICLE DETAIL

文章详情

深耕前端与后端开发技术的一线实战笔记与踩坑复盘。

BMAD-METHOD 结构评审镜头:以高价值密度为导向的文档结构编辑方法论

BMAD-METHOD 结构评审镜头:以高价值密度为导向的文档结构编辑方法论 BMAD-METHOD 结构评审镜头以高价值密度为导向的文档结构编辑方法论【免费下载链接】BMAD-METHODBreakthrough Method for Agile Ai Driven Development项目地址: https://gitcode.com/gh_mirrors/bm/BMAD-METHOD本文围绕 BMAD-METHOD 项目中bmad-review技能的Structure Lens结构评审镜头展开系统讲解它如何以高价值密度为纲对文档进行结构审查从结构模型的选择、待猎捕的结构性问题清单、六类处置标签CUT/MERGE/MOVE/CONDENSE/QUESTION/PRESERVE到基于真实字数统计的削减评估与结构化发现表输出。读完本文你将掌握这套可复用的文档结构编辑流程并能结合仓库源码理解其底层实现与在bmad-review多镜头评审流水线中的协作机制。Structure Lens 在 bmad-review 中的定位bmad-review是 BMAD-METHOD 内置的内容评审技能其核心思想是通过镜头lens审视内容——每个镜头代表一种独立的方法与立场stance并把所有镜头的发现统一收敛为一种规范输出形状。镜头集合并不是固定列表而是由 customize.toml 中{workflow.lenses}解析而来覆盖层override可以新增镜头或替换内置镜头。在bmad-review的镜头体系中编辑型镜头editorial lenses共有两个镜头代码名称适用内容依赖structureEditorial Structuredocs文档类无proseEditorial Prosedocs文档类after structure依赖结构镜头先行从 customize.toml 的镜头定义可以看出关键设计[[workflow.lenses]] code structure name Editorial Structure applies_to docs when Documents whose shape is the authors to change. instruction Load references/lens-structure.md from the skill root and follow it. [[workflow.lenses]] code prose name Editorial Prose applies_to docs after structure when Documents being copy-edited. instruction Load references/lens-prose.md from the skill root and follow it.这里有三点值得注意内容分类决定镜头是否参与applies_to docs表示结构镜头只审查文档类内容spec、需求、计划、story 等定义行为的文档也属于 docs行为类镜头仍可能适用具体由各镜头的when判断。执行顺序由after表达prose镜头声明after structure因此它在结构镜头完成之后运行并接收结构镜头的发现作为输入——先解决文档形状是否服务于目的再解决措辞是否妨碍理解。空指令即禁用某镜头instruction为空字符串时该镜头被禁用这是通过配置裁剪镜头集合的机制。编辑型镜头的共同基础内容神圣不可侵犯structure与prose两个编辑型镜头共享同一份方法论底座即 references/editorial-common.md。结构镜头在运行前必须先加载并遵循这份公共约定其中包括立场、设置、读者校准与发现形状四个部分。立场Stance编辑镜头将文档当作临床编辑对象来审阅返回作者可以逐行接受或拒绝的修改建议。核心红线是Content is sacrosanct. Never challenge ideas — only how theyre organized and expressed. Propose, dont execute: the author decides what to accept.内容本身是不可侵犯的永远不要质疑作者的观点只质疑组织与表达方式提出建议而非代为执行最终是否采纳由作者决定。设置Setup运行结构镜头前需要完成三步准备收集输入内容必需路径或粘贴文本以及请求中声明的目的purpose、目标读者target audience、长度目标length target、读者类型reader type、风格指南style guide。请求层面的取值优先{workflow.reader_type}与{workflow.style_guide}填补请求未声明的部分。获取精确字数当内容为文件时通过uv run {skill-root}/scripts/word_metrics.py path获取文档总字数与每个标题小节的字数分布并以此为依据估算每条发现的字数影响word impact与削减总量。若内容是粘贴文本或脚本无法运行则估算并在数字上标注估算值。推断目的与受众当请求未提供时从内容与常驻上下文中推断并以一句话开场——这份文档的存在是为了帮助 [受众] 达成 [目标]——让作者在依据发现行动之前先纠正错误前提。读者校准Reader Calibration每条发现都必须根据读者类型校准——请求中声明优先否则使用{workflow.reader_type}默认值为humans可在 customize.toml 中修改humans默认为清晰度、流畅度与自然推进优化。图表、期望设定如What Youll Learn、读者旅程、心智模型、鼓励语气、留白、总结、示例、参与感等元素服务于理解与参与除非明显浪费否则应保留任何建议削减它们的发现都需标注出来。llm为精确性与无歧义优化。依赖优先先定义概念再讲用法降低幻觉风险、删除情绪化语言与客套段落、引用公认标准而非重新讲解、术语全篇一致、不使用模糊措辞mightcould、优先结构化格式表格、列表、YAML、引用无歧义。发现形状Findings Shape编辑型镜头以**发现表findings table**而非规范 JSON 字段渲染结果一张表同时服务结构、措辞两道审查工序PassOriginal TextRevised TextChangesstructure§Setup — full section (~180 words)MERGE into §InstallationDuplicates the install steps; one source of truth (saves ~150 words)proseThe system will processes data...The system processes data...Fixed subject-verb agreement; removed redundant it结构行在Original Text中注明章节或段落并在Revised Text中携带处置标签附移动目标或浓缩改写prose 行则精确引用原文及其修订版。行按理解影响力排序当长文档产生的行数超出作者实际可处理范围时只呈现影响力最高的行其余汇总为一句收尾——N further minor fixes; ask to expand.。结构镜头的核心方法论高价值密度lens-structure.md 全文只有九行却浓缩了一整套结构编辑哲学。它的立足点可以拆解为四条原则Brevity is clarity简洁即清晰精炼的写作尊重读者有限的注意力并支持高效扫读。Every section must justify its existence每个小节都必须证明自己的存在价值一切拖延理解的都可以裁掉。True redundancy is failure — but comprehension sets the floor真正的冗余是失败——但理解力设定了下限以维持理解所需的最少字数为优化目标这意味着削减不能以牺牲可理解为代价。Front-load value价值前置关键信息排在最前锦上添花的内容排到最后——或者干脆删除。这四条原则共同定义了结构评审的高价值密度取向追求单位字数内的信息价值最大化同时始终守住读者能理解这条底线。结构模型以文档目的匹配评判基准结构镜头并不凭空评判文档形状而是先加载 references/structure-models.md选出与文档目的匹配的模型再按该模型的规则逐项评估。如果文档与任何模型都无法干净匹配则按最接近的模型评判并在形状与目的冲突时把不匹配本身记作一条发现。仓库内置了五种结构模型模型适用场景核心规则Tutorial/Guide (Linear)教程、详细指南、how-to 文章、走查前置条件/上下文必须先于动作步骤遵循严格的时间或逻辑依赖顺序结尾有清晰的 Definition of DoneReference/DatabaseAPI 文档、术语表、配置参考、速查表随机访问读者直接跳到特定条目无需叙事流主题 MECE互斥且穷尽每条目结构一致如 Signature → Params → ReturnsExplanation (Conceptual)深度解析、架构总览、概念指南、白皮书、项目上下文从抽象到具体定义 → 上下文 → 实现/示例脚手架式搭建复杂思想建立在既定基础之上Prompt/Task Definition (Functional)BMad 技能与工作流、提示词、系统指令、Agent 定义元信息优先输入、使用约束、上下文先于指令定义关注点分离指令/逻辑与数据/内容分离执行流程显式陈述绝不隐含Strategic/Context (Pyramid)PRD、研究报告、提案、决策记录自顶向下结论/状态/建议开篇支持性上下文按逻辑分组置于标题之下最关键信息在前论证 MECE数据支撑论证而非引领论证以bmad-review技能自身的文档为例SKILL.md 遵循的正是 Prompt/Task Definition 模型frontmatter 中先声明输入content、lenses、also_consider、claims、pre-resolved customization再给出约定Conventions、执行步骤Execution、输出Output指令与数据分离、流程显式编号。猎捕清单结构镜头要寻找的问题选定结构模型后镜头按以下清单逐项猎捕问题原文称之为 Hunt for不服务于既定目的的章节sections that dont serve the stated purpose——章节存在但与该文档声称的目的无关真正的冗余true redundancy——信息完全相同且没有强化价值的重复区别于对理解有强化作用的总结/回顾范围越界scope violations——属于另一份文档的内容混入本文档被埋没的关键信息buried critical information——重要内容藏在文档深处违背价值前置原则过早的细节premature detail——细节出现在读者尚未建立上下文的位置缺失的脚手架missing scaffolding——缺少帮助读者建立心智模型的前置结构overview、定义、上下文经典反模式classic anti-patterns应该内联却独立成章的FAQFAQs that should be inline应该直接删除的附录appendices that should be cut逐字重复正文的概述overviews that repeat the body verbatim。此外面向人类读者时还要评估节奏pacing是否有足够的留白与视觉变化来维持注意力对应 editorial-common 中 humans 校准的 whitespace、visual aids 等要素。发现标签体系六种处置方式结构镜头为每条发现打上六种处置标签之一这是本镜头最核心的可操作产出标签含义典型场景CUT删除无价值的附录、重复正文的概述、不服务于目的的小节MERGE合并与既有章节重复的内容合并后保持单一信息源one source of truthMOVE移动属于文档其他位置的内容需指明移动目标章节CONDENSE浓缩保留但压缩如将 ~180 词的章节压到一句话QUESTION存疑无法立即判定需向作者确认如疑似越界内容PRESERVE保留明确保留看似可裁但服务理解的内容——这是对削减一切的制衡呼应comprehension sets the floor原则每条发现还必须标注其字数影响word impact——基于word_metrics.py输出的字数统计估算该处置能削减多少字。若请求中提供了长度目标length target镜头还需评估推荐方案合计后是否满足该目标。输出形状以Pass structure渲染发现表结构镜头的输出形状与通用镜头不同它不输出规范 JSON 字段而是以发现表渲染editorial-common.md 明确规定 the editorial lenses render a findings table。每行以Pass structure标记表结构为 Original Text → Revised Text → Changes 三列。在表格之上还需输出目的/受众一句话解读purpose/audience read即这份文档的存在是为了帮助 [受众] 达成 [目标]结构镜头运行时所选的结构模型结构镜头运行结束后以总结收尾总推荐数、若全部采纳的预计削减量字数与占原文百分比基于 word-metrics 计数计算、是否达到提供的长度目标以及任何理解力权衡为简洁而牺牲读者参与度的削减。空结果同样是有效结果如果结构镜头未发现问题明确说明即可无需填充内容凑数——这与 lens-adversarial.md对抗镜头强制至少十条发现空列表视为需要复查的信号形成鲜明对比体现了编辑镜头内容神圣的立场。底层支撑字数度量脚本与测试验证结构镜头的字数影响与削减百分比并非凭空估算其依据是 scripts/word_metrics.py 提供的精确统计。该脚本值得细读它体现了几个工程细节总字数 分节字数输出 JSON包含文档总字数total_words与按 Markdown 标题#至######切分的每节字数sections让评审者能针对具体章节给出有依据的削减建议。CJK 计数规则word_count()将每个 CJK 字符计为一个词CJK re.compile(r[぀-ヿ㐀-䶿一-鿿豈-﫿가-힯-])因为中日韩文不以空格分词——这对评审多语言文档本项目 docs 下含 cs、fr、ko-kr、vi-vn、zh-cn 等多个 locale至关重要。围栏代码块内的标题不视为小节section_metrics()以 CommonMark 风格配对围栏仅当出现等长或更长的同字符围栏才闭合因此代码块中的# not a heading不会被误切分为章节。空前言自动丢弃preamble前言字数为 0 时不出现在输出中。配套测试 scripts/tests/test_word_metrics.py 验证了这些行为test_fenced_heading_not_a_section断言围栏内的# not a heading不产生小节test_section_words_counted断言围栏块的 token 计入所在节的字数test_empty_preamble_dropped断言空前言被剔除test_word_count则验证了空格分词与空文本的边界。运行时注意该脚本要求 Python 3.11见脚本头部的requires-python声明并通过uv run调用输出为 UTF-8 JSON。结构镜头在评审流水线中的运行机制结构镜头不是孤立运行的它在bmad-review技能的多镜头流水线中按明确规则被调度相关逻辑记录在 SKILL.md 的 Execution 章节镜头选择从{workflow.lenses}中选出所有启用、applies_to覆盖内容类别、且when适用的镜头。用户或调用方显式点名镜头时只运行被点名的镜头——显式请求不受applies_to/when过滤。独立镜头并行结构镜头没有after依赖属于独立镜头可与对抗镜头、边界案例镜头等同时运行。有子代理subagent可用时为每个镜头派生一个子代理并行执行否则顺序执行完成一个再开始下一个。依赖镜头串联prose 镜头声明after structure因此在结构镜头完成后运行并接收其发现作为输入。结构镜头未产生发现时prose 仍照常运行只是没有先前的发现可用。输出组装按{workflow.output_format}呈现——json原始 JSON 数组、markdown人类可读报告或both默认。编辑型镜头保留自己的渲染形状发现表。当{workflow.report_path}设置时写入报告文件否则在对话中呈现。每条发现携带lens、location、trigger_condition、guard_snippet、potential_consequence字段编辑镜头可用自己的表结构覆盖。值得强调的是镜头之间的发现重叠是信号而非重复——多个镜头报告同一问题恰恰说明该问题值得优先处理在 markdown 报告中注明而非去重。实操指南如何调用结构镜头触发方式bmad-review技能的触发条件是用户明确说出 review或通过skill:bmad-review指令显式调用例如bmad的doc_standards使用skill:bmad-review lensescode[,code...]形式。技能描述明确要求绝不未经邀请自行调用包括对自己刚做的编辑。指定镜头只运行结构镜头skill:bmad-review lensesstructure同时运行结构 措辞两个编辑镜头prose 会自动等待 structure 完成后接收其发现skill:bmad-review lensesstructure,prose配置面结构镜头相关的可配置项集中在 customize.toml 的[workflow]表中覆盖遵循 BMad 合并规则标量覆盖、数组追加、按code键匹配的数组表替换或追加。团队级覆盖文件为{project-root}/_bmad/custom/bmad-review.toml个人级为{project-root}/_bmad/custom/bmad-review.user.toml配置项默认值对结构镜头的影响reader_typehumans结构镜头的读者校准基准请求中声明时优先style_guideMicrosoft Writing Style Guide编辑审查的基线风格指南可用file:前缀指向团队风格文档与镜头通用原则冲突时风格指南优先review_guidance[]每次评审都叠加的常驻审查指令支持file:前缀加载外部指令文件persistent_facts[]会话常驻上下文支持file:前缀加载output_formatboth发现呈现方式json / markdown / bothoutput_preferences输出塑形指令如只输出影响力最高的 20 条发现report_path报告写入路径空 仅在对话中呈现工作流要点一次典型的结构镜头评审遵循解析自定义配置 → 加载内容并分类diff/源文件/函数/文档code/docs→ 选定镜头 → 宣布计划 → 加载 editorial-common.md 与 structure-models.md → 运行word_metrics.py获取精确字数 → 选择结构模型 → 按猎捕清单审查 → 为每条发现打标签并标注字数影响 → 以Pass structure渲染发现表 → 给出削减总量与理解力权衡总结。小结Structure Lens 是 BMAD-METHOD 文档评审体系中负责形状的一道工序它以高价值密度为纲、以结构模型为评判基准、以六类处置标签为可操作产出、以精确字数统计为削减依据与措辞镜头prose一前一后构成完整的编辑型评审双通道。它确立的内容神圣、提议而非执行、空结果有效等原则使文档结构审查既严格可度量又始终尊重作者的表达自主权——这套方法论对任何团队的文档治理、内容精简与 AI 辅助文档评审实践都具有直接参考价值。【免费下载链接】BMAD-METHODBreakthrough Method for Agile Ai Driven Development项目地址: https://gitcode.com/gh_mirrors/bm/BMAD-METHOD创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表