Hacktoberfest 2026: le issue che i maintainer hanno segnato per ottobre, aperte e adatte ai principianti. Sfoglia le issue Hacktoberfest

Sprint-status keys of a letter-suffixed epic (epic-4a, 4a-1-...) are silently ignored

Aperta
#1,004 0 commenti 0 reazioni 0 assegnatari Vedi su GitHub

I maintainer di solito rispondono entro 1 giorno

Nessuno ha ancora preso questa issue.

Valutazione

Difficoltà
3/5
Tempo stimato
1-2 giorni
Idoneità per principianti
72/100
Tipo di issue
Bug
Chiarezza
Specificata chiaramente
Stato di attività
Attiva
Stack tecnologico
python
Ambito
backend, cli

Direzione di ricerca

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.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Descrizione

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.

Lingua principale
Python
Stelle
165
Fork
69
Merge medio
1g 5m
PR unite (30g)
86

Preparare l'ambiente

Come iniziare

  1. Leggi tutta la issue e poi la guida ai contributi del progetto.
  2. Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
  3. Fai un fork del repository e lavora su un branch.
  4. Apri una pull request che faccia riferimento al numero della issue.

Altre issue di bmad-code-org/bmad-loop

Tutte le issue di bmad-code-org/bmad-loop

Issue simili

Altre issue su Python

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.