Commit Graph

1783 Commits

Author SHA1 Message Date
gabadi 075b0279f5
Merge cb6006686c into c46502f640 2026-04-07 18:59:23 +02:00
Brian c46502f640
feat(installer): overhaul branding, versioning, and skill cleanup (#2223)
* feat(installer): overhaul branding, versioning, and skill cleanup

Logo and branding:
- Responsive logo: full "BMAD METHOD" at >=95 cols, "BMAD" for narrower terminals
- Color scheme updated from yellow to blue (matching bmadcode.com brand)
- Added copyright notice and tagline in white for contrast
- Removed version number from logo (individual module versions shown in summary)
- Added ™ to both wide and narrow logo variants

Installer start message:
- Replaced outdated V6 launch announcement with clean welcome
- Consolidated redundant module/platform messaging into single intro
- Tightened open source manifesto (same spirit, fewer words)
- Merged speaking/media into support section with contact email
- Added full social links: Website, Discord, YouTube, X, Facebook
- Replaced docs.bmad-method.org and changelog links with bmadcode.com hub

Install summary improvements:
- Module names now show full display names from module.yaml (not abbreviations)
- All module versions sourced from .claude-plugin/marketplace.json exclusively
- Summary shows version transitions: "v6.2.2 -> v6.3.0", "v6.3.0, no change",
  or "v6.3.0, installed" for fresh installs
- Switched summary from clack note() to box() for full-brightness text
- Removed dim/gray styling that was hard to read on dark terminals
- Links styled with color.blue instead of color.dim
- Get started section leads with actionable steps (launch agent, run bmad-help)
- Removed redundant social links (already shown in start message)

Version source unification:
- All module versions now come from .claude-plugin/marketplace.json only
- Removed package.json as version source for core/bmm modules
- Updated manifest.js getModuleVersionInfo() to use marketplace.json
- Updated installer.js _getMarketplaceVersion() helper
- Updated ui.js getMarketplaceVersion() for module selection display
- Quick Update menu no longer shows misleading version (was using package.json)
- Module selection list now shows versions next to each module name

Skill cleanup overhaul:
- Replaced blunt-force bmad-* prefix deletion with surgical removal system
- Added removals.txt support: optional per-project file listing skills to remove
- Created initial removals.txt with all skills removed since v6.2.0
- Install/update: captures previously installed skill IDs from skill-manifest.csv
  before manifest regeneration, then removes those + removals.txt entries
- Uninstall: removes all installed skills via skill-manifest.csv + removals.txt
- Deselecting modules now correctly removes their skills from IDE directories
- User-created bmad-* skills in IDE directories are no longer destroyed
- Legacy directory cleanup retains prefix matching (those dirs are abandoned)

Bug fixes:
- Fixed duplicate "CORE module already up to date" during quick update
- Fixed version display showing package.json version instead of actual module version
- Updated test fixture for bmad-os-* preservation test to use skill-manifest.csv

* fix(installer): address Augment review findings

- Fix plugins[0] fragility: extract highest version across all plugins
  in marketplace.json instead of assuming first entry (ui.js, installer.js,
  manifest.js)
- Fix _readMarketplaceVersion ignoring moduleSourcePath: custom modules
  can now source their own marketplace.json by walking up from source path
- Hard-exclude bmad-os-* utility skills in both surgical and legacy cleanup
  modes, preventing accidental deletion if tracked in manifests
- Distinguish missing file vs parse error in skill-manifest.csv reading:
  warn on corrupt CSV instead of silently skipping cleanup

* fix(installer): resolve module source before reading marketplace version

Move _readMarketplaceVersion call after source type resolution so custom
modules use their own source path instead of falling back to the external
module cache, which could match a different module with the same code.
2026-04-07 02:31:36 -05:00
Brian 47991536c5
docs: add Python 3.10+ and uv as prerequisites (#2221) 2026-04-06 00:30:00 -05:00
Alex Verkhovsky 595746335c
fix(docs): wrap bare email in angle brackets for markdownlint MD034 (#2219) 2026-04-05 13:14:03 -07:00
Brian 28aa522753
Update community and support links in README (#2215) 2026-04-05 00:52:39 -05:00
Alex Verkhovsky aefabc74b0
feat(quick-dev): add previous story continuity to context loading (#2201)
When quick-dev infers the intent is an epic story, it now scans for
completed specs from the same epic and loads the most recent one to
extract Code Map, Design Notes, Spec Change Log, and task list as
continuity context for planning.
2026-04-04 20:49:55 -07:00
Alex Verkhovsky aa48f83a65
docs: rewrite get-answers-about-bmad for flow and accuracy (#2213)
Restructure from two glued-together documents into a single
escalation flow (bmad-help → source → community). Remove
references to deprecated _bmad folder and closed Discord channels.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 20:44:43 -07:00
JakubStejskalCZ ac18b195e9
docs(cs): add Czech (Čeština) documentation translation (#2134)
* docs(cs): add Czech (Čeština) documentation translation

Add complete Czech translation of all 29 documentation files mirroring
the English source structure. Register cs-CZ locale in Starlight config
with sidebar label translations.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(cs): repair corrupted characters and table formatting in Czech docs

Fix UTF-8 encoding artifacts in customize-bmad.md and upgrade-to-v6.md,
align markdown table formatting, and correct Czech grammar in
project-context.md heading.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(cs): address CodeRabbit review feedback

- Normalize 64 Czech quotation marks to proper „…" pairs across 14 files
- Fix corrupted UTF-8 box-drawing character in upgrade-to-v6.md
- Use relative roadmap link (./roadmap) in index.md for locale consistency
- Fix typo: Podníková → Podniková in modules.md

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(cs): sync Czech translation with upstream agent consolidation and PRFAQ addition

Agents: remove Barry/Quinn/Bob (merged into Developer), add WB trigger and PRFAQ to Analyst.
Tutorials/commands/workflow-map: fix SM→DEV references, add PRFAQ workflow entries.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Co-authored-by: Alex Verkhovsky <alexey.verkhovsky@gmail.com>
2026-04-04 20:42:54 -07:00
Alex Verkhovsky 1050415351
refactor(code-review): harmonize step-01 intent cascade (#2206)
* refactor(code-review): harmonize step-01 intent cascade with quick-dev and checkpoint-preview

Replace keyword-matching entry point with 5-tier priority cascade:
explicit argument → recent conversation → sprint tracking → git state → ask.
Diff-mode keyword detection preserved as sub-check within tier 1.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(code-review): address review findings in step-01 intent cascade

- Set {spec_file} immediately in Tier 1 when spec provided
- Add staged/uncommitted handlers to instruction 3 dispatch table
- Replace undefined {branch}/{sha} placeholders with angle brackets
- Fix {story_key} vs {{story-id}} placeholder mismatch
- Correct "wants reviewed" grammar to "wants to be reviewed"

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 20:07:15 -07:00
Brian 783601b576
fix: move BMB announcement to custom Banner component (#2210)
Starlight banner config doesn't render with custom Header. Added
announcement row to Banner.astro and removed unused config.
2026-04-04 16:10:37 -05:00
Brian 975aea6e74
docs: add BMad Builder announcement banner to docs site (#2209) 2026-04-04 16:02:26 -05:00
Alex Verkhovsky f98083ba75
docs: add contribution guardrails for unsolicited PRs (#2207)
Add Discord-first callout banner and AI-generated code curation policy.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-04 12:13:06 -05:00
Brian 3a24d8ffc9
docs: add BMad Ecosystem cross-links to sidebar (#2204) 2026-04-04 00:34:00 -05:00
Brian 15f49b8bd4
docs: add BMad Ecosystem cross-links to sidebar (#2203) 2026-04-04 00:27:47 -05:00
Alex Verkhovsky d51e2159e5
fix(quick-dev): specify {project-root}/ anchor for context: list paths (#2200)
Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-03 11:42:31 -07:00
Alex Verkhovsky e9a6bfa95c
feat(quick-dev): add planning artifact awareness for context-informed specs (#2185)
Teach quick-dev step-01 what BMAD phase 1-3 planning artifacts are (PRD,
architecture, UX, epics, product brief) so it can selectively load relevant
docs instead of guessing from code alone. Remove hard cap of 3 on spec
context field, replacing with judgment guidance. Instruct step-03 to
explicitly pass context files to the implementation sub-agent.
2026-04-03 09:24:48 -07:00
Alex Verkhovsky 0edcd0571f
fix(docs): correct translation fidelity issues in Vietnamese docs (#2192)
Sync Vietnamese translations with current English source:
- Update agent table to consolidated Developer agent architecture
- Fix bmad-dev -> bmad-agent-dev skill ID references
- Replace Quinn/QA agent framing with built-in QA workflow
- Fix SM agent -> Developer agent in getting-started
- Fix broken platform-codes.yaml URL
- Add missing Validation Commands section to style guide
- Fix malformed table row in style guide
- Remove unsourced content additions in project-context
- Fix roadmap section heading and index link format
- Fix accountability softening in party-mode dialogue
2026-04-02 20:46:44 -07:00
miendinh 072de34450
docs(vi-vn): add Vietnamese translation for BMAD documentation (#2110)
* docs(vi-VN): add Vietnamese translation for BMAD documentation

* feat(i18n): add Vietnamese website locale

* docs(vi-VN): refine translated documentation

* docs(vi-VN): sync terminology with latest upstream docs

* fix(docs): normalize Vietnamese locale path casing

* docs(vi): update non-interactive installation translation

* docs(vi): translate analysis phase explanation

* docs(vi): sync updated reference and tutorial pages

---------

Co-authored-by: miendinh <miendinh@users.noreply.github.com>
2026-04-02 20:44:13 -07:00
Alex Verkhovsky 003c979dbc
chore: remove SM agent (Bob) and migrate to Developer agent (#2186)
* chore: remove SM agent (Bob) and migrate capabilities to Developer agent

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* fix(docs): correct agent naming and grammar from review triage

Standardize Developer agent references to bmad-agent-dev (matching
installed skill directory name) and fix possessive apostrophe in
implementation-readiness workflow.

* fix(skills): replace dev team references with Developer agent

No longer a multi-agent development team — just one Developer agent.
Remove residual Scrum Master search patterns from retrospective.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 12:25:24 -07:00
Alex Verkhovsky 48c2324b28
chore: remove QA agent (Quinn) and migrate capability to Developer agent (#2179)
Delete the Quinn (bmad-agent-qa) agent wrapper and add QA test-generation
capability to Amelia (bmad-agent-dev). Update agent tables, testing docs
(EN/ZH-CN/FR), marketplace.json, party-mode, and checklist references.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-02 07:13:35 -07:00
Alex Verkhovsky 07d72394fd
fix(checkpoint): add explicit HALT before decision menu in wrapup step (#2184)
Skill validator (STEP-04) flagged the decision menu in step-05 as
missing an explicit halt instruction between presenting the menu and
acting on the user's choice, risking LLM auto-advance.
2026-04-01 22:52:46 -06:00
Alex Verkhovsky 7ef45d472c
docs(checkpoint): add explainer page and workflow diagram (#2183)
* docs(checkpoint): add explainer page and workflow diagram

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* docs(checkpoint): replace excalidraw source with exported PNG diagram

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 22:20:48 -06:00
Alex Verkhovsky 2ea917ef5c
fix(checkpoint): address review findings from adversarial triage (#2180)
Clarify review_mode state transition intent in generate-trail, label
step-02 walkthrough branches as normal vs fallback, replace circular
communication style rule with config variable refs, swap confirm gate
for [inferred] flag, and clarify stats data source as full diff.
2026-04-01 10:43:08 -07:00
Alex Verkhovsky 1b776f565b
feat: add bmad-checkpoint-preview skill (#2145)
* feat: add bmad-checkpoint skill for guided human change review

Copies the av-human-review experiment skill into BMAD-METHOD as
bmad-checkpoint, following established multi-step skill conventions
(SKILL.md → workflow.md → step chain). Registered in module-help.csv
under 4-implementation phase.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* chore: rename bmad-checkpoint to bmad-checkpoint-preview

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor(checkpoint): inline workflow into SKILL.md and add global step rules

Remove separate workflow.md — its content now lives directly in SKILL.md
with merged frontmatter. Replace scattered standing rules with a structured
Global Step Rules section (path:line format, front-load output, comm style).

* refactor(checkpoint): reference global step rules from SKILL.md in step-01

* refactor(checkpoint): deduplicate step rules against global step rules

Steps 2–4 now reference Global Step Rules in SKILL.md instead of
restating path:line format, front-load, and silence rules locally.
Step-specific rules (concern-based org, design judgment, risk
awareness, experiential testing) are preserved.

* fix(checkpoint): move main_config out of SKILL.md frontmatter

SKILL.md frontmatter should only contain name and description.
Hardcode the config path inline in the INITIALIZATION section.

* docs(checkpoint): update skill description and trigger phrases

Rewrite description to reflect the skills purpose as an LLM-assisted
human-in-the-loop review. Add checkpoint trigger, drop stale triggers.

* fix(checkpoint): align trail format with global step rules and add token budget

Use CWD-relative path:line in fallback trail (not markdown links),
cap full-file reads at ~50k tokens, remove over-prompted empty-tree SHA.

Co-Authored-By: Claude Haiku 4.5 <noreply@anthropic.com>

* refactor(checkpoint): rewrite FIND THE CHANGE as numbered priority cascade

Replace the ad-hoc change-finding logic with a clean 1-5 cascade
modeled after quick-dev Intent Check: explicit argument, recent
conversation, sprint tracking, current git state, ask. Extract
spec/commit pairing into a separate ENRICH step that runs after
any cascade level resolves. Add planning_artifacts to SKILL.md
initialization.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(checkpoint): clarify review_mode and terse-commit instructions in step-01

Replace opaque Review Mode table with explicit set-variable instructions.
Scope terse commit message handling to bare-commit mode only.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(checkpoint): make review_mode a numbered cascade, not independent bullets

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(checkpoint): simplify change_type from table to one-liner

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(checkpoint): make link-to-source conditional on source existing

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(checkpoint): make surface area stats best-effort with baseline cascade

Replace rigid with-spec/bare-commit split with a 4-level fallback:
baseline_commit, merge-base, HEAD~1, skip. Omit metrics that
cannot be computed rather than failing.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* refactor(checkpoint): extract fallback trail generation into generate-trail.md

Reduce step-01 bloat by moving the conditional trail generation
sub-routine into its own file, loaded only when review mode is
not full-trail.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>

* fix(checkpoint): add early-exit routing and wrap-up step

Replace undefined "I've seen enough" exits with proper early-exit
handling across steps 02-04. Extract wrap-up logic into dedicated
step-05-wrapup.md. Fix step-02 menu text that incorrectly promised
"code review" when step-03 does risk surfacing.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 10:12:14 -07:00
Alex Verkhovsky 1aa0903e79
chore(agents): remove Barry quick-flow-solo-dev agent (#2177)
Delete the Barry agent persona and migrate its QD (quick-dev)
capability to the Amelia dev agent. Update EN, ZH, and FR docs,
marketplace JSON, and workflow diagrams.

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-04-01 08:46:14 -07:00
Brian 2c5436f672
style: update docs theme to match bmadcode.com Ghost blog (#2176)
Replace purple/electric blue accent with Ghost blog design tokens:
- Background #0a0a0a, surface #1a1a1a, borders #262626
- Accent blue #3b82f6, text #fafafa/#a1a1a1/#666666
- Inter body, Space Grotesk headings, JetBrains Mono code
- Remove logo images, use text title
2026-04-01 01:12:40 -05:00
Taras Romaniv 1f99eb0496
fix: preserve local custom module sources during quick update (#2172)
* fix: preserve local custom module sources during quick update

Keep customModules in the generated main manifest so local custom
module source paths survive update runs. Load those preserved source
paths during stock quick update before falling back to the custom
cache directory.

This fixes the case where BMAD would drop customModules, lose the
original source path for a local module, and then skip the module or
try to re-cache from _bmad/_config/custom/<module>, which could fail
with ENOENT after the cache directory was removed.

Also adds an installation component regression test to verify
customModules and sourcePath are preserved in manifest generation.

Fixes #1582

* fix: ensure consistent formatting

* refactor: extract quick update custom source assembly

Move quick-update custom module source collection out of Installer and into
CustomModules as assembleQuickUpdateSources(). This keeps discoverPaths() focused on consuming prepared install inputs while
making the quick-update source assembly step explicit and easier to evolve.

Also:
- preserve customModules metadata in manifest regeneration for installed modules
- drop stale customModules entries when modules are no longer installed
- cover manifest preservation and manifest-backed quick-update sources in tests
2026-03-30 17:49:05 -07:00
Emmanuel Atsé 2302d9cdc5
docs(fr): translate output folder path resolution section (#2140)
Syncs French translation with commit 1040c3c (fix: correctly resolve
output_folder paths outside project root #2132).

Co-authored-by: Brian <bmadcode@gmail.com>
2026-03-29 14:01:09 -07:00
Alex Verkhovsky 3980e57885
feat(quick-dev): one-shot route generates spec trace file (#2121)
* feat(quick-dev): generate spec trace file for one-shot route

One-shot changes now leave a lightweight spec file with frontmatter,
intent summary, and suggested review order — eliminating numbering
gaps when quick-dev is used as the primary dev loop.

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor(quick-dev): reference spec template instead of inlining structure

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>

* refactor(quick-dev): deduplicate slug derivation and clarify title variable

Extract shared slug derivation logic above the route fork in step-01 so
both one-shot and plan-code-review routes use a single instruction block.
Add explicit title variable assignment in step-oneshot before it is
referenced in the Generate Spec Trace section.

---------

Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
2026-03-29 13:55:09 -07:00
PinkyD 4b1026b252
fix(party-mode): clarify solo mode and improve response presentation (#2164)
* clear up contradiction and config mispath

* fix(party-mode): clarify solo mode behavior and improve response presentation rules

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-29 11:25:56 -05:00
PinkyD ce9c66490a
refactor(party-mode): consolidate into single SKILL.md with real subagents (#2160)
Replace the multi-file workflow architecture (workflow.md + 3 step files)
with a self-contained SKILL.md that spawns each agent as an independent
subagent via the Agent tool. This produces genuinely diverse perspectives
instead of one LLM roleplaying multiple characters. Adds --model and
--solo flags for flexibility.
2026-03-29 01:22:34 -05:00
Brian 7dd49a452f
refactor: remove bmad-init skill, standardize config loading (#2159)
* refactor: remove bmad-init skill and standardize config loading across all skills

Remove the bmad-init core skill entirely — all agents and workflow skills now
load config directly from their module's config.yaml instead of delegating to
bmad-init as an intermediary. This eliminates the Python script dependency and
simplifies the activation path for every skill.

Changes across all skill types:

- Agents (9 skills): Replace "Load config via bmad-init skill" block with
  direct config loading from `{project-root}/_bmad/bmm/config.yaml`, resolving
  user_name, communication_language, document_output_language,
  planning_artifacts, and project_knowledge

- Workflow skills (12 skills): Standardize INITIALIZATION/Configuration Loading
  sections to a consistent Activation format matching the agent pattern

- bmad-prfaq: Align activation to standard config pattern, convert scripted
  dialogue to outcome-focused instructions (no direct quotes)

- bmad-product-brief: Remove External Skills section referencing bmad-init

- bmad-party-mode: Standardize initialization to Activation format

- bmad-advanced-elicitation: Inline agent_party path instead of config var

- bmad-distillator: Remove unused argument-hint frontmatter

- Delete legacy create-prd/ directory (superseded by bmad-create-prd)

- Delete bmad-init skill entirely: SKILL.md, bmad_init.py, core-module.yaml,
  and test suite

* fix: remove remaining bmad-init references from marketplace.json and distillate examples

Clean up missed references: remove bmad-init from marketplace.json skills
list, replace bmad-init examples in distillate-format-reference.md with
bmad-help/bmad-setup to keep examples valid without referencing a removed skill.

* fix: update broken file references in bmad-edit-prd after create-prd deletion

Point prdPurpose refs from deleted create-prd/data/ to bmad-create-prd/data/
and validationWorkflow ref from create-prd/steps-v/ to bmad-validate-prd/steps-v/.
2026-03-28 20:35:11 -05:00
Alex Verkhovsky 04513e5953
feat(installer): restore KiloCoder support and installer (#2151)
Kilo Code now supports Agent Skills. Remove the suspended flag,
restore it in the IDE picker, and replace the suspended test suite
with a full native-skills installation test.

- Remove suspended message from platform-codes.yaml
- Rewrite test suite 22: config, IDE picker, install, skill output,
  legacy cleanup, and reinstall assertions
- Update migration checklist to reflect active status

Co-authored-by: Junie <junie@jetbrains.com>
Co-authored-by: Brian <bmadcode@gmail.com>
2026-03-28 20:24:29 -05:00
Brian aae6ddb8c9
fix: remove ancestor_conflict_check from all platforms (#2158)
The ancestor directory walk was based on the false premise that IDEs
like Claude Code inherit skills from parent directories — they do not.
The check blocked legitimate installations when unrelated BMAD skills
existed anywhere up the directory tree.
2026-03-28 18:45:55 -05:00
Brian abfc56bd2c
feat: add bmad-prfaq skill as alternative analysis path (#2157)
* feat: add bmad-prfaq skill as alternative to product brief

Add Working Backwards PRFAQ challenge skill for stress-testing product
concepts through Amazon's PRFAQ methodology. Includes press release
drafting, customer FAQ, internal FAQ, and verdict stages with subagent
support for artifact scanning and web research.

- New bmad-prfaq skill with 5-stage interactive gauntlet and headless mode
- Subagents for artifact analysis and web research (graceful degradation)
- Research-grounded output directive for current market/competitive data
- Always produces distillate for downstream PRD consumption
- Fix manifest array syntax in both prfaq and product-brief manifests
- Drop number prefixes from reference files
- Update docs: getting-started, workflow-map, agents, skills reference
- Add analysis-phase explainer doc with comparison table and decision guide
- Update workflow-map-diagram.html with prfaq card
- Add -H and -A args to CSV for both skills
- Add unist-util-visit as devDependency (was imported but undeclared)

* fix: harden bmad-prfaq for compaction resilience and context efficiency

Add coaching persona re-anchors to all stage prompts so the behavioral
directive survives context compaction. Add do-not-read guards at resume
detection, headless mode, and input gathering to prevent parent agent
context bloat. Add Stage 1 coaching notes capture. Adapt template and
press release stage for non-commercial concept types. Cap subagent
response token budgets.

* fix: add config.user.yaml to file-ref validator allowlist

Also update PRFAQ config path to use correct _config/bmm/ prefix.
2026-03-28 17:16:41 -05:00
Alex Verkhovsky fa909a8916
feat: add Junie platform support (#2142)
* feat: add Junie platform support with .agents/skills target

Co-authored-by: Junie <junie@jetbrains.com>

* fix: disable ancestor_conflict_check for Junie platform

Junie does not traverse ancestor directories looking for skills,
so ancestor_conflict_check should be false.

Co-authored-by: Junie <junie@jetbrains.com>

---------

Co-authored-by: Junie <junie@jetbrains.com>
2026-03-27 23:55:57 -06:00
Brian e0ea6a0500
fix: support skills/ folder as module source location (#2149)
The installer now finds module.yaml in both skills/ and src/ directories,
including one level deep in subfolders. Updates bmb module-definition to
skills/module.yaml to match its actual structure.
2026-03-28 00:33:10 -05:00
Brian c91db0db4b
fix: revert bmb module-definition path to src/module.yaml (#2146)
bmad-builder reverted its skills/ directory back to src/ for installer
compatibility (bmad-code-org/bmad-builder#40). Update the external
modules manifest to match.
2026-03-27 08:46:18 -06:00
Alex Verkhovsky 513f440a23
refactor(installer): restructure installer with clean separation of concerns (#2129)
* refactor(installer): restructure installer with clean separation of concerns

Move tools/cli/ to tools/installer/ with major structural cleanup:

- InstallPaths async factory for path resolution and directory creation
- Config value object (frozen) replaces mutable config bag
- ExistingInstall value object replaces stateful Detector class
- OfficialModules + CustomModules + ExternalModuleManager replace monolithic ModuleManager
- install() is prompt-free; all user interaction in ui.js
- Update state returned explicitly instead of mutating customConfig
- Delete dead code: dependency-resolver, _base-ide, IdeConfigManager,
  platform-codes helpers, npx wrapper, xml-utils
- Flatten directory structure: custom/handler → custom-handler,
  tools/cli/ → tools/installer/, lib/ directories removed
- Update all path references in package.json, tests, CI, and docs

* fix(installer): guard ExistingInstall.version and surface module.yaml errors

Guard ExistingInstall.version access with .installed check in
uninstall.js, ui.js, and installer.js to prevent throwing on
empty/partial _bmad dirs. Surface invalid module.yaml parse errors
as warnings instead of silently returning empty results.
2026-03-27 06:50:07 -06:00
Akhilesh Tyagi 1040c3c306
fix: correctly resolve output_folder paths outside project root (#2132)
* fix(bmad-init): correctly resolve output_folder paths outside project root

  When output_folder was set to an absolute path (e.g. /Users/me/outputs),
  the {project-root}/{value} result template stored it as
  {project-root}//absolute/path. resolve_project_root_placeholder then did
  a naive string replace, producing /project//absolute/path — a broken path
  that workflows could not resolve.

  For relative paths outside the root (e.g. ../../sibling), the same naive
  replace left un-normalized paths like /project/../../sibling in the
  resolved config, which some tools mishandled.

  Fix resolve_project_root_placeholder to strip the {project-root} token,
  detect whether the remainder is absolute (returning it directly) or
  relative (joining with project root and normalizing via os.path.normpath).

  Fix apply_result_template to skip the template entirely when raw_value is
  already an absolute path, and to normalize the result for relative-but-
  outside paths. This covers the bmad-init SKILL write path, which bakes
  the resolved path directly into config.yaml.

  Add 7 tests covering all three path cases (absolute, relative-with-
  traversal, normal in-project) for both functions.

* Address review comments

---------

Co-authored-by: Akhilesh Tyagi <akhilesh.t@nextiva.com>
Co-authored-by: Brian <bmadcode@gmail.com>
2026-03-26 21:46:14 -05:00
Brian ed9dea9058
refactor: consolidate plugin.json metadata into marketplace.json (#2137)
Merge license, homepage, repository, keywords, and author from
plugin.json into marketplace.json and remove the redundant file.
The npx skills installer only reads marketplace.json for skill
discovery — plugin.json contributed no functional value.
2026-03-26 19:48:04 -05:00
Brian 3d8a89c7e1
feat: add .claude-plugin marketplace and plugin metadata (#2136) 2026-03-26 19:12:32 -05:00
Alex Verkhovsky cb6006686c
Merge branch 'main' into fix/quick-dev-consumer-propagation 2026-03-25 20:56:14 -06:00
github-actions[bot] 819d373e2e chore(release): v6.2.2 [skip ci] 2026-03-26 02:44:35 +00:00
Brian a5640c890d
chore: add v6.2.2 changelog and use CHANGELOG.md for GH release notes (#2127)
Update publish workflow to extract release notes from CHANGELOG.md
instead of using --generate-notes, with fallback if no entry found.
2026-03-25 21:43:25 -05:00
Brian 6dd0a97c1f
fix: update bmb module-definition path for skills/ restructure (#2126)
bmad-builder moved skills from src/skills/ to skills/ at repo root
for Claude Code plugin and Vercel Skills CLI compatibility.
2026-03-25 21:25:33 -05:00
2-gabadi 92b7c12bf2
fix: remove redundant step-03 precondition
The step-03 consumer tracing instruction duplicated step-02 without
adding validation. Keep only the step-02 planning instruction.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 03:41:06 -03:00
2-gabadi df8b54c946
fix: handle zero-consumers case and add recovery path
- step-02: add `consumer — none found` annotation for empty grep results
- step-03: replace dead-end HALT with actionable recovery (perform
  tracing now) so the agent isn't stuck if step-02 was skipped

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 03:37:45 -03:00
2-gabadi cb60c06a29
fix: reference exact annotation prefix in step-03 HALT gate
Use backtick-quoted `consumer —` prefix to match the step-02
convention, making the precondition check unambiguous and grepable.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 03:30:19 -03:00
2-gabadi 17e87f8164
fix: add consumer propagation check to bmad-quick-dev workflow
When introducing new type variants, error codes, or DB values, the
workflow now requires enumerating all consumers in the Code Map during
planning (step-02) and HALTs implementation (step-03) if consumer
tracing was missed.

Fixes #2122

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-25 03:25:39 -03:00