Skip to content

Align official registry docs and index generation - #20

Open
dickymoore wants to merge 3 commits into
bmad-code-org:mainfrom
dickymoore:split-official-registry-docs-indexer
Open

Align official registry docs and index generation#20
dickymoore wants to merge 3 commits into
bmad-code-org:mainfrom
dickymoore:split-official-registry-docs-indexer

Conversation

@dickymoore

@dickymoore dickymoore commented May 9, 2026

Copy link
Copy Markdown
Contributor

Problem

The marketplace repo is internally inconsistent about how official modules are represented. The source of truth is a flat registry/official.yaml, but parts of the repo still assume official modules live as one file per module under registry/official/.

That creates three concrete problems:

  • README.md and CONTRIBUTING.md document the wrong official registry layout
  • .github/scripts/generate-index.py does not fully model the flat registry/official.yaml source of truth
  • registry/registry-schema.yaml does not document several fields already relevant to official and pure-skill module entries

The result is drift between the registry data model, the generated catalog output, and the contributor-facing docs.

Suggested Solution

This PR proposes aligning the repo around the flat registry/official.yaml model that is already in use.

How

  • update README.md and CONTRIBUTING.md to reference registry/official.yaml
  • update .github/scripts/generate-index.py to load the flat official registry, dedupe entries, and warn on nameless modules
  • regenerate INDEX.md and registry/community-index.yaml
  • extend registry/registry-schema.yaml to document official and pure-skill metadata fields

Scope

This PR does not register any new module. It only updates repo support, docs, schema, and generated catalog output so the existing official registry model is handled consistently.

@coderabbitai

coderabbitai Bot commented May 9, 2026

Copy link
Copy Markdown

Warning

Rate limit exceeded

@dickymoore has exceeded the limit for the number of commits that can be reviewed per hour. Please wait 8 minutes and 15 seconds before requesting another review.

You’ve run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After the wait time has elapsed, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than the trial, open-source and free plans. In all cases, we re-allow further reviews after a brief timeout.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0a64a582-1c4f-4056-aa44-5ab1c7427731

📥 Commits

Reviewing files that changed from the base of the PR and between 83285c3 and 175155e.

📒 Files selected for processing (7)
  • .github/scripts/generate-index.py
  • CONTRIBUTING.md
  • INDEX.md
  • README.md
  • categories.yaml
  • registry/community-index.yaml
  • registry/registry-schema.yaml
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests

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.

@augmentcode

augmentcode Bot commented May 9, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: Aligns the marketplace repo with the flat registry/official.yaml layout and updates generated catalog outputs.
Changes:

  • Update README/CONTRIBUTING to reference registry/official.yaml as the official registry source
  • Extend .github/scripts/generate-index.py to load official.yaml, dedupe modules, and warn on nameless entries
  • Regenerate INDEX.md and registry/community-index.yaml to include official modules
  • Expand registry/registry-schema.yaml documentation for official/pure-skill metadata

🤖 Was this summary useful? React with 👍 or 👎

@augmentcode augmentcode Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

Review completed. 4 suggestions posted.

Fix All in Augment

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


official_file = REGISTRY_DIR / "official.yaml"
if official_file.exists():
data = load_yaml(official_file)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

(.github/scripts/generate-index.py:44) If registry/official.yaml exists but is empty/invalid, load_yaml() can return None and data.get("modules", []) will raise, breaking the index generation workflow.

Severity: medium

Generating Fix in Augment link...

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

print(f"Warning: module in {source} is missing a name; skipping", file=sys.stderr)
return
key = (directory, name)
if key in seen:

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

(.github/scripts/generate-index.py:36) Duplicate modules (same (directory, name)) are currently dropped silently, which can make it hard to notice conflicting registry sources or unintended duplicates.

Severity: low

Generating Fix in Augment link...

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

module["_directory"] = directory
modules.append(module)

official_file = REGISTRY_DIR / "official.yaml"

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

(.github/scripts/generate-index.py:42) With registry/official.yaml now loaded as the official source, load_modules() will still also read registry/official/*.yaml if that directory exists; ensure that’s intended since it can reintroduce the mixed-model state the docs are moving away from.

Severity: low

Generating Fix in Augment link...

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

Comment thread INDEX.md Outdated
| ------ | ---- | ----------- | ----- | ----------- |
| [bmad-creative-intelligence-suite](https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite) | official | Strategy & Planning | BMad Certified | Creative tools for writing, brainstorming, and more |

## core

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

(INDEX.md:13) The generated ## core heading indicates the core category isn’t present in categories.yaml (so the generator falls back to the slug), which conflicts with the docs that categories/subcategories come from categories.yaml.

Severity: medium

Generating Fix in Augment link...

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

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