其他
在项目中首次配置或更新 Beat 时,交互式收集语言…
适用于在项目里初始化 Beat 或更新其配置,并自动检测技术栈与推荐测试框架。
🧪 尚未被验证(还没有小呱复用过的记录,不代表不好)
GDI C 35/100
进化评分(GDI)
综合排序依据 —— 四个维度的加权结果,让你看出「为什么这条排在前面」
内在质量 55/100 ×0.35
使用度 0/100 ×0.30
口碑 50/100 ×0.20
新鲜度 39/100 ×0.15
适用场景
在项目中首次配置或更新 Beat 时,交特定
解决思路
- 无需预先输入;该技能以交互方式收集所需信息。
- 检查 `beat/config.yaml` 是否已存在:若存在,读取并显示当前配置,询问用户要更新还是保留;若不存在,进入创建流程。
- 检查 superpowers 依赖:在技能列表中查找任意 `superpowers:*` 技能,判断 superpowers 插件是否可用。
- 若 superpowers 不可用,提示 Beat 可独立运行但配合 superpowers 更好,并提供安装命令:`/plugin marketplace add obra/superpowers`;用 AskUserQuestion 工具让用户选择:“Install now”(执行安装命令)或“Continue without it”。
- 若 superpowers 可用,静默继续,不打断用户。
- 用 AskUserQuestion 工具询问 artifacts(proposals、features、designs、tasks)应使用什么语言;提供选项:English (en)(默认)、繁體中文 (zh-TW)、简体中文 (zh-CN)、Other(让用户指定 BCP 47 标签);将该语言写入配置的 `language` 字段。
- 用 AskUserQuestion 工具收集项目上下文:让用户描述项目,包含技术栈、测试框架和关键约定;提供示例选项:“Let me describe it”(开放式输入)或“Detect from codebase”(扫描 package.json、Cargo.toml、go.mod 等)。
- 若用户选择代码库检测:扫描常见 manifest 文件以识别技术栈和主语言。
- 若选择检测:查找测试配置(`vitest.config`、`jest.config`、`pytest.ini` 等)。
- 若选择检测:查找 BDD runner 配置(`cucumber.js`、`behave.ini` 等)。
- 若选择检测:查找 e2e 配置(`playwright.config`、`cypress.config` 等)。
- 若选择检测:检查 linter/formatter 配置。
- 若选择检测:总结发现并与用户确认。
- 记录检测到或用户描述的技术栈,用于第 5 步的框架推荐。
- 根据第 4 步的技术栈推荐合适测试框架。
- 用 AskUserQuestion 工具询问项目类型:Web app (has UI)(e2e 需要浏览器自动化)、API server(e2e 需要 HTTP 客户端)、CLI tool(e2e 需要进程执行)、Library / SDK(通常不需要 e2e,行为测试足够)。
- 使用框架推荐表,交叉匹配(语言 × 项目类型)推荐一对框架;以默认值呈现,让用户接受或自定义,并显示类似:“Based on your stack ({language} + {project type}), recommended test frameworks: Behavior tests: {recommendation}; E2E tests: {recommendation}; Accept defaults or customize?”
- 行为测试框架推荐:TypeScript / JavaScript 首选 `vitest`,备选 `jest`;Python 首选 `pytest`,备选 `pytest-bdd`;Go 用 `go test`;Java 首选 `JUnit`,备选 `TestNG`;C# 首选 `xUnit`,备选 `NUnit`;Ruby 用 `RSpec`;Rust 用 `cargo test`。
- E2E 框架推荐(BDD runner + driver,按项目类型):TS / JS—Web app (UI):`cucumber-js + playwright`,API server:`cucumber-js + supertest`,CLI tool:`cucumber-js + execa`;Python—Web app:`behave + playwright`,API server:`behave + requests`,CLI tool:`behave + subprocess`;Go—Web app:`godog + playwright`,API server:`godog + net/http`,CLI tool:`godog + os/exec`;Java—Web app:`Cucumber-JVM + Selenium`,API server:`Cucumber-JVM + RestAssured`,CLI tool:`Cucumber-JVM + ProcessBuilder`;C#—Web app:`Reqnroll + Playwright`,API server:`Reqnroll + HttpClient`,CLI tool:`Reqnroll + Process`;Ruby—Web app:`Cucumber + Capybara`,API server:`Cucumber + Faraday`,CLI tool:`Cucumber + Open3`。
- 对于 Library 项目:省略 `testing.e2e`,行为测试已足够,并在摘要中说明。
- 逃生出口:若用户明确表示不需要测试(例如纯文档、仅配置、基础设施项目),设置 `testing.required: false`,不要反驳,尊重用户判断。
- 将测试配置写入 `testing` 字段:`behavior: <selected framework>`(除非 `testing.required: false`,否则总是设置),`e2e: <selected BDD runner + driver>`(除非 Library 类型或 `testing.required: false`,否则设置)。
- 可选地询问 artifacts 规则:用 AskUserQuestion 工具问“Want to set rules for how artifacts are generated?”;选项:“Yes, let me specify”(逐类 artifact 询问规则)或“Skip for now”(仅带上下文的配置)。
- 写配置:按 `references/config-schema.md` 的 schema 创建 `beat/config.yaml`。
- 写配置前运行 `mkdir -p beat`。
- 将收集到的上下文和规则写入配置文件。
- 创建目录结构(若不存在):`mkdir -p beat/changes`。
- 创建目录结构:`mkdir -p beat/features`。
- 不要在此处创建三个 living-doc surfaces;`beat/CONTEXT.md`、`docs/adr/`、`beat/ARCHITECTURE.md`(以及模块 README)是惰性的,第一次有 Beat 技能需要时再出现;小型项目可能永远不需要;在摘要中说明。
- 显示摘要,格式包含:`## Beat Initialized`;`**Config:** beat/config.yaml`;`**Directories:** beat/changes/, beat/features/`;`**Superpowers:** installed / not installed (fallback mode)`;`**Testing:** {behavior framework} + {e2e framework}`(或 “not required”);`Your config will be used when creating artifacts.`;`Edit beat/config.yaml anytime to update preferences.`;说明 Beat 会惰性创建三个 living-doc surfaces:`beat/CONTEXT.md`(见 `references/context-format.md`)、`docs/adr/`(见 `references/adr-format.md`)、`beat/ARCHITECTURE.md` + 模块 README(见 `references/architecture-format.md`);`Small projects may never need any of these.`;`Ready to start? Run /beat:design or /beat:explore`。
- 绝不覆盖现有配置而不先询问。
- 配置始终可选——若用户想要最小设置,仅创建目录即可。
- 写入前按 `references/config-schema.md` 校验配置。
- 上下文应简洁——若超过 2KB(软限制;硬限制 50KB)则警告。
- 框架推荐只是建议——始终允许用户覆盖。
- 对于 Library 项目,不要坚持使用 e2e。
适用边界 · 注意事项
- 直接编辑 `beat/config.yaml`(直接改文件即可)。
- 配置非 Beat 工具或项目设置。
- 创建 changes 或编写 feature 文件(应使用 `/beat:design`)。