Skip to content

feat(bmad-help): llms.txt support for general questions#2230

Merged
bmadcode merged 2 commits intomainfrom
bmad-help-evolved
Apr 8, 2026
Merged

feat(bmad-help): llms.txt support for general questions#2230
bmadcode merged 2 commits intomainfrom
bmad-help-evolved

Conversation

@bmadcode
Copy link
Copy Markdown
Collaborator

@bmadcode bmadcode commented Apr 8, 2026

Summary

  • Adds _meta rows to core and BMM module-help.csv files registering https://docs.bmad-method.org/llms.txt
  • Updates bmad-help SKILL.md with instructions to fetch llms.txt when user asks general module questions that don't map to a specific skill
  • Updates installer to pass _meta rows through cleanly during CSV merge

Test plan

  • All 196 installer tests pass
  • Linting and formatting pass
  • llms.txt URL returns HTTP 200
  • Run bmad-help with a general question to verify llms.txt fetch behavior

…tions

Register llms.txt URLs in module-help.csv via _meta rows so bmad-help
can fetch module documentation when users ask questions that don't map
to a specific skill.
@augmentcode
Copy link
Copy Markdown

augmentcode bot commented Apr 8, 2026

🤖 Augment PR Summary

Summary: Adds llms.txt-based fallback answering for general questions in bmad-help by registering docs URLs via _meta rows.
Changes: Updates installer CSV merge to preserve _meta rows so the merged help catalog can carry per-module documentation links.

🤖 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. 3 suggestions posted.

Fix All in Augment

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


## General Questions via llms.txt

When a user's question does not match any specific skill in the catalog, check for `_meta` rows. These rows have `_meta` in the `skill` column (or `phase` column in the merged CSV) and carry a module's documentation URL in `output-location`.
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 note that _meta appears in the skill column “(or phase column in the merged CSV)” seems to conflict with the earlier “CSV Interpretation” section that defines the catalog schema; this ambiguity could cause the _meta detection to key off the wrong column name/order.

Severity: medium

Fix This in Augment

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


**Behavior**:
1. Identify which module(s) the question relates to. If ambiguous, prefer the active module or ask.
2. Fetch the llms.txt URL for that module using WebFetch or equivalent.
Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Because this instructs the assistant to fetch and use external content, consider explicitly treating fetched llms.txt content as untrusted reference material (i.e., do not follow any embedded instructions) to reduce prompt-injection risk.

Severity: medium

Fix This in Augment

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

] = columns;

// Pass through _meta rows as-is (module metadata, not a skill)
if (phase === '_meta') {
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 _meta pass-through only executes inside the columns.length >= 12 guard; if a module provides a minimal _meta row (e.g., just module + _meta + output-location), it will be silently skipped and the llms.txt fallback won’t work for that module.

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 Apr 8, 2026

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Path: .coderabbit.yaml

Review profile: CHILL

Plan: Pro

Run ID: 1e293769-89d2-46a0-85a9-2ca1ea5373b4

📥 Commits

Reviewing files that changed from the base of the PR and between b744408 and e226ee2.

⛔ Files ignored due to path filters (2)
  • src/bmm-skills/module-help.csv is excluded by !**/*.csv
  • src/core-skills/module-help.csv is excluded by !**/*.csv
📒 Files selected for processing (2)
  • src/core-skills/bmad-help/SKILL.md
  • tools/installer/core/installer.js

📝 Walkthrough

Walkthrough

This pull request introduces support for general questions via module documentation. It adds a _meta row detection mechanism to the CSV merge logic in the installer and specifies new fallback behavior in the help skill to retrieve and ground answers using module llms.txt content when user questions don't match catalog skills.

Changes

Cohort / File(s) Summary
Meta Row Support for Module Help
src/core-skills/bmad-help/SKILL.md
Adds "General Questions via llms.txt" section describing detection of _meta rows in the catalog, extraction of module documentation URLs from output-location, WebFetch retrieval of module llms.txt content to ground answers, and fallback to existing knowledge when no _meta row exists.
CSV Merge Meta Row Handling
tools/installer/core/installer.js
Modifies mergeModuleHelpCatalogs() to detect rows where phase === '_meta', compute finalModule based on module and source conditions, construct meta rows with forced required='false' and CSV-escaped fields, and skip standard row transformation and agent-info lookup for these rows.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

🚥 Pre-merge checks | ✅ 3
✅ Passed checks (3 passed)
Check name Status Explanation
Title check ✅ Passed The title accurately describes the main change: adding llms.txt support for handling general questions in bmad-help.
Description check ✅ Passed The description clearly relates to the changeset by outlining the key changes: adding _meta rows, updating SKILL.md instructions, and updating the installer logic.
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 docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch bmad-help-evolved

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.

@bmadcode bmadcode merged commit 59b07c3 into main Apr 8, 2026
5 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