Loading...
Loading...
Compare original and translation side by side
bf-lead-orchestratebf-lead-orchestratedocs/stories/{TICKET}-story-*.mddocs/sprint-status.yamldocs/conventions.mddocs/reviews/{EPIC-ID}-modification.mddocs/stories/{TICKET}-story-*.mddocs/sprint-status.yamldocs/conventions.mddocs/reviews/{EPIC-ID}-modification.mdstatus: in_progressralph_stuck: true"done (stuck: {STORY-ID})"skipped"error: sprint-status update failed"status: in_progressralph_stuck: true"done (stuck: {STORY-ID})"skipped"error: sprint-status update failed"command -v yq >/dev/null 2>&1 || { echo "❌ yq not installed. Install: brew install yq"; exit 1; }docs/conventions.mdmodification.mddocs/sprint-status.yamlstatus: donestatus: todoin_progresscommand -v yq >/dev/null 2>&1 || { echo "❌ yq not installed. Install: brew install yq"; exit 1; }docs/conventions.mdmodification.mddocs/sprint-status.yamlstatus: donestatus: todoin_progress| Story 파일 경로 패턴 | 포함 섹션 |
|---|---|
| UI 패턴 |
| API 패턴 |
| DB 패턴 |
| 보안 패턴 |
| 인프라 패턴 |
####[Project Conventions]
아래는 이 Story에 관련된 프로젝트 컨벤션이다. 전체 컨벤션은 Epic 리뷰 시 Convention Guard가 검사한다.
{추출된 섹션 내용}
[Library Reference]
아래는 이 Story 구현에 참고할 라이브러리 API 레퍼런스이다. 프로젝트 컨벤션과 충돌 시 컨벤션을 우선한다.| Story文件路径模式 | 包含章节 |
|---|---|
| UI模式 |
| API模式 |
| DB模式 |
| 安全模式 |
| 基础设施模式 |
####[项目规约]
以下是与该Story相关的项目规约。完整规约将由Epic评审时的Convention Guard进行检查。
{提取的章节内容}
[库参考]
以下是该Story实现可参考的库API文档。若与项目规约冲突,以规约为准。undefinedundefinedresolve-library-idquery-docsresolve-library-idquery-docsresolve-library-idquery-docsresolve-library-idquery-docsbf-lead-orchestratebf-lead-orchestrate.ralph-progress/{STORY-ID}.json"done""stuck".ralph-progress/{STORY-ID}.json"done""stuck""done""stuck""done""stuck""done""stuck""done""stuck"package-lock.jsonyarn.lockpnpm-lock.yamlGemfile.lockpoetry.lockgo.sumtsconfig.jsonwebpack.config.*vite.config.*.env.*schema.prisma@prisma/clientpackage-lock.jsonyarn.lockpnpm-lock.yamlGemfile.lockpoetry.lockgo.sumtsconfig.jsonwebpack.config.*vite.config.*.env.*schema.prisma@prisma/clientyq -iyq -i '
.<TICKET>.<EPIC>.<STORY>.status = "done" |
.<TICKET>.<EPIC>.<STORY>.tdd = "done" |
.<TICKET>.<EPIC>.<STORY>.model_used = "sonnet" |
.<TICKET>.<EPIC>.<STORY>.ralph_retries = 1 |
.<TICKET>.<EPIC>.<STORY>.ralph_approaches = 0 |
.<TICKET>.<EPIC>.<STORY>.ralph_stuck = false
' docs/sprint-status.yamlmodel_used"sonnet""opus-lead""opus-lead+3"ralph_retriesralph_approachesyq -i '
.<TICKET>.<EPIC>.<STORY>.ralph_stuck = true |
.<TICKET>.<EPIC>.<STORY>.ralph_retries = 3 |
.<TICKET>.<EPIC>.<STORY>.ralph_approaches = 2
' docs/sprint-status.yamldocs/reviews/{STORY-ID}-stuck.mdstatusskippedyq -iyq -i '
.<TICKET>.<EPIC>.<STORY>.status = "done" |
.<TICKET>.<EPIC>.<STORY>.tdd = "done" |
.<TICKET>.<EPIC>.<STORY>.model_used = "sonnet" |
.<TICKET>.<EPIC>.<STORY>.ralph_retries = 1 |
.<TICKET>.<EPIC>.<STORY>.ralph_approaches = 0 |
.<TICKET>.<EPIC>.<STORY>.ralph_stuck = false
' docs/sprint-status.yamlmodel_used"sonnet""opus-lead""opus-lead+3"ralph_retriesralph_approachesyq -i '
.<TICKET>.<EPIC>.<STORY>.ralph_stuck = true |
.<TICKET>.<EPIC>.<STORY>.ralph_retries = 3 |
.<TICKET>.<EPIC>.<STORY>.ralph_approaches = 2
' docs/sprint-status.yamldocs/reviews/{STORY-ID}-stuck.mdstatusskipped"done""done (stuck: {STORY-ID}, {STORY-ID})""done""done (stuck: {STORY-ID}, {STORY-ID})"[{TICKET}] {간단한 설명}docs/"done"retry_countapproaches_count[{TICKET}] {简短描述}docs/"done"retry_countapproaches_countretry_countapproaches_count.ralph-progress/{STORY-ID}.json{
"retry_count": 2,
"approaches_count": 1,
"last_error_type": "TypeError",
"last_error_file": "src/auth/login.ts"
}retry_count >= 5undefinedretry_countapproaches_count.ralph-progress/{STORY-ID}.json{
"retry_count": 2,
"approaches_count": 1,
"last_error_type": "TypeError",
"last_error_file": "src/auth/login.ts"
}retry_count >=5undefined
- `.ralph-progress/{STORY-ID}.json` 삭제
- Lead에 보고: `"stuck"` + stuck.md 경로
- `retry_count`, `approaches_count`를 함께 보고한다.
- 删除`.ralph-progress/{STORY-ID}.json`
- 向Lead报告:`"stuck"` + stuck.md路径
- 同时报告`retry_count`和`approaches_count`。SendMessageSendMessage"done""done (stuck)""done""done (stuck)"