Loading...
Loading...
Compare original and translation side by side
.feature/beat:verify.feature/beat:design/beat:design/beat:explore| Superpower | When | Priority |
|---|---|---|
| using-git-worktrees | Before first file write | MUST |
.feature/beat:verify.feature/beat:design/beat:design/beat:explore| Superpower | 时机 | 优先级 |
|---|---|---|
| using-git-worktrees | 首次写入文件前 | 必须执行 |
| Thought | Reality |
|---|---|
| "I don't need a worktree for just writing feature files" | Distilled artifacts flow into plan/apply/archive. Without isolation, they won't carry forward correctly. |
| "The code is simple, I can verify the scenarios myself" | Self-verification of distilled specs is explicitly forbidden. Always use |
| "I'll skip scanning existing features, this is a new area" | Existing features may already cover this behavior. Distilling duplicates creates maintenance burden. |
| "These scenarios are obviously correct, verification is overkill" | Distill extracts specs from code — the most likely error is describing aspirational behavior instead of current behavior. Verification catches this. |
| "I'll commit later, let me just generate the files first" | Uncommitted artifacts can be lost. Commit before presenting to the user, matching design's behavior. |
| 错误想法 | 实际情况 |
|---|---|
| "只是写feature文件,不需要工作树" | 提炼出的工件会进入plan/apply/archive流程。若无隔离,它们将无法正确流转。 |
| "代码很简单,我可以自己验证场景" | 明确禁止自行验证提炼出的规格。必须始终使用 |
| "我会跳过扫描现有feature,这是新领域" | 现有feature可能已覆盖该行为。重复提炼会增加维护负担。 |
| "这些场景显然正确,验证纯属多余" | Distill从代码中提取规格——最可能出现的错误是描述预期行为而非当前行为。验证可发现此类问题。 |
| "我稍后再提交,先生成文件再说" | 未提交的工件可能丢失。提交后再呈现给用户,与设计行为保持一致。 |
/beat:verify/beat:verifydigraph distill {
"Ask for scope" [shape=box];
"Invoke using-git-worktrees" [shape=box, style=bold];
"Read and understand code" [shape=box];
"Scan existing features" [shape=box];
"Scope already covered?" [shape=diamond];
"STOP: inform user" [shape=box, style=dashed];
"Create change container" [shape=box];
"Generate draft artifacts" [shape=box];
"Commit artifacts" [shape=box];
"Present to user" [shape=doublecircle];
"Ask for scope" -> "Invoke using-git-worktrees";
"Invoke using-git-worktrees" -> "Read and understand code";
"Read and understand code" -> "Scan existing features";
"Scan existing features" -> "Scope already covered?";
"Scope already covered?" -> "STOP: inform user" [label="yes"];
"Scope already covered?" -> "Create change container" [label="no"];
"Create change container" -> "Generate draft artifacts";
"Generate draft artifacts" -> "Commit artifacts";
"Commit artifacts" -> "Present to user";
}"What code do you want to distill into BDD specs? Specify a module, directory, or describe the functionality."
using-git-worktreesbeat/features/**/*.featurebeat/changes/*/features/*.featureFeature:Scenario:beat/changes/distill-<scope-name>/status.yamlreferences/status-schema.mdname: distill-<scope-name>
created: YYYY-MM-DD
phase: new
source: distill
pipeline:
proposal: { status: pending }
gherkin: { status: pending }
design: { status: pending }
tasks: { status: pending }beat/config.yamlreferences/config-schema.mdlanguagecontextrulesrules.gherkinrules.proposalrules.designreferences/feature-writing.md@distilled@happy-path@error-handling@edge-case@e2e@behavior@behavior## Why## What Changes## Impact## Approach## Key Decisions## Componentsstatus.yamlgit add beat/changes/distill-<scope-name>/ && git commit## Distill Complete: distill-<scope-name>
Created:
- features/*.feature (N scenarios across M files)
- proposal.md (or skipped)
- design.md (or skipped)
Uncertainties: [list any ambiguous behaviors]
Next steps:
- Review the draft feature files for accuracy
- Run `/beat:verify` to independently verify scenarios match code behavior
- Then `/beat:plan` → `/beat:apply` for future changes using the normal BDD flowNormal: Spec -> Code (write spec first, then implement)
Distill: Code -> Spec (extract spec from existing code)
|
/beat:verify confirms accuracy (source: distill → accuracy mode)
|
Future changes use normal BDD flowdigraph distill {
"Ask for scope" [shape=box];
"Invoke using-git-worktrees" [shape=box, style=bold];
"Read and understand code" [shape=box];
"Scan existing features" [shape=box];
"Scope already covered?" [shape=diamond];
"STOP: inform user" [shape=box, style=dashed];
"Create change container" [shape=box];
"Generate draft artifacts" [shape=box];
"Commit artifacts" [shape=box];
"Present to user" [shape=doublecircle];
"Ask for scope" -> "Invoke using-git-worktrees";
"Invoke using-git-worktrees" -> "Read and understand code";
"Read and understand code" -> "Scan existing features";
"Scan existing features" -> "Scope already covered?";
"Scope already covered?" -> "STOP: inform user" [label="yes"];
"Scope already covered?" -> "Create change container" [label="no"];
"Create change container" -> "Generate draft artifacts";
"Generate draft artifacts" -> "Commit artifacts";
"Commit artifacts" -> "Present to user";
}"你想要将哪些代码提炼为BDD规格?请指定模块、目录或描述相关功能。"
using-git-worktreesbeat/features/**/*.featurebeat/changes/*/features/*.featureFeature:Scenario:beat/changes/distill-<scope-name>/status.yamlreferences/status-schema.mdname: distill-<scope-name>
created: YYYY-MM-DD
phase: new
source: distill
pipeline:
proposal: { status: pending }
gherkin: { status: pending }
design: { status: pending }
tasks: { status: pending }beat/config.yamlreferences/config-schema.mdlanguagecontextrulesrules.gherkinrules.proposalrules.designreferences/feature-writing.md@distilled@happy-path@error-handling@edge-case@e2e@behavior@behavior## 原因## 变更内容## 影响## 实现思路## 关键决策## 组件status.yamlgit add beat/changes/distill-<scope-name>/ && git commit## 提炼完成:distill-<scope-name>
创建的内容:
- features/*.feature(M个文件共N个场景)
- proposal.md(或已跳过)
- design.md(或已跳过)
不确定项:[列出所有模糊行为]
下一步:
- 审核草稿feature文件的准确性
- 运行`/beat:verify`独立验证场景是否匹配代码行为
- 随后使用常规BDD流程执行`/beat:plan` → `/beat:apply`以进行后续变更常规流程: 规格 → 代码 (先写规格,再实现)
Distill流程: 代码 → 规格 (从现有代码提取规格)
|
/beat:verify 确认准确性(来源:distill → 准确性模式)
|
后续变更使用常规BDD流程