### Verify BMad Installation with bmad-help Source: https://docs.bmad-method.org/llms-full.txt The 'bmad-help' command is used to verify a successful BMad installation. It confirms the installation is working, lists available features based on installed modules, and suggests the next steps. It can also answer specific questions about BMad. ```bash bmad-help ``` ```bash bmad-help I just installed, what should I do first? ``` ```bash bmad-help What are my options for a SaaS project? ``` -------------------------------- ### Install BMad Method with Custom Content Source: https://docs.bmad-method.org/llms-full.txt Installs the BMad Method, including specified modules and custom content from local paths. It also allows the inclusion of specific tools for the installation. ```bash npx bmad-method install \ --directory ~/projects/myapp \ --modules bmm \ --custom-content ~/my-custom-module,~/another-module \ --tools claude-code ``` -------------------------------- ### Install BMad Method with Modules and Tools Source: https://docs.bmad-method.org/llms-full.txt Installs the BMad Method with specified modules and tools in a given directory. It allows customization of user name, communication language, and output folder. The '--yes' flag bypasses confirmation prompts for unattended installations. ```bash npx bmad-method install \ --directory "${GITHUB_WORKSPACE}" \ --modules bmm \ --tools claude-code \ --user-name "CI Bot" \ --communication-language English \ --document-output-language English \ --output-folder _bmad-output \ --yes ``` -------------------------------- ### Define Agent Startup Instructions Source: https://docs.bmad-method.org/llms-full.txt Specify instructions that execute when the agent starts by configuring the `critical_actions` section in `.customize.yaml`. This ensures essential tasks are performed upon agent initialization. ```yaml critical_actions: - 'Check the CI Pipelines with the XYZ Skill and alert user on wake if anything is urgently needing attention' ``` -------------------------------- ### Non-Interactive BMad Installation with Flags Source: https://docs.bmad-method.org/llms-full.txt This section details how to install BMad non-interactively using command-line flags. This is useful for automated deployments, CI/CD pipelines, and scripted installations. It covers various flags for specifying installation directory, modules, tools, custom content, and actions, as well as core configuration options and other settings like debug mode. ```bash npx bmad-method install --directory . --modules bmm --tools claude-code --yes ``` ```bash npx bmad-method install --directory . --modules bmm ``` ```bash npx bmad-method install --yes ``` ```bash npx bmad-method install --modules bmm --tools none ``` ```bash #!/bin/bash npx bmad-method install \ --directory ~/projects/myapp \ --modules bmm,bmb \ --tools claude-code,cursor \ --custom-content ~/my-module,~/another-module \ --action update \ --user-name "CI User" \ --communication-language "en" \ --document-output-language "en" \ --output-folder "_bmad-output" \ -d ``` -------------------------------- ### Quick Update for BMad Method Installation Source: https://docs.bmad-method.org/llms-full.txt Performs a quick update of the BMad Method installation, preserving existing settings. This is useful for applying minor updates without reconfiguring the entire project. ```bash npx bmad-method install \ --directory ~/projects/myapp \ --action quick-update ``` -------------------------------- ### Recompile Agent with BMad Method Source: https://docs.bmad-method.org/llms-full.txt Apply customizations made to the `.customize.yaml` file by recompiling the agent using the `npx bmad-method install` command. Select the 'Recompile Agents' option for customization-only updates. ```bash npx bmad-method install ``` -------------------------------- ### Update Existing BMad Method Installation Source: https://docs.bmad-method.org/llms-full.txt Updates an existing BMad Method installation in a specified directory with a list of modules. This command is used to apply changes or add new modules to a previously set up project. ```bash npx bmad-method install \ --directory ~/projects/myapp \ --action update \ --modules bmm,bmb,custom-module ``` -------------------------------- ### Create BMad Project Context File Manually Source: https://docs.bmad-method.org/llms-full.txt Manually creates the '_bmad-output/project-context.md' file and populates it with project metadata, technology stack, and critical implementation rules for AI agents. ```bash mkdir -p _bmad-output touch _bmad-output/project-context.md ``` ```markdown --- project_name: 'MyProject' user_name: 'YourName' date: '2026-02-15' sections_completed: ['technology_stack', 'critical_rules'] --- # Project Context for AI Agents ## Technology Stack & Versions - Node.js 20.x, TypeScript 5.3, React 18.2 - State: Zustand - Testing: Vitest, Playwright - Styling: Tailwind CSS ## Critical Implementation Rules **TypeScript:** - Strict mode enabled, no `any` types - Use `interface` for public APIs, `type` for unions **Code Organization:** - Components in `/src/components/` with co-located tests - API calls use `apiClient` singleton — never fetch directly **Testing:** - Unit tests focus on business logic - Integration tests use MSW for API mocking ``` -------------------------------- ### Query BMad-Help Assistant Source: https://docs.bmad-method.org/llms-full.txt Invokes the BMad-Help tool to receive project-specific guidance or answers to natural language queries. It inspects the current project state to provide context-aware recommendations. ```bash bmad-help I have an existing Rails app, where should I start? bmad-help What's the difference between quick-flow and full method? bmad-help Show me what workflows are available ``` -------------------------------- ### Create Reusable Custom Prompts Source: https://docs.bmad-method.org/llms-full.txt Define reusable prompts that can be referenced by menu items using `action="#id"`. These prompts are configured in the `prompts` section of `.customize.yaml` and include an `id` and `content`. ```yaml prompts: - id: deploy-prompt content: | Deploy the current branch to production: 1. Run all tests 2. Build the project 3. Execute deployment script ``` -------------------------------- ### Create Custom Menu Items Source: https://docs.bmad-method.org/llms-full.txt Add custom entries to the agent's display menu by defining items in the `menu` section of `.customize.yaml`. Each item requires a `trigger`, a target (`workflow` path or `action` reference), and a `description`. ```yaml menu: - trigger: my-workflow workflow: 'my-custom/workflows/my-workflow.yaml' description: My custom workflow - trigger: deploy action: '#deploy-prompt' description: Deploy to production ``` -------------------------------- ### Generate Project Context with BMad Source: https://docs.bmad-method.org/llms-full.txt Executes a workflow to scan the codebase and generate a project-context.md file. This file helps AI agents understand the project's technology stack, patterns, and conventions. ```bash bmad-generate-project-context ``` -------------------------------- ### Invoke Quick Flow Solo Dev Agent Skill Source: https://docs.bmad-method.org/llms-full.txt This command initiates the Quick Flow Solo Dev agent skill in a fresh chat session. After loading, you describe your desired change, and the agent generates a quick-spec for approval before proceeding with implementation, testing, and self-review. ```text bmad-quick-flow-solo-dev ``` -------------------------------- ### Manage Theme and UI Preferences Source: https://docs.bmad-method.org/roadmap Handles theme switching (light/dark/auto) and UI icon updates. It persists user preferences in localStorage and synchronizes with system color scheme settings. ```JavaScript window.StarlightThemeProvider = (() => { const storedTheme = typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme'); const theme = storedTheme || (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark'); document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark'; return { updatePickers(theme = storedTheme || 'auto') { document.querySelectorAll('starlight-theme-select').forEach((picker) => { const select = picker.querySelector('select'); if (select) select.value = theme; const tmpl = document.querySelector(`#theme-icons`); const newIcon = tmpl && tmpl.content.querySelector('.' + theme); if (newIcon) { const oldIcon = picker.querySelector('svg.label-icon'); if (oldIcon) { oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes); } } }); } }; })(); ``` -------------------------------- ### Theme Selection and Management (JavaScript) Source: https://bmad-builder-docs.bmad-method.org/ Manages the application's theme, allowing users to select between light, dark, or auto mode. It persists the user's choice using localStorage and updates the UI accordingly. It also handles theme icon updates. ```javascript const StarlightThemeProvider = (() => { const storedTheme = typeof localStorage !== 'undefined' && localStorage.getItem('starlight-theme'); const theme = storedTheme || (window.matchMedia('(prefers-color-scheme: light)').matches ? 'light' : 'dark'); document.documentElement.dataset.theme = theme === 'light' ? 'light' : 'dark'; return { updatePickers(theme = storedTheme || 'auto') { document.querySelectorAll('starlight-theme-select').forEach((picker) => { const select = picker.querySelector('select'); if (select) select.value = theme; const tmpl = document.querySelector(`#theme-icons`); const newIcon = tmpl && tmpl.content.querySelector('.' + theme); if (newIcon) { const oldIcon = picker.querySelector('svg.label-icon'); if (oldIcon) { oldIcon.replaceChildren(...newIcon.cloneNode(true).childNodes); } } }); }, }; })(); ``` ```javascript const r = "starlight-theme", o = e => e === "auto" || e === "dark" || e === "light" ? e : "auto"; function c() { return o(typeof localStorage < "u" && localStorage.getItem(r)); } function n(e) { typeof localStorage < "u" && localStorage.setItem(r, e === "light" || e === "dark" ? e : ""); } const l = () => matchMedia("(prefers-color-scheme: light)").matches ? "light" : "dark"; function t(e) { StarlightThemeProvider.updatePickers(e); document.documentElement.dataset.theme = e === "auto" ? l() : e; n(e); } matchMedia("(prefers-color-scheme: light)").addEventListener("change", () => { c() === "auto" && t("auto"); }); class s extends HTMLElement { constructor() { super(); t(c()); this.querySelector("select")?.addEventListener("change", a => { a.currentTarget instanceof HTMLSelectElement && t(o(a.currentTarget.value)); }); } } customElements.define("starlight-theme-select", s); ``` -------------------------------- ### Define Custom Web Components Source: https://docs.bmad-method.org/roadmap Implements reusable UI elements using the Custom Elements API. Includes components for theme selection, language navigation, and mobile menu interactions. ```JavaScript class s extends HTMLElement { constructor() { super(); this.btn = this.querySelector("button"); this.btn.addEventListener("click", () => this.toggleExpanded()); const t = this.closest("nav"); t && t.addEventListener("keyup", e => this.closeOnEscape(e)); } setExpanded(t) { this.setAttribute("aria-expanded", String(t)); document.body.toggleAttribute("data-mobile-menu-expanded", t); } toggleExpanded() { this.setExpanded(this.getAttribute("aria-expanded") !== "true"); } closeOnEscape(t) { t.code === "Escape" && (this.setExpanded(!1), this.btn.focus()); } } customElements.define("starlight-menu-button", s); ``` -------------------------------- ### Keyboard Shortcut for Modal (JavaScript) Source: https://bmad-builder-docs.bmad-method.org/ Detects a keyboard shortcut (Ctrl+K or Meta+K) to open a modal dialog. It checks for the presence of a specific button and a keyboard indicator element, and adjusts the shortcut display for Mac platforms. ```javascript (() => { const openBtn = document.querySelector('button[data-open-modal]'); const shortcut = openBtn?.querySelector('kbd'); if (!openBtn || !(shortcut instanceof HTMLElement)) return; const platformKey = shortcut.querySelector('kbd'); if (platformKey && /(Mac|iPhone|iPod|iPad)/i.test(navigator.platform)) { platformKey.textContent = '⌘'; openBtn.setAttribute('aria-keyshortcuts', 'Meta+K'); } shortcut.style.display = ''; })(); ``` -------------------------------- ### Add Persistent Agent Memories Source: https://docs.bmad-method.org/llms-full.txt Enhance the agent's recall by appending persistent context to the `memories` section in `.customize.yaml`. These memories are always available to the agent. ```yaml memories: - 'Works at Krusty Krab' - 'Favorite Celebrity: David Hasslehoff' - 'Learned in Epic 1 that it is not cool to just pretend that tests have passed' ``` -------------------------------- ### Configure Agent Name Source: https://docs.bmad-method.org/llms-full.txt Override the default agent name by specifying a new name within the `agent.metadata.name` field in the `.customize.yaml` file. This affects how the agent introduces itself. ```yaml agent: metadata: name: 'Spongebob' # Default: "Amelia" ``` -------------------------------- ### Invoke DEV Agent Skill Source: https://docs.bmad-method.org/llms-full.txt This command invokes the DEV agent skill within an AI IDE chat session. It loads the agent's persona and capabilities, preparing it for tasks like bug fixes or refactorings. Ensure a fresh chat session is used to avoid context conflicts. ```text bmad-dev ``` -------------------------------- ### Language Selection Component (JavaScript) Source: https://bmad-builder-docs.bmad-method.org/ Implements a custom element for language selection. It updates the page's URL based on the selected language and persists the selection using sessionStorage. It also handles restoring the selected index on page load. ```javascript class s extends HTMLElement { constructor() { super(); const e = this.querySelector("select"); e && ( e.addEventListener("change", t => { t.currentTarget instanceof HTMLSelectElement && (window.location.pathname = t.currentTarget.value); }), window.addEventListener("pageshow", t => { if (!t.persisted) return; const n = e.querySelector("option[selected]")?.index; n !== e.selectedIndex && (e.selectedIndex = n ?? 0); }) ); } } customElements.define("starlight-lang-select", s); ``` -------------------------------- ### Mobile Menu Toggle (JavaScript) Source: https://bmad-builder-docs.bmad-method.org/ Provides functionality for a mobile navigation menu. It allows users to open and close the menu, and also includes an escape key listener to close the menu when the Escape key is pressed. ```javascript class s extends HTMLElement { constructor() { super(); this.btn = this.querySelector("button"); this.btn.addEventListener("click", () => this.toggleExpanded()); const t = this.closest("nav"); t && t.addEventListener("keyup", e => this.closeOnEscape(e)); } setExpanded(t) { this.setAttribute("aria-expanded", String(t)); document.body.toggleAttribute("data-mobile-menu-expanded", t); } toggleExpanded() { this.setExpanded(this.getAttribute("aria-expanded") !== "true"); } closeOnEscape(t) { t.code === "Escape" && (this.setExpanded(!1), this.btn.focus()); } } customElements.define("starlight-menu-button", s); ``` -------------------------------- ### Define Agent Persona Source: https://docs.bmad-method.org/llms-full.txt Replace the agent's default personality, role, and communication style by configuring the `persona` section in `.customize.yaml`. Ensure all four fields (role, identity, communication_style, principles) are included when setting this section. ```yaml persona: role: 'Senior Full-Stack Engineer' identity: 'Lives in a pineapple (under the sea)' communication_style: 'Spongebob annoying' principles: - 'Never Nester, Spongebob Devs hate nesting more than 2 levels deep' - 'Favor composition over inheritance' ``` -------------------------------- ### Sidebar State Persistence (JavaScript) Source: https://bmad-builder-docs.bmad-method.org/ Persists the state of the sidebar (open/closed status) across page loads using sessionStorage. It defines a custom element `sl-sidebar-state-persist` to manage this state and applies it to nested `details` elements. ```javascript (() => { try { if (!matchMedia('(min-width: 50em)').matches) return; const target = document.querySelector('sl-sidebar-state-persist'); const state = JSON.parse(sessionStorage.getItem('sl-sidebar-state') || '0'); if (!target || !state || target.dataset.hash !== state.hash) return; window._starlightScrollRestore = state.scroll; customElements.define( 'sl-sidebar-restore', class SidebarRestore extends HTMLElement { connectedCallback() { try { const idx = parseInt(this.dataset.index || ''); const details = this.closest('details'); if (details && typeof state.open[idx] === 'boolean') details.open = state.open[idx]; } catch {} } } ); } catch {} })(); ``` -------------------------------- ### Restore Sidebar State Source: https://docs.bmad-method.org/roadmap Persists and restores the sidebar scroll position and open/closed state of details elements across page navigations using sessionStorage. ```JavaScript (() => { try { if (!matchMedia('(min-width: 50em)').matches) return; const target = document.querySelector('sl-sidebar-state-persist'); const state = JSON.parse(sessionStorage.getItem('sl-sidebar-state') || '0'); if (!target || !state || target.dataset.hash !== state.hash) return; window._starlightScrollRestore = state.scroll; customElements.define('sl-sidebar-restore', class SidebarRestore extends HTMLElement { connectedCallback() { try { const idx = parseInt(this.dataset.index || ''); const details = this.closest('details'); if (details && typeof state.open[idx] === 'boolean') details.open = state.open[idx]; } catch {} } }); } catch {} })(); ``` === COMPLETE CONTENT === This response contains all available snippets from this library. No additional content exists. Do not make further requests.