Skip to content

chore: sync upstream updates (core v6.5.0, TEA v1.15.1, BMB v1.7.0, CIS v0.2.0, GDS v0.4.0)#68

Closed
tgorka wants to merge 30 commits into
PabloLION:devfrom
tgorka:chore/sync-upstreams-v6.5.0.0
Closed

chore: sync upstream updates (core v6.5.0, TEA v1.15.1, BMB v1.7.0, CIS v0.2.0, GDS v0.4.0)#68
tgorka wants to merge 30 commits into
PabloLION:devfrom
tgorka:chore/sync-upstreams-v6.5.0.0

Conversation

@tgorka
Copy link
Copy Markdown

@tgorka tgorka commented Apr 28, 2026

Summary

Brings the plugin up to core BMAD-METHOD v6.5.0 (skipping v6.4.0 — direct upgrade) plus all four module bumps.

  • Core: v6.3.0 → v6.5.0
  • TEA: v1.12.2 → v1.15.1 (agent moved to SKILL.md format)
  • BMB: v1.4.0 → v1.7.0
  • CIS: v0.1.9 → v0.2.0
  • GDS: v0.3.0 → v0.4.0

⚠️ Stacks on PR #60. This branch was opened from tgorka/bmad-plugin@main which already contains the v6.3.0.2 sync currently under review in #60. Easiest path: merge #60 first, then this; or rebase this onto dev after #60 lands.

Why a regression-style upgrade

The user requested no backward compatibility with pre-v6.5 layouts. The plugin tree (plugins/bmad/skills/, _shared/, templates/) was wiped and rebuilt purely from v6.5.0-era upstream sources to guarantee zero leftover artifacts. Plugin-owned agents (22 files) were preserved.

Notable v6.5.0 surface area

  • NEW core skill bmad-customize — authors per-skill [agent] / [workflow] TOML overrides
  • NEW customize.toml authoring pattern across BMM/core skills
  • NEW module.yaml and module-help.csv at module roots
  • TEA agent (v1.15.1) now lives at src/agents/bmad-tea/SKILL.md instead of YAML

Script regressions (no fallback paths)

  • scripts/clean-orphaned-skills.ts — drop legacy src/core/skills/ and src/core/workflows/ candidates; only src/core-skills/ checked
  • scripts/lib/path-rewriter.ts addCoreSpecialWorkflows() — drop the try-newDir-then-oldDir fallback; restore the un-prefixed core alias (TEA still emits _bmad/core/workflows/<un-prefixed> cross-module refs)
  • scripts/sync-upstream-content.ts — delegate JSON version bumps to bump-utils.updateJsonVersionFiles() so marketplace.json is updated alongside the others

Bug fixes

  • marketplace.json version drift: was stuck at 6.2.0.4 because the inline version-update block in sync-upstream-content.ts never touched it. Now correctly bumps to 6.5.0.0.
  • gds-agent-game-qa and gds-agent-game-scrum-master registered as plugin-only agents in upstream-sources.ts (no upstream counterpart in GDS v0.4.0).

New path-rewriter passthroughs (silent)

v6.5.0 introduces several _bmad/<alias>/ patterns that reference the user's project tree, not plugin content. They're passed through unchanged:

  • _bmad/scripts/resolve_config.py, resolve_customization.py (upstream tooling the user invokes)
  • _bmad/custom/ — user-authored config.toml overrides
  • _bmad/planning/ — user-authored PRD / architecture docs

Test plan

  • bun run typecheck
  • bun run lint
  • bun run validate (exit 0, "All upstream content covered")
  • bun run find-orphans reports zero
  • bun run clean:orphaned --dry-run reports zero orphan dirs
  • bun test — all 6 e2e pass
  • All version anchors at 6.5.0.0 including marketplace.json
  • Zero bmad-skill-manifest / workflow.md / workflow.yaml files in plugin
  • Sandbox install via claude plugin marketplace add succeeds and shows new bmad-customize skill
  • Source-vs-installed-cache hash diff = 0 (1296 files, byte-identical)
  • 5 representative skills smoke-tested: bmad-help, bmad-customize, bmad-create-prd, bmad-testarch-framework, gds-create-gdd

Commit structure

10 atomic commits, each scoped to one concern (script regressions → wipe → path-rewriter fixes → 5 module syncs → plugin-only agent fixup → CHANGELOG).

🤖 Generated with Claude Code

PabloLION and others added 30 commits February 10, 2026 15:11
…ons-1772002853578

Add Claude Code GitHub Workflow
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Complements clean-orphaned-skills.ts (which removes whole orphan skill
directories) by detecting individual files that survive inside skill
directories that still exist. For example, when upstream renames or
removes a sub-file while keeping the skill's top-level directory, the
stale file is never cleaned up because sync only copies/overwrites.

Multiple upstream sources can contribute into the same plugin skill
directory (e.g., skills/research/ receives content from both core and
GDS), so the expected file set is the union across all enabled sources,
plus SKILL.md (generated) and plugin-only data.

Run:
  bun run find-orphans                      # report all sources
  bun run find-orphans -- --source core     # filter report
  bun run find-orphans:delete               # delete orphans

Opt-in only — not wired into sync-all, mirroring clean:orphaned's
invocation pattern.
Upstream release: https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v6.3.0

Notable upstream changes pulled in:
- bmad-init skill eliminated; config now loads from _bmad/bmm/config.yaml
- Dev personas Barry/Quinn/Bob consolidated into Developer (Amelia) —
  corresponding skill dirs removed (bmad-agent-qa, bmad-agent-quick-flow-
  solo-dev, bmad-agent-sm)
- spec-wip.md singleton replaced by spec-{slug}.md (status field)
- Custom content installation removed in favor of marketplace-based install

Tooling fix included: clean-orphaned-skills.ts now also checks
src/core-skills/ for valid skill names. Upstream renamed
src/core/skills/ → src/core-skills/ at v6.2.x but the cleanup script
was still pointing at the old path, causing it to wrongly remove core
skills that sync had just populated (bmad-brainstorming, bmad-distillator,
etc.). Backward-compatible: older paths are still checked as fallbacks.

Plugin version bumped to 6.3.0.0 via bun run bump-core.
Upstream releases covered: v1.8.0 through v1.12.2
Latest at https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/releases

Notable upstream changes pulled in:
- v1.9.0: Skills made self-contained with embedded resources (tea-index.csv)
- v1.9.1: Playwright 1.59 compatibility, banner and doc cross-link updates
- v1.10+: Continued refinements to testarch workflows (atdd, trace, nfr, ci,
  framework, automate, test-design, test-review, teach-me-testing)

The fetch-latest bump picked v1.12.2 rather than the v1.9.1 referenced in
issue PabloLION#58 because several intermediate releases have shipped since the issue
was opened. Happy to pin to v1.9.1 via --tag if preferred — this brings the
plugin to the actual latest TEA release.

Plugin version bumped to 6.3.0.1 via bun run bump-module --source tea.
Upstream releases covered: v0.2.3, v0.2.4, v0.3.0
Latest at https://github.com/bmad-code-org/bmad-module-game-dev-studio/releases

Notable upstream changes pulled in:
- v0.2.2: All 22 workflows renamed with gds- prefix (applied earlier,
  inherited here)
- v0.2.3: Workflow refs changed from markdown links to bare paths
  (Opencode compatibility)
- v0.2.4: Hardcoded _bmad/ paths replaced with relative / skill: prefixes
  (future-proofing)
- v0.3.0: Latest tag — brings plugin to newest GDS release

Structural changes surfaced by find-orphan-files:
- gds-create-gdd: steps/ → steps-c/ reorganization — 15 old step files
  removed
- gds-quick-dev: steps/ → steps-c/ reorganization — 6 old step files
  removed
- 3 orphan skill dirs removed by clean:orphaned (create-prd,
  gds-quick-dev-new-preview, gds-quick-spec)
- 5 new game-dev agents regenerated

The fetch-latest bump picked v0.3.0 rather than the v0.2.4 referenced in
issue PabloLION#56 because v0.3.0 shipped between the issue opening and this sync.
Happy to pin to v0.2.4 via --tag if preferred.

Plugin version bumped to 6.3.0.2 via bun run bump-module --source gds.
Brings main up to 6.3.0.2 (core v6.3.0, TEA v1.12.2, GDS v0.3.0) so the
fork's main branch can be used as a Claude Code marketplace source for
testing before upstream PR PabloLION#60 merges.
Strip legacy paths and fallbacks ahead of the v6.5.0 regression-style sync:

- clean-orphaned-skills.ts: drop 3-element candidate array (src/core/skills,
  src/core/workflows) and check only the canonical src/core-skills/ location.
- path-rewriter.ts (addCoreSpecialWorkflows): remove try-newDir-then-oldDir
  fallback. Drop the un-prefixed-name back-compat alias map -- v6.5.0 upstream
  no longer emits _bmad/core/workflows/<name>/ references (verified with
  grep, zero hits).
- sync-upstream-content.ts: replace the inline ad-hoc version-update block
  (which only touched .plugin-version, package.json, plugin.json) with a
  delegation to updateJsonVersionFiles() from bump-utils.ts. This fixes the
  long-standing marketplace.json drift (was stuck at 6.2.0.4 because the
  inline block never updated it).
- upstream-sources.ts: TODO note on TEA agentRefMappings, to be reviewed
  after Phase 5 validation against TEA v1.15.1 (which moved the agent to
  SKILL.md format).

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Delete the entire plugins/bmad/skills/, plugins/bmad/_shared/, and
plugins/bmad/templates/ trees so the next sync rebuilds them purely from
the v6.5.0-era upstream sources. This is the strongest guarantee that no
v6.3-era artifact survives the upgrade.

Preserved:
- plugins/bmad/agents/ (22 files, 100% plugin-owned per pluginOnlyAgents)
- plugins/bmad/.claude-plugin/plugin.json (plugin manifest)
- plugins/bmad/README.md (marketplace landing readme)

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
While running the v6.5.0 sync, two new path-pattern categories surfaced that
the rewriter didn't yet handle:

1. **User-side passthrough aliases** (zero rewrites, no warnings):
   - _bmad/scripts/   — resolve_config.py / resolve_customization.py (upstream
     tooling the user invokes from their project root)
   - _bmad/custom/    — user-authored config.toml overrides
   - _bmad/planning/  — user-authored PRD / architecture docs

   These reference the user's project tree, not plugin content. Treating them
   like _memory (silent passthrough) is the correct semantics.

2. **Un-prefixed core skill aliases** (cross-module refs):
   - TEA v1.15.1 still emits {project-root}/_bmad/core/workflows/<un-prefixed-name>/
     references (e.g., advanced-elicitation, party-mode). Restore the un-prefixed
     fallback alias in addCoreSpecialWorkflows so cross-module callers continue
     to resolve until upstream catches up.

After both fixes, sync now reports zero rewrite warnings.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Upstream release: https://github.com/bmad-code-org/bmad-module-game-dev-studio/releases/tag/v0.4.0

Notable upstream changes pulled in:
- customize.toml authoring pattern adopted across GDS workflow skills
- Various agent SKILL.md frontmatter refreshes
- Knowledge / step-file content updates

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Upstream release: https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite/releases/tag/v0.2.0

Notable upstream changes pulled in:
- customize.toml authoring pattern adopted for all bmad-cis-* workflow skills
- Step-file refreshes across design-thinking / brainstorming / problem-solving suites

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Upstream release: https://github.com/bmad-code-org/bmad-builder/releases/tag/v1.7.0

Notable upstream changes pulled in:
- bmad-agent-builder, bmad-module-builder, bmad-workflow-builder, bmad-bmb-setup
  workflow / step refreshes
- customize.toml introduced where applicable

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Upstream release: https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise/releases/tag/v1.15.1

Notable upstream changes pulled in:
- TEA agent moved from YAML to SKILL.md format (bmad-tea/SKILL.md)
- customize.toml adopted for testarch-* workflow skills
- Knowledge base, step-file, and checklist refreshes across the test-architecture
  workflows (atdd, automate, ci, framework, nfr, test-design, test-review, trace)

Note: agentRefMappings retained in scripts/lib/upstream-sources.ts for now —
TEA still emits some un-prefixed cross-module refs (advanced-elicitation,
party-mode) which the path-rewriter handles via the un-prefixed core alias
fallback. TODO to drop these mappings once upstream catches up.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Upstream release: https://github.com/bmad-code-org/BMAD-METHOD/releases/tag/v6.5.0

Notable v6.5.0 upstream changes pulled in:
- NEW core skill `bmad-customize` (skill-level [agent]/[workflow] override
  layer, replacing the older central-config approach)
- customize.toml authoring pattern adopted across BMM and core skills
- module.yaml introduced at module roots
- workflow.md / bmad-skill-manifest.yaml deletions across implementation
  phase (already in skipContentFiles list, transparent to plugin)
- Step-file, instruction, and checklist refreshes across most workflows

Plugin version anchors updated to v6.5.0.0 across:
- .plugin-version
- package.json
- plugins/bmad/.claude-plugin/plugin.json
- .claude-plugin/marketplace.json (was stuck at v6.2.0.4 — fixed by
  the bump-utils delegation in the earlier sync-upstream-content.ts edit)
- README badge

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
…ugin-only

Validate flagged these two GDS agents as having no upstream counterpart in
v0.4.0. They are maintained directly in plugins/bmad/agents/ and are not
generated from any upstream SKILL.md, so list them in pluginOnlyAgents.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Add an Added/Changed/Removed/Fixed entry covering the v6.5.0 sync,
backward-compat removal, marketplace.json fix, and plugin-only agent
registrations.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@tgorka
Copy link
Copy Markdown
Author

tgorka commented Apr 28, 2026

Superseded by a new PR covering v6.5.0.0 plus the v6.5.0.1 installer-based refactor. The new PR uses tgorka:main as the head and includes both releases as a single coherent story.

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.

2 participants