Commit Graph

1382 Commits

Author SHA1 Message Date
Dicky Moore 25354fc131 Merge remote-tracking branch 'origin/phase1-md-workflows-clean' into phase1-md-workflows-clean 2026-02-08 14:25:57 +00:00
Dicky Moore f74f6047f2 fix: hide internal workflow task from codex exports 2026-02-08 14:23:22 +00:00
Dicky Moore 5caf92cfdb fix: restore help routing and external module install tolerance 2026-02-08 14:23:22 +00:00
Dicky Moore 9604f6d00c fix: align workflow path guidance with installed runtime 2026-02-08 14:23:22 +00:00
Dicky Moore 98831695d0 fix: define installed workflow paths in qa and create-story 2026-02-08 14:23:21 +00:00
Dicky Moore e86fa2ee9e fix: restore runtime workflow paths and standalone parsing 2026-02-08 14:23:21 +00:00
Dicky Moore 3feb0d378f fix: resolve workflow guardrails and installer regressions 2026-02-08 14:23:21 +00:00
Dicky Moore 2a9b447e04 fix: add workflow loader fallback guidance and guards 2026-02-08 14:23:21 +00:00
Dicky Moore cfdb2db0f5 fix: correct workflow command defaults and bmm document config paths 2026-02-08 14:23:21 +00:00
Dicky Moore 454ae910f9 fix: harden install XML guard and remove no-op placeholder replacement 2026-02-08 14:23:06 +00:00
Dicky Moore 87c4292021 Finish step-flow migration for dev workflows and fix installer regressions 2026-02-08 14:23:06 +00:00
Dicky Moore 7fc8318e08 Migrate remaining workflows to workflow.md and fix CLI/test regressions 2026-02-08 14:22:30 +00:00
Dicky Moore c636042dba Migrate QA automate workflow to workflow.md 2026-02-08 14:22:30 +00:00
Dicky Moore 3aba7f089d Update validate-workflow references 2026-02-08 14:22:30 +00:00
Dicky Moore 21efe68512 Remove reintroduced TEA/excalidraw artifacts 2026-02-08 14:22:30 +00:00
Dicky Moore 052cc839fe Fix remaining workflow.yaml/xml references 2026-02-08 14:22:30 +00:00
Dicky Moore 0c34f528da Drop YAML workflow support from CLI tooling 2026-02-08 14:22:30 +00:00
Dicky Moore 2212d92260 Remove workflow.xml runner and update CLI wording 2026-02-08 14:21:37 +00:00
Dicky Moore 9054719d93 Migrate workflow runner references to workflow.md 2026-02-08 14:21:37 +00:00
Dicky Moore a1bc1a37f4 Convert Phase 2/3 workflows to MD 2026-02-08 14:11:58 +00:00
Dicky Moore 730ba6bdb0 Add advanced-elicitation MD workflow and guard 2026-02-08 14:11:58 +00:00
Dicky Moore ba91d9c03f Convert remaining Phase 1 workflows to MD 2026-02-08 14:11:58 +00:00
Dicky Moore 5042a895de Make workflow references platform-agnostic 2026-02-08 14:11:58 +00:00
Dicky Moore 129f2d4ac9 fix: hide internal workflow task from codex exports 2026-02-08 14:06:43 +00:00
Dicky Moore 40787c5035 fix: restore help routing and external module install tolerance 2026-02-08 14:06:43 +00:00
Dicky Moore 00a2334969 fix: align workflow path guidance with installed runtime 2026-02-08 13:07:55 +00:00
Davor Racic b1bfce9aa7
refactor: Complete @clack/prompts Migration & Installer Output Consolidation (#1586)
* feat(cli): complete @clack/prompts migration

Full migration of BMAD CLI installer from legacy terminal libraries
(chalk, ora, boxen, figlet, wrap-ansi, cli-table3, readline) to unified
@clack/prompts v1.0.0 visual system.

Foundation (prompts.js + cli-utils.js):
  - Extended prompts.js wrapper with box, spinner, progress, taskLog,
    path, autocomplete, selectKey, stream, color re-export
  - Refactored cli-utils.js: displayLogo uses box(), sections use note(),
    steps use log.step(), removed boxen/figlet/wrap-ansi/cli-table3

UI orchestration (ui.js):
  - Replaced ~100 console.log+chalk calls with log.*, note(), box()
  - Replaced ora spinner with @clack spinner
  - Module selection: autocompleteMultiselect with locked core module,
    bulleted post-selection display, maxItems for no-scroll

Spinner migration (installer.js):
  - Replaced 40+ ora spinner calls with @clack spinner
  - All spinner.stop() calls include meaningful messages
  - Failure paths use spinner.error() (red cross) instead of stop()

Readline migration (agent/installer.js + config-collector.js):
  - Migrated readline prompts to @clack text/confirm/select
  - Fixed chalk.dim bug (chalk was never imported)
  - Removed chalk from config-collector.js

IDE handlers + modules (7 files):
  - Replaced chalk+ora across all IDE handlers and module manager
  - Fixed options.installer undefined bug in manager.js update()

Cleanup:
  - Removed ora, boxen, figlet, wrap-ansi, cli-table3 from dependencies
  - chalk stays (used outside tools/cli/ scope)
  - Replaced hand-drawn Unicode update box in bmad-cli.js with box()
  - Added process.stdin.setMaxListeners(25) for sequential prompts

Spinner wrapper adds isSpinning state tracking (not native to @clack).
Removed dead groupMultiselect and sortKey sort calls.

Ref: tech-spec-installer-clack-migration-ui-enhancement.md

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

* feat(cli): consolidate installer output to single spinner + summary

Replace ~40 lines of output from 15+ spinner start/stop cycles with a
single animated spinner during installation and a final note() summary
block showing checkmarks per step.

Key changes:
- Add results collector pattern in install() method
- Replace spinner.stop/start pairs with addResult + spinner.message
- Add renderInstallSummary() using prompts.note() with colored output
- Propagate silent flag through IDE handlers and module manager
- Add spinner race condition guards (start while spinning, stop while stopped)
- Add no-op spinner pattern for silent external module cloning
- Fix stdin listener limit to be defensive with Math.max
- Add GIT_TERMINAL_PROMPT=0 for non-interactive git operations
- Merge locked values into initialValue for autocomplete prompts

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

* fix(cli): resolve code review findings from @clack/prompts migration

Address 31 issues across 14 CLI files found during PR #1586 review
(Augment Code + CodeRabbit):

- Fix bmadDir ReferenceError by hoisting declaration before try block
- Wrap console.log monkey-patch in try/finally for safe restoration
- Fix transformWorkflowPath dead code and undefined return path
- Fix broken symlink crash in _config-driven.js and codex.js cleanup
- Pass installer instance through update() for agent recompilation
- Fix @clack/prompts API: defaultValue→default, initialValue→default
- Use nullish coalescing (??) instead of logical OR for falsy values
- Forward options in recursive promptToolSelection calls
- Remove no-op replaceAll('_bmad','_bmad') in manager and generator
- Remove unused confirm prompt in config-collector hasNoConfig branch
- Guard spinner.message() when spinner is not running
- Add missing methods to silent spinner stub (cancel, clear, isSpinning)
- Wrap install.js error handler with inner try/catch + console fallback
- Gate codex per-entry error log with silent flag
- Add return statements to all stream wrapper methods
- Remove dead variables (availableNames, hasCustomContentItems)
- Filter core module from update flow selection
- Replace borderColor ternary chain with object map
- Fix Kilo "agents" label to "modes" in IDE manager
- Normalize error return shape for unsupported IDEs
- Fix spinner message timing before dependency resolution
- Guard undefined moduleDir in dependency-resolver
- Fix workflowsInstalled counter inflation in custom handler
- Migrate console.warn calls to prompts.log.warn
- Replace console.log() with prompts.log.message('')
- Fix legacyBmadPath hardcoded to .bmad instead of entry.name
- Fix focusedValue never assigned breaking SPACE toggle and hints

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-08 00:40:13 -06:00
Dicky Moore d7a55394c5 fix: define installed workflow paths in qa and create-story 2026-02-08 01:18:31 +00:00
Dicky Moore bd20d75998 fix: restore runtime workflow paths and standalone parsing 2026-02-08 01:13:23 +00:00
Dicky Moore cc141b93ac fix: resolve workflow guardrails and installer regressions 2026-02-08 00:37:42 +00:00
Dicky Moore d8e9caac1e fix: add workflow loader fallback guidance and guards 2026-02-07 22:51:38 +00:00
Dicky Moore 9b98cc1272 fix: correct workflow command defaults and bmm document config paths 2026-02-07 20:02:33 +00:00
Dicky Moore 0b3023cdf5 fix: harden install XML guard and remove no-op placeholder replacement 2026-02-07 17:37:51 +00:00
Dicky Moore 76df097957
Merge branch 'main' into phase1-md-workflows-clean 2026-02-07 17:27:21 +00:00
Alex Verkhovsky ecf7fbcb2c
docs: add description front matter to documentation pages (#1566) 2026-02-07 10:43:16 -06:00
Alex Verkhovsky cb73c05cf6
fix: use pull_request_target for CodeRabbit review trigger (#1583)
The workflow was failing with 403 "Resource not accessible by integration"
on fork PRs because pull_request events get read-only GITHUB_TOKEN
permissions for cross-repository PRs. Switching to pull_request_target
runs the workflow in the base repo context, granting write permissions
needed to post the @coderabbitai review comment.

This is safe because the workflow only posts a comment and does not
check out or execute any code from the PR branch.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 10:27:57 -06:00
Alex Verkhovsky 045b1fe148
chore: sync package-lock.json after archiver removal (#1580)
Removes leftover archiver dependencies from the lock file
following #1577.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-07 10:18:16 -06:00
Alex Verkhovsky 4c36c94c2d
chore: configure dual-mode AI code review (#1511)
Add Augment Code Review (audit mode) and CodeRabbit (adversarial mode):

Augment (.augment/code_review_guidelines.yaml):
- Workflow structure and step validation rules
- Agent definition validation
- Path placeholder enforcement
- JIT loading and HALT requirements

CodeRabbit (.coderabbit.yaml):
- Raven-style adversarial reviewer persona
- Finds logical contradictions and missing implementations
- No rule anchoring - reasons freely

Supporting changes:
- .gitignore: exclude .augment/ from ignore
- eslint.config.mjs: ignore .augment/ directory

fix: clarify .augment gitignore pattern and eslint comment

Add documentation comment to .gitignore explaining the .augment/*
exception pattern, and replace misleading eslint comment about
"underscores per their spec" with accurate description of vendor
config directory exclusion.

Addresses CodeRabbit findings F10 and F11 from PR #1511 review.

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

fix: remove redundant eslint ignore patterns

The broader glob patterns (dir/**) already match all files recursively,
making the more specific sub-patterns (dir/**/*.js, dir/**/*.md, etc.)
completely redundant. Similarly, _bmad*/** already covers _bmad/**.

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

fix: synchronize ignore baselines across CodeRabbit and Augment configs

Expand path exclusions in both PR review tools to a shared baseline:
- Mutual config exclusions (each tool ignores its own and others configs)
- Build output, vendored/generated files, package metadata, binary/media
- Test fixtures, non-project dirs, AI assistant dirs, build temp
- Generated reports

CodeRabbit goes from 1 exclusion to 32; Augment from 12 to 32.
ESLint already had comprehensive ignores and is unchanged.

Addresses CodeRabbit findings F2 and F4 from PR #1511 review.

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

fix: correct project name in Augment review guidelines

fix: remove instruction that explicitly encourages false positives
2026-02-07 09:17:41 -06:00
Dicky Moore f41430ec1c Finish step-flow migration for dev workflows and fix installer regressions 2026-02-07 15:05:03 +00:00
Dicky Moore 5744beaba3 Migrate remaining workflows to workflow.md and fix CLI/test regressions 2026-02-07 13:34:26 +00:00
Dicky Moore 5ca6922d74
Merge branch 'main' into phase1-md-workflows-clean 2026-02-07 12:55:39 +00:00
Alex Verkhovsky a8cda7c6fa
refactor: remove downloads page and bundle generation (#1577)
The downloads page offered bmad-sources.zip and bmad-prompts.zip, both
redundant: GitHub provides source archives for every tag natively, and
npx bmad-method install is the supported path for compiled prompts.

Remove the downloads page, all bundle generation code, the archiver
dependency, and nav links. The llms.txt and llms-full.txt files (the
genuinely useful artifacts) continue to be generated as before.
2026-02-06 23:26:39 -06:00
Alex Verkhovsky 97bfe0a485
chore: remove broken manual-release workflow and related artifacts (#1576)
The manual-release.yaml workflow has been broken since the v6 alpha
rewrite — it calls `npm run validate` which no longer exists. Releases
are now handled via the /draft-changelog and release skills instead.

- Delete .github/workflows/manual-release.yaml
- Delete tools/docs/BUNDLE_DISTRIBUTION_SETUP.md (references deleted workflow)
- Remove release:major/minor/patch/watch npm scripts (triggered deleted workflow)

Can be restored from git history if a CI-based release workflow is needed again.

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-06 23:21:55 -06:00
Brian Madison 6c2d0195d3 minor doc updates 2026-02-06 22:54:47 -06:00
Brian Madison 90d9204dc9 fix: update help task path from bmad-help.md to help.md
Update all references to the help task file from the old path
`_bmad/core/tasks/bmad-help.md` to the new path `_bmad/core/tasks/help.md`.

Affected files:
- 7 workflow step files across multiple workflows
- 1 IDE tool command generator (updated comments)
2026-02-06 21:27:14 -06:00
Brian Madison 09316ecc7f fix: remove forbidden workflow_path variable from step files
Remove the forbidden `workflow_path` frontmatter variable from 16 step files
across 3 workflows (quick-dev, quick-spec, check-implementation-readiness).
Per BMAD workflow standards, step files should use relative paths or
{project-root} references instead.

Changes:
- quick-dev (6 files): removed workflow_path and unused thisStepFile
- quick-spec (4 files): removed workflow_path, updated templateFile to use relative path
- check-implementation-readiness (6 files): removed workflow_path, updated all references to use relative paths

Also fixes incorrect path in check-implementation-readiness that referenced
non-existent 'implementation-readiness' folder instead of 'check-implementation-readiness'.

Fixes #1546
2026-02-06 21:16:14 -06:00
Brian Madison a79f581003 fix(technical-research): route step-05 to step-06 and fix stepsCompleted values
Fixes #1547

- step-05 now correctly routes to step-06-research-synthesis.md instead of presenting itself as the final step
- Fixed step-04 stepsCompleted: [1,2,3] → [1,2,3,4]
- Fixed step-05 stepsCompleted: [1,2,3,4] → [1,2,3,4,5]
- Fixed step-06 stepsCompleted: [1,2,3,4,5] → [1,2,3,4,5,6]
- Fixed step-05 title from "Step 4" to "Step 5"
- Fixed step-06 title from "Step 5" to "Step 6"
- Updated success/failure metrics and NEXT STEP sections

This mirrors the fix applied to market research in Beta.5, ensuring the technical research workflow properly completes through all 6 steps.
2026-02-06 20:49:54 -06:00
Michael Pursifull dbb754f085
fix(party-mode): add return protocol to prevent lost-in-the-middle failures (#1569)
After Party Mode completes within a parent workflow, the LLM fails to
re-present the parent workflow's completion menu due to lost-in-the-middle
effect at 50-100K tokens. The parent workflow instructions get pushed into
mid-context where they are no longer proactively recalled.

Add a Return Protocol section to step-03-graceful-exit.md that instructs
the LLM to:
1. Identify the parent workflow that invoked party-mode
2. Re-read that file to restore context
3. Resume from the invocation point
4. Present required menus/options

This is platform-independent prompt engineering that forces proactive
re-reading rather than relying on mid-context recall.

Fixes #1319

Co-authored-by: Brian <bmadcode@gmail.com>
2026-02-06 20:43:12 -06:00
Michael Pursifull c1a927ae8d
refactor: replace 'invoke/run' with 'load and follow' in workflow prompts (#1570)
- Replace "invoke the review task" with "load and follow the review task"
- Replace "run this step/task" with "load this step/task"
- Aligns with canonical phrasing from PR #1387

Closes #1378
2026-02-06 20:32:44 -06:00
Brian Madison 33f78a3bf9 6.0.0-Beta.7 2026-02-06 18:01:57 -06:00