Initial commit

This commit is contained in:
jack
2026-04-06 21:59:41 +08:00
commit 760bdf2c9b
28 changed files with 2310 additions and 0 deletions

View File

@@ -0,0 +1,306 @@
#!/usr/bin/env python3
# 根据 _bmad/_config/bmad-help.csv 与下行中文说明表,生成仓库根目录 bmad-help.zh-CN.md
from __future__ import annotations
import csv
from pathlib import Path
REPO = Path(__file__).resolve().parents[2]
CSV_PATH = REPO / "_bmad" / "_config" / "bmad-help.csv"
OUT_PATH = REPO / "bmad-help.zh-CN.md"
MODULE_ZH = {
"BMad Builder": "BMad 构建器",
"BMad Method": "BMad 方法",
"Core": "核心",
"Creative Intelligence Suite": "创意智能套件CIS",
"Game Dev Studio": "游戏开发工作室GDS",
"Test Architecture Enterprise": "测试架构企业版TEA",
"Web Design Studio": "网页设计工作室WDS",
}
PHASE_ZH = {
"anytime": "随时",
"1-analysis": "阶段 1 · 分析",
"2-planning": "阶段 2 · 规划",
"3-solutioning": "阶段 3 · 方案设计",
"4-implementation": "阶段 4 · 实现",
"0-learning": "阶段 0 · 学习",
"1-preproduction": "前期制作",
"2-design": "设计",
"3-technical": "技术",
"4-production": "制作",
"gametest": "游戏测试",
"0-wds-pitch": "WDS · 宣讲/对齐",
"0-wds-agents": "WDS · 唤醒代理",
"1-wds-strategy": "WDS · 策略",
"2-wds-design": "WDS · 设计",
"3-wds-build": "WDS · 构建/验证",
}
# 与 CSV 行顺序一致(共 114 行对应「sequence」列的中文说明空原文由脚本行号对应空序列行
ZH_BY_ROW = [
"通过对话式梳理,创建、编辑或重建 Agent 技能。",
"对既有 Agent 做质量分析:结构、内聚、提示词工艺与改进空间。",
"安装或更新 BMad Builder 模块配置与帮助条目。",
"头脑风暴并规划 BMad 模块:创意、架构与构建计划。",
"将模块基础设施脚手架化为可安装的 BMad 模块技能。",
"检查模块结构是否完整、准确,且能力均已正确注册。",
"创建、编辑或重建工作流或工具型技能。",
"对既有工作流/技能做质量分析:结构、效率与改进空间。",
"将任意技能转换为符合 BMad 的成果导向形态,并生成前后对比 HTML 报告。",
"详细描述需求,由代理按文档最佳实践撰写;可多轮对话并子流程做调研/审阅。",
"若发现文档惯例缺失,把你的偏好写入代理记忆中的 documentation-standards.md。",
"根据描述生成 Mermaid 图;未指定类型时会建议合适的图类。",
"对照文档规范与最佳实践审查指定文档,按优先级给出可执行的改进建议。",
"为复杂概念撰写清晰技术说明,附示例与图示。",
"专家引导,使用一种或多种技法进行项目头脑风暴。",
"确保 PRD、UX、架构与 Epic/Story 彼此对齐。",
"故事循环:若有问题退回 DS通过后进入下一 CS或 Epic 完成时走 ER。",
"在重大变更时纠偏:可能建议重来、更新 PRD、重做架构/冲刺规划或修正 Epic 与 Story。",
"引导式产出技术决策文档(架构)。",
"在架构文档CA之后创建 Epic 与用户故事。",
"专家引导完成产品需求文档PRD",
"故事循环起点:准备冲刺计划中「下一个」待做 Story或指定 Epic/Story。",
"在开发开始前校验 Story 是否就绪、完整。",
"落实 UX 方案;若项目以 UI 为主,强烈建议使用。",
"故事循环:执行 Story 实现与测试,经 CR如需修复回到 DS。",
"分析现有项目并产出可用文档。",
"行业领域深度研究、专业术语与知识沉淀。",
"在通过 PRD 校验流程后,编辑并改进指定路径的 PRD。",
"扫描代码库生成精简、面向 LLM 的 project-context.md棕地项目尤其重要。",
"市场、竞品、客户需求与趋势分析。",
"引导式厘清产品创意与核心价值。",
"为已实现代码生成自动化 API 与 E2E 测试;非代码评审或 Story 校验(请用 CR",
"统一「意图进、代码出」:澄清、实现、审阅与交付展示。",
"可选:在 Epic 结束时回顾成果与经验,规划下一 Epic重大问题考虑走 CC。",
"启动实现阶段:生成实现代理将按序执行的冲刺计划。",
"随时总结 Sprint 状态并路由到下一工作流。",
"技术可行性、架构选项与实现路径研究。",
"在创建 PRDCP之后校验 PRD 质量。",
"在创意早期或思路卡住时做头脑风暴。",
"生成节省 token 的蒸馏文,保留供下游 LLM 使用的关键信息。",
"成稿后润色正文表达。",
"当文档由多段子流程拼成或结构需加强时,做结构性编辑审阅。",
"判断当前所处 BMad 流程位置并回答问题;推荐下一步技能与调用方式。",
"在不加载全部文件的前提下为目录生成/更新索引,便于掌握文档地图。",
"编排多代理/多视角讨论与协作。",
"在定稿前做对抗性质量审查;其他模块的代码审也可自动调用,亦适用于文档。",
"与对抗审搭配,从边界场景做正交补充,重方法而非「挑刺态度」。",
"当单份文档过大(常为 >500 行)时拆分为可管理片段。",
"用一种或多种技法主持头脑风暴会话。",
"以同理心驱动的人本设计流程指导。",
"识别颠覆机会并设计商业模式创新。",
"运用系统化问题解决方法拆解复杂挑战。",
"用成熟叙事框架与技巧撰写故事/叙述。",
"快速游戏原型,验证机制与创意。",
"在游戏语境下主持头脑风暴。",
"在投产前确保 GDD、UX、架构与 Epic/Story 对齐。",
"对标记为「待评审」的 Story 做干净上下文的 QA 代码审查。",
"游戏开发冲刺偏离路线时进行纠偏。",
"依据 GDD 需求创建 Epic 与 Story 列表,作为开发规格驱动。",
"交互式游戏简报,引导用户明确游戏愿景。",
"撰写游戏设计文档 GDD机制、系统、进度与实现指引。",
"为剧情向游戏撰写叙事文档:结构、人物弧与世界观。",
"从 GDD 或从零撰写 PRD供 bmad-assist 等外部工具使用。",
"为开发代理准备上下文充分的 Story。",
"落实游戏 UX/UI若 UI 是核心,强烈建议使用。",
"执行 Dev Story按任务与测试实现。",
"分析现有游戏项目并产出文档。",
"游戏产业领域深度研究与术语沉淀。",
"搭建 E2E 测试基础设施脚手架。",
"改进并增强既有 PRD。",
"产出可伸缩游戏架构:引擎、系统、网络与技术设计。",
"生成适配所选智能体工具一致性的 project-context.md。",
"游戏市场、竞品与玩家需求分析。",
"设计性能测试策略。",
"撰写结构化试玩/测试计划。",
"兼顾游戏特性的灵活开发流程。",
"实验性一体化快捷流:单工作流内完成澄清、计划、实现、审阅与展示。",
"小需求、小改动、简单应用/工具,无需冗长规划。",
"在游戏开发 Epic 完成后组织团队回顾。",
"由 Epic 文件生成或更新 sprint-status.yaml。",
"查看冲刺进度、暴露风险并给出下一步行动建议。",
"游戏引擎选项与实现路径的技术可行性研究。",
"生成自动化游戏测试。",
"设计覆盖流程与质量要求的游戏测试场景。",
"为 Unity / Unreal / Godot 等项目初始化游戏测试框架架构。",
"评审测试质量与覆盖。",
"按外部工具兼容标准校验 PRD。",
"TEA 学院:通过 7 次课讲授测试基础(含进度与证书相关产出)。",
"生成失败用例TDD 红灯阶段)。",
"扩展自动化测试覆盖。",
"配置 CI/CD 质量流水线。",
"初始化生产级测试框架脚手架。",
"非功能需求NFR评估。",
"基于风险的测试规划。",
"质量审计0100 分制)。",
"覆盖度可追溯与质量门禁决策。",
"带设计日志与浏览器验证的迭代「构建—验证」循环。",
"干系人共识 pitch 与服务协议;若做自有产品可跳过。",
"详细规格前的快速视觉草图探索;直接场景可跳过。",
"逐页逐元素记录设计决策,开发可直接据此实现。",
"校验规格完整并打包为 DD yaml供开发交接。",
"管理组件库与设计令牌;设计系统模式为「无」时跳过。",
"第 34 阶段 UX 设计师代理 Freya检查前置条件并给出下一步。",
"从规格抽取可复用模式为组件定义;无设计系统时跳过。",
"治理代理 Idun访谈组织以配置 Agent Space 与权限模型。",
"以「人设 + 目标 + 结果」定义用户旅程,并与触发图驱动力关联。",
"平台、设备、集成与约束等技术边界;简单落地页可跳过。",
"持续改进:反馈 → 触发图 → 规格 → 代码 → 验证。",
"定义产品愿景、定位与成功标准,设计决策应可追溯至此。",
"第 12 阶段战略分析师代理 Saga扫描仓库并建议下一步。",
"跨界面串联用户旅程与入口、过渡、异常路径;简单场景可跳过。",
"将业务目标映射到用户心理:人设、功能与驱动力打分。",
"在真实用户环境中做可用性测试与回顾式出声思考。",
"将规格转为带样式的 HTML 原型,可与 Figma 往返。",
]
def _is_arg_cell(s: str) -> bool:
"""CSV 部分行在 phase 前插入了 [path] / {-H:...} 等参数列。"""
if not s:
return False
if s == "[path]":
return True
if s.startswith("{-H") or s.startswith("{--"):
return True
if s.startswith("{description:"):
return True
return False
def phase_token(r: list[str]) -> str:
if r[5]:
return r[7] or ""
if _is_arg_cell(r[6] or ""):
return r[7] or ""
return r[6] or ""
def phase_display(r: list[str]) -> str:
p = phase_token(r)
if not p or p in ("true", "false"):
return ""
return PHASE_ZH.get(p, p)
def prereq_display(r: list[str]) -> str:
if r[5]:
cand = r[12]
elif _is_arg_cell(r[6] or ""):
cand = r[8] or ""
else:
cand = r[7] or ""
if not cand or cand in ("true", "false"):
return ""
return cand
def required_gate(r: list[str]) -> str:
if r[5]:
return r[13]
if _is_arg_cell(r[6] or ""):
return r[13]
return r[12]
def output_display(r: list[str]) -> str:
if r[5]:
loc, out = r[14], r[15]
elif _is_arg_cell(r[6] or ""):
loc, out = r[14], r[15]
else:
loc, out = r[13], r[14]
parts = [x.replace("|", " · ") for x in (loc, out) if x]
return " / ".join(parts) if parts else ""
def main() -> None:
with CSV_PATH.open(newline="", encoding="utf-8") as f:
rows = list(csv.reader(f))[1:]
if len(rows) != len(ZH_BY_ROW):
raise SystemExit(f"行数不匹配: CSV {len(rows)} vs ZH {len(ZH_BY_ROW)}")
by_mod: dict[str, list[list[str]]] = {}
for r in rows:
by_mod.setdefault(r[0], []).append(r)
lines: list[str] = [
"# BMad 帮助目录(中文版)",
"",
"本文档由 [`_bmad/_config/bmad-help.csv`](_bmad/_config/bmad-help.csv) 翻译并整理,便于中文读者检索 **菜单码**、**技能** 与用途。",
"",
"技能调用方式(斜杠命令 / 自然语言等)以本机 `npx bmad-method install` 与 Cursor 集成为准。",
"",
"## 表列说明",
"",
"| 列 | 含义 |",
"| --- | --- |",
"| **码** | 菜单快捷码(不同模块下可能重复,以技能名列区分) |",
"| **显示名称** | CSV 英文显示名(与上游一致,便于对照) |",
"| **技能** | 技能标识 / 工作流名 |",
"| **说明** | 对「sequence」列的中文释义 |",
"| **阶段** | 工作流阶段或触发时机(`anytime` 等为随时) |",
"| **前置** | 建议先完成的技能或条件CSV 中错位字段已尽量还原) |",
"| **必选** | 是否后期阶段强制项(`true` / `false` |",
"| **产出** | 主要输出位置或产物类型(保留英文路径占位符) |",
"",
"---",
"",
]
idx = 0
for mod in [
"BMad Builder",
"BMad Method",
"Core",
"Creative Intelligence Suite",
"Game Dev Studio",
"Test Architecture Enterprise",
"Web Design Studio",
]:
mrows = by_mod.get(mod)
if not mrows:
continue
lines.append(f"## {MODULE_ZH.get(mod, mod)}")
lines.append("")
lines.append(
"| 码 | 显示名称 | 技能 | 说明 | 阶段 | 前置 | 必选 | 产出 |"
)
lines.append("| --- | --- | --- | --- | --- | --- | --- | --- |")
for r in mrows:
zh = ZH_BY_ROW[idx]
idx += 1
req = required_gate(r)
lines.append(
"| {code} | {name} | `{skill}` | {desc} | {phase} | {pre} | {req} | {out} |".format(
code=r[3].replace("|", "\\|"),
name=r[2].replace("|", "\\|"),
skill=r[1].replace("|", "\\|"),
desc=zh.replace("|", "\\|"),
phase=phase_display(r).replace("|", "\\|"),
pre=prereq_display(r).replace("|", "\\|"),
req=req.replace("|", "\\|"),
out=output_display(r).replace("|", "\\|"),
)
)
lines.append("")
if idx != len(rows):
raise SystemExit(f"索引错误: 写了 {idx} 行,预期 {len(rows)}")
lines.append("---")
lines.append("")
lines.append(
"*生成脚本:[`_bmad/scripts/render_bmad_help_zh_cn.py`](_bmad/scripts/render_bmad_help_zh_cn.py)(修改译文表后重新运行以更新本文档。)*"
)
lines.append("")
OUT_PATH.write_text("\n".join(lines), encoding="utf-8")
print(f"Wrote {OUT_PATH}")
if __name__ == "__main__":
main()