Skip to content

refactor: modernize module-help CSV format#2120

Merged
bmadcode merged 1 commit intomainfrom
feature/help-csv-format
Mar 25, 2026
Merged

refactor: modernize module-help CSV format#2120
bmadcode merged 1 commit intomainfrom
feature/help-csv-format

Conversation

@bmadcode
Copy link
Copy Markdown
Collaborator

Summary

  • Modernize both core-skills/module-help.csv and bmm-skills/module-help.csv to new 13-column format
  • Replace sequence numbers with after/before dependency graph
  • Drop command, workflow-file, agent, options columns; add action, args columns
  • Rewrite bmad-help SKILL.md from procedural 8-step execution to outcome-based design (~50% shorter)
  • Fix eslint config to ignore gitignored lock files (pnpm-lock.yaml, bun.lock)

New CSV format

module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs

Test plan

  • Verify bmad-help correctly interprets new CSV format
  • Verify after/before dependency resolution matches old sequence ordering
  • Test multi-action skills (tech-writer, create-story) route correctly via action column

…utcome-based skill

New CSV format: module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs

- Replace sequence numbers with after/before dependency graph
- Drop command, workflow-file, agent, options columns
- Add action column for multi-action skills (tech-writer, create-story)
- Add args column for CLI shortcut hints
- Make description optional (only when adding flow/routing context beyond frontmatter)
- Expand module names for clarity
- Rewrite bmad-help SKILL.md from procedural 8-step execution to outcome-based design
- Fix eslint config to ignore gitignored lock files (pnpm-lock.yaml, bun.lock)
@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Mar 25, 2026

🤖 Augment PR Summary

Summary: This PR modernizes the module help catalog format and refreshes the bmad-help skill guidance to align with the new catalog model.

Changes:

  • Updated both `core-skills/module-help.csv` and `bmm-skills/module-help.csv` to a new 13-column schema.
  • Replaced legacy sequence numbers with an after/before dependency graph for ordering.
  • Removed legacy columns (command, workflow-file, agent, options) and introduced action + args for routing (including multi-action skills).
  • Rewrote src/core-skills/bmad-help/SKILL.md from a procedural execution checklist into outcome-based guidance and clarified catalog interpretation.
  • Adjusted ESLint configuration to ignore gitignored lockfiles (e.g., pnpm-lock.yaml, bun.lock).

Technical Notes: The new CSV schema is intended to be interpreted via the merged help catalog and dependency resolution, with artifact-based completion detection using resolved output-location + outputs patterns.

🤖 Was this summary useful? React with 👍 or 👎

Copy link
Copy Markdown

@augmentcode augmentcode bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review completed. 2 suggestions posted.

Fix All in Augment

Comment augment review to trigger a new review at any time.


## EXECUTION
```
module,skill,display-name,menu-code,description,action,args,phase,after,before,required,output-location,outputs
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section defines a new 13-column help catalog schema (action/args/after/before)—please double-check that the generator/consumer for {project-root}/_bmad/_config/bmad-help.csv is updated to match, otherwise bmad-help may read the wrong columns/order at runtime.

Severity: high

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

For each recommended item, present:
- `[menu-code]` **Display name** — e.g., "[CP] Create PRD"
- Skill name in backticks — e.g., `bmad-create-prd`
- For multi-action skills: action invocation context — e.g., "tech-writer lets create a mermaid diagram!"
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

The multi-action example (“tech-writer lets create a mermaid diagram!”) doesn’t clearly encode the action (and optional args) in a way the user can reliably repeat, which may prevent users from actually invoking the recommended action.

Severity: medium

Fix This in Augment

🤖 Was this useful? React with 👍 or 👎, or 🚀 if it prevented an incident/outage.

@coderabbitai
Copy link
Copy Markdown

coderabbitai bot commented Mar 25, 2026

📝 Walkthrough

Walkthrough

Updated SKILL.md for bmad-help from a detailed step-by-step procedure to a condensed specification. Added explicit Purpose, Desired Outcomes, and Data Sources sections. Replaced granular workflow with CSV schema interpretation and simplified Response Format with ordering rules.

Changes

Cohort / File(s) Summary
BMAD Help Skill Specification
src/core-skills/bmad-help/SKILL.md
Restructured documentation from detailed procedure to condensed spec. Added Purpose, Desired Outcomes, and formalized Data Sources (catalog CSV, module YAMLs, artifacts). Replaced workflow sections with CSV schema interpretation, simplified Response Format with ordering rules, and revised Constraints.

Estimated code review effort

🎯 2 (Simple) | ⏱️ ~12 minutes

Possibly related PRs

Suggested reviewers

  • alexeyv
🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title 'refactor: modernize module-help CSV format' directly matches the main objective of updating CSV files to a new 13-column format.
Description check ✅ Passed The description provides relevant context about CSV modernization, dependency graph changes, and includes a test plan aligned with the changeset.
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch feature/help-csv-format

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

Copy link
Copy Markdown

@coderabbitai coderabbitai bot left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against the current code and only fix it if needed.

Inline comments:
In `@src/core-skills/bmad-help/SKILL.md`:
- Around line 41-48: Update the CSV Interpretation section of SKILL.md to add a
"Dependency resolution" subsection that defines handling for complex cases:
detect and break circular dependencies (e.g., A after=B and B after=A) by
prioritizing original catalog order; when multiple `required=true` items at the
same level have no `after`/`before` relationships, present them in catalog order
and state that any can be done first; treat dependencies that reference
non-existent skills as satisfied (optionally log or flag a warning); and accept
explicit user-reported completions even if artifacts aren't detected. Reference
the CSV fields `after`, `before`, `required=true`, and the `skill-name` /
`skill-name:action` format so implementers know which tokens to resolve.
- Line 63: Remove the fallback text "Description if present in CSV; otherwise
your existing knowledge of the skill suffices" from SKILL.md and replace it with
a strict instruction that a skill description must be present in the CSV and
must be used as the sole source for project-specific details (do not fabricate
or fill gaps from the model's prior knowledge); update any guidance text around
the skill description field to explicitly require CSV-provided descriptions and
to instruct the system to return an error or leave fields blank if the CSV lacks
a description (reference the exact phrase in SKILL.md to locate and update the
line).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 80d07456-fe1b-4de3-b2f4-25687241f49d

📥 Commits

Reviewing files that changed from the base of the PR and between 090bfea and 352d4f6.

⛔ Files ignored due to path filters (3)
  • eslint.config.mjs is excluded by !eslint.config.mjs
  • src/bmm-skills/module-help.csv is excluded by !**/*.csv
  • src/core-skills/module-help.csv is excluded by !**/*.csv
📒 Files selected for processing (1)
  • src/core-skills/bmad-help/SKILL.md

Comment on lines +41 to +48
**Dependencies** determine ordering within and across phases:
- `after` — skills that should ideally complete before this one
- `before` — skills that should run after this one
- Format: `skill-name` for single-action skills, `skill-name:action` for multi-action skills

3. **Ground in project knowledge** — If `project_knowledge` resolves to an existing path, read available documentation files (architecture docs, project overview, tech stack references) for grounding context. Use discovered project facts when composing any project-specific output. Never fabricate project-specific details — if documentation is unavailable, state so.
**Required gates**:
- `required=true` items must complete before the user can meaningfully proceed to later phases
- A phase with no required items is entirely optional — recommend it but be clear about what's actually required next
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🟠 Major

Missing guidance on complex dependency scenarios.

The CSV Interpretation section doesn't address:

  1. Circular dependencies: What if skill A has after=B and skill B has after=A?
  2. Multiple required items: Line 66 says "then the next required item" but what if multiple required items exist at the same level with no dependency relationship?
  3. Broken chains: What if a required skill has after=X but skill X doesn't exist in the catalog?

These scenarios could cause the skill to provide contradictory or incorrect recommendations.

📋 Suggested additions to CSV Interpretation

Add a Dependency Resolution subsection:

**Dependency resolution**:
- If circular dependencies are detected, break the cycle by prioritizing items earlier in the original catalog order
- When multiple required items have no mutual dependencies, present them in catalog order but make it clear any can be tackled first
- If a dependency references a non-existent skill, treat it as satisfied (log warning if possible)
- If user explicitly states completion of a step not detected via artifacts, trust the user's statement
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/core-skills/bmad-help/SKILL.md` around lines 41 - 48, Update the CSV
Interpretation section of SKILL.md to add a "Dependency resolution" subsection
that defines handling for complex cases: detect and break circular dependencies
(e.g., A after=B and B after=A) by prioritizing original catalog order; when
multiple `required=true` items at the same level have no `after`/`before`
relationships, present them in catalog order and state that any can be done
first; treat dependencies that reference non-existent skills as satisfied
(optionally log or flag a warning); and accept explicit user-reported
completions even if artifacts aren't detected. Reference the CSV fields `after`,
`before`, `required=true`, and the `skill-name` / `skill-name:action` format so
implementers know which tokens to resolve.

- `[menu-code]` **Display name** — e.g., "[CP] Create PRD"
- Skill name in backticks — e.g., `bmad-create-prd`
- For multi-action skills: action invocation context — e.g., "tech-writer lets create a mermaid diagram!"
- Description if present in CSV; otherwise your existing knowledge of the skill suffices
Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

⚠️ Potential issue | 🔴 Critical

Remove fallback to "existing knowledge".

Line 63 states "Description if present in CSV; otherwise your existing knowledge of the skill suffices" — this could cause hallucinations. If a skill lacks a description in the CSV and the LLM doesn't have accurate knowledge, it may fabricate details.

🛡️ Proposed fix
-- Description if present in CSV; otherwise your existing knowledge of the skill suffices
+- Description if present in CSV; if absent, show only the display name and skill ID without elaborating on behavior

This aligns with the "Never fabricate project-specific details" constraint from line 27.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
- Description if present in CSV; otherwise your existing knowledge of the skill suffices
- Description if present in CSV; if absent, show only the display name and skill ID without elaborating on behavior
🤖 Prompt for AI Agents
Verify each finding against the current code and only fix it if needed.

In `@src/core-skills/bmad-help/SKILL.md` at line 63, Remove the fallback text
"Description if present in CSV; otherwise your existing knowledge of the skill
suffices" from SKILL.md and replace it with a strict instruction that a skill
description must be present in the CSV and must be used as the sole source for
project-specific details (do not fabricate or fill gaps from the model's prior
knowledge); update any guidance text around the skill description field to
explicitly require CSV-provided descriptions and to instruct the system to
return an error or leave fields blank if the CSV lacks a description (reference
the exact phrase in SKILL.md to locate and update the line).

@bmadcode bmadcode merged commit cfe40fc into main Mar 25, 2026
7 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant