Sprint-status keys of a letter-suffixed epic (epic-4a, 4a-1-...) are silently ignored
メンテナーはふだん 1 日以内に返信
まだ誰も着手していません。
評価
- 難易度
- 3/5
- 見積もり時間
- 1〜2日
- 初心者へのやさしさ
- 72/100
調査の方向性
Start in bmad_loop/sprintstatus.py at the epic and story regular expressions and the load() parsing logic. Follow how epic IDs are stored and used for sorting and selection, then check the --epic and --story handling. Add coverage for the supplied lettered epic and retrospective examples; done means they load as recognized keys, sort between epics 4 and 5, and can be selected.
索引モデルが issue の本文から書いたものです。
説明
Version: 0.13.2 (same in 0.11.1), Linux (Ubuntu 24.04 on WSL2)
What happens
Some BMAD projects split an epic and number the parts with a letter: epic-4a, 4a-1-…, 4a-2-…, epic-4a-retrospective. bmad-loop does not parse these keys. load() puts them in unknown_keys, validate lists them under "unknown keys ignored", and run never selects those stories. In our project that is 76 story keys across two lettered epics (4a, 4b), so that part of the backlog can never go through the loop.
#144 / #147 fixed the letter suffix on the story segment (2-6a). The epic segment is still digits only, and epic is an int (epic=int(m.group(1))):
EPIC_RE = re.compile(r"^epic-(\d+)$")
RETRO_RE = re.compile(r"^epic-(\d+)-retrospective$")
STORY_RE = re.compile(r"^(\d+)-(\d+)([a-z]?)-(.+)$")
Repro (0.13.2)
from pathlib import Path
from bmad_loop import sprintstatus
p = Path("sprint-status.yaml")
p.write_text("""development_status:
epic-4: in-progress
4-1-numeric-epic-story: ready-for-dev
epic-4a: in-progress
4a-1-lettered-epic-story: ready-for-dev
4a-2-another-lettered-story: backlog
epic-4a-retrospective: optional
""")
ss = sprintstatus.load(p)
print([s.key for s in ss.stories])
# ['4-1-numeric-epic-story']
print(ss.unknown_keys)
# ('epic-4a', '4a-1-lettered-epic-story', '4a-2-another-lettered-story', 'epic-4a-retrospective')
Expected
epic-4a, its stories and its retrospective are recognized like epic-4, ordered between epic 4 and epic 5, and selectable with --epic 4a and --story 4a-1-….
Note
#83 tried a broader change (string epic ids, sprint-NN containers, a backlog bucket) and was closed without merge. A narrower fix, an optional lowercase letter on the epic segment as #147 did for the story segment, would cover this case. We can test a fix against our project's sprint-status.
- 主要言語
- Python
- スター
- 165
- フォーク
- 69
- 平均マージ
- 1日 1時間
- マージ済み PR(30日)
- 79
環境構築
- Dockerfile・Docker Compose ファイルなし
- プルリクエストのテンプレートあり
- コントリビューションガイドを読む
はじめの一歩
- issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
- 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
- リポジトリをフォークし、ブランチを切って変更します。
- issue 番号を参照したプルリクエストを送ります。
bmad-code-org/bmad-loop のほかの issue
-
難易度 2/5 1〜3時間 初心者へのやさしさ 69/100
bmad-code-org/bmad-loop#973 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 78/100
bmad-code-org/bmad-loop#965 ·
メンテナーはふだん 1 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 75/100
bmad-code-org/bmad-loop#835 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 49/100
bmad-code-org/bmad-loop#1002 ·
メンテナーはふだん 1 日以内に返信
-
難易度 4/5 3〜5日 初心者へのやさしさ 36/100
bmad-code-org/bmad-loop#972 ·
メンテナーはふだん 1 日以内に返信
bmad-code-org/bmad-loop の issue をすべて見る
似ている issue
-
難易度 1/5 1時間未満 初心者へのやさしさ 72/100
521xueweihan/HelloGitHub#4150 ·
-
難易度 2/5 1〜3時間 初心者へのやさしさ 74/100
aws-samples/sample-per-model-bedrock#595 ·
メンテナーはふだん 1 日以内に返信
-
難易度 1/5 1時間未満 初心者へのやさしさ 85/100
メンテナーはふだん 1 日以内に返信
-
bug connectors
難易度 1/5 1時間未満 初心者へのやさしさ 67/100
pyinfra-dev/pyinfra#2036 ·
メンテナーはふだん 9 日以内に返信
-
難易度 2/5 1〜3時間 初心者へのやさしさ 72/100
メンテナーはふだん 1 日以内に返信