bf-execute
Compare original and translation side by side
🇺🇸
Original
English🇨🇳
Translation
ChineseBF Execute (Entry Point)
BF Execute(入口点)
Overview
概述
BF 워크플로우의 실행 진입점이자 사람-시스템 경계 허브이다. 를 모드별로 스폰하여 에픽 단위 루프를 돌며, 각 에픽 완료 후 사람에게 결과를 제시한다. 시스템 내부 에이전트는 사람과 직접 소통하지 않으며, bf-execute가 유일한 소통 경계이다.
bf-lead-orchestrate它是BF工作流的执行入口点,同时也是人机边界枢纽。按不同模式启动,以Epic为单位循环执行,每个Epic完成后向用户展示结果。系统内部Agent不会直接与人沟通,bf-execute是唯一的沟通边界。
bf-lead-orchestrateWhen to Use
使用场景
- 사용자가 를 입력했을 때
/bf-execute - 으로 Tech Spec이 승인된 후 다음 단계로 진행할 때
/bf-spec
- 用户输入时
/bf-execute - 通过完成Tech Spec审批后,进入下一阶段时
/bf-spec
Prerequisites
前置条件
- 승인된 Tech Spec:
docs/tech-specs/{TICKET}-tech-spec.md - Tech Spec 리뷰 통과 (사람 개입 ① 완료)
- 已审批的Tech Spec:
docs/tech-specs/{TICKET}-tech-spec.md - Tech Spec审核通过(人工介入①完成)
Error Handling
错误处理
- Tech Spec 미존재: "Tech Spec 파일이 없습니다. 으로 먼저 Tech Spec을 작성하고 리뷰를 받으세요." 안내
/bf-spec - Tech Spec 리뷰 미존재 (없음): "Tech Spec 리뷰가 수행되지 않았습니다.
docs/reviews/{TICKET}-tech-spec-review.md에서 리뷰를 포함한 전체 흐름을 실행하세요." 안내/bf-spec - orchestrate 스폰 실패: "에이전트 생성에 실패했습니다. 잠시 후 다시 시도하거나, Claude Code를 재시작하세요." 안내
- Tech Spec不存在:提示“Tech Spec文件不存在,请先通过编写Tech Spec并获取审核。”
/bf-spec - Tech Spec审核未完成(不存在):提示“Tech Spec审核未执行,请在
docs/reviews/{TICKET}-tech-spec-review.md中完成包含审核的全流程。”/bf-spec - orchestrate启动失败:提示“Agent创建失败,请稍后重试或重启Claude Code。”
Instructions
操作步骤
1. 사전 확인
1. 事前检查
- 존재 확인
docs/tech-specs/{TICKET}-tech-spec.md - 사용자에게 Jira 티켓 번호를 확인한다 (미제공 시 요청).
- 确认存在
docs/tech-specs/{TICKET}-tech-spec.md - 向用户确认Jira工单编号(未提供则请求用户提供)。
2. Plan 단계 — orchestrate (plan 모드) 스폰
2. 计划阶段 — 启动orchestrate(plan模式)
- Task tool 사용, (plan 모드는 단순 라우터 역할이므로 Sonnet으로 충분)
model: sonnet - 전달: , tech-spec 경로, conventions.md 경로 (있으면)
mode: "plan" - 수신 대기: + sprint-status.yaml 경로 + stories/ 경로
"done" - 수신 후: sprint-status.yaml을 읽어 에픽/스토리 구조를 사람에게 제시한다.
- 使用Task工具,(plan模式仅承担简单路由功能,Sonnet足够)
model: sonnet - 传递参数:、tech-spec路径、conventions.md路径(若存在)
mode: "plan" - 等待接收:+ sprint-status.yaml路径 + stories/路径
"done" - 接收后:读取sprint-status.yaml,向用户展示Epic/Story结构。
3. 에픽 루프
3. Epic循环
sprint-status.yaml의 에픽을 순서대로 순회한다. 각 에픽에 대해:
按顺序遍历sprint-status.yaml中的Epic。针对每个Epic:
3a. orchestrate (epic 모드) 스폰
3a. 启动orchestrate(epic模式)
- Task tool 사용,
model: opus - 전달: ,
mode: "epic", tech-spec 경로, conventions.md 경로epic_id- 수정 재실행인 경우: 추가 전달
modification_path
- 수정 재실행인 경우:
- 수신 대기: + sprint-status.yaml 경로 + review.md 경로
"done"
- 使用Task工具,
model: opus - 传递参数:、
mode: "epic"、tech-spec路径、conventions.md路径epic_id- 若为修改后重新执行:额外传递
modification_path
- 若为修改后重新执行:额外传递
- 等待接收:+ sprint-status.yaml路径 + review.md路径
"done"
3b. 에픽 결과 제시
3b. 展示Epic结果
<HARD-GATE>
에픽 결과를 사람에게 반드시 제시하고 판단을 받아야 한다. 결과가 깨끗해 보여도(Blocker 0, E2E passed) 자동으로 다음 에픽으로 진행하지 않는다. 이것이 사람 판단 ②이며, BF 워크플로우에서 사람이 개입하는 정확히 2개 지점 중 하나이다.
</HARD-GATE>
orchestrate 완료 후 sprint-status.yaml과 review.md를 읽어 사람에게 제시한다:
undefined<HARD-GATE>
必须向用户展示Epic结果并获取判断。即使结果看起来完美(Blocker为0、E2E通过),也不能自动进入下一个Epic。这是人工判断②,也是BF工作流中人工介入的两个明确节点之一。
</HARD-GATE>
orchestrate完成后,读取sprint-status.yaml和review.md并向用户展示:
undefinedEpic {EPIC-ID} 완료
Epic {EPIC-ID} 完成
Story 결과
Story结果
| 스토리 | 상태 | 난이도 | 재시도 횟수 | Stuck |
|---|---|---|---|---|
| story-1 | done | S | 0 | - |
| story-2 | done | M | 2 | - |
| story-3 | skipped (stuck) | L | 5 | stuck.md 참조 |
| 故事 | 状态 | 难度 | 重试次数 | 停滞 |
|---|---|---|---|---|
| story-1 | done | S | 0 | - |
| story-2 | done | M | 2 | - |
| story-3 | skipped (stuck) | L | 5 | 参考stuck.md |
E2E: {passed | skipped | escalated | max-regression-cycles}
E2E:{passed | skipped | escalated | max-regression-cycles}
Integration Review: Blockers {N}건, Recommended {N}건
集成审核:Blocker {N}个,建议项 {N}个
상세: docs/reviews/{EPIC-ID}-review.md
详情:docs/reviews/{EPIC-ID}-review.md
⚠️ (모든 Story가 skipped인 경우에만 표시) 이 에픽의 모든 Story가 skipped(stuck) 상태입니다. 진행 시 해당 기능이 구현되지 않은 상태로 넘어갑니다.
진행하시겠습니까?
- 다음 에픽으로 진행
- 수정 후 재실행 (수정 내용 입력)
- 워크플로우 중단
undefined⚠️(仅当所有Story都为skipped时显示) 此Epic的所有Story均处于skipped(停滞)状态。继续进行的话,对应功能将处于未实现状态。
是否继续?
- 进入下一个Epic
- 修改后重新执行(输入修改内容)
- 终止工作流
undefined3c. 사람 판단 처리
3c. 处理人工判断
사람의 선택에 따라:
1. 다음 에픽으로 진행:
- 해당 에픽의 사람 수용 상태를 sprint-status.yaml에 반영한다 (사용):
yq -i- 인 Story의
status: skipped를review로 설정 (사람이 skip을 수용)"approved" - 인
review: pendingStory의status: done를review로 설정 (사람이 Blocker를 수용)"approved"
bash# skipped Story review 정리 yq -i '.<TICKET>.<EPIC>.<SKIPPED-STORY>.review = "approved"' docs/sprint-status.yaml # Blocker 수용 — done Story의 pending review를 approved로 전환 yq -i '.<TICKET>.<EPIC>.<DONE-STORY>.review = "approved"' docs/sprint-status.yaml - 다음 에픽의 3a로 이동한다.
2. 수정 후 재실행:
-
사람이 수정 내용을 텍스트로 입력한다.
-
bf-execute가 수정 내용을 분석하여 대상 Story를 추론하고, 사람에게 확인한다:
- "수정 대상 Story: story-1, story-3으로 판단됩니다. 맞습니까?"
- 사람이 수정하면 그에 따른다.
-
에 기록한다:
docs/reviews/{EPIC-ID}-modification.mdmarkdown# {EPIC-ID} Modification ## 수정 지시 {사람이 입력한 수정 내용 원문} ## 대상 Story - {확인된 수정 대상 Story ID 목록} -
git commit하지 않는다 — docs/ 산출물은 Phase 4 Archive에서 일괄 커밋한다.
-
같은 에픽에 대해 orchestrate를 epic 모드로 다시 스폰한다 (전달).
modification_path -
3b로 돌아가 결과를 다시 제시한다.
3. 워크플로우 중단:
- 현재 상태를 안내하고 종료한다.
- 으로 재개 가능함을 안내한다.
/bf-resume
根据用户的选择执行:
1. 进入下一个Epic:
- 使用将该Epic的人工确认状态写入sprint-status.yaml:
yq -i- 将的Story的
status: skipped设置为review(用户确认跳过)"approved" - 将且
review: pending的Story的status: done设置为review(用户确认接受Blocker)"approved"
bash# 整理skipped Story的审核状态 yq -i '.<TICKET>.<EPIC>.<SKIPPED-STORY>.review = "approved"' docs/sprint-status.yaml # 接受Blocker — 将done Story的pending审核状态改为approved yq -i '.<TICKET>.<EPIC>.<DONE-STORY>.review = "approved"' docs/sprint-status.yaml - 将
- 进入下一个Epic的3a步骤。
2. 修改后重新执行:
-
用户输入修改内容文本。
-
bf-execute分析修改内容,推断目标Story,并向用户确认:
- “推断修改目标为story-1、story-3。是否正确?”
- 用户修改的话,按用户的内容调整。
-
将内容记录到:
docs/reviews/{EPIC-ID}-modification.mdmarkdown# {EPIC-ID} 修改记录 ## 修改指示 {用户输入的修改内容原文} ## 目标Story - {确认后的修改目标Story ID列表} -
不执行git commit — docs/下的产出物将在Phase 4 Archive阶段统一提交。
-
针对同一Epic,再次以epic模式启动orchestrate(传递)。
modification_path -
返回3b步骤,重新展示结果。
3. 终止工作流:
- 告知用户当前状态并终止。
- 告知用户可通过恢复工作流。
/bf-resume
4. 전체 완료
4. 全部完成
모든 에픽 완료 후:
워크플로우가 완료되었습니다.
다음 단계:
1. /bf-archive-sprint — 스프린트 아카이빙
2. /bf-metrics — 메트릭 분석 (선택)
3. /bf-update-conventions — 컨벤션 업데이트所有Epic完成后:
工作流已完成。
下一阶段:
1. /bf-archive-sprint — 归档Sprint
2. /bf-metrics — 指标分析(可选)
3. /bf-update-conventions — 更新规范Output Format
输出格式
- 사용자에게 에픽별 결과 제시 + 판단 요청
- 완료 시 다음 단계 안내
- 모든 산출물은 orchestrate 이하 Lead들이 생성 (메인 세션은 modification.md만 직접 생성)
- 向用户展示每个Epic的结果 + 请求判断
- 完成时告知下一阶段步骤
- 所有产出物由orchestrate下属的Lead生成(主会话仅直接生成modification.md)