Skip to content

Register BMad Automator in official registry - #15

Closed
dickymoore wants to merge 4 commits into
bmad-code-org:mainfrom
dickymoore:add-automator-official-registry
Closed

Register BMad Automator in official registry#15
dickymoore wants to merge 4 commits into
bmad-code-org:mainfrom
dickymoore:add-automator-official-registry

Conversation

@dickymoore

@dickymoore dickymoore commented May 3, 2026

Copy link
Copy Markdown
Contributor

What

Register BMad Automator in the marketplace official registry so it is discoverable during normal installer operation.

Why

The BMAD-METHOD fallback registry is only used when the marketplace registry is unreachable. Automator needs a marketplace entry for standard discoverability and installer presentation.

How

  • add a new bma entry to registry/official.yaml
  • keep the module clearly marked experimental
  • advertise Claude Code and Codex as the intended install/runtime targets
  • note current platform support as macOS, Linux, and Windows via WSL only

Notes

  • category/subcategory guess: software-development / dev-tools
  • native Windows support is not included in this change and is called out as coming soon
  • this PR is for discoverability only; installer/runtime support lands in BMAD-METHOD and bmad-automator

Summary by CodeRabbit

  • New Features

    • Added BMad Automator, an experimental module to the official registry.
  • Schema/Installer

    • Registry schema now supports installer/discovery metadata (source root, built‑in flag, default channel, install/worker targets, requirements, install notes).
  • Documentation

    • README and CONTRIBUTING updated to reflect the new official registry layout.
  • Indexing

    • Registry index generation deduplicates modules and updates module counts.

@coderabbitai

coderabbitai Bot commented May 3, 2026

Copy link
Copy Markdown

Review Change Stack
No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 0ee87144-d4fe-4d26-923e-6edade4965af

📥 Commits

Reviewing files that changed from the base of the PR and between 65c311c and 00fbff7.

📒 Files selected for processing (1)
  • .github/scripts/generate-index.py
🚧 Files skipped from review as they are similar to previous changes (1)
  • .github/scripts/generate-index.py

Walkthrough

A new module entry bmad-automator is added to the official registry with metadata including display name, categorization, trust tier, deployment targets for claude-code and codex, runtime requirements, and platform support documentation.

Changes

Registry and Tooling Update

Layer / File(s) Summary
Schema: installer & payload fields
registry/registry-schema.yaml
Adds optional fields source_root, built_in, default_channel (enum), install_targets, worker_targets, requirements, and install_note; preserves approval fields while removing an explanatory comment block.
Official registry: module entry
registry/official.yaml
Adds bmad-automator module with name: bmad-automator, code: bma, display_name, type: experimental, trust_tier: bmad-certified, source_root: payload/.claude/skills, npm_package: bmad-story-automator, default_selected: false, default_channel: stable, install_targets/worker_targets for claude-code and codex, requirements, and install_note.
Index generation: de-duplication in script
.github/scripts/generate-index.py
Adds seen set and add_module() helper to de-duplicate modules by (directory, name), validates name, assigns _directory, and uses helper for per-directory and official.yaml module loading; also reorders imports.
Docs & index regeneration
README.md, CONTRIBUTING.md, INDEX.md, registry/community-index.yaml
Updates docs to reference registry/official.yaml (instead of directory), regenerates INDEX.md module counts and section entries (adds multiple bmad-* modules), and updates community-index generated timestamp.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

Poem

🐰 A new automator bounds into place,
BMad's clever paws find the right space.
YAML fields bloom, the index grows wide,
Docs and scripts hum in tidy stride.
A tiny hop—registries unified.

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title 'Register BMad Automator in official registry' directly and clearly summarizes the main change: adding a new BMad Automator module entry to the official registry.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

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

✨ 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.

@dickymoore
dickymoore force-pushed the add-automator-official-registry branch from 4f5e484 to e9b5141 Compare May 3, 2026 09:17
@dickymoore
dickymoore marked this pull request as ready for review May 3, 2026 09:17
@augmentcode

augmentcode Bot commented May 3, 2026

Copy link
Copy Markdown
🤖 Augment PR Summary

Summary: Adds bmad-automator to the marketplace’s official registry so it’s discoverable during normal installer operation.

Changes:

  • Registered the module in registry/official.yaml with repo/npm metadata and category/subcategory
  • Flagged it as experimental and opted out of default selection
  • Declared intended install/worker targets (Claude Code, Codex), requirements, and an install note

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

Fix All in Augment

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

Comment thread registry/official.yaml
Comment thread registry/official.yaml
Comment thread registry/official.yaml
@dickymoore
dickymoore marked this pull request as draft May 3, 2026 09:24
@dickymoore
dickymoore marked this pull request as ready for review May 3, 2026 09:30

@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. 1 suggestion posted.

Fix All in Augment

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

Comment thread registry/official.yaml
@dickymoore
dickymoore force-pushed the add-automator-official-registry branch from 1b5af3b to e9b5141 Compare May 3, 2026 10:12

@coderabbitai coderabbitai 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.

Actionable comments posted: 3

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

Inline comments:
In `@registry/official.yaml`:
- Around line 153-165: Update registry-schema.yaml to declare the five new
optional fields introduced in registry/official.yaml: add properties for
default_channel (string, required: false, description), install_targets (array
of strings, required: false, description), worker_targets (array of strings,
required: false, description), requirements (array of strings, required: false,
description), and install_note (string, required: false, description); ensure
each property is added under the top-level schema properties with appropriate
types and brief descriptions so schema validation recognizes these keys and
marks them as optional.
- Line 142: The YAML entry currently uses the invalid enum value "type:
experimental"; update that value to the valid enum "bmad-org" so it passes the
registry-schema validation while keeping the existing "display_name: BMad
Automator (Experimental)" to communicate experimental status; specifically
replace the "type: experimental" token with "type: bmad-org" in the registry
entry.
- Line 137: Replace the unrecognized field source_root in the bmad-automator
entry with the schema-valid field module_definition and point it to the module
YAML file (use module_definition: payload/.claude/skills/module.yaml) so the
entry matches the other registry entries and the registry schema; update the
bmad-automator block (where source_root is set) to use module_definition
instead.
🪄 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: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 168bb868-585d-47fa-b23e-1c85a338fd48

📥 Commits

Reviewing files that changed from the base of the PR and between b1cc5e3 and e9b5141.

📒 Files selected for processing (1)
  • registry/official.yaml

Comment thread registry/official.yaml
Comment thread registry/official.yaml
Comment thread registry/official.yaml
@dickymoore

Copy link
Copy Markdown
Contributor Author

Addressing the current review comments on this PR:

  • type: experimental vs marketplace schema: valid concern, but intentionally split out so this PR stays narrow. PR Register BMad Automator in official registry #15 is now just the Automator registry entry; the schema/docs drift is handled separately in PR Document experimental registry type #16.
  • undocumented fields such as source_root, install_targets, worker_targets, requirements, install_note, and default_channel: valid concern as schema/docs drift, but broader than this single registry entry. These fields are already consumed by BMAD-METHOD for official external modules, so I’m treating marketplace schema/docs alignment as separate follow-up work rather than broadening this PR.
  • indexer behavior around registry/official.yaml: valid repo-level concern, but I’m not folding indexer behavior into this registration PR. I want PR Register BMad Automator in official registry #15 to stay limited to the Automator registry entry.
  • npm_package: I don’t think this one is correct. npm_package is meant to point at the published npm package used for installation, not to mirror the repo or module name. In this case the published package is bmad-story-automator, which matches the Automator repo’s package metadata and installer entrypoint.

@coderabbitai coderabbitai 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.

🧹 Nitpick comments (1)
.github/scripts/generate-index.py (1)

28-51: ⚡ Quick win

name: null silently drops all but the first unnamed module.

key = (directory, None) when name is absent — a second nameless entry would be silently skipped. In practice schema validation should prevent this, but a guard log would surface indexing bugs faster.

🛡️ Suggested defensive log
 def add_module(module, directory):
     name = module.get("name")
+    if not name:
+        print(f"Warning: module in '{directory}' is missing a name — skipping", flush=True)
+        return
     key = (directory, name)
🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

In @.github/scripts/generate-index.py around lines 28 - 51, The add_module logic
silently drops multiple modules with name == None because key = (directory,
name) collapses them; update the import loop so when load_yaml(...) returns a
module with module.get("name") is None you log a warning (include the source:
yaml_file.name or "official.yaml") and use a stable fallback for the key (e.g.,
the yaml filename or a generated unique id) so seen checks use (directory,
fallback_name) instead of (directory, None); ensure the module still gets
module["_directory"] and is appended to modules, and use a project logger or
stderr print to surface the missing-name issue for later schema debugging.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Nitpick comments:
In @.github/scripts/generate-index.py:
- Around line 28-51: The add_module logic silently drops multiple modules with
name == None because key = (directory, name) collapses them; update the import
loop so when load_yaml(...) returns a module with module.get("name") is None you
log a warning (include the source: yaml_file.name or "official.yaml") and use a
stable fallback for the key (e.g., the yaml filename or a generated unique id)
so seen checks use (directory, fallback_name) instead of (directory, None);
ensure the module still gets module["_directory"] and is appended to modules,
and use a project logger or stderr print to surface the missing-name issue for
later schema debugging.

ℹ️ Review info
⚙️ Run configuration

Configuration used: Organization UI

Review profile: CHILL

Plan: Pro

Run ID: 5d24903a-1915-4b98-ba88-dd75ba679e1f

📥 Commits

Reviewing files that changed from the base of the PR and between e9b5141 and 65c311c.

📒 Files selected for processing (6)
  • .github/scripts/generate-index.py
  • CONTRIBUTING.md
  • INDEX.md
  • README.md
  • registry/community-index.yaml
  • registry/registry-schema.yaml
✅ Files skipped from review due to trivial changes (3)
  • CONTRIBUTING.md
  • INDEX.md
  • registry/community-index.yaml

@dickymoore

dickymoore commented May 8, 2026

Copy link
Copy Markdown
Contributor Author

Addressed the CodeRabbit nitpick in commit 00fbff7. I added the guard because name is schema-required, so a nameless registry entry should be surfaced as malformed instead of being silently coalesced under a None de-dupe key. The generator now warns with the source path and skips that invalid entry; valid registry output is unchanged.

@dickymoore

Copy link
Copy Markdown
Contributor Author

Closing this older broad branch now that the actual Automator registration landed separately in #19 and the remaining marketplace alignment work has been re-opened as the tighter draft PR #22. This branch mixed registry entry, schema, docs, generator, and generated-index changes under a registration-only title, so it is clearer to retire it and review the remaining repo-alignment work on its own scope.

@dickymoore dickymoore closed this May 12, 2026
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