From 16cd0356defd7f603d6e100b327d568cf86a8c68 Mon Sep 17 00:00:00 2001 From: Guillermo Montero Date: Thu, 17 Sep 2026 15:40:13 +0200 Subject: [PATCH] fix(loop-setup): catalog bmad-loop-resolve in module-help.csv and guard against future drift --- CHANGELOG.md | 2 ++ .../data/skills/bmad-loop-setup/assets/module-help.csv | 1 + tests/test_setup_skill_contract.py | 6 ++++++ 3 files changed, 9 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 5259aee07..09ff441d0 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -353,6 +353,8 @@ breaking changes may land in a minor release. ### Fixed +- bmad-loop-resolve is now listed in the module help catalog. + - Adopt the current bundle's deferred-work ids before writing a reset sweep task's intent (DW-144). Keep dispatch and ledger-close ids aligned, and journal both old and new ids as `sweep-bundle-dwids-adopted` when they differ. diff --git a/src/bmad_loop/data/skills/bmad-loop-setup/assets/module-help.csv b/src/bmad_loop/data/skills/bmad-loop-setup/assets/module-help.csv index 47d149796..f3ef83c1e 100644 --- a/src/bmad_loop/data/skills/bmad-loop-setup/assets/module-help.csv +++ b/src/bmad_loop/data/skills/bmad-loop-setup/assets/module-help.csv @@ -1,3 +1,4 @@ module,skill,display-name,menu-code,description,action,args,phase,preceded-by,followed-by,required,output-location,outputs BMAD Loop Skills,bmad-loop-setup,Setup Loop Module,SA,Install or update BMAD Loop module config and help entries.,configure,{-H: headless mode},anytime,,,false,{project-root}/_bmad,config.yaml entries BMAD Loop Skills,bmad-loop-sweep,Sweep Triage,ST,Read-only triage of the deferred-work ledger into a machine-readable partition. Automation-only; bmad-loop sweep invokes it.,triage,{--feedback path},anytime,,,false,implementation_artifacts,result.json triage plan +BMAD Loop Skills,bmad-loop-resolve,Escalation Resolution,ER,Interactive session that disambiguates a frozen spec after a run pauses on a CRITICAL escalation; invoked as /bmad-loop-resolve .,resolve,{story-key},on-escalation,,,false,{run-dir}/resolve/,resolution.json; updated frozen spec diff --git a/tests/test_setup_skill_contract.py b/tests/test_setup_skill_contract.py index 4e25d0492..fc23b7773 100644 --- a/tests/test_setup_skill_contract.py +++ b/tests/test_setup_skill_contract.py @@ -64,6 +64,12 @@ def test_module_help_csv_shape(skill_root): for row in data: assert len(row) == len(header), f"ragged row: {row}" assert row[0] == "BMAD Loop Skills", f"unexpected module column: {row[0]!r}" + skill_column = header.index("skill") + csv_skills = {row[skill_column] for row in data} + assert csv_skills == set(MODULE_SKILLS), ( + "module-help.csv must list exactly the module skills bmad-loop init " + f"installs: csv={csv_skills} MODULE_SKILLS={set(MODULE_SKILLS)}" + ) # The legacy layout (#258) and the pre-rename module code: both are gone, and the