-
Notifications
You must be signed in to change notification settings - Fork 62
fix(loop-setup): catalog bmad-loop-resolve in module-help.csv and guard against future drift #804
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
base: main
Are you sure you want to change the base?
Changes from all commits
File filter
Filter by extension
Conversations
Jump to
Diff view
Diff view
There are no files selected for viewing
| Original file line number | Diff line number | Diff line change |
|---|---|---|
| @@ -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 <story-key>.,resolve,{story-key},on-escalation,,,false,{run-dir}/resolve/<story-key>,resolution.json; updated frozen spec |
| Original file line number | Diff line number | Diff line change |
|---|---|---|
|
|
@@ -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)}" | ||
| ) | ||
|
Comment on lines
+67
to
+72
There was a problem hiding this comment. Choose a reason for hiding this commentThe reason will be displayed to describe this comment to others. Learn more. 🗄️ Data Integrity & Integration | 🟡 Minor | ⚡ Quick win 🔎 Supported by static analysis🏁 Script executed: sed -n '1,110p' tests/test_setup_skill_contract.py
rg -n "module-help|MODULE_SKILLS|skill.*csv|csv.*skill|duplicate" src tests
sed -n '35,65p' src/bmad_loop/data/skills/bmad-loop-setup/SKILL.md
sed -n '2745,2810p' src/bmad_loop/install.pyRepository: bmad-code-org/bmad-loop Length of output: 38335 🏁 Script executed: set -eu
printf '%s\n' '--- candidate files ---'
git ls-files | rg '(^|/)(module-help\.csv|.*help.*csv|.*install.*|.*catalog.*|.*help.*)$' | head -200
printf '%s\n' '--- exact consumer/assembly references ---'
rg -n -S 'mergeModuleHelpCatalogs|bmad-help\.csv|module-help\.csv|module help|help catalog|help entries' --glob '!CHANGELOG.md' --glob '!tests/test_setup_skill_contract.py' .
printf '%s\n' '--- shipped module-help.csv ---'
cat -n src/bmad_loop/data/skills/bmad-loop-setup/assets/module-help.csv
printf '%s\n' '--- relevant setup skill section ---'
sed -n '15,60p' src/bmad_loop/data/skills/bmad-loop-setup/SKILL.mdRepository: bmad-code-org/bmad-loop Length of output: 8243 🌐 Web query:
💡 Result: <search_synthesis> <source_evidence> Citations:
Assert that skill rows are unique. Add a row-count assertion: assert len(data) == len(csv_skills), "module-help.csv must not contain duplicate skill rows"🤖 Prompt for AI Agents |
||
|
|
||
|
|
||
| # The legacy layout (#258) and the pre-rename module code: both are gone, and the | ||
|
|
||
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win
Rewrite the entry in imperative form.
Use wording such as:
List bmad-loop-resolve in the module help catalog.The current wording is passive.As per coding guidelines, CHANGELOG entries must be terse, scannable, and imperative.
🤖 Prompt for AI Agents
Source: Coding guidelines