Commit Graph

33 Commits

Author SHA1 Message Date
sidtheone 8d690da99a feat: add Claude Code hotfix for interaction_style variable reference
Standalone instruction file that patches existing BMAD installations
to use explicit {interaction_style} session variable lookup with
open-mode default fallback.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 16:35:37 +01:00
sidtheone cc59e1cdb8 feat: change interaction_style default from structured to open
- Update module.yaml default to "open" and reorder options
- Change fallback in all 40 RULE directives from "default to structured
  mode" to "default to open mode"

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:57:23 +01:00
sidtheone 079bcc98d4 fix: update remaining src files and remove duplicate RULE lines from merge
- Apply explicit {interaction_style} variable reference to handler-action,
  handler-exec, handler-workflow, agent-command-header, and workflow.xml
- Remove old duplicate RULE lines left over from merge conflict resolution
  in 10 template files (default-task/tool, rovodev, opencode-workflow*,
  gemini-agent/task/tool/workflow/workflow-yaml)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:54:52 +01:00
sidtheone f6ff60d165 merge: bring in platform-specific templates and explicit variable references
Merges feature/platform-specific-structured-interaction which adds:
- Per-IDE template variants (claude, opencode, gemini, kiro, etc.)
- Explicit {interaction_style} session variable lookup in all RULE directives
- Fallback default to structured mode when variable is undetermined

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:53:09 +01:00
sidtheone 536c484c7d fix: use explicit variable reference in interaction_style RULE
Change all 34 RULE directives from bare "When interaction_style is"
to explicit "Check your stored {interaction_style} session variable
from activation step 2" with a fallback default to structured mode.

Addresses cynical review finding that LLMs struggle with implicit
natural-language conditionals and need explicit variable lookup
instructions plus failure mode handling.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:52:30 +01:00
sidtheone 6feeec9e75 style: add EVERY to all RULE directives for consistency
Standardize all 27 template RULE lines to use "EVERY question"
phrasing. The free-form escape clause prevents over-restriction
while EVERY strengthens the default structured behavior.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 13:30:38 +01:00
sidtheone fd80bb6259 style: backtick tool names in opencode templates for clarity
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:37:48 +01:00
sidtheone 85e81389ee feat: add dedicated Claude Code templates with AskUserQuestion tool
Create claude-specific template set (agent, task, tool, workflow,
workflow-yaml) that explicitly references the `AskUserQuestion` tool,
matching how gemini/kiro/opencode each have their own templates with
IDE-specific tool names.

- Change Claude Code template_type from "default" to "claude" in
  platform-codes.yaml
- Replace symlinks with real template files
- Create new claude-task.md and claude-tool.md
- default-* templates remain as generic fallbacks for cursor, auggie,
  and other IDEs using numbered-list wording
- Fix default-tool.md RULE placement (move before execution instructions)

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:36:54 +01:00
sidtheone dc6c1a1b45 refactor: simplify RULE wording with free-form escape clause
Replace emphatic "EVERY...MUST...Do NOT...No exceptions" phrasing with
clearer natural language that includes an explicit free-form override.
Research shows single clear sentences with conditional logic outperform
stacked absolute directives for LLM compliance.

New wording: "questions to the user MUST use structured options with a
numbered list unless the workflow or user explicitly requests free-form
input."

Also extracts RULE from step 4 in gemini-task.toml to standalone.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 12:24:29 +01:00
sidtheone 57018815f6 fix: address PR review — standardize templates and document config settings
- Replace Claude-specific AskUserQuestion in default-* templates with generic
  numbered-list wording since these are universal fallbacks for all IDEs
- Fix hardcoded _bmad paths to use {{bmadFolderName}} in antigravity, rovodev,
  trae, windsurf-workflow, and default-agent templates
- Extract RULE from numbered steps to standalone directive in gemini and
  opencode workflow/tool templates
- Standardize RULE wording: add "Do NOT ask open-ended inline questions" to
  all templates missing it for consistency
- Move RULE before execution instructions in default-task and rovodev templates
- Add {document_output_language} to activation-steps session variables
- Add interaction_style confirmation to gemini-agent preflight checklist
- Document all config settings including interaction_style in install guide

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 09:29:44 +01:00
sidtheone 6522e8e92a feat: use platform-specific tool names for Gemini (ask_user) and OpenCode (question)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 01:06:05 +01:00
sidtheone 3d4da09ac3 test: IDE templates + interaction_style config only
Isolated test branch with just IDE template rules and module.yaml config.
No core agent-component or workflow.xml changes.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 00:55:47 +01:00
sidtheone b7f18ba28b feat: add configurable structured interaction directive to agent activation
Adds a new `interaction_style` config option (structured/open) to core
module.yaml so users can choose how agents ask questions. When set to
"structured" (default), agents present numbered option lists and wait
for selection. When "open", agents ask questions naturally.

Changes:
- src/core/module.yaml: new interaction_style config with single-select
- activation-rules.txt: conditional rule based on {interaction_style}
- activation-steps.txt: include {interaction_style} in stored variables

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-28 00:48:12 +01:00
Davor Racic 6bfc937bd3
fix(installer): OpenCode integration: replace `name` frontmatter with `mode: all` and update directory names (#1764)
* fix(opencode): use mode: all in agent template, remove name frontmatter, fix directory names

- Replace name: '{{name}}' with mode: all in opencode-agent.md
  mode: all enables both Tab-key agent switching in the TUI and @subagent
  invocation via the Task tool (mode: primary blocked subagent use)
- Remove name: '{{name}}' from opencode-task/tool/workflow/workflow-yaml templates
  OpenCode derives command name from filename, not from a name frontmatter field;
  the bare {{name}} value was overriding the bmad- prefixed filename causing
  name collisions with built-in OpenCode commands (fixes #1762)
- Fix deprecated singular directory names in platform-codes.yaml:
  .opencode/agent -> .opencode/agents, .opencode/command -> .opencode/commands
- Add legacy_targets migration: cleanup() now removes stale bmad-* files from
  old singular directories on reinstall so existing users don't get duplicates
- Fix removeEmptyParents to continue walking up to parent when starting dir is
  already absent instead of breaking early

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

* fix(opencode): address code review findings for cleanup and schema docs

- Add project boundary guard to removeEmptyParents() using path.resolve
  and startsWith check to prevent traversal outside projectDir (Augment)
- Fix JSDoc: "Recursively remove" -> "Walk up ancestor directories"
- Add user-visible migration log message when processing legacy_targets
- Document legacy_targets field in Installer Config Schema comment block
  in platform-codes.yaml (CodeRabbit + Augment)

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

* fix(opencode): improve removeEmptyParents error handling and loop clarity

- Distinguish recoverable errors (ENOTEMPTY, ENOENT) from fatal errors in
  removeEmptyParents() catch block — skip level and continue upward on
  TOCTOU races or concurrent removal, break only on fatal errors (EACCES)
- Add comment clarifying loop invariant for missing-path continue branch

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

---------

Co-authored-by: Claude Sonnet 4.6 <noreply@anthropic.com>
Co-authored-by: Brian <bmadcode@gmail.com>
2026-02-25 11:12:05 -06:00
PinkyD 97a533e298
fix(installer): remove double-escaping of quotes in CSV manifest pipeline (#1746)
* fix(installer): remove double-escaping of quotes in CSV manifest pipeline

cleanForCSV() pre-escaped " to "" before storing in memory, then
escapeCsv() escaped again at CSV write time. After csv-parse round-trip
(which only un-escapes once), descriptions retained doubled quotes
instead of originals, corrupting generated output files.

Fix: remove the redundant quote escaping from cleanForCSV() since
escapeCsv() already handles CSV quoting correctly at write time.

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

* fix(installer): use single quotes for description in Gemini workflow templates

Replace triple-quoted """{{description}}""" with single-quoted '{{description}}'
to avoid TOML escaping issues in Gemini workflow templates.

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

---------

Co-authored-by: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-24 18:43:33 -06:00
Brian Madison 1d49fe1802 feat(templates): remove disable-model-invocation to enable workflow skill calls
This change removes the disable-model-invocation flag from all IDE installer
templates. By allowing model invocation, bmad help can now properly invoke
suggested workflows as direct skill calls, improving the user experience by
enabling automatic workflow execution when desired.
2026-02-22 16:38:05 -06:00
Adam Biggs b815410904
fix(opencode): remove incorrect mode: primary and restore name field in templates (#1644)
Remove hallucinated mode: primary from opencode-agent template - OpenCode
defaults to mode: all and mode: primary does not enable Tab-switching as
the original PR #1556 claimed. Restore the name frontmatter field across
all OpenCode templates to match the standard pattern used by other IDEs.
2026-02-12 18:58:13 -06:00
Alex Verkhovsky fc5ef57a5a
feat: add Kiro IDE support via config-driven installer (#1589)
Replace broken kiro-cli.js custom installer with config-driven approach
using platform-codes.yaml. Creates Kiro-specific templates with
inclusion: manual frontmatter and #[[file:...]] reference syntax.
2026-02-08 09:18:28 -06:00
Davor Racic f7b5f03800
refactor: consolidate OpenCode templates and add support for tasks, tools, and workflows (#1556)
- Move opencode/body.md to combined/opencode-agent.md with frontmatter
- Add combined templates for tasks, tools, and workflows (both .md and .yaml)
- Replace hardcoded _bmad path with {{bmadFolderName}} variable
- Remove split/opencode/ templates (header.md, body.md)
- Add .gitkeep to preserve empty split/ directory
2026-02-06 07:28:09 -06:00
Davor Racic 5b80649d3a
fix(installer): Multiple installer fixes (#1492)
* fix: support CRLF line endings and add task/tool templates for all IDEs

* fix: preserve file extensions in IDE task/tool paths and update BMAD branding

* fix: double extension issue in wrapper filename generation

* fix: correct path handling and variable reference in task/tool command generator

* fix: change default BMAD folder name from 'bmad' to '_bmad' across all IDE components

* refactor: centralize BMAD_FOLDER_NAME constant in path-utils

* fix: Replace the rest of BMAD_FOLDER magic values

* fix: add safety checks for setBmadFolderName method calls in IdeManager

* fix: convert absolute paths to relative in task-tool-command-generator

* fix: support .xml task files in bmad-artifacts task discovery

* fix: skip internal tasks in manifest generation and IDE command discovery

* fix: skip empty artifact_types targets and remove unused vscode_settings target

* fix: skip internal tools in manifest generation and improve Windows path handling in command generator

* fix: use csv-parse library for proper CSV handling in manifest generation

* refactor: extract CSV text cleaning to reusable method in manifest generator

* fix: normalize path separators to forward slashes in agent file copying for cross-platform compatibility

---------

Co-authored-by: Alex Verkhovsky <alexey.verkhovsky@gmail.com>
Co-authored-by: Brian <bmadcode@gmail.com>
2026-02-03 17:36:54 -06:00
Alex Verkhovsky 53220420a5
fix: add disable-model-invocation to all generated slash commands (#1501)
Prevents Claude from auto-invoking BMad skills without explicit user
request. Adds disable-model-invocation: true frontmatter to all
command templates and inline generators for Claude Code and Codex.

Co-authored-by: Brian <bmadcode@gmail.com>
2026-01-31 17:25:31 -06:00
Davor Racic 181aeac04a
fix(ide): add support for Gemini CLI TOML format (#1431)
* fix(ide): add support for Gemini CLI TOML format

* fix(ide): Added normalization for config.extension, added .yml to the extension array

---------

Co-authored-by: Brian <bmadcode@gmail.com>
2026-01-27 21:56:12 -08:00
Brian Madison 6a282f86b4 allow updates from any beta, warn on alpha and v4 2026-01-26 17:33:02 -06:00
Brian Madison 27c18e0020 installer fix 2026-01-26 16:06:00 -06:00
Alex Verkhovsky 91f6c41be1
docs: radical reduction of documentation scope for v6 beta (#1406)
* docs: radical reduction of documentation scope for v6 beta

Archive and basement unreviewed content to ship a focused, minimal doc set.

Changes:
- Archive stale how-to workflow guides (will rewrite for v6)
- Archive outdated explanation and reference content
- Move unreviewed content to basement for later review
- Reorganize TEA docs into dedicated /tea/ section
- Add workflow-map visual reference page
- Simplify getting-started tutorial and sidebar navigation
- Add explanation pages: brainstorming, adversarial-review, party-mode,
  quick-flow, advanced-elicitation
- Fix base URL handling for subdirectory deployments (GitHub Pages forks)

The goal is a minimal, accurate doc set for beta rather than
comprehensive but potentially misleading content.

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

* refactor: restructure BMM and agents documentation by consolidating and flattening index files.

---------

Co-authored-by: Claude Opus 4.5 <noreply@anthropic.com>
2026-01-25 14:00:26 -06:00
Brian Madison 85339708e6 normalize commands 2026-01-25 03:56:40 -06:00
Brian Madison b4f230f565 installer standardization 2026-01-25 03:56:40 -06:00
Brian Madison 25c79e3fe5 folder rename from .bmad to _bmad 2025-12-13 16:22:34 +08:00
Brian Madison 446a0359ab fix bmb workflow paths 2025-12-10 20:50:24 +09:00
Brian Madison 1697a45376 sidecar content goes to custom core config location 2025-12-06 21:08:57 -06:00
Brian Madison aa1cf76f88 new workflow types generate slash commands 2025-12-03 21:36:24 -06:00
Brian Madison f49a4731e7 agents now are not duplicated and isntead cli commmands load from installed agent files 2025-11-09 20:24:56 -06:00
Brian Madison 7eb52520fa Major Enhancements:
- Installation path is now fully configurable, allowing users to specify custom installation directories during setup
  - Default installation location changed to .bmad (hidden directory) for cleaner project root organization

    Web Bundle Improvements:

    - All web bundles (single agent and team) now include party mode support for multi-agent collaboration!
    - Advanced elicitation capabilities integrated into standalone agents
    - All bundles enhanced with party mode agent manifests
    - Added default-party.csv files to bmm, bmgd, and cis module teams
    - The default party file is what will be used with single agent bundles. teams can customize for different party configurations before web bundling through a setting in the team yaml file
    - New web bundle outputs for all agents (analyst, architect, dev, pm, sm, tea, tech-writer, ux-designer, game-*, creative-squad)

    Phase 4 Workflow Updates (In Progress):

    - Initiated shift to separate phase 4 implementation artifacts from documentation
        - Phase 4 implementation artifacts (stories, code review, sprint plan, context files) will move to dedicated location outside docs folder
        - Installer questions and configuration added for artifact path selection
        - Updated workflow.yaml files for code-review, sprint-planning, story-context, epic-tech-context, and retrospective workflows to support this, but still might require some udpates

    Additional Changes:

    - New agent and action command header models for standardization
    - Enhanced web-bundle-activation-steps fragment
    - Updated web-bundler.js to support new structure
    - VS Code settings updated for new .bmad directory
    - Party mode instructions and workflow enhanced for better orchestration

   IDE Installer Updates:

    - Show version number of installer in cli
    - improved Installer UX
    - Gemini TOML Improved to have clear loading instructions with @ commands
    - All tools agent launcher mds improved to use a central file template critical indication isntead of hardcoding in 2 different locations.
2025-11-09 17:39:05 -06:00