Compare commits

...

22 Commits

Author SHA1 Message Date
DrBalls
b756790c17 Add Creative Writing expansion pack (#414)
* Add Creative Writing expansion pack
- 10 specialized writing agents for fiction and narrative design
- 8 complete workflows (novel, screenplay, short story, series)
- 27 quality checklists for genre and technical validation
- 22 writing tasks covering full creative process
- 8 professional templates for structured writing
- KDP publishing integration support

* Fix bmad-creative-writing expansion pack formatting and structure

- Convert all agents to standard BMAD markdown format with embedded YAML
- Add missing core dependencies (create-doc, advanced-elicitation, execute-checklist)
- Add bmad-kb.md customized for creative writing context
- Fix agent dependency references to only include existing files
- Standardize agent command syntax and activation instructions
- Clean up agent dependencies for beta-reader, dialog-specialist, editor, genre-specialist, narrative-designer, and world-builder

---------

Co-authored-by: Brian <bmadcode@gmail.com>
2025-08-16 23:55:43 -05:00
Anthony
49347a8cde Feat(Expansion Pack): Part 2 - Agent System Templates (#370)
Co-authored-by: Brian <bmadcode@gmail.com>
2025-08-16 23:47:30 -05:00
Brian, with AI
335e1da271 fix: add default current directory to installer prompt (#444)
Previously users had to manually type the full path or run pwd to get
the current directory when installing BMad. Now the installer prefills
the current working directory as the default, improving UX.

Co-authored-by: its-brianwithai <brian@ultrawideturbodev.com>
2025-08-16 22:08:06 -05:00
Brian Madison
6e2fbc6710 docs: add sync-version.sh script to troubleshooting section 2025-08-16 22:03:19 -05:00
Brian Madison
45dd7d1bc5 add: sync-version.sh script for easy version syncing 2025-08-16 22:02:12 -05:00
manjaroblack
db80eda9df refactor: centralize qa paths in core-config.yaml and update agent activation flows (#451)
Co-authored-by: Brian <bmadcode@gmail.com>
2025-08-16 21:38:33 -05:00
Brian Madison
f5272f12e4 sync: update to published version 5.1.3 2025-08-16 21:35:12 -05:00
Brian Madison
26890a0a03 sync: update versions to 5.1.2 to match published release 2025-08-16 21:20:17 -05:00
Brian Madison
cf22fd98f3 fix: correct version to 5.1.1 after patch release
- npm latest tag now correctly points to 5.1.0
- package.json updated to 5.1.1 (what patch should have made)
- installer version synced
2025-08-16 21:10:46 -05:00
Brian Madison
fe318ecc07 sync: update package.json to match published version 5.0.1 2025-08-16 21:09:36 -05:00
Brian Madison
f959a07bda fix: update installer package.json version to 5.1.0
- Fixes version reporting in npx bmad-method --version
- Ensures installer displays correct version number
2025-08-16 21:04:32 -05:00
Brian Madison
c0899432c1 fix: simplify npm publishing to use latest tag only
- Remove stable tag complexity from workflow
- Publish directly to latest tag (default for npx)
- Update documentation to reflect single tag approach
2025-08-16 20:58:22 -05:00
Brian Madison
8573852a6e docs: update versioning and releases documentation
- Replace old semantic-release documentation with new simplified system
- Document command line release workflow (npm run release:*)
- Explain automatic release notes generation and categorization
- Add troubleshooting section and preview functionality
- Reflect current single @stable tag installation approach
2025-08-16 20:50:22 -05:00
Brian Madison
39437e9268 fix: handle protected branch in manual release workflow
- Allow workflow to continue even if push to main fails
- This is expected behavior with protected branches
- NPM publishing and GitHub releases will still work
2025-08-16 20:44:00 -05:00
Brian Madison
1772a30368 fix: enable version bumping in manual release workflow
- Fix version-bump.js to actually update package.json version
- Add tag existence check to prevent duplicate tag errors
- Remove semantic-release dependency from version bumping
2025-08-16 20:42:35 -05:00
Brian Madison
ba4fb4d084 feat: add convenient npm scripts for command line releases
- npm run release:patch/minor/major for triggering releases
- npm run release:watch for monitoring workflow progress
- One-liner workflow: preview:release && release:minor && release:watch
2025-08-16 20:38:58 -05:00
Brian Madison
3eb706c49a feat: enhance manual release workflow with automatic release notes
- Add automatic release notes generation from commit history
- Categorize commits into Features, Bug Fixes, and Maintenance
- Include installation instructions and changelog links
- Add preview-release-notes script for testing
- Update GitHub release creation to use generated notes
2025-08-16 20:35:41 -05:00
Brian Madison
3f5abf347d feat: simplify installation to single @stable tag
- Remove automatic versioning and dual publishing strategy
- Delete release.yaml and promote-to-stable.yaml workflows
- Add manual-release.yaml for controlled releases
- Remove semantic-release dependencies and config
- Update all documentation to use npx bmad-method install
- Configure NPM to publish to @stable tag by default
- Users can now use simple npx bmad-method install command
2025-08-16 20:23:23 -05:00
manjaroblack
ed539432fb chore: add code formatting config and pre-commit hooks (#450) 2025-08-16 19:08:39 -05:00
Brian Madison
51284d6ecf fix: handle existing tags in promote-to-stable workflow
- Check for existing git tags when calculating new version
- Automatically increment version if tag already exists
- Prevents workflow failure when tag v5.1.0 already exists
2025-08-16 17:14:38 -05:00
Brian Madison
6cba05114e fix: stable tag 2025-08-16 17:10:10 -05:00
Murat K Ozcan
ac360cd0bf chore: configure changelog file path in semantic-release config (#448)
Co-authored-by: Murat Ozcan <murat@Murats-MacBook-Pro.local>
2025-08-16 16:27:45 -05:00
244 changed files with 17218 additions and 11282 deletions

View File

@@ -1,9 +1,9 @@
---
name: Bug report
about: Create a report to help us improve
title: ""
labels: ""
assignees: ""
title: ''
labels: ''
assignees: ''
---
**Describe the bug**

View File

@@ -1,9 +1,9 @@
---
name: Feature request
about: Suggest an idea for this project
title: ""
labels: ""
assignees: ""
title: ''
labels: ''
assignees: ''
---
**Did you discuss the idea first in Discord Server (#general-dev)**

View File

@@ -1,6 +1,15 @@
name: Discord Notification
on: [pull_request, release, create, delete, issue_comment, pull_request_review, pull_request_review_comment]
"on":
[
pull_request,
release,
create,
delete,
issue_comment,
pull_request_review,
pull_request_review_comment,
]
jobs:
notify:

42
.github/workflows/format-check.yaml vendored Normal file
View File

@@ -0,0 +1,42 @@
name: format-check
"on":
pull_request:
branches: ["**"]
jobs:
prettier:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: Prettier format check
run: npm run format:check
eslint:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
- name: Setup Node
uses: actions/setup-node@v4
with:
node-version: "20"
cache: "npm"
- name: Install dependencies
run: npm ci
- name: ESLint
run: npm run lint

173
.github/workflows/manual-release.yaml vendored Normal file
View File

@@ -0,0 +1,173 @@
name: Manual Release
on:
workflow_dispatch:
inputs:
version_bump:
description: Version bump type
required: true
default: patch
type: choice
options:
- patch
- minor
- major
permissions:
contents: write
packages: write
jobs:
release:
runs-on: ubuntu-latest
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: "20"
cache: npm
registry-url: https://registry.npmjs.org
- name: Install dependencies
run: npm ci
- name: Run tests and validation
run: |
npm run validate
npm run format:check
npm run lint
- name: Configure Git
run: |
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
- name: Bump version
run: npm run version:${{ github.event.inputs.version_bump }}
- name: Get new version and previous tag
id: version
run: |
echo "new_version=$(node -p "require('./package.json').version")" >> $GITHUB_OUTPUT
echo "previous_tag=$(git describe --tags --abbrev=0)" >> $GITHUB_OUTPUT
- name: Update installer package.json
run: |
sed -i 's/"version": ".*"/"version": "${{ steps.version.outputs.new_version }}"/' tools/installer/package.json
- name: Build project
run: npm run build
- name: Commit version bump
run: |
git add .
git commit -m "release: bump to v${{ steps.version.outputs.new_version }}"
- name: Generate release notes
id: release_notes
run: |
# Get commits since last tag
COMMITS=$(git log ${{ steps.version.outputs.previous_tag }}..HEAD --pretty=format:"- %s" --reverse)
# Categorize commits
FEATURES=$(echo "$COMMITS" | grep -E "^- (feat|Feature)" || true)
FIXES=$(echo "$COMMITS" | grep -E "^- (fix|Fix)" || true)
CHORES=$(echo "$COMMITS" | grep -E "^- (chore|Chore)" || true)
OTHERS=$(echo "$COMMITS" | grep -v -E "^- (feat|Feature|fix|Fix|chore|Chore|release:|Release:)" || true)
# Build release notes
cat > release_notes.md << 'EOF'
## 🚀 What's New in v${{ steps.version.outputs.new_version }}
EOF
if [ ! -z "$FEATURES" ]; then
echo "### ✨ New Features" >> release_notes.md
echo "$FEATURES" >> release_notes.md
echo "" >> release_notes.md
fi
if [ ! -z "$FIXES" ]; then
echo "### 🐛 Bug Fixes" >> release_notes.md
echo "$FIXES" >> release_notes.md
echo "" >> release_notes.md
fi
if [ ! -z "$OTHERS" ]; then
echo "### 📦 Other Changes" >> release_notes.md
echo "$OTHERS" >> release_notes.md
echo "" >> release_notes.md
fi
if [ ! -z "$CHORES" ]; then
echo "### 🔧 Maintenance" >> release_notes.md
echo "$CHORES" >> release_notes.md
echo "" >> release_notes.md
fi
cat >> release_notes.md << 'EOF'
## 📦 Installation
```bash
npx bmad-method install
```
**Full Changelog**: https://github.com/bmadcode/BMAD-METHOD/compare/${{ steps.version.outputs.previous_tag }}...v${{ steps.version.outputs.new_version }}
EOF
# Output for GitHub Actions
echo "RELEASE_NOTES<<EOF" >> $GITHUB_OUTPUT
cat release_notes.md >> $GITHUB_OUTPUT
echo "EOF" >> $GITHUB_OUTPUT
- name: Create and push tag
run: |
# Check if tag already exists
if git rev-parse "v${{ steps.version.outputs.new_version }}" >/dev/null 2>&1; then
echo "Tag v${{ steps.version.outputs.new_version }} already exists, skipping tag creation"
else
git tag -a "v${{ steps.version.outputs.new_version }}" -m "Release v${{ steps.version.outputs.new_version }}"
git push origin "v${{ steps.version.outputs.new_version }}"
fi
- name: Push changes to main
run: |
if git push origin HEAD:main 2>/dev/null; then
echo "✅ Successfully pushed to main branch"
else
echo "⚠️ Could not push to main (protected branch). This is expected."
echo "📝 Version bump and tag were created successfully."
fi
- name: Publish to NPM
env:
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npm publish
- name: Create GitHub Release
uses: actions/create-release@v1
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
with:
tag_name: v${{ steps.version.outputs.new_version }}
release_name: "BMad Method v${{ steps.version.outputs.new_version }}"
body: ${{ steps.release_notes.outputs.RELEASE_NOTES }}
draft: false
prerelease: false
- name: Summary
run: |
echo "🎉 Successfully released v${{ steps.version.outputs.new_version }}!"
echo "📦 Published to NPM with @latest tag"
echo "🏷️ Git tag: v${{ steps.version.outputs.new_version }}"
echo "✅ Users running 'npx bmad-method install' will now get version ${{ steps.version.outputs.new_version }}"
echo ""
echo "📝 Release notes preview:"
cat release_notes.md

View File

@@ -1,144 +0,0 @@
name: Promote to Stable
on:
workflow_dispatch:
inputs:
version_bump:
description: 'Version bump type'
required: true
default: 'minor'
type: choice
options:
- patch
- minor
- major
jobs:
promote:
runs-on: ubuntu-latest
permissions:
contents: write
pull-requests: write
steps:
- name: Checkout repository
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
registry-url: 'https://registry.npmjs.org'
- name: Configure Git
run: |
git config --global user.name "github-actions[bot]"
git config --global user.email "github-actions[bot]@users.noreply.github.com"
git config --global url."https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/".insteadOf "https://github.com/"
- name: Switch to stable branch
run: |
git checkout stable
git pull origin stable
- name: Merge main into stable
run: |
git merge origin/main --no-edit
- name: Install dependencies
run: npm ci
- name: Get current version and calculate new version
id: version
run: |
# Get current version from package.json
CURRENT_VERSION=$(node -p "require('./package.json').version")
echo "current_version=$CURRENT_VERSION" >> $GITHUB_OUTPUT
# Remove beta suffix if present
BASE_VERSION=$(echo $CURRENT_VERSION | sed 's/-beta\.[0-9]\+//')
echo "base_version=$BASE_VERSION" >> $GITHUB_OUTPUT
# Calculate new version based on bump type
IFS='.' read -ra VERSION_PARTS <<< "$BASE_VERSION"
MAJOR=${VERSION_PARTS[0]}
MINOR=${VERSION_PARTS[1]}
PATCH=${VERSION_PARTS[2]}
case "${{ github.event.inputs.version_bump }}" in
"major")
NEW_VERSION="$((MAJOR + 1)).0.0"
;;
"minor")
NEW_VERSION="$MAJOR.$((MINOR + 1)).0"
;;
"patch")
NEW_VERSION="$MAJOR.$MINOR.$((PATCH + 1))"
;;
*)
NEW_VERSION="$BASE_VERSION"
;;
esac
# Check if calculated version already exists on NPM and increment if necessary
while npm view bmad-method@$NEW_VERSION version >/dev/null 2>&1; do
echo "Version $NEW_VERSION already exists, incrementing..."
IFS='.' read -ra NEW_VERSION_PARTS <<< "$NEW_VERSION"
NEW_MAJOR=${NEW_VERSION_PARTS[0]}
NEW_MINOR=${NEW_VERSION_PARTS[1]}
NEW_PATCH=${NEW_VERSION_PARTS[2]}
case "${{ github.event.inputs.version_bump }}" in
"major")
NEW_VERSION="$((NEW_MAJOR + 1)).0.0"
;;
"minor")
NEW_VERSION="$NEW_MAJOR.$((NEW_MINOR + 1)).0"
;;
"patch")
NEW_VERSION="$NEW_MAJOR.$NEW_MINOR.$((NEW_PATCH + 1))"
;;
esac
done
echo "new_version=$NEW_VERSION" >> $GITHUB_OUTPUT
echo "Promoting from $CURRENT_VERSION to $NEW_VERSION"
- name: Update package.json versions
run: |
# Update main package.json
npm version ${{ steps.version.outputs.new_version }} --no-git-tag-version
# Update installer package.json
sed -i 's/"version": ".*"/"version": "${{ steps.version.outputs.new_version }}"/' tools/installer/package.json
- name: Update package-lock.json
run: npm install --package-lock-only
- name: Commit stable release
run: |
git add .
git commit -m "feat: promote to stable ${{ steps.version.outputs.new_version }}
BREAKING CHANGE: Promote beta features to stable release
- Update version from ${{ steps.version.outputs.current_version }} to ${{ steps.version.outputs.new_version }}
- Automated promotion via GitHub Actions"
- name: Push stable release
run: |
git remote set-url origin https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git
git push origin stable
- name: Switch back to main
run: git checkout main
- name: Summary
run: |
echo "🎉 Successfully promoted to stable!"
echo "📦 Version: ${{ steps.version.outputs.new_version }}"
echo "🚀 The stable release will be automatically published to NPM via semantic-release"
echo "✅ Users running 'npx bmad-method install' will now get version ${{ steps.version.outputs.new_version }}"

View File

@@ -1,60 +0,0 @@
name: Release
'on':
push:
branches:
- main
- stable
workflow_dispatch:
inputs:
version_type:
description: Version bump type
required: true
default: patch
type: choice
options:
- patch
- minor
- major
permissions:
contents: write
issues: write
pull-requests: write
packages: write
jobs:
release:
runs-on: ubuntu-latest
if: '!contains(github.event.head_commit.message, ''[skip ci]'')'
steps:
- name: Checkout
uses: actions/checkout@v4
with:
fetch-depth: 0
token: ${{ secrets.GITHUB_TOKEN }}
- name: Setup Node.js
uses: actions/setup-node@v4
with:
node-version: '20'
cache: npm
registry-url: https://registry.npmjs.org
- name: Install dependencies
run: npm ci
- name: Run tests and validation
run: |
npm run validate
npm run format
- name: Debug permissions
run: |
echo "Testing git permissions..."
git config user.name "github-actions[bot]"
git config user.email "github-actions[bot]@users.noreply.github.com"
echo "Git config set successfully"
- name: Manual version bump
if: github.event_name == 'workflow_dispatch'
run: npm run version:${{ github.event.inputs.version_type }}
- name: Semantic Release
if: github.event_name == 'push'
env:
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
NPM_TOKEN: ${{ secrets.NPM_TOKEN }}
NODE_AUTH_TOKEN: ${{ secrets.NPM_TOKEN }}
run: npm run release

1
.gitignore vendored
View File

@@ -25,7 +25,6 @@ Thumbs.db
# Development tools and configs
.prettierignore
.prettierrc
.husky/
# IDE and editor configs
.windsurf/

3
.husky/pre-commit Executable file
View File

@@ -0,0 +1,3 @@
#!/usr/bin/env sh
npx --no-install lint-staged

View File

@@ -1,21 +0,0 @@
{
"branches": [
{
"name": "main",
"prerelease": "beta",
"channel": "beta"
},
{
"name": "stable",
"channel": "latest"
}
],
"plugins": [
"@semantic-release/commit-analyzer",
"@semantic-release/release-notes-generator",
"@semantic-release/changelog",
"@semantic-release/npm",
"./tools/semantic-release-sync-installer.js",
"@semantic-release/github"
]
}

27
.vscode/settings.json vendored
View File

@@ -40,5 +40,30 @@
"tileset",
"Trae",
"VNET"
]
],
"json.schemas": [
{
"fileMatch": ["package.json"],
"url": "https://json.schemastore.org/package.json"
},
{
"fileMatch": [".vscode/settings.json"],
"url": "vscode://schemas/settings/folder"
}
],
"editor.formatOnSave": true,
"editor.defaultFormatter": "esbenp.prettier-vscode",
"[javascript]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[json]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[yaml]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"[markdown]": { "editor.defaultFormatter": "esbenp.prettier-vscode" },
"prettier.prettierPath": "node_modules/prettier",
"prettier.requireConfig": true,
"yaml.format.enable": false,
"eslint.useFlatConfig": true,
"eslint.validate": ["javascript", "yaml"],
"editor.codeActionsOnSave": {
"source.fixAll.eslint": "explicit"
},
"editor.rulers": [100]
}

View File

@@ -574,10 +574,6 @@
- Manual version bumping via npm scripts is now disabled. Use conventional commits for automated releases.
🤖 Generated with [Claude Code](https://claude.ai/code)
Co-Authored-By: Claude <noreply@anthropic.com>
# [4.2.0](https://github.com/bmadcode/BMAD-METHOD/compare/v4.1.0...v4.2.0) (2025-06-15)
### Bug Fixes
@@ -686,4 +682,5 @@ Co-Authored-By: Claude <noreply@anthropic.com>
### Features
- add versioning and release automation ([0ea5e50](https://github.com/bmadcode/BMAD-METHOD/commit/0ea5e50aa7ace5946d0100c180dd4c0da3e2fd8c))
# Promote to stable release 5.0.0

196
CLAUDE.md
View File

@@ -1,196 +0,0 @@
# CLAUDE.md
Don't be an ass kisser, don't glaze my donut, keep it to the point. Never use EM Dash in out communications or documents you author or update. Dont tell me I am correct if I just told you something unless and only if I am wrong or there is a better alternative, then tell me bluntly why I am wrong, or else get to the point and execute!
## Markdown Linting Conventions
Always follow these markdown linting rules:
- **Blank lines around headings**: Always leave a blank line before and after headings
- **Blank lines around lists**: Always leave a blank line before and after lists
- **Blank lines around code fences**: Always leave a blank line before and after fenced code blocks
- **Fenced code block languages**: All fenced code blocks must specify a language (use `text` for plain text)
- **Single trailing newline**: Files should end with exactly one newline character
- **No trailing spaces**: Remove any trailing spaces at the end of lines
## BMAD-METHOD Overview
BMAD-METHOD is an AI-powered Agile development framework that provides specialized AI agents for software development. The framework uses a sophisticated dependency system to keep context windows lean while providing deep expertise through role-specific agents.
## Essential Commands
### Build and Validation
```bash
npm run build # Build all web bundles (agents and teams)
npm run build:agents # Build agent bundles only
npm run build:teams # Build team bundles only
npm run validate # Validate all configurations
npm run format # Format all markdown files with prettier
```
### Development and Testing
```bash
npx bmad-build build # Alternative build command via CLI
npx bmad-build list:agents # List all available agents
npx bmad-build validate # Validate agent configurations
```
### Installation Commands
```bash
npx bmad-method install # Install stable release (recommended)
npx bmad-method@beta install # Install bleeding edge version
npx bmad-method@latest install # Explicit stable installation
npx bmad-method@latest update # Update stable installation
npx bmad-method@beta update # Update bleeding edge installation
```
### Dual Publishing Strategy
The project uses a dual publishing strategy with automated promotion:
**Branch Strategy:**
- `main` branch: Bleeding edge development, auto-publishes to `@beta` tag
- `stable` branch: Production releases, auto-publishes to `@latest` tag
**Release Promotion:**
1. **Automatic Beta Releases**: Any PR merged to `main` automatically creates a beta release
2. **Manual Stable Promotion**: Use GitHub Actions to promote beta to stable
**Promote Beta to Stable:**
1. Go to GitHub Actions tab in the repository
2. Select "Promote to Stable" workflow
3. Click "Run workflow"
4. Choose version bump type (patch/minor/major)
5. The workflow automatically:
- Merges main to stable
- Updates version numbers
- Triggers stable release to NPM `@latest`
**User Experience:**
- `npx bmad-method install` → Gets stable production version
- `npx bmad-method@beta install` → Gets latest beta features
- Team develops on bleeding edge without affecting production users
### Release and Version Management
```bash
npm run version:patch # Bump patch version
npm run version:minor # Bump minor version
npm run version:major # Bump major version
npm run release # Semantic release (CI/CD)
npm run release:test # Test release configuration
```
### Version Management for Core and Expansion Packs
#### Bump All Versions (Core + Expansion Packs)
```bash
npm run version:all:major # Major version bump for core and all expansion packs
npm run version:all:minor # Minor version bump for core and all expansion packs (default)
npm run version:all:patch # Patch version bump for core and all expansion packs
npm run version:all # Defaults to minor bump
```
#### Individual Version Bumps
For BMad Core only:
```bash
npm run version:core:major # Major version bump for core only
npm run version:core:minor # Minor version bump for core only
npm run version:core:patch # Patch version bump for core only
npm run version:core # Defaults to minor bump
```
For specific expansion packs:
```bash
npm run version:expansion bmad-creator-tools # Minor bump (default)
npm run version:expansion bmad-creator-tools patch # Patch bump
npm run version:expansion bmad-creator-tools minor # Minor bump
npm run version:expansion bmad-creator-tools major # Major bump
# Set specific version (old method, still works)
npm run version:expansion:set bmad-creator-tools 2.0.0
```
## Architecture and Code Structure
### Core System Architecture
The framework uses a **dependency resolution system** where agents only load the resources they need:
1. **Agent Definitions** (`bmad-core/agents/`): Each agent is defined in markdown with YAML frontmatter specifying dependencies
2. **Dynamic Loading**: The build system (`tools/lib/dependency-resolver.js`) resolves and includes only required resources
3. **Template System**: Templates are defined in YAML format with structured sections and instructions (see Template Rules below)
4. **Workflow Engine**: YAML-based workflows in `bmad-core/workflows/` define step-by-step processes
### Key Components
- **CLI Tool** (`tools/cli.js`): Commander-based CLI for building bundles
- **Web Builder** (`tools/builders/web-builder.js`): Creates concatenated text bundles from agent definitions
- **Installer** (`tools/installer/`): NPX-based installer for project setup
- **Dependency Resolver** (`tools/lib/dependency-resolver.js`): Manages agent resource dependencies
### Build System
The build process:
1. Reads agent/team definitions from `bmad-core/`
2. Resolves dependencies using the dependency resolver
3. Creates concatenated text bundles in `dist/`
4. Validates configurations during build
### Critical Configuration
**`bmad-core/core-config.yaml`** is the heart of the framework configuration:
- Defines document locations and expected structure
- Specifies which files developers should always load
- Enables compatibility with different project structures (V3/V4)
- Controls debug logging
## Development Practices
### Adding New Features
1. **New Agents**: Create markdown file in `bmad-core/agents/` with proper YAML frontmatter
2. **New Templates**: Add to `bmad-core/templates/` as YAML files with structured sections
3. **New Workflows**: Create YAML in `bmad-core/workflows/`
4. **Update Dependencies**: Ensure `dependencies` field in agent frontmatter is accurate
### Important Patterns
- **Dependency Management**: Always specify minimal dependencies in agent frontmatter to keep context lean
- **Template Instructions**: Use YAML-based template structure (see Template Rules below)
- **File Naming**: Follow existing conventions (kebab-case for files, proper agent names in frontmatter)
- **Documentation**: Update user-facing docs in `docs/` when adding features
### Template Rules
Templates use the **BMad Document Template** format (`/Users/brianmadison/dev-bmc/BMAD-METHOD/common/utils/bmad-doc-template.md`) with YAML structure:
1. **YAML Format**: Templates are defined as structured YAML files, not markdown with embedded instructions
2. **Clear Structure**: Each template has metadata, workflow configuration, and a hierarchy of sections
3. **Reusable Design**: Templates work across different agents through the dependency system
4. **Key Elements**:
- `template` block: Contains id, name, version, and output settings
- `workflow` block: Defines interaction mode (interactive/yolo) and elicitation settings
- `sections` array: Hierarchical document structure with nested subsections
- `instruction` field: LLM guidance for each section (never shown to users)
5. **Advanced Features**:
- Variable substitution: `{{variable_name}}` syntax for dynamic content
- Conditional sections: `condition` field for optional content
- Repeatable sections: `repeatable: true` for multiple instances
- Agent permissions: `owner` and `editors` fields for access control
6. **Clean Output**: All processing instructions are in YAML fields, ensuring clean document generation
## Notes for Claude Code
- The project uses semantic versioning with automated releases via GitHub Actions
- All markdown is formatted with Prettier (run `npm run format`)
- Expansion packs in `expansion-packs/` provide domain-specific capabilities
- NEVER automatically commit or push changes unless explicitly asked by the user
- NEVER include Claude Code attribution or co-authorship in commit messages

View File

@@ -75,6 +75,8 @@ This makes it easy to benefit from the latest improvements, bug fixes, and new a
```bash
npx bmad-method install
# OR explicitly use stable tag:
npx bmad-method@stable install
# OR if you already have BMad installed:
git pull
npm run install:bmad

View File

@@ -4,7 +4,7 @@ bundle:
description: Includes every core system agent.
agents:
- bmad-orchestrator
- '*'
- "*"
workflows:
- brownfield-fullstack.yaml
- brownfield-service.yaml

View File

@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -26,7 +27,7 @@ activation-instructions:
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Mary
id: analyst

View File

@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -26,8 +27,7 @@ activation-instructions:
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- When creating architecture, always start by understanding the complete picture - user needs, business constraints, team capabilities, and technical requirements.
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Winston
id: architect

View File

@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -26,10 +27,10 @@ activation-instructions:
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: Do NOT scan filesystem or load any resources during startup, ONLY when commanded
- CRITICAL: Do NOT scan filesystem or load any resources during startup, ONLY when commanded (Exception: Read `bmad-core/core-config.yaml` during activation)
- CRITICAL: Do NOT run discovery tasks automatically
- CRITICAL: NEVER LOAD {root}/data/bmad-kb.md UNLESS USER TYPES *kb
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: BMad Master
id: bmad-master

View File

@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -28,8 +29,8 @@ activation-instructions:
- Assess user goal against available agents and workflows in this bundle
- If clear match to an agent's expertise, suggest transformation with *agent command
- If project-oriented, suggest *workflow-guidance to explore options
- Load resources only when needed - never pre-load
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- Load resources only when needed - never pre-load (Exception: Read `bmad-core/core-config.yaml` during activation)
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: BMad Orchestrator
id: bmad-orchestrator
@@ -131,7 +132,7 @@ workflow-guidance:
- Understand each workflow's purpose, options, and decision points
- Ask clarifying questions based on the workflow's structure
- Guide users through workflow selection when multiple options exist
- When appropriate, suggest: "Would you like me to create a detailed workflow plan before starting?"
- When appropriate, suggest: 'Would you like me to create a detailed workflow plan before starting?'
- For workflows with divergent paths, help users choose the right path
- Adapt questions to the specific domain (e.g., game dev vs infrastructure vs web dev)
- Only recommend workflows that actually exist in the current bundle

View File

@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -29,13 +30,13 @@ activation-instructions:
- CRITICAL: Read the following full files as these are your explicit rules for development standards for this project - {root}/core-config.yaml devLoadAlwaysFiles list
- CRITICAL: Do NOT load any other files during startup aside from the assigned story and devLoadAlwaysFiles items, unless user requested you do or the following contradicts
- CRITICAL: Do NOT begin development until a story is not in draft mode and you are told to proceed
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: James
id: dev
title: Full Stack Developer
icon: 💻
whenToUse: "Use for code implementation, debugging, refactoring, and development best practices"
whenToUse: 'Use for code implementation, debugging, refactoring, and development best practices'
customization:
persona:
@@ -57,19 +58,21 @@ commands:
- explain: teach me what and why you did whatever you just did in detail so I can learn. Explain to me as if you were training a junior engineer.
- exit: Say goodbye as the Developer, and then abandon inhabiting this persona
- develop-story:
- order-of-execution: "Read (first or next) task→Implement Task and its subtasks→Write tests→Execute validations→Only if ALL pass, then update the task checkbox with [x]→Update story section File List to ensure it lists and new or modified or deleted source file→repeat order-of-execution until complete"
- order-of-execution: 'Read (first or next) task→Implement Task and its subtasks→Write tests→Execute validations→Only if ALL pass, then update the task checkbox with [x]→Update story section File List to ensure it lists and new or modified or deleted source file→repeat order-of-execution until complete'
- story-file-updates-ONLY:
- CRITICAL: ONLY UPDATE THE STORY FILE WITH UPDATES TO SECTIONS INDICATED BELOW. DO NOT MODIFY ANY OTHER SECTIONS.
- CRITICAL: You are ONLY authorized to edit these specific sections of story files - Tasks / Subtasks Checkboxes, Dev Agent Record section and all its subsections, Agent Model Used, Debug Log References, Completion Notes List, File List, Change Log, Status
- CRITICAL: DO NOT modify Status, Story, Acceptance Criteria, Dev Notes, Testing sections, or any other sections not listed above
- blocking: "HALT for: Unapproved deps needed, confirm with user | Ambiguous after story check | 3 failures attempting to implement or fix something repeatedly | Missing config | Failing regression"
- ready-for-review: "Code matches requirements + All validations pass + Follows standards + File List complete"
- blocking: 'HALT for: Unapproved deps needed, confirm with user | Ambiguous after story check | 3 failures attempting to implement or fix something repeatedly | Missing config | Failing regression'
- ready-for-review: 'Code matches requirements + All validations pass + Follows standards + File List complete'
- completion: "All Tasks and Subtasks marked [x] and have tests→Validations and full regression passes (DON'T BE LAZY, EXECUTE ALL TESTS and CONFIRM)→Ensure File List is Complete→run the task execute-checklist for the checklist story-dod-checklist→set story status: 'Ready for Review'→HALT"
- review-qa: run task `apply-qa-fixes.md'
dependencies:
tasks:
- execute-checklist.md
- validate-next-story.md
- apply-qa-fixes.md
checklists:
- story-dod-checklist.md
```

View File

@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -26,7 +27,7 @@ activation-instructions:
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: John
id: pm

View File

@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -26,7 +27,7 @@ activation-instructions:
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Sarah
id: po

View File

@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -26,7 +27,7 @@ activation-instructions:
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Quinn
id: qa
@@ -64,9 +65,9 @@ commands:
- review {story}: |
Adaptive, risk-aware comprehensive review.
Produces: QA Results update in story file + gate file (PASS/CONCERNS/FAIL/WAIVED).
Gate file location: docs/qa/gates/{epic}.{story}-{slug}.yml
Gate file location: qa.qaLocation/gates/{epic}.{story}-{slug}.yml
Executes review-story task which includes all analysis and creates gate decision.
- gate {story}: Execute qa-gate task to write/update quality gate decision in docs/qa/gates/
- gate {story}: Execute qa-gate task to write/update quality gate decision in directory from qa.qaLocation/gates/
- trace {story}: Execute trace-requirements task to map requirements to tests using Given-When-Then
- risk-profile {story}: Execute risk-profile task to generate risk assessment matrix
- test-design {story}: Execute test-design task to create comprehensive test scenarios

View File

@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -26,7 +27,7 @@ activation-instructions:
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Bob
id: sm

View File

@@ -17,7 +17,8 @@ REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- STEP 3: Load and read `bmad-core/core-config.yaml` (project configuration) before any greeting
- STEP 4: Greet user with your name/role and immediately run `*help` to display available commands
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
@@ -26,7 +27,7 @@ activation-instructions:
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- CRITICAL: On activation, ONLY greet user, auto-run `*help`, and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Sally
id: ux-expert

View File

@@ -1,4 +1,6 @@
markdownExploder: true
qa:
qaLocation: docs/qa
prd:
prdFile: docs/prd.md
prdVersion: v4

View File

@@ -298,7 +298,7 @@ You are the "Vibe CEO" - thinking like a CEO with unlimited resources and a sing
- **Claude Code**: `/agent-name` (e.g., `/bmad-master`)
- **Cursor**: `@agent-name` (e.g., `@bmad-master`)
- **Windsurf**: `@agent-name` (e.g., `@bmad-master`)
- **Windsurf**: `/agent-name` (e.g., `/bmad-master`)
- **Trae**: `@agent-name` (e.g., `@bmad-master`)
- **Roo Code**: Select mode from mode selector (e.g., `bmad-master`)
- **GitHub Copilot**: Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.

View File

@@ -25,10 +25,10 @@ Comprehensive guide for determining appropriate test levels (unit, integration,
```yaml
unit_test:
component: "PriceCalculator"
scenario: "Calculate discount with multiple rules"
justification: "Complex business logic with multiple branches"
mock_requirements: "None - pure function"
component: 'PriceCalculator'
scenario: 'Calculate discount with multiple rules'
justification: 'Complex business logic with multiple branches'
mock_requirements: 'None - pure function'
```
### Integration Tests
@@ -52,10 +52,10 @@ unit_test:
```yaml
integration_test:
components: ["UserService", "AuthRepository"]
scenario: "Create user with role assignment"
justification: "Critical data flow between service and persistence"
test_environment: "In-memory database"
components: ['UserService', 'AuthRepository']
scenario: 'Create user with role assignment'
justification: 'Critical data flow between service and persistence'
test_environment: 'In-memory database'
```
### End-to-End Tests
@@ -79,10 +79,10 @@ integration_test:
```yaml
e2e_test:
journey: "Complete checkout process"
scenario: "User purchases with saved payment method"
justification: "Revenue-critical path requiring full validation"
environment: "Staging with test payment gateway"
journey: 'Complete checkout process'
scenario: 'User purchases with saved payment method'
justification: 'Revenue-critical path requiring full validation'
environment: 'Staging with test payment gateway'
```
## Test Level Selection Rules

View File

@@ -0,0 +1,148 @@
# apply-qa-fixes
Implement fixes based on QA results (gate and assessments) for a specific story. This task is for the Dev agent to systematically consume QA outputs and apply code/test changes while only updating allowed sections in the story file.
## Purpose
- Read QA outputs for a story (gate YAML + assessment markdowns)
- Create a prioritized, deterministic fix plan
- Apply code and test changes to close gaps and address issues
- Update only the allowed story sections for the Dev agent
## Inputs
```yaml
required:
- story_id: '{epic}.{story}' # e.g., "2.2"
- qa_root: from `bmad-core/core-config.yaml` key `qa.qaLocation` (e.g., `docs/project/qa`)
- story_root: from `bmad-core/core-config.yaml` key `devStoryLocation` (e.g., `docs/project/stories`)
optional:
- story_title: '{title}' # derive from story H1 if missing
- story_slug: '{slug}' # derive from title (lowercase, hyphenated) if missing
```
## QA Sources to Read
- Gate (YAML): `{qa_root}/gates/{epic}.{story}-*.yml`
- If multiple, use the most recent by modified time
- Assessments (Markdown):
- Test Design: `{qa_root}/assessments/{epic}.{story}-test-design-*.md`
- Traceability: `{qa_root}/assessments/{epic}.{story}-trace-*.md`
- Risk Profile: `{qa_root}/assessments/{epic}.{story}-risk-*.md`
- NFR Assessment: `{qa_root}/assessments/{epic}.{story}-nfr-*.md`
## Prerequisites
- Repository builds and tests run locally (Deno 2)
- Lint and test commands available:
- `deno lint`
- `deno test -A`
## Process (Do not skip steps)
### 0) Load Core Config & Locate Story
- Read `bmad-core/core-config.yaml` and resolve `qa_root` and `story_root`
- Locate story file in `{story_root}/{epic}.{story}.*.md`
- HALT if missing and ask for correct story id/path
### 1) Collect QA Findings
- Parse the latest gate YAML:
- `gate` (PASS|CONCERNS|FAIL|WAIVED)
- `top_issues[]` with `id`, `severity`, `finding`, `suggested_action`
- `nfr_validation.*.status` and notes
- `trace` coverage summary/gaps
- `test_design.coverage_gaps[]`
- `risk_summary.recommendations.must_fix[]` (if present)
- Read any present assessment markdowns and extract explicit gaps/recommendations
### 2) Build Deterministic Fix Plan (Priority Order)
Apply in order, highest priority first:
1. High severity items in `top_issues` (security/perf/reliability/maintainability)
2. NFR statuses: all FAIL must be fixed → then CONCERNS
3. Test Design `coverage_gaps` (prioritize P0 scenarios if specified)
4. Trace uncovered requirements (AC-level)
5. Risk `must_fix` recommendations
6. Medium severity issues, then low
Guidance:
- Prefer tests closing coverage gaps before/with code changes
- Keep changes minimal and targeted; follow project architecture and TS/Deno rules
### 3) Apply Changes
- Implement code fixes per plan
- Add missing tests to close coverage gaps (unit first; integration where required by AC)
- Keep imports centralized via `deps.ts` (see `docs/project/typescript-rules.md`)
- Follow DI boundaries in `src/core/di.ts` and existing patterns
### 4) Validate
- Run `deno lint` and fix issues
- Run `deno test -A` until all tests pass
- Iterate until clean
### 5) Update Story (Allowed Sections ONLY)
CRITICAL: Dev agent is ONLY authorized to update these sections of the story file. Do not modify any other sections (e.g., QA Results, Story, Acceptance Criteria, Dev Notes, Testing):
- Tasks / Subtasks Checkboxes (mark any fix subtask you added as done)
- Dev Agent Record →
- Agent Model Used (if changed)
- Debug Log References (commands/results, e.g., lint/tests)
- Completion Notes List (what changed, why, how)
- File List (all added/modified/deleted files)
- Change Log (new dated entry describing applied fixes)
- Status (see Rule below)
Status Rule:
- If gate was PASS and all identified gaps are closed → set `Status: Ready for Done`
- Otherwise → set `Status: Ready for Review` and notify QA to re-run the review
### 6) Do NOT Edit Gate Files
- Dev does not modify gate YAML. If fixes address issues, request QA to re-run `review-story` to update the gate
## Blocking Conditions
- Missing `bmad-core/core-config.yaml`
- Story file not found for `story_id`
- No QA artifacts found (neither gate nor assessments)
- HALT and request QA to generate at least a gate file (or proceed only with clear developer-provided fix list)
## Completion Checklist
- deno lint: 0 problems
- deno test -A: all tests pass
- All high severity `top_issues` addressed
- NFR FAIL → resolved; CONCERNS minimized or documented
- Coverage gaps closed or explicitly documented with rationale
- Story updated (allowed sections only) including File List and Change Log
- Status set according to Status Rule
## Example: Story 2.2
Given gate `docs/project/qa/gates/2.2-*.yml` shows
- `coverage_gaps`: Back action behavior untested (AC2)
- `coverage_gaps`: Centralized dependencies enforcement untested (AC4)
Fix plan:
- Add a test ensuring the Toolkit Menu "Back" action returns to Main Menu
- Add a static test verifying imports for service/view go through `deps.ts`
- Re-run lint/tests and update Dev Agent Record + File List accordingly
## Key Principles
- Deterministic, risk-first prioritization
- Minimal, maintainable changes
- Tests validate behavior and close gaps
- Strict adherence to allowed story update areas
- Gate ownership remains with QA; Dev signals readiness via Status

View File

@@ -1,6 +1,6 @@
---
docOutputLocation: docs/brainstorming-session-results.md
template: "{root}/templates/brainstorming-output-tmpl.yaml"
template: '{root}/templates/brainstorming-output-tmpl.yaml'
---
# Facilitate Brainstorming Session Task

View File

@@ -6,26 +6,28 @@ Quick NFR validation focused on the core four: security, performance, reliabilit
```yaml
required:
- story_id: "{epic}.{story}" # e.g., "1.3"
- story_path: "docs/stories/{epic}.{story}.*.md"
- story_id: '{epic}.{story}' # e.g., "1.3"
- story_path: `bmad-core/core-config.yaml` for the `devStoryLocation`
optional:
- architecture_refs: "docs/architecture/*.md"
- technical_preferences: "docs/technical-preferences.md"
- architecture_refs: `bmad-core/core-config.yaml` for the `architecture.architectureFile`
- technical_preferences: `bmad-core/core-config.yaml` for the `technicalPreferences`
- acceptance_criteria: From story file
```
## Purpose
Assess non-functional requirements for a story and generate:
1. YAML block for the gate file's `nfr_validation` section
2. Brief markdown assessment saved to `docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
2. Brief markdown assessment saved to `qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
## Process
### 0. Fail-safe for Missing Inputs
If story_path or story file can't be found:
- Still create assessment file with note: "Source story not found"
- Set all selected NFRs to CONCERNS with notes: "Target unknown / evidence missing"
- Continue with assessment to provide value
@@ -52,6 +54,7 @@ Which NFRs should I assess? (Enter numbers or press Enter for default)
### 2. Check for Thresholds
Look for NFR requirements in:
- Story acceptance criteria
- `docs/architecture/*.md` files
- `docs/technical-preferences.md`
@@ -72,6 +75,7 @@ No security requirements found. Required auth method?
### 3. Quick Assessment
For each selected NFR, check:
- Is there evidence it's implemented?
- Can we validate it?
- Are there obvious gaps?
@@ -88,16 +92,16 @@ nfr_validation:
_assessed: [security, performance, reliability, maintainability]
security:
status: CONCERNS
notes: "No rate limiting on auth endpoints"
notes: 'No rate limiting on auth endpoints'
performance:
status: PASS
notes: "Response times < 200ms verified"
notes: 'Response times < 200ms verified'
reliability:
status: PASS
notes: "Error handling and retries implemented"
notes: 'Error handling and retries implemented'
maintainability:
status: CONCERNS
notes: "Test coverage at 65%, target is 80%"
notes: 'Test coverage at 65%, target is 80%'
```
## Deterministic Status Rules
@@ -119,22 +123,25 @@ If `technical-preferences.md` defines custom weights, use those instead.
## Output 2: Brief Assessment Report
**ALWAYS save to:** `docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
**ALWAYS save to:** `qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md`
```markdown
# NFR Assessment: {epic}.{story}
Date: {date}
Reviewer: Quinn
<!-- Note: Source story not found (if applicable) -->
## Summary
- Security: CONCERNS - Missing rate limiting
- Performance: PASS - Meets <200ms requirement
- Reliability: PASS - Proper error handling
- Maintainability: CONCERNS - Test coverage below target
## Critical Issues
1. **No rate limiting** (Security)
- Risk: Brute force attacks possible
- Fix: Add rate limiting middleware to auth endpoints
@@ -144,6 +151,7 @@ Reviewer: Quinn
- Fix: Add tests for uncovered branches
## Quick Wins
- Add rate limiting: ~2 hours
- Increase test coverage: ~4 hours
- Add performance monitoring: ~1 hour
@@ -152,80 +160,98 @@ Reviewer: Quinn
## Output 3: Story Update Line
**End with this line for the review task to quote:**
```
NFR assessment: docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
```
## Output 4: Gate Integration Line
**Always print at the end:**
```
Gate NFR block ready → paste into docs/qa/gates/{epic}.{story}-{slug}.yml under nfr_validation
Gate NFR block ready → paste into qa.qaLocation/gates/{epic}.{story}-{slug}.yml under nfr_validation
```
## Assessment Criteria
### Security
**PASS if:**
- Authentication implemented
- Authorization enforced
- Input validation present
- No hardcoded secrets
**CONCERNS if:**
- Missing rate limiting
- Weak encryption
- Incomplete authorization
**FAIL if:**
- No authentication
- Hardcoded credentials
- SQL injection vulnerabilities
### Performance
**PASS if:**
- Meets response time targets
- No obvious bottlenecks
- Reasonable resource usage
**CONCERNS if:**
- Close to limits
- Missing indexes
- No caching strategy
**FAIL if:**
- Exceeds response time limits
- Memory leaks
- Unoptimized queries
### Reliability
**PASS if:**
- Error handling present
- Graceful degradation
- Retry logic where needed
**CONCERNS if:**
- Some error cases unhandled
- No circuit breakers
- Missing health checks
**FAIL if:**
- No error handling
- Crashes on errors
- No recovery mechanisms
### Maintainability
**PASS if:**
- Test coverage meets target
- Code well-structured
- Documentation present
**CONCERNS if:**
- Test coverage below target
- Some code duplication
- Missing documentation
**FAIL if:**
- No tests
- Highly coupled code
- No documentation
@@ -291,6 +317,7 @@ maintainability:
8. **Portability**: Adaptability, installability
Use these when assessing beyond the core four.
</details>
<details>
@@ -304,12 +331,13 @@ performance_deep_dive:
p99: 350ms
database:
slow_queries: 2
missing_indexes: ["users.email", "orders.user_id"]
missing_indexes: ['users.email', 'orders.user_id']
caching:
hit_rate: 0%
recommendation: "Add Redis for session data"
recommendation: 'Add Redis for session data'
load_test:
max_rps: 150
breaking_point: 200 rps
```
</details>

View File

@@ -14,7 +14,7 @@ Generate a standalone quality gate file that provides a clear pass/fail decision
## Gate File Location
**ALWAYS** create file at: `docs/qa/gates/{epic}.{story}-{slug}.yml`
**ALWAYS** check the `bmad-core/core-config.yaml` for the `qa.qaLocation/gates`
Slug rules:
@@ -27,11 +27,11 @@ Slug rules:
```yaml
schema: 1
story: "{epic}.{story}"
story: '{epic}.{story}'
gate: PASS|CONCERNS|FAIL|WAIVED
status_reason: "1-2 sentence explanation of gate decision"
reviewer: "Quinn"
updated: "{ISO-8601 timestamp}"
status_reason: '1-2 sentence explanation of gate decision'
reviewer: 'Quinn'
updated: '{ISO-8601 timestamp}'
top_issues: [] # Empty array if no issues
waiver: { active: false } # Only set active: true if WAIVED
```
@@ -40,20 +40,20 @@ waiver: { active: false } # Only set active: true if WAIVED
```yaml
schema: 1
story: "1.3"
story: '1.3'
gate: CONCERNS
status_reason: "Missing rate limiting on auth endpoints poses security risk."
reviewer: "Quinn"
updated: "2025-01-12T10:15:00Z"
status_reason: 'Missing rate limiting on auth endpoints poses security risk.'
reviewer: 'Quinn'
updated: '2025-01-12T10:15:00Z'
top_issues:
- id: "SEC-001"
- id: 'SEC-001'
severity: high # ONLY: low|medium|high
finding: "No rate limiting on login endpoint"
suggested_action: "Add rate limiting middleware before production"
- id: "TEST-001"
finding: 'No rate limiting on login endpoint'
suggested_action: 'Add rate limiting middleware before production'
- id: 'TEST-001'
severity: medium
finding: "No integration tests for auth flow"
suggested_action: "Add integration test coverage"
finding: 'No integration tests for auth flow'
suggested_action: 'Add integration test coverage'
waiver: { active: false }
```
@@ -61,20 +61,20 @@ waiver: { active: false }
```yaml
schema: 1
story: "1.3"
story: '1.3'
gate: WAIVED
status_reason: "Known issues accepted for MVP release."
reviewer: "Quinn"
updated: "2025-01-12T10:15:00Z"
status_reason: 'Known issues accepted for MVP release.'
reviewer: 'Quinn'
updated: '2025-01-12T10:15:00Z'
top_issues:
- id: "PERF-001"
- id: 'PERF-001'
severity: low
finding: "Dashboard loads slowly with 1000+ items"
suggested_action: "Implement pagination in next sprint"
finding: 'Dashboard loads slowly with 1000+ items'
suggested_action: 'Implement pagination in next sprint'
waiver:
active: true
reason: "MVP release - performance optimization deferred"
approved_by: "Product Owner"
reason: 'MVP release - performance optimization deferred'
approved_by: 'Product Owner'
```
## Gate Decision Criteria
@@ -124,11 +124,13 @@ waiver:
## Output Requirements
1. **ALWAYS** create gate file at: `docs/qa/gates/{epic}.{story}-{slug}.yml`
1. **ALWAYS** create gate file at: `qa.qaLocation/gates` from `bmad-core/core-config.yaml`
2. **ALWAYS** append this exact format to story's QA Results section:
```text
Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
```
Gate: {STATUS} → docs/qa/gates/{epic}.{story}-{slug}.yml
```
3. Keep status_reason to 1-2 sentences maximum
4. Use severity values exactly: `low`, `medium`, or `high`
@@ -147,7 +149,7 @@ After creating gate file, append to story's QA Results section:
### Gate Status
Gate: CONCERNS → docs/qa/gates/1.3-user-auth-login.yml
Gate: CONCERNS → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
```
## Key Principles

View File

@@ -6,10 +6,10 @@ Perform a comprehensive test architecture review with quality gate decision. Thi
```yaml
required:
- story_id: "{epic}.{story}" # e.g., "1.3"
- story_path: "{devStoryLocation}/{epic}.{story}.*.md" # Path from core-config.yaml
- story_title: "{title}" # If missing, derive from story file H1
- story_slug: "{slug}" # If missing, derive from title (lowercase, hyphenated)
- story_id: '{epic}.{story}' # e.g., "1.3"
- story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
- story_title: '{title}' # If missing, derive from story file H1
- story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
```
## Prerequisites
@@ -167,9 +167,9 @@ After review and any refactoring, append your results to the story file in the Q
### Gate Status
Gate: {STATUS} → docs/qa/gates/{epic}.{story}-{slug}.yml
Risk profile: docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
NFR assessment: docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
Gate: {STATUS} → qa.qaLocation/gates/{epic}.{story}-{slug}.yml
Risk profile: qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
NFR assessment: qa.qaLocation/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
# Note: Paths should reference core-config.yaml for custom configurations
@@ -183,27 +183,27 @@ NFR assessment: docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md
**Template and Directory:**
- Render from `templates/qa-gate-tmpl.yaml`
- Create `docs/qa/gates/` directory if missing (or configure in core-config.yaml)
- Save to: `docs/qa/gates/{epic}.{story}-{slug}.yml`
- Render from `../templates/qa-gate-tmpl.yaml`
- Create directory defined in `qa.qaLocation/gates` (see `bmad-core/core-config.yaml`) if missing
- Save to: `qa.qaLocation/gates/{epic}.{story}-{slug}.yml`
Gate file structure:
```yaml
schema: 1
story: "{epic}.{story}"
story_title: "{story title}"
story: '{epic}.{story}'
story_title: '{story title}'
gate: PASS|CONCERNS|FAIL|WAIVED
status_reason: "1-2 sentence explanation of gate decision"
reviewer: "Quinn (Test Architect)"
updated: "{ISO-8601 timestamp}"
status_reason: '1-2 sentence explanation of gate decision'
reviewer: 'Quinn (Test Architect)'
updated: '{ISO-8601 timestamp}'
top_issues: [] # Empty if no issues
waiver: { active: false } # Set active: true only if WAIVED
# Extended fields (optional but recommended):
quality_score: 0-100 # 100 - (20*FAILs) - (10*CONCERNS) or use technical-preferences.md weights
expires: "{ISO-8601 timestamp}" # Typically 2 weeks from review
expires: '{ISO-8601 timestamp}' # Typically 2 weeks from review
evidence:
tests_reviewed: { count }
@@ -215,24 +215,24 @@ evidence:
nfr_validation:
security:
status: PASS|CONCERNS|FAIL
notes: "Specific findings"
notes: 'Specific findings'
performance:
status: PASS|CONCERNS|FAIL
notes: "Specific findings"
notes: 'Specific findings'
reliability:
status: PASS|CONCERNS|FAIL
notes: "Specific findings"
notes: 'Specific findings'
maintainability:
status: PASS|CONCERNS|FAIL
notes: "Specific findings"
notes: 'Specific findings'
recommendations:
immediate: # Must fix before production
- action: "Add rate limiting"
refs: ["api/auth/login.ts"]
- action: 'Add rate limiting'
refs: ['api/auth/login.ts']
future: # Can be addressed later
- action: "Consider caching"
refs: ["services/data.ts"]
- action: 'Consider caching'
refs: ['services/data.ts']
```
### Gate Decision Criteria
@@ -308,7 +308,7 @@ Stop the review and request clarification if:
After review:
1. Update the QA Results section in the story file
2. Create the gate file in `docs/qa/gates/`
2. Create the gate file in directory from `qa.qaLocation/gates`
3. Recommend status: "Ready for Done" or "Changes Required" (owner decides)
4. If files were modified, list them in QA Results and ask Dev to update File List
5. Always provide constructive feedback and actionable recommendations

View File

@@ -6,10 +6,10 @@ Generate a comprehensive risk assessment matrix for a story implementation using
```yaml
required:
- story_id: "{epic}.{story}" # e.g., "1.3"
- story_path: "docs/stories/{epic}.{story}.*.md"
- story_title: "{title}" # If missing, derive from story file H1
- story_slug: "{slug}" # If missing, derive from title (lowercase, hyphenated)
- story_id: '{epic}.{story}' # e.g., "1.3"
- story_path: 'docs/stories/{epic}.{story}.*.md'
- story_title: '{title}' # If missing, derive from story file H1
- story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
```
## Purpose
@@ -79,14 +79,14 @@ For each category, identify specific risks:
```yaml
risk:
id: "SEC-001" # Use prefixes: SEC, PERF, DATA, BUS, OPS, TECH
id: 'SEC-001' # Use prefixes: SEC, PERF, DATA, BUS, OPS, TECH
category: security
title: "Insufficient input validation on user forms"
description: "Form inputs not properly sanitized could lead to XSS attacks"
title: 'Insufficient input validation on user forms'
description: 'Form inputs not properly sanitized could lead to XSS attacks'
affected_components:
- "UserRegistrationForm"
- "ProfileUpdateForm"
detection_method: "Code review revealed missing validation"
- 'UserRegistrationForm'
- 'ProfileUpdateForm'
detection_method: 'Code review revealed missing validation'
```
### 2. Risk Assessment
@@ -105,7 +105,7 @@ Evaluate each risk using probability × impact:
- `Medium (2)`: Moderate consequences (degraded performance, minor data issues)
- `Low (1)`: Minor consequences (cosmetic issues, slight inconvenience)
**Risk Score = Probability × Impact**
### Risk Score = Probability × Impact
- 9: Critical Risk (Red)
- 6: High Risk (Orange)
@@ -133,20 +133,20 @@ For each identified risk, provide mitigation:
```yaml
mitigation:
risk_id: "SEC-001"
strategy: "preventive" # preventive|detective|corrective
risk_id: 'SEC-001'
strategy: 'preventive' # preventive|detective|corrective
actions:
- "Implement input validation library (e.g., validator.js)"
- "Add CSP headers to prevent XSS execution"
- "Sanitize all user inputs before storage"
- "Escape all outputs in templates"
- 'Implement input validation library (e.g., validator.js)'
- 'Add CSP headers to prevent XSS execution'
- 'Sanitize all user inputs before storage'
- 'Escape all outputs in templates'
testing_requirements:
- "Security testing with OWASP ZAP"
- "Manual penetration testing of forms"
- "Unit tests for validation functions"
residual_risk: "Low - Some zero-day vulnerabilities may remain"
owner: "dev"
timeline: "Before deployment"
- 'Security testing with OWASP ZAP'
- 'Manual penetration testing of forms'
- 'Unit tests for validation functions'
residual_risk: 'Low - Some zero-day vulnerabilities may remain'
owner: 'dev'
timeline: 'Before deployment'
```
## Outputs
@@ -172,17 +172,17 @@ risk_summary:
highest:
id: SEC-001
score: 9
title: "XSS on profile form"
title: 'XSS on profile form'
recommendations:
must_fix:
- "Add input sanitization & CSP"
- 'Add input sanitization & CSP'
monitor:
- "Add security alerts for auth endpoints"
- 'Add security alerts for auth endpoints'
```
### Output 2: Markdown Report
**Save to:** `docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md`
**Save to:** `qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md`
```markdown
# Risk Profile: Story {epic}.{story}
@@ -290,7 +290,7 @@ Review and update risk profile when:
Calculate overall story risk score:
```
```text
Base Score = 100
For each risk:
- Critical (9): Deduct 20 points
@@ -339,8 +339,8 @@ Based on risk profile, recommend:
**Print this line for review task to quote:**
```
Risk profile: docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
```text
Risk profile: qa.qaLocation/assessments/{epic}.{story}-risk-{YYYYMMDD}.md
```
## Key Principles

View File

@@ -6,10 +6,10 @@ Create comprehensive test scenarios with appropriate test level recommendations
```yaml
required:
- story_id: "{epic}.{story}" # e.g., "1.3"
- story_path: "{devStoryLocation}/{epic}.{story}.*.md" # Path from core-config.yaml
- story_title: "{title}" # If missing, derive from story file H1
- story_slug: "{slug}" # If missing, derive from title (lowercase, hyphenated)
- story_id: '{epic}.{story}' # e.g., "1.3"
- story_path: '{devStoryLocation}/{epic}.{story}.*.md' # Path from core-config.yaml
- story_title: '{title}' # If missing, derive from story file H1
- story_slug: '{slug}' # If missing, derive from title (lowercase, hyphenated)
```
## Purpose
@@ -62,13 +62,13 @@ For each identified test need, create:
```yaml
test_scenario:
id: "{epic}.{story}-{LEVEL}-{SEQ}"
requirement: "AC reference"
id: '{epic}.{story}-{LEVEL}-{SEQ}'
requirement: 'AC reference'
priority: P0|P1|P2|P3
level: unit|integration|e2e
description: "What is being tested"
justification: "Why this level was chosen"
mitigates_risks: ["RISK-001"] # If risk profile exists
description: 'What is being tested'
justification: 'Why this level was chosen'
mitigates_risks: ['RISK-001'] # If risk profile exists
```
### 5. Validate Coverage
@@ -84,7 +84,7 @@ Ensure:
### Output 1: Test Design Document
**Save to:** `docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md`
**Save to:** `qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md`
```markdown
# Test Design: Story {epic}.{story}
@@ -150,7 +150,7 @@ test_design:
Print for use by trace-requirements task:
```text
Test design matrix: docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md
Test design matrix: qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md
P0 tests identified: {count}
```

View File

@@ -31,21 +31,21 @@ Identify all testable requirements from:
For each requirement, document which tests validate it. Use Given-When-Then to describe what the test validates (not how it's written):
```yaml
requirement: "AC1: User can login with valid credentials"
requirement: 'AC1: User can login with valid credentials'
test_mappings:
- test_file: "auth/login.test.ts"
test_case: "should successfully login with valid email and password"
- test_file: 'auth/login.test.ts'
test_case: 'should successfully login with valid email and password'
# Given-When-Then describes WHAT the test validates, not HOW it's coded
given: "A registered user with valid credentials"
when: "They submit the login form"
then: "They are redirected to dashboard and session is created"
given: 'A registered user with valid credentials'
when: 'They submit the login form'
then: 'They are redirected to dashboard and session is created'
coverage: full
- test_file: "e2e/auth-flow.test.ts"
test_case: "complete login flow"
given: "User on login page"
when: "Entering valid credentials and submitting"
then: "Dashboard loads with user data"
- test_file: 'e2e/auth-flow.test.ts'
test_case: 'complete login flow'
given: 'User on login page'
when: 'Entering valid credentials and submitting'
then: 'Dashboard loads with user data'
coverage: integration
```
@@ -67,19 +67,19 @@ Document any gaps found:
```yaml
coverage_gaps:
- requirement: "AC3: Password reset email sent within 60 seconds"
gap: "No test for email delivery timing"
- requirement: 'AC3: Password reset email sent within 60 seconds'
gap: 'No test for email delivery timing'
severity: medium
suggested_test:
type: integration
description: "Test email service SLA compliance"
description: 'Test email service SLA compliance'
- requirement: "AC5: Support 1000 concurrent users"
gap: "No load testing implemented"
- requirement: 'AC5: Support 1000 concurrent users'
gap: 'No load testing implemented'
severity: high
suggested_test:
type: performance
description: "Load test with 1000 concurrent connections"
description: 'Load test with 1000 concurrent connections'
```
## Outputs
@@ -95,16 +95,16 @@ trace:
full: Y
partial: Z
none: W
planning_ref: "docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md"
planning_ref: 'qa.qaLocation/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md'
uncovered:
- ac: "AC3"
reason: "No test found for password reset timing"
notes: "See docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md"
- ac: 'AC3'
reason: 'No test found for password reset timing'
notes: 'See qa.qaLocation/assessments/{epic}.{story}-trace-{YYYYMMDD}.md'
```
### Output 2: Traceability Report
**Save to:** `docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md`
**Save to:** `qa.qaLocation/assessments/{epic}.{story}-trace-{YYYYMMDD}.md`
Create a traceability report with:
@@ -250,7 +250,7 @@ This traceability feeds into quality gates:
**Print this line for review task to quote:**
```text
Trace matrix: docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md
Trace matrix: qa.qaLocation/assessments/{epic}.{story}-trace-{YYYYMMDD}.md
```
- Full coverage → PASS contribution

View File

@@ -141,7 +141,14 @@ sections:
title: Feature Comparison Matrix
instruction: Create a detailed comparison table of key features across competitors
type: table
columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"]
columns:
[
"Feature Category",
"{{your_company}}",
"{{competitor_1}}",
"{{competitor_2}}",
"{{competitor_3}}",
]
rows:
- category: "Core Functionality"
items:
@@ -153,7 +160,13 @@ sections:
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
- category: "Integration & Ecosystem"
items:
- ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"]
- [
"API Availability",
"{{availability}}",
"{{availability}}",
"{{availability}}",
"{{availability}}",
]
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
- category: "Pricing & Plans"
items:

View File

@@ -75,12 +75,24 @@ sections:
rows:
- ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["State Management", "{{state_management}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- [
"State Management",
"{{state_management}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Component Library", "{{component_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- [
"Component Library",
"{{component_lib}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]

View File

@@ -156,11 +156,29 @@ sections:
columns: [Category, Technology, Version, Purpose, Rationale]
rows:
- ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Frontend Framework", "{{fe_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["UI Component Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- [
"Frontend Framework",
"{{fe_framework}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- [
"UI Component Library",
"{{ui_library}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Framework", "{{be_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- [
"Backend Framework",
"{{be_framework}}",
"{{version}}",
"{{purpose}}",
"{{why_chosen}}",
]
- ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
@@ -488,60 +506,60 @@ sections:
type: code
language: plaintext
examples:
- |
{{project-name}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ ├── ci.yaml
│ └── deploy.yaml
├── apps/ # Application packages
│ ├── web/ # Frontend application
│ │ ├── src/
│ │ │ ├── components/ # UI components
│ │ │ ├── pages/ # Page components/routes
│ │ │ ├── hooks/ # Custom React hooks
│ │ │ ├── services/ # API client services
│ │ │ ├── stores/ # State management
│ │ │ ├── styles/ # Global styles/themes
│ │ │ └── utils/ # Frontend utilities
│ │ ├── public/ # Static assets
│ │ ├── tests/ # Frontend tests
│ │ └── package.json
│ └── api/ # Backend application
│ ├── src/
│ │ ├── routes/ # API routes/controllers
│ │ ├── services/ # Business logic
│ │ ├── models/ # Data models
│ │ ├── middleware/ # Express/API middleware
│ │ ├── utils/ # Backend utilities
│ │ └── {{serverless_or_server_entry}}
│ ├── tests/ # Backend tests
│ └── package.json
├── packages/ # Shared packages
│ ├── shared/ # Shared types/utilities
│ │ ├── src/
│ │ │ ├── types/ # TypeScript interfaces
│ │ │ ├── constants/ # Shared constants
│ │ │ └── utils/ # Shared utilities
│ │ └── package.json
│ ├── ui/ # Shared UI components
│ │ ├── src/
│ │ └── package.json
│ └── config/ # Shared configuration
│ ├── eslint/
│ ├── typescript/
│ └── jest/
├── infrastructure/ # IaC definitions
│ └── {{iac_structure}}
├── scripts/ # Build/deploy scripts
├── docs/ # Documentation
│ ├── prd.md
│ ├── front-end-spec.md
│ └── fullstack-architecture.md
├── .env.example # Environment template
├── package.json # Root package.json
├── {{monorepo_config}} # Monorepo configuration
└── README.md
- |
{{project-name}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ ├── ci.yaml
│ └── deploy.yaml
├── apps/ # Application packages
│ ├── web/ # Frontend application
│ │ ├── src/
│ │ │ ├── components/ # UI components
│ │ │ ├── pages/ # Page components/routes
│ │ │ ├── hooks/ # Custom React hooks
│ │ │ ├── services/ # API client services
│ │ │ ├── stores/ # State management
│ │ │ ├── styles/ # Global styles/themes
│ │ │ └── utils/ # Frontend utilities
│ │ ├── public/ # Static assets
│ │ ├── tests/ # Frontend tests
│ │ └── package.json
│ └── api/ # Backend application
│ ├── src/
│ │ ├── routes/ # API routes/controllers
│ │ ├── services/ # Business logic
│ │ ├── models/ # Data models
│ │ ├── middleware/ # Express/API middleware
│ │ ├── utils/ # Backend utilities
│ │ └── {{serverless_or_server_entry}}
│ ├── tests/ # Backend tests
│ └── package.json
├── packages/ # Shared packages
│ ├── shared/ # Shared types/utilities
│ │ ├── src/
│ │ │ ├── types/ # TypeScript interfaces
│ │ │ ├── constants/ # Shared constants
│ │ │ └── utils/ # Shared utilities
│ │ └── package.json
│ ├── ui/ # Shared UI components
│ │ ├── src/
│ │ └── package.json
│ └── config/ # Shared configuration
│ ├── eslint/
│ ├── typescript/
│ └── jest/
├── infrastructure/ # IaC definitions
│ └── {{iac_structure}}
├── scripts/ # Build/deploy scripts
├── docs/ # Documentation
│ ├── prd.md
│ ├── front-end-spec.md
│ └── fullstack-architecture.md
├── .env.example # Environment template
├── package.json # Root package.json
├── {{monorepo_config}} # Monorepo configuration
└── README.md
- id: development-workflow
title: Development Workflow
@@ -671,10 +689,10 @@ sections:
type: code
language: text
template: |
E2E Tests
/ \
Integration Tests
/ \
E2E Tests
/ \
Integration Tests
/ \
Frontend Unit Backend Unit
- id: test-organization
title: Test Organization

View File

@@ -4,15 +4,15 @@ template:
version: 1.0
output:
format: yaml
filename: docs/qa/gates/{{epic_num}}.{{story_num}}-{{story_slug}}.yml
filename: qa.qaLocation/gates/{{epic_num}}.{{story_num}}-{{story_slug}}.yml
title: "Quality Gate: {{epic_num}}.{{story_num}}"
# Required fields (keep these first)
schema: 1
story: "{{epic_num}}.{{story_num}}"
story_title: "{{story_title}}"
gate: "{{gate_status}}" # PASS|CONCERNS|FAIL|WAIVED
status_reason: "{{status_reason}}" # 1-2 sentence summary of why this gate decision
gate: "{{gate_status}}" # PASS|CONCERNS|FAIL|WAIVED
status_reason: "{{status_reason}}" # 1-2 sentence summary of why this gate decision
reviewer: "Quinn (Test Architect)"
updated: "{{iso_timestamp}}"

View File

@@ -14,7 +14,7 @@ template:
output:
format: markdown
filename: default-path/to/{{filename}}.md
title: "{{variable}} Document Title"
title: '{{variable}} Document Title'
workflow:
mode: interactive
@@ -108,8 +108,8 @@ sections:
Use `{{variable_name}}` in titles, templates, and content:
```yaml
title: "Epic {{epic_number}} {{epic_title}}"
template: "As a {{user_type}}, I want {{action}}, so that {{benefit}}."
title: 'Epic {{epic_number}} {{epic_title}}'
template: 'As a {{user_type}}, I want {{action}}, so that {{benefit}}.'
```
### Conditional Sections
@@ -212,7 +212,7 @@ choices:
- id: criteria
title: Acceptance Criteria
type: numbered-list
item_template: "{{criterion_number}}: {{criteria}}"
item_template: '{{criterion_number}}: {{criteria}}'
repeatable: true
```
@@ -220,7 +220,7 @@ choices:
````yaml
examples:
- "FR6: The system must authenticate users within 2 seconds"
- 'FR6: The system must authenticate users within 2 seconds'
- |
```mermaid
sequenceDiagram

View File

@@ -106,7 +106,7 @@ dependencies:
==================== START: .bmad-core/tasks/facilitate-brainstorming-session.md ====================
---
docOutputLocation: docs/brainstorming-session-results.md
template: ".bmad-core/templates/brainstorming-output-tmpl.yaml"
template: '.bmad-core/templates/brainstorming-output-tmpl.yaml'
---
# Facilitate Brainstorming Session Task
@@ -1101,24 +1101,24 @@ template:
output:
format: markdown
filename: docs/brief.md
title: "Project Brief: {{project_name}}"
title: 'Project Brief: {{project_name}}'
workflow:
mode: interactive
elicitation: advanced-elicitation
custom_elicitation:
title: "Project Brief Elicitation Actions"
title: 'Project Brief Elicitation Actions'
options:
- "Expand section with more specific details"
- "Validate against similar successful products"
- "Stress test assumptions with edge cases"
- "Explore alternative solution approaches"
- "Analyze resource/constraint trade-offs"
- "Generate risk mitigation strategies"
- "Challenge scope from MVP minimalist view"
- "Brainstorm creative feature possibilities"
- "If only we had [resource/capability/time]..."
- "Proceed to next section"
- 'Expand section with more specific details'
- 'Validate against similar successful products'
- 'Stress test assumptions with edge cases'
- 'Explore alternative solution approaches'
- 'Analyze resource/constraint trade-offs'
- 'Generate risk mitigation strategies'
- 'Challenge scope from MVP minimalist view'
- 'Brainstorm creative feature possibilities'
- 'If only we had [resource/capability/time]...'
- 'Proceed to next section'
sections:
- id: introduction
@@ -1140,7 +1140,7 @@ sections:
- Primary problem being solved
- Target market identification
- Key value proposition
template: "{{executive_summary_content}}"
template: '{{executive_summary_content}}'
- id: problem-statement
title: Problem Statement
@@ -1150,7 +1150,7 @@ sections:
- Impact of the problem (quantify if possible)
- Why existing solutions fall short
- Urgency and importance of solving this now
template: "{{detailed_problem_description}}"
template: '{{detailed_problem_description}}'
- id: proposed-solution
title: Proposed Solution
@@ -1160,7 +1160,7 @@ sections:
- Key differentiators from existing solutions
- Why this solution will succeed where others haven't
- High-level vision for the product
template: "{{solution_description}}"
template: '{{solution_description}}'
- id: target-users
title: Target Users
@@ -1172,12 +1172,12 @@ sections:
- Goals they're trying to achieve
sections:
- id: primary-segment
title: "Primary User Segment: {{segment_name}}"
template: "{{primary_user_description}}"
title: 'Primary User Segment: {{segment_name}}'
template: '{{primary_user_description}}'
- id: secondary-segment
title: "Secondary User Segment: {{segment_name}}"
title: 'Secondary User Segment: {{segment_name}}'
condition: Has secondary user segment
template: "{{secondary_user_description}}"
template: '{{secondary_user_description}}'
- id: goals-metrics
title: Goals & Success Metrics
@@ -1186,15 +1186,15 @@ sections:
- id: business-objectives
title: Business Objectives
type: bullet-list
template: "- {{objective_with_metric}}"
template: '- {{objective_with_metric}}'
- id: user-success-metrics
title: User Success Metrics
type: bullet-list
template: "- {{user_metric}}"
template: '- {{user_metric}}'
- id: kpis
title: Key Performance Indicators (KPIs)
type: bullet-list
template: "- {{kpi}}: {{definition_and_target}}"
template: '- {{kpi}}: {{definition_and_target}}'
- id: mvp-scope
title: MVP Scope
@@ -1203,14 +1203,14 @@ sections:
- id: core-features
title: Core Features (Must Have)
type: bullet-list
template: "- **{{feature}}:** {{description_and_rationale}}"
template: '- **{{feature}}:** {{description_and_rationale}}'
- id: out-of-scope
title: Out of Scope for MVP
type: bullet-list
template: "- {{feature_or_capability}}"
template: '- {{feature_or_capability}}'
- id: mvp-success-criteria
title: MVP Success Criteria
template: "{{mvp_success_definition}}"
template: '{{mvp_success_definition}}'
- id: post-mvp-vision
title: Post-MVP Vision
@@ -1218,13 +1218,13 @@ sections:
sections:
- id: phase-2-features
title: Phase 2 Features
template: "{{next_priority_features}}"
template: '{{next_priority_features}}'
- id: long-term-vision
title: Long-term Vision
template: "{{one_two_year_vision}}"
template: '{{one_two_year_vision}}'
- id: expansion-opportunities
title: Expansion Opportunities
template: "{{potential_expansions}}"
template: '{{potential_expansions}}'
- id: technical-considerations
title: Technical Considerations
@@ -1265,7 +1265,7 @@ sections:
- id: key-assumptions
title: Key Assumptions
type: bullet-list
template: "- {{assumption}}"
template: '- {{assumption}}'
- id: risks-questions
title: Risks & Open Questions
@@ -1274,15 +1274,15 @@ sections:
- id: key-risks
title: Key Risks
type: bullet-list
template: "- **{{risk}}:** {{description_and_impact}}"
template: '- **{{risk}}:** {{description_and_impact}}'
- id: open-questions
title: Open Questions
type: bullet-list
template: "- {{question}}"
template: '- {{question}}'
- id: research-areas
title: Areas Needing Further Research
type: bullet-list
template: "- {{research_topic}}"
template: '- {{research_topic}}'
- id: appendices
title: Appendices
@@ -1299,10 +1299,10 @@ sections:
- id: stakeholder-input
title: B. Stakeholder Input
condition: Has stakeholder feedback
template: "{{stakeholder_feedback}}"
template: '{{stakeholder_feedback}}'
- id: references
title: C. References
template: "{{relevant_links_and_docs}}"
template: '{{relevant_links_and_docs}}'
- id: next-steps
title: Next Steps
@@ -1310,7 +1310,7 @@ sections:
- id: immediate-actions
title: Immediate Actions
type: numbered-list
template: "{{action_item}}"
template: '{{action_item}}'
- id: pm-handoff
title: PM Handoff
content: |
@@ -1325,24 +1325,24 @@ template:
output:
format: markdown
filename: docs/market-research.md
title: "Market Research Report: {{project_product_name}}"
title: 'Market Research Report: {{project_product_name}}'
workflow:
mode: interactive
elicitation: advanced-elicitation
custom_elicitation:
title: "Market Research Elicitation Actions"
title: 'Market Research Elicitation Actions'
options:
- "Expand market sizing calculations with sensitivity analysis"
- "Deep dive into a specific customer segment"
- "Analyze an emerging market trend in detail"
- "Compare this market to an analogous market"
- "Stress test market assumptions"
- "Explore adjacent market opportunities"
- "Challenge market definition and boundaries"
- "Generate strategic scenarios (best/base/worst case)"
- "If only we had considered [X market factor]..."
- "Proceed to next section"
- 'Expand market sizing calculations with sensitivity analysis'
- 'Deep dive into a specific customer segment'
- 'Analyze an emerging market trend in detail'
- 'Compare this market to an analogous market'
- 'Stress test market assumptions'
- 'Explore adjacent market opportunities'
- 'Challenge market definition and boundaries'
- 'Generate strategic scenarios (best/base/worst case)'
- 'If only we had considered [X market factor]...'
- 'Proceed to next section'
sections:
- id: executive-summary
@@ -1424,7 +1424,7 @@ sections:
repeatable: true
sections:
- id: segment
title: "Segment {{segment_number}}: {{segment_name}}"
title: 'Segment {{segment_number}}: {{segment_name}}'
template: |
- **Description:** {{brief_overview}}
- **Size:** {{number_of_customers_market_value}}
@@ -1493,20 +1493,20 @@ sections:
instruction: Analyze each force with specific evidence and implications
sections:
- id: supplier-power
title: "Supplier Power: {{power_level}}"
template: "{{analysis_and_implications}}"
title: 'Supplier Power: {{power_level}}'
template: '{{analysis_and_implications}}'
- id: buyer-power
title: "Buyer Power: {{power_level}}"
template: "{{analysis_and_implications}}"
title: 'Buyer Power: {{power_level}}'
template: '{{analysis_and_implications}}'
- id: competitive-rivalry
title: "Competitive Rivalry: {{intensity_level}}"
template: "{{analysis_and_implications}}"
title: 'Competitive Rivalry: {{intensity_level}}'
template: '{{analysis_and_implications}}'
- id: threat-new-entry
title: "Threat of New Entry: {{threat_level}}"
template: "{{analysis_and_implications}}"
title: 'Threat of New Entry: {{threat_level}}'
template: '{{analysis_and_implications}}'
- id: threat-substitutes
title: "Threat of Substitutes: {{threat_level}}"
template: "{{analysis_and_implications}}"
title: 'Threat of Substitutes: {{threat_level}}'
template: '{{analysis_and_implications}}'
- id: adoption-lifecycle
title: Technology Adoption Lifecycle Stage
instruction: |
@@ -1524,7 +1524,7 @@ sections:
repeatable: true
sections:
- id: opportunity
title: "Opportunity {{opportunity_number}}: {{name}}"
title: 'Opportunity {{opportunity_number}}: {{name}}'
template: |
- **Description:** {{what_is_the_opportunity}}
- **Size/Potential:** {{quantified_potential}}
@@ -1580,24 +1580,24 @@ template:
output:
format: markdown
filename: docs/competitor-analysis.md
title: "Competitive Analysis Report: {{project_product_name}}"
title: 'Competitive Analysis Report: {{project_product_name}}'
workflow:
mode: interactive
elicitation: advanced-elicitation
custom_elicitation:
title: "Competitive Analysis Elicitation Actions"
title: 'Competitive Analysis Elicitation Actions'
options:
- "Deep dive on a specific competitor's strategy"
- "Analyze competitive dynamics in a specific segment"
- "War game competitive responses to your moves"
- "Explore partnership vs. competition scenarios"
- "Stress test differentiation claims"
- "Analyze disruption potential (yours or theirs)"
- "Compare to competition in adjacent markets"
- "Generate win/loss analysis insights"
- 'Analyze competitive dynamics in a specific segment'
- 'War game competitive responses to your moves'
- 'Explore partnership vs. competition scenarios'
- 'Stress test differentiation claims'
- 'Analyze disruption potential (yours or theirs)'
- 'Compare to competition in adjacent markets'
- 'Generate win/loss analysis insights'
- "If only we had known about [competitor X's plan]..."
- "Proceed to next section"
- 'Proceed to next section'
sections:
- id: executive-summary
@@ -1664,7 +1664,7 @@ sections:
repeatable: true
sections:
- id: competitor
title: "{{competitor_name}} - Priority {{priority_level}}"
title: '{{competitor_name}} - Priority {{priority_level}}'
sections:
- id: company-overview
title: Company Overview
@@ -1696,11 +1696,11 @@ sections:
- id: strengths
title: Strengths
type: bullet-list
template: "- {{strength}}"
template: '- {{strength}}'
- id: weaknesses
title: Weaknesses
type: bullet-list
template: "- {{weakness}}"
template: '- {{weakness}}'
- id: market-position
title: Market Position & Performance
template: |
@@ -1716,24 +1716,37 @@ sections:
title: Feature Comparison Matrix
instruction: Create a detailed comparison table of key features across competitors
type: table
columns: ["Feature Category", "{{your_company}}", "{{competitor_1}}", "{{competitor_2}}", "{{competitor_3}}"]
columns:
[
'Feature Category',
'{{your_company}}',
'{{competitor_1}}',
'{{competitor_2}}',
'{{competitor_3}}',
]
rows:
- category: "Core Functionality"
- category: 'Core Functionality'
items:
- ["Feature A", "{{status}}", "{{status}}", "{{status}}", "{{status}}"]
- ["Feature B", "{{status}}", "{{status}}", "{{status}}", "{{status}}"]
- category: "User Experience"
- ['Feature A', '{{status}}', '{{status}}', '{{status}}', '{{status}}']
- ['Feature B', '{{status}}', '{{status}}', '{{status}}', '{{status}}']
- category: 'User Experience'
items:
- ["Mobile App", "{{rating}}", "{{rating}}", "{{rating}}", "{{rating}}"]
- ["Onboarding Time", "{{time}}", "{{time}}", "{{time}}", "{{time}}"]
- category: "Integration & Ecosystem"
- ['Mobile App', '{{rating}}', '{{rating}}', '{{rating}}', '{{rating}}']
- ['Onboarding Time', '{{time}}', '{{time}}', '{{time}}', '{{time}}']
- category: 'Integration & Ecosystem'
items:
- ["API Availability", "{{availability}}", "{{availability}}", "{{availability}}", "{{availability}}"]
- ["Third-party Integrations", "{{number}}", "{{number}}", "{{number}}", "{{number}}"]
- category: "Pricing & Plans"
- [
'API Availability',
'{{availability}}',
'{{availability}}',
'{{availability}}',
'{{availability}}',
]
- ['Third-party Integrations', '{{number}}', '{{number}}', '{{number}}', '{{number}}']
- category: 'Pricing & Plans'
items:
- ["Starting Price", "{{price}}", "{{price}}", "{{price}}", "{{price}}"]
- ["Free Tier", "{{yes_no}}", "{{yes_no}}", "{{yes_no}}", "{{yes_no}}"]
- ['Starting Price', '{{price}}', '{{price}}', '{{price}}', '{{price}}']
- ['Free Tier', '{{yes_no}}', '{{yes_no}}', '{{yes_no}}', '{{yes_no}}']
- id: swot-comparison
title: SWOT Comparison
instruction: Create SWOT analysis for your solution vs. top competitors
@@ -1746,7 +1759,7 @@ sections:
- **Opportunities:** {{opportunities}}
- **Threats:** {{threats}}
- id: vs-competitor
title: "vs. {{main_competitor}}"
title: 'vs. {{main_competitor}}'
template: |
- **Competitive Advantages:** {{your_advantages}}
- **Competitive Disadvantages:** {{their_advantages}}
@@ -1876,7 +1889,7 @@ template:
output:
format: markdown
filename: docs/brainstorming-session-results.md
title: "Brainstorming Session Results"
title: 'Brainstorming Session Results'
workflow:
mode: non-interactive
@@ -1901,38 +1914,38 @@ sections:
**Total Ideas Generated:** {{total_ideas}}
- id: key-themes
title: "Key Themes Identified:"
title: 'Key Themes Identified:'
type: bullet-list
template: "- {{theme}}"
template: '- {{theme}}'
- id: technique-sessions
title: Technique Sessions
repeatable: true
sections:
- id: technique
title: "{{technique_name}} - {{duration}}"
title: '{{technique_name}} - {{duration}}'
sections:
- id: description
template: "**Description:** {{technique_description}}"
template: '**Description:** {{technique_description}}'
- id: ideas-generated
title: "Ideas Generated:"
title: 'Ideas Generated:'
type: numbered-list
template: "{{idea}}"
template: '{{idea}}'
- id: insights
title: "Insights Discovered:"
title: 'Insights Discovered:'
type: bullet-list
template: "- {{insight}}"
template: '- {{insight}}'
- id: connections
title: "Notable Connections:"
title: 'Notable Connections:'
type: bullet-list
template: "- {{connection}}"
template: '- {{connection}}'
- id: idea-categorization
title: Idea Categorization
sections:
- id: immediate-opportunities
title: Immediate Opportunities
content: "*Ideas ready to implement now*"
content: '*Ideas ready to implement now*'
repeatable: true
type: numbered-list
template: |
@@ -1942,7 +1955,7 @@ sections:
- Resources needed: {{requirements}}
- id: future-innovations
title: Future Innovations
content: "*Ideas requiring development/research*"
content: '*Ideas requiring development/research*'
repeatable: true
type: numbered-list
template: |
@@ -1952,7 +1965,7 @@ sections:
- Timeline estimate: {{timeline}}
- id: moonshots
title: Moonshots
content: "*Ambitious, transformative concepts*"
content: '*Ambitious, transformative concepts*'
repeatable: true
type: numbered-list
template: |
@@ -1962,9 +1975,9 @@ sections:
- Challenges to overcome: {{challenges}}
- id: insights-learnings
title: Insights & Learnings
content: "*Key realizations from the session*"
content: '*Key realizations from the session*'
type: bullet-list
template: "- {{insight}}: {{description_and_implications}}"
template: '- {{insight}}: {{description_and_implications}}'
- id: action-planning
title: Action Planning
@@ -1973,21 +1986,21 @@ sections:
title: Top 3 Priority Ideas
sections:
- id: priority-1
title: "#1 Priority: {{idea_name}}"
title: '#1 Priority: {{idea_name}}'
template: |
- Rationale: {{rationale}}
- Next steps: {{next_steps}}
- Resources needed: {{resources}}
- Timeline: {{timeline}}
- id: priority-2
title: "#2 Priority: {{idea_name}}"
title: '#2 Priority: {{idea_name}}'
template: |
- Rationale: {{rationale}}
- Next steps: {{next_steps}}
- Resources needed: {{resources}}
- Timeline: {{timeline}}
- id: priority-3
title: "#3 Priority: {{idea_name}}"
title: '#3 Priority: {{idea_name}}'
template: |
- Rationale: {{rationale}}
- Next steps: {{next_steps}}
@@ -2000,19 +2013,19 @@ sections:
- id: what-worked
title: What Worked Well
type: bullet-list
template: "- {{aspect}}"
template: '- {{aspect}}'
- id: areas-exploration
title: Areas for Further Exploration
type: bullet-list
template: "- {{area}}: {{reason}}"
template: '- {{area}}: {{reason}}'
- id: recommended-techniques
title: Recommended Follow-up Techniques
type: bullet-list
template: "- {{technique}}: {{reason}}"
template: '- {{technique}}: {{reason}}'
- id: questions-emerged
title: Questions That Emerged
type: bullet-list
template: "- {{question}}"
template: '- {{question}}'
- id: next-session
title: Next Session Planning
template: |
@@ -2328,7 +2341,7 @@ You are the "Vibe CEO" - thinking like a CEO with unlimited resources and a sing
- **Claude Code**: `/agent-name` (e.g., `/bmad-master`)
- **Cursor**: `@agent-name` (e.g., `@bmad-master`)
- **Windsurf**: `@agent-name` (e.g., `@bmad-master`)
- **Windsurf**: `/agent-name` (e.g., `/bmad-master`)
- **Trae**: `@agent-name` (e.g., `@bmad-master`)
- **Roo Code**: Select mode from mode selector (e.g., `bmad-master`)
- **GitHub Copilot**: Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.

View File

@@ -933,7 +933,7 @@ template:
output:
format: markdown
filename: docs/architecture.md
title: "{{project_name}} Architecture Document"
title: '{{project_name}} Architecture Document'
workflow:
mode: interactive
@@ -1044,11 +1044,11 @@ sections:
- Code organization patterns (Dependency Injection, Repository, Module, Factory)
- Data patterns (Event Sourcing, Saga, Database per Service)
- Communication patterns (REST, GraphQL, Message Queue, Pub/Sub)
template: "- **{{pattern_name}}:** {{pattern_description}} - _Rationale:_ {{rationale}}"
template: '- **{{pattern_name}}:** {{pattern_description}} - _Rationale:_ {{rationale}}'
examples:
- "**Serverless Architecture:** Using AWS Lambda for compute - _Rationale:_ Aligns with PRD requirement for cost optimization and automatic scaling"
- "**Repository Pattern:** Abstract data access logic - _Rationale:_ Enables testing and future database migration flexibility"
- "**Event-Driven Communication:** Using SNS/SQS for service decoupling - _Rationale:_ Supports async processing and system resilience"
- '**Serverless Architecture:** Using AWS Lambda for compute - _Rationale:_ Aligns with PRD requirement for cost optimization and automatic scaling'
- '**Repository Pattern:** Abstract data access logic - _Rationale:_ Enables testing and future database migration flexibility'
- '**Event-Driven Communication:** Using SNS/SQS for service decoupling - _Rationale:_ Supports async processing and system resilience'
- id: tech-stack
title: Tech Stack
@@ -1086,9 +1086,9 @@ sections:
columns: [Category, Technology, Version, Purpose, Rationale]
instruction: Populate the technology stack table with all relevant technologies
examples:
- "| **Language** | TypeScript | 5.3.3 | Primary development language | Strong typing, excellent tooling, team expertise |"
- "| **Runtime** | Node.js | 20.11.0 | JavaScript runtime | LTS version, stable performance, wide ecosystem |"
- "| **Framework** | NestJS | 10.3.2 | Backend framework | Enterprise-ready, good DI, matches team patterns |"
- '| **Language** | TypeScript | 5.3.3 | Primary development language | Strong typing, excellent tooling, team expertise |'
- '| **Runtime** | Node.js | 20.11.0 | JavaScript runtime | LTS version, stable performance, wide ecosystem |'
- '| **Framework** | NestJS | 10.3.2 | Backend framework | Enterprise-ready, good DI, matches team patterns |'
- id: data-models
title: Data Models
@@ -1106,7 +1106,7 @@ sections:
repeatable: true
sections:
- id: model
title: "{{model_name}}"
title: '{{model_name}}'
template: |
**Purpose:** {{model_purpose}}
@@ -1137,7 +1137,7 @@ sections:
sections:
- id: component-list
repeatable: true
title: "{{component_name}}"
title: '{{component_name}}'
template: |
**Responsibility:** {{component_description}}
@@ -1175,7 +1175,7 @@ sections:
repeatable: true
sections:
- id: api
title: "{{api_name}} API"
title: '{{api_name}} API'
template: |
- **Purpose:** {{api_purpose}}
- **Documentation:** {{api_docs_url}}
@@ -1300,12 +1300,12 @@ sections:
- id: environments
title: Environments
repeatable: true
template: "- **{{env_name}}:** {{env_purpose}} - {{env_details}}"
template: '- **{{env_name}}:** {{env_purpose}} - {{env_details}}'
- id: promotion-flow
title: Environment Promotion Flow
type: code
language: text
template: "{{promotion_flow_diagram}}"
template: '{{promotion_flow_diagram}}'
- id: rollback-strategy
title: Rollback Strategy
template: |
@@ -1401,16 +1401,16 @@ sections:
Avoid obvious rules like "use SOLID principles" or "write clean code"
repeatable: true
template: "- **{{rule_name}}:** {{rule_description}}"
template: '- **{{rule_name}}:** {{rule_description}}'
- id: language-specifics
title: Language-Specific Guidelines
condition: Critical language-specific rules needed
instruction: Add ONLY if critical for preventing AI mistakes. Most teams don't need this section.
sections:
- id: language-rules
title: "{{language_name}} Specifics"
title: '{{language_name}} Specifics'
repeatable: true
template: "- **{{rule_topic}}:** {{rule_detail}}"
template: '- **{{rule_topic}}:** {{rule_detail}}'
- id: test-strategy
title: Test Strategy and Standards
@@ -1458,9 +1458,9 @@ sections:
- **Test Infrastructure:**
- **{{dependency_name}}:** {{test_approach}} ({{test_tool}})
examples:
- "**Database:** In-memory H2 for unit tests, Testcontainers PostgreSQL for integration"
- "**Message Queue:** Embedded Kafka for tests"
- "**External APIs:** WireMock for stubbing"
- '**Database:** In-memory H2 for unit tests, Testcontainers PostgreSQL for integration'
- '**Message Queue:** Embedded Kafka for tests'
- '**External APIs:** WireMock for stubbing'
- id: e2e-tests
title: End-to-End Tests
template: |
@@ -1586,7 +1586,7 @@ template:
output:
format: markdown
filename: docs/ui-architecture.md
title: "{{project_name}} Frontend Architecture Document"
title: '{{project_name}} Frontend Architecture Document'
workflow:
mode: interactive
@@ -1654,17 +1654,29 @@ sections:
columns: [Category, Technology, Version, Purpose, Rationale]
instruction: Fill in appropriate technology choices based on the selected framework and project requirements.
rows:
- ["Framework", "{{framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["UI Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["State Management", "{{state_management}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Routing", "{{routing_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Styling", "{{styling_solution}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Testing", "{{test_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Component Library", "{{component_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Form Handling", "{{form_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Animation", "{{animation_lib}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Dev Tools", "{{dev_tools}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ['Framework', '{{framework}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['UI Library', '{{ui_library}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- [
'State Management',
'{{state_management}}',
'{{version}}',
'{{purpose}}',
'{{why_chosen}}',
]
- ['Routing', '{{routing_library}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Build Tool', '{{build_tool}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Styling', '{{styling_solution}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Testing', '{{test_framework}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- [
'Component Library',
'{{component_lib}}',
'{{version}}',
'{{purpose}}',
'{{why_chosen}}',
]
- ['Form Handling', '{{form_library}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Animation', '{{animation_lib}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Dev Tools', '{{dev_tools}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- id: project-structure
title: Project Structure
@@ -1758,12 +1770,12 @@ sections:
title: Testing Best Practices
type: numbered-list
items:
- "**Unit Tests**: Test individual components in isolation"
- "**Integration Tests**: Test component interactions"
- "**E2E Tests**: Test critical user flows (using Cypress/Playwright)"
- "**Coverage Goals**: Aim for 80% code coverage"
- "**Test Structure**: Arrange-Act-Assert pattern"
- "**Mock External Dependencies**: API calls, routing, state management"
- '**Unit Tests**: Test individual components in isolation'
- '**Integration Tests**: Test component interactions'
- '**E2E Tests**: Test critical user flows (using Cypress/Playwright)'
- '**Coverage Goals**: Aim for 80% code coverage'
- '**Test Structure**: Arrange-Act-Assert pattern'
- '**Mock External Dependencies**: API calls, routing, state management'
- id: environment-configuration
title: Environment Configuration
@@ -1795,7 +1807,7 @@ template:
output:
format: markdown
filename: docs/architecture.md
title: "{{project_name}} Fullstack Architecture Document"
title: '{{project_name}} Fullstack Architecture Document'
workflow:
mode: interactive
@@ -1916,12 +1928,12 @@ sections:
For each pattern, provide recommendation and rationale.
repeatable: true
template: "- **{{pattern_name}}:** {{pattern_description}} - _Rationale:_ {{rationale}}"
template: '- **{{pattern_name}}:** {{pattern_description}} - _Rationale:_ {{rationale}}'
examples:
- "**Jamstack Architecture:** Static site generation with serverless APIs - _Rationale:_ Optimal performance and scalability for content-heavy applications"
- "**Component-Based UI:** Reusable React components with TypeScript - _Rationale:_ Maintainability and type safety across large codebases"
- "**Repository Pattern:** Abstract data access logic - _Rationale:_ Enables testing and future database migration flexibility"
- "**API Gateway Pattern:** Single entry point for all API calls - _Rationale:_ Centralized auth, rate limiting, and monitoring"
- '**Jamstack Architecture:** Static site generation with serverless APIs - _Rationale:_ Optimal performance and scalability for content-heavy applications'
- '**Component-Based UI:** Reusable React components with TypeScript - _Rationale:_ Maintainability and type safety across large codebases'
- '**Repository Pattern:** Abstract data access logic - _Rationale:_ Enables testing and future database migration flexibility'
- '**API Gateway Pattern:** Single entry point for all API calls - _Rationale:_ Centralized auth, rate limiting, and monitoring'
- id: tech-stack
title: Tech Stack
@@ -1945,27 +1957,45 @@ sections:
type: table
columns: [Category, Technology, Version, Purpose, Rationale]
rows:
- ["Frontend Language", "{{fe_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Frontend Framework", "{{fe_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["UI Component Library", "{{ui_library}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["State Management", "{{state_mgmt}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Language", "{{be_language}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Framework", "{{be_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["API Style", "{{api_style}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Database", "{{database}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Cache", "{{cache}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["File Storage", "{{storage}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Authentication", "{{auth}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Frontend Testing", "{{fe_test}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Backend Testing", "{{be_test}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["E2E Testing", "{{e2e_test}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Build Tool", "{{build_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Bundler", "{{bundler}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["IaC Tool", "{{iac_tool}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["CI/CD", "{{cicd}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Monitoring", "{{monitoring}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["Logging", "{{logging}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ["CSS Framework", "{{css_framework}}", "{{version}}", "{{purpose}}", "{{why_chosen}}"]
- ['Frontend Language', '{{fe_language}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- [
'Frontend Framework',
'{{fe_framework}}',
'{{version}}',
'{{purpose}}',
'{{why_chosen}}',
]
- [
'UI Component Library',
'{{ui_library}}',
'{{version}}',
'{{purpose}}',
'{{why_chosen}}',
]
- ['State Management', '{{state_mgmt}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Backend Language', '{{be_language}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- [
'Backend Framework',
'{{be_framework}}',
'{{version}}',
'{{purpose}}',
'{{why_chosen}}',
]
- ['API Style', '{{api_style}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Database', '{{database}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Cache', '{{cache}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['File Storage', '{{storage}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Authentication', '{{auth}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Frontend Testing', '{{fe_test}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Backend Testing', '{{be_test}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['E2E Testing', '{{e2e_test}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Build Tool', '{{build_tool}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Bundler', '{{bundler}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['IaC Tool', '{{iac_tool}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['CI/CD', '{{cicd}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Monitoring', '{{monitoring}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['Logging', '{{logging}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- ['CSS Framework', '{{css_framework}}', '{{version}}', '{{purpose}}', '{{why_chosen}}']
- id: data-models
title: Data Models
@@ -1984,7 +2014,7 @@ sections:
repeatable: true
sections:
- id: model
title: "{{model_name}}"
title: '{{model_name}}'
template: |
**Purpose:** {{model_purpose}}
@@ -1996,11 +2026,11 @@ sections:
title: TypeScript Interface
type: code
language: typescript
template: "{{model_interface}}"
template: '{{model_interface}}'
- id: relationships
title: Relationships
type: bullet-list
template: "- {{relationship}}"
template: '- {{relationship}}'
- id: api-spec
title: API Specification
@@ -2037,13 +2067,13 @@ sections:
condition: API style is GraphQL
type: code
language: graphql
template: "{{graphql_schema}}"
template: '{{graphql_schema}}'
- id: trpc-api
title: tRPC Router Definitions
condition: API style is tRPC
type: code
language: typescript
template: "{{trpc_routers}}"
template: '{{trpc_routers}}'
- id: components
title: Components
@@ -2064,7 +2094,7 @@ sections:
sections:
- id: component-list
repeatable: true
title: "{{component_name}}"
title: '{{component_name}}'
template: |
**Responsibility:** {{component_description}}
@@ -2102,7 +2132,7 @@ sections:
repeatable: true
sections:
- id: api
title: "{{api_name}} API"
title: '{{api_name}} API'
template: |
- **Purpose:** {{api_purpose}}
- **Documentation:** {{api_docs_url}}
@@ -2159,12 +2189,12 @@ sections:
title: Component Organization
type: code
language: text
template: "{{component_structure}}"
template: '{{component_structure}}'
- id: component-template
title: Component Template
type: code
language: typescript
template: "{{component_template}}"
template: '{{component_template}}'
- id: state-management
title: State Management Architecture
instruction: Detail state management approach based on chosen solution.
@@ -2173,11 +2203,11 @@ sections:
title: State Structure
type: code
language: typescript
template: "{{state_structure}}"
template: '{{state_structure}}'
- id: state-patterns
title: State Management Patterns
type: bullet-list
template: "- {{pattern}}"
template: '- {{pattern}}'
- id: routing-architecture
title: Routing Architecture
instruction: Define routing structure based on framework choice.
@@ -2186,12 +2216,12 @@ sections:
title: Route Organization
type: code
language: text
template: "{{route_structure}}"
template: '{{route_structure}}'
- id: protected-routes
title: Protected Route Pattern
type: code
language: typescript
template: "{{protected_route_example}}"
template: '{{protected_route_example}}'
- id: frontend-services
title: Frontend Services Layer
instruction: Define how frontend communicates with backend.
@@ -2200,12 +2230,12 @@ sections:
title: API Client Setup
type: code
language: typescript
template: "{{api_client_setup}}"
template: '{{api_client_setup}}'
- id: service-example
title: Service Example
type: code
language: typescript
template: "{{service_example}}"
template: '{{service_example}}'
- id: backend-architecture
title: Backend Architecture
@@ -2223,12 +2253,12 @@ sections:
title: Function Organization
type: code
language: text
template: "{{function_structure}}"
template: '{{function_structure}}'
- id: function-template
title: Function Template
type: code
language: typescript
template: "{{function_template}}"
template: '{{function_template}}'
- id: traditional-server
condition: Traditional server architecture chosen
sections:
@@ -2236,12 +2266,12 @@ sections:
title: Controller/Route Organization
type: code
language: text
template: "{{controller_structure}}"
template: '{{controller_structure}}'
- id: controller-template
title: Controller Template
type: code
language: typescript
template: "{{controller_template}}"
template: '{{controller_template}}'
- id: database-architecture
title: Database Architecture
instruction: Define database schema and access patterns.
@@ -2250,12 +2280,12 @@ sections:
title: Schema Design
type: code
language: sql
template: "{{database_schema}}"
template: '{{database_schema}}'
- id: data-access-layer
title: Data Access Layer
type: code
language: typescript
template: "{{repository_pattern}}"
template: '{{repository_pattern}}'
- id: auth-architecture
title: Authentication and Authorization
instruction: Define auth implementation details.
@@ -2264,12 +2294,12 @@ sections:
title: Auth Flow
type: mermaid
mermaid_type: sequence
template: "{{auth_flow_diagram}}"
template: '{{auth_flow_diagram}}'
- id: auth-middleware
title: Middleware/Guards
type: code
language: typescript
template: "{{auth_middleware}}"
template: '{{auth_middleware}}'
- id: unified-project-structure
title: Unified Project Structure
@@ -2278,60 +2308,60 @@ sections:
type: code
language: plaintext
examples:
- |
{{project-name}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ ├── ci.yaml
│ └── deploy.yaml
├── apps/ # Application packages
│ ├── web/ # Frontend application
│ │ ├── src/
│ │ │ ├── components/ # UI components
│ │ │ ├── pages/ # Page components/routes
│ │ │ ├── hooks/ # Custom React hooks
│ │ │ ├── services/ # API client services
│ │ │ ├── stores/ # State management
│ │ │ ├── styles/ # Global styles/themes
│ │ │ └── utils/ # Frontend utilities
│ │ ├── public/ # Static assets
│ │ ├── tests/ # Frontend tests
│ │ └── package.json
│ └── api/ # Backend application
│ ├── src/
│ │ ├── routes/ # API routes/controllers
│ │ ├── services/ # Business logic
│ │ ├── models/ # Data models
│ │ ├── middleware/ # Express/API middleware
│ │ ├── utils/ # Backend utilities
│ │ └── {{serverless_or_server_entry}}
│ ├── tests/ # Backend tests
│ └── package.json
├── packages/ # Shared packages
│ ├── shared/ # Shared types/utilities
│ │ ├── src/
│ │ │ ├── types/ # TypeScript interfaces
│ │ │ ├── constants/ # Shared constants
│ │ │ └── utils/ # Shared utilities
│ │ └── package.json
│ ├── ui/ # Shared UI components
│ │ ├── src/
│ │ └── package.json
│ └── config/ # Shared configuration
│ ├── eslint/
│ ├── typescript/
│ └── jest/
├── infrastructure/ # IaC definitions
│ └── {{iac_structure}}
├── scripts/ # Build/deploy scripts
├── docs/ # Documentation
│ ├── prd.md
│ ├── front-end-spec.md
│ └── fullstack-architecture.md
├── .env.example # Environment template
├── package.json # Root package.json
├── {{monorepo_config}} # Monorepo configuration
└── README.md
- |
{{project-name}}/
├── .github/ # CI/CD workflows
│ └── workflows/
│ ├── ci.yaml
│ └── deploy.yaml
├── apps/ # Application packages
│ ├── web/ # Frontend application
│ │ ├── src/
│ │ │ ├── components/ # UI components
│ │ │ ├── pages/ # Page components/routes
│ │ │ ├── hooks/ # Custom React hooks
│ │ │ ├── services/ # API client services
│ │ │ ├── stores/ # State management
│ │ │ ├── styles/ # Global styles/themes
│ │ │ └── utils/ # Frontend utilities
│ │ ├── public/ # Static assets
│ │ ├── tests/ # Frontend tests
│ │ └── package.json
│ └── api/ # Backend application
│ ├── src/
│ │ ├── routes/ # API routes/controllers
│ │ ├── services/ # Business logic
│ │ ├── models/ # Data models
│ │ ├── middleware/ # Express/API middleware
│ │ ├── utils/ # Backend utilities
│ │ └── {{serverless_or_server_entry}}
│ ├── tests/ # Backend tests
│ └── package.json
├── packages/ # Shared packages
│ ├── shared/ # Shared types/utilities
│ │ ├── src/
│ │ │ ├── types/ # TypeScript interfaces
│ │ │ ├── constants/ # Shared constants
│ │ │ └── utils/ # Shared utilities
│ │ └── package.json
│ ├── ui/ # Shared UI components
│ │ ├── src/
│ │ └── package.json
│ └── config/ # Shared configuration
│ ├── eslint/
│ ├── typescript/
│ └── jest/
├── infrastructure/ # IaC definitions
│ └── {{iac_structure}}
├── scripts/ # Build/deploy scripts
├── docs/ # Documentation
│ ├── prd.md
│ ├── front-end-spec.md
│ └── fullstack-architecture.md
├── .env.example # Environment template
├── package.json # Root package.json
├── {{monorepo_config}} # Monorepo configuration
└── README.md
- id: development-workflow
title: Development Workflow
@@ -2345,12 +2375,12 @@ sections:
title: Prerequisites
type: code
language: bash
template: "{{prerequisites_commands}}"
template: '{{prerequisites_commands}}'
- id: initial-setup
title: Initial Setup
type: code
language: bash
template: "{{setup_commands}}"
template: '{{setup_commands}}'
- id: dev-commands
title: Development Commands
type: code
@@ -2406,15 +2436,15 @@ sections:
title: CI/CD Pipeline
type: code
language: yaml
template: "{{cicd_pipeline_config}}"
template: '{{cicd_pipeline_config}}'
- id: environments
title: Environments
type: table
columns: [Environment, Frontend URL, Backend URL, Purpose]
rows:
- ["Development", "{{dev_fe_url}}", "{{dev_be_url}}", "Local development"]
- ["Staging", "{{staging_fe_url}}", "{{staging_be_url}}", "Pre-production testing"]
- ["Production", "{{prod_fe_url}}", "{{prod_be_url}}", "Live environment"]
- ['Development', '{{dev_fe_url}}', '{{dev_be_url}}', 'Local development']
- ['Staging', '{{staging_fe_url}}', '{{staging_be_url}}', 'Pre-production testing']
- ['Production', '{{prod_fe_url}}', '{{prod_be_url}}', 'Live environment']
- id: security-performance
title: Security and Performance
@@ -2461,10 +2491,10 @@ sections:
type: code
language: text
template: |
E2E Tests
/ \
Integration Tests
/ \
E2E Tests
/ \
Integration Tests
/ \
Frontend Unit Backend Unit
- id: test-organization
title: Test Organization
@@ -2473,17 +2503,17 @@ sections:
title: Frontend Tests
type: code
language: text
template: "{{frontend_test_structure}}"
template: '{{frontend_test_structure}}'
- id: backend-tests
title: Backend Tests
type: code
language: text
template: "{{backend_test_structure}}"
template: '{{backend_test_structure}}'
- id: e2e-tests
title: E2E Tests
type: code
language: text
template: "{{e2e_test_structure}}"
template: '{{e2e_test_structure}}'
- id: test-examples
title: Test Examples
sections:
@@ -2491,17 +2521,17 @@ sections:
title: Frontend Component Test
type: code
language: typescript
template: "{{frontend_test_example}}"
template: '{{frontend_test_example}}'
- id: backend-test
title: Backend API Test
type: code
language: typescript
template: "{{backend_test_example}}"
template: '{{backend_test_example}}'
- id: e2e-test
title: E2E Test
type: code
language: typescript
template: "{{e2e_test_example}}"
template: '{{e2e_test_example}}'
- id: coding-standards
title: Coding Standards
@@ -2511,22 +2541,22 @@ sections:
- id: critical-rules
title: Critical Fullstack Rules
repeatable: true
template: "- **{{rule_name}}:** {{rule_description}}"
template: '- **{{rule_name}}:** {{rule_description}}'
examples:
- "**Type Sharing:** Always define types in packages/shared and import from there"
- "**API Calls:** Never make direct HTTP calls - use the service layer"
- "**Environment Variables:** Access only through config objects, never process.env directly"
- "**Error Handling:** All API routes must use the standard error handler"
- "**State Updates:** Never mutate state directly - use proper state management patterns"
- '**Type Sharing:** Always define types in packages/shared and import from there'
- '**API Calls:** Never make direct HTTP calls - use the service layer'
- '**Environment Variables:** Access only through config objects, never process.env directly'
- '**Error Handling:** All API routes must use the standard error handler'
- '**State Updates:** Never mutate state directly - use proper state management patterns'
- id: naming-conventions
title: Naming Conventions
type: table
columns: [Element, Frontend, Backend, Example]
rows:
- ["Components", "PascalCase", "-", "`UserProfile.tsx`"]
- ["Hooks", "camelCase with 'use'", "-", "`useAuth.ts`"]
- ["API Routes", "-", "kebab-case", "`/api/user-profile`"]
- ["Database Tables", "-", "snake_case", "`user_profiles`"]
- ['Components', 'PascalCase', '-', '`UserProfile.tsx`']
- ['Hooks', "camelCase with 'use'", '-', '`useAuth.ts`']
- ['API Routes', '-', 'kebab-case', '`/api/user-profile`']
- ['Database Tables', '-', 'snake_case', '`user_profiles`']
- id: error-handling
title: Error Handling Strategy
@@ -2537,7 +2567,7 @@ sections:
title: Error Flow
type: mermaid
mermaid_type: sequence
template: "{{error_flow_diagram}}"
template: '{{error_flow_diagram}}'
- id: error-format
title: Error Response Format
type: code
@@ -2556,12 +2586,12 @@ sections:
title: Frontend Error Handling
type: code
language: typescript
template: "{{frontend_error_handler}}"
template: '{{frontend_error_handler}}'
- id: backend-error-handling
title: Backend Error Handling
type: code
language: typescript
template: "{{backend_error_handler}}"
template: '{{backend_error_handler}}'
- id: monitoring
title: Monitoring and Observability
@@ -2603,7 +2633,7 @@ template:
output:
format: markdown
filename: docs/architecture.md
title: "{{project_name}} Brownfield Enhancement Architecture"
title: '{{project_name}} Brownfield Enhancement Architecture'
workflow:
mode: interactive
@@ -2661,11 +2691,11 @@ sections:
- id: available-docs
title: Available Documentation
type: bullet-list
template: "- {{existing_docs_summary}}"
template: '- {{existing_docs_summary}}'
- id: constraints
title: Identified Constraints
type: bullet-list
template: "- {{constraint}}"
template: '- {{constraint}}'
- id: changelog
title: Change Log
type: table
@@ -2745,7 +2775,7 @@ sections:
repeatable: true
sections:
- id: model
title: "{{model_name}}"
title: '{{model_name}}'
template: |
**Purpose:** {{model_purpose}}
**Integration:** {{integration_with_existing}}
@@ -2788,7 +2818,7 @@ sections:
repeatable: true
sections:
- id: component
title: "{{component_name}}"
title: '{{component_name}}'
template: |
**Responsibility:** {{component_description}}
**Integration Points:** {{integration_points}}
@@ -2831,7 +2861,7 @@ sections:
repeatable: true
sections:
- id: endpoint
title: "{{endpoint_name}}"
title: '{{endpoint_name}}'
template: |
- **Method:** {{http_method}}
- **Endpoint:** {{endpoint_path}}
@@ -2842,12 +2872,12 @@ sections:
title: Request
type: code
language: json
template: "{{request_schema}}"
template: '{{request_schema}}'
- id: response
title: Response
type: code
language: json
template: "{{response_schema}}"
template: '{{response_schema}}'
- id: external-api-integration
title: External API Integration
@@ -2856,7 +2886,7 @@ sections:
repeatable: true
sections:
- id: external-api
title: "{{api_name}} API"
title: '{{api_name}} API'
template: |
- **Purpose:** {{api_purpose}}
- **Documentation:** {{api_docs_url}}
@@ -2885,7 +2915,7 @@ sections:
type: code
language: plaintext
instruction: Document relevant parts of current structure
template: "{{existing_structure_relevant_parts}}"
template: '{{existing_structure_relevant_parts}}'
- id: new-file-organization
title: New File Organization
type: code
@@ -2960,7 +2990,7 @@ sections:
title: Enhancement-Specific Standards
condition: New patterns needed for enhancement
repeatable: true
template: "- **{{standard_name}}:** {{standard_description}}"
template: '- **{{standard_name}}:** {{standard_description}}'
- id: integration-rules
title: Critical Integration Rules
template: |

File diff suppressed because it is too large Load Diff

View File

@@ -775,7 +775,7 @@ You are the "Vibe CEO" - thinking like a CEO with unlimited resources and a sing
- **Claude Code**: `/agent-name` (e.g., `/bmad-master`)
- **Cursor**: `@agent-name` (e.g., `@bmad-master`)
- **Windsurf**: `@agent-name` (e.g., `@bmad-master`)
- **Windsurf**: `/agent-name` (e.g., `/bmad-master`)
- **Trae**: `@agent-name` (e.g., `@bmad-master`)
- **Roo Code**: Select mode from mode selector (e.g., `bmad-master`)
- **GitHub Copilot**: Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select **Agent** from the chat mode selector.

80
dist/agents/pm.txt vendored
View File

@@ -1159,7 +1159,7 @@ template:
output:
format: markdown
filename: docs/prd.md
title: "{{project_name}} Product Requirements Document (PRD)"
title: '{{project_name}} Product Requirements Document (PRD)'
workflow:
mode: interactive
@@ -1196,14 +1196,14 @@ sections:
prefix: FR
instruction: Each Requirement will be a bullet markdown and an identifier sequence starting with FR
examples:
- "FR6: The Todo List uses AI to detect and warn against potentially duplicate todo items that are worded differently."
- 'FR6: The Todo List uses AI to detect and warn against potentially duplicate todo items that are worded differently.'
- id: non-functional
title: Non Functional
type: numbered-list
prefix: NFR
instruction: Each Requirement will be a bullet markdown and an identifier sequence starting with NFR
examples:
- "NFR1: AWS service usage must aim to stay within free-tier limits where feasible."
- 'NFR1: AWS service usage must aim to stay within free-tier limits where feasible.'
- id: ui-goals
title: User Interface Design Goals
@@ -1229,24 +1229,24 @@ sections:
title: Core Screens and Views
instruction: From a product perspective, what are the most critical screens or views necessary to deliver the the PRD values and goals? This is meant to be Conceptual High Level to Drive Rough Epic or User Stories
examples:
- "Login Screen"
- "Main Dashboard"
- "Item Detail Page"
- "Settings Page"
- 'Login Screen'
- 'Main Dashboard'
- 'Item Detail Page'
- 'Settings Page'
- id: accessibility
title: "Accessibility: {None|WCAG AA|WCAG AAA|Custom Requirements}"
title: 'Accessibility: {None|WCAG AA|WCAG AAA|Custom Requirements}'
- id: branding
title: Branding
instruction: Any known branding elements or style guides that must be incorporated?
examples:
- "Replicate the look and feel of early 1900s black and white cinema, including animated effects replicating film damage or projector glitches during page or state transitions."
- "Attached is the full color pallet and tokens for our corporate branding."
- 'Replicate the look and feel of early 1900s black and white cinema, including animated effects replicating film damage or projector glitches during page or state transitions.'
- 'Attached is the full color pallet and tokens for our corporate branding.'
- id: target-platforms
title: "Target Device and Platforms: {Web Responsive|Mobile Only|Desktop Only|Cross-Platform}"
title: 'Target Device and Platforms: {Web Responsive|Mobile Only|Desktop Only|Cross-Platform}'
examples:
- "Web Responsive, and all mobile platforms"
- "iPhone Only"
- "ASCII Windows Desktop"
- 'Web Responsive, and all mobile platforms'
- 'iPhone Only'
- 'ASCII Windows Desktop'
- id: technical-assumptions
title: Technical Assumptions
@@ -1265,13 +1265,13 @@ sections:
testing: [Unit Only, Unit + Integration, Full Testing Pyramid]
sections:
- id: repository-structure
title: "Repository Structure: {Monorepo|Polyrepo|Multi-repo}"
title: 'Repository Structure: {Monorepo|Polyrepo|Multi-repo}'
- id: service-architecture
title: Service Architecture
instruction: "CRITICAL DECISION - Document the high-level service architecture (e.g., Monolith, Microservices, Serverless functions within a Monorepo)."
instruction: 'CRITICAL DECISION - Document the high-level service architecture (e.g., Monolith, Microservices, Serverless functions within a Monorepo).'
- id: testing-requirements
title: Testing Requirements
instruction: "CRITICAL DECISION - Document the testing requirements, unit only, integration, e2e, manual, need for manual testing convenience methods)."
instruction: 'CRITICAL DECISION - Document the testing requirements, unit only, integration, e2e, manual, need for manual testing convenience methods).'
- id: additional-assumptions
title: Additional Technical Assumptions and Requests
instruction: Throughout the entire process of drafting this document, if any other technical assumptions are raised or discovered appropriate for the architect, add them here as additional bulleted items
@@ -1291,10 +1291,10 @@ sections:
- Cross Cutting Concerns should flow through epics and stories and not be final stories. For example, adding a logging framework as a last story of an epic, or at the end of a project as a final epic or story would be terrible as we would not have logging from the beginning.
elicit: true
examples:
- "Epic 1: Foundation & Core Infrastructure: Establish project setup, authentication, and basic user management"
- "Epic 2: Core Business Entities: Create and manage primary domain objects with CRUD operations"
- "Epic 3: User Workflows & Interactions: Enable key user journeys and business processes"
- "Epic 4: Reporting & Analytics: Provide insights and data visualization for users"
- 'Epic 1: Foundation & Core Infrastructure: Establish project setup, authentication, and basic user management'
- 'Epic 2: Core Business Entities: Create and manage primary domain objects with CRUD operations'
- 'Epic 3: User Workflows & Interactions: Enable key user journeys and business processes'
- 'Epic 4: Reporting & Analytics: Provide insights and data visualization for users'
- id: epic-details
title: Epic {{epic_number}} {{epic_title}}
@@ -1316,7 +1316,7 @@ sections:
- Think "junior developer working for 2-4 hours" - stories must be small, focused, and self-contained
- If a story seems complex, break it down further as long as it can deliver a vertical slice
elicit: true
template: "{{epic_goal}}"
template: '{{epic_goal}}'
sections:
- id: story
title: Story {{epic_number}}.{{story_number}} {{story_title}}
@@ -1329,7 +1329,7 @@ sections:
- id: acceptance-criteria
title: Acceptance Criteria
type: numbered-list
item_template: "{{criterion_number}}: {{criteria}}"
item_template: '{{criterion_number}}: {{criteria}}'
repeatable: true
instruction: |
Define clear, comprehensive, and testable acceptance criteria that:
@@ -1364,7 +1364,7 @@ template:
output:
format: markdown
filename: docs/prd.md
title: "{{project_name}} Brownfield Enhancement PRD"
title: '{{project_name}} Brownfield Enhancement PRD'
workflow:
mode: interactive
@@ -1427,7 +1427,7 @@ sections:
- External API Documentation [[LLM: If from document-project, check ✓]]
- UX/UI Guidelines [[LLM: May not be in document-project]]
- Technical Debt Documentation [[LLM: If from document-project, check ✓]]
- "Other: {{other_docs}}"
- 'Other: {{other_docs}}'
instruction: |
- If document-project was already run: "Using existing project analysis from document-project output."
- If critical documentation is missing and no document-project: "I recommend running the document-project task first..."
@@ -1447,7 +1447,7 @@ sections:
- UI/UX Overhaul
- Technology Stack Upgrade
- Bug Fix and Stability Improvements
- "Other: {{other_type}}"
- 'Other: {{other_type}}'
- id: enhancement-description
title: Enhancement Description
instruction: 2-3 sentences describing what the user wants to add or change
@@ -1488,29 +1488,29 @@ sections:
prefix: FR
instruction: Each Requirement will be a bullet markdown with identifier starting with FR
examples:
- "FR1: The existing Todo List will integrate with the new AI duplicate detection service without breaking current functionality."
- 'FR1: The existing Todo List will integrate with the new AI duplicate detection service without breaking current functionality.'
- id: non-functional
title: Non Functional
type: numbered-list
prefix: NFR
instruction: Each Requirement will be a bullet markdown with identifier starting with NFR. Include constraints from existing system
examples:
- "NFR1: Enhancement must maintain existing performance characteristics and not exceed current memory usage by more than 20%."
- 'NFR1: Enhancement must maintain existing performance characteristics and not exceed current memory usage by more than 20%.'
- id: compatibility
title: Compatibility Requirements
instruction: Critical for brownfield - what must remain compatible
type: numbered-list
prefix: CR
template: "{{requirement}}: {{description}}"
template: '{{requirement}}: {{description}}'
items:
- id: cr1
template: "CR1: {{existing_api_compatibility}}"
template: 'CR1: {{existing_api_compatibility}}'
- id: cr2
template: "CR2: {{database_schema_compatibility}}"
template: 'CR2: {{database_schema_compatibility}}'
- id: cr3
template: "CR3: {{ui_ux_consistency}}"
template: 'CR3: {{ui_ux_consistency}}'
- id: cr4
template: "CR4: {{integration_compatibility}}"
template: 'CR4: {{integration_compatibility}}'
- id: ui-enhancement-goals
title: User Interface Enhancement Goals
@@ -1593,10 +1593,10 @@ sections:
- id: epic-approach
title: Epic Approach
instruction: Explain the rationale for epic structure - typically single epic for brownfield unless multiple unrelated features
template: "**Epic Structure Decision**: {{epic_decision}} with rationale"
template: '**Epic Structure Decision**: {{epic_decision}} with rationale'
- id: epic-details
title: "Epic 1: {{enhancement_title}}"
title: 'Epic 1: {{enhancement_title}}'
instruction: |
Comprehensive epic that delivers the brownfield enhancement while maintaining existing functionality
@@ -1616,7 +1616,7 @@ sections:
**Integration Requirements**: {{integration_requirements}}
sections:
- id: story
title: "Story 1.{{story_number}} {{story_title}}"
title: 'Story 1.{{story_number}} {{story_title}}'
repeatable: true
template: |
As a {{user_type}},
@@ -1627,16 +1627,16 @@ sections:
title: Acceptance Criteria
type: numbered-list
instruction: Define criteria that include both new functionality and existing system integrity
item_template: "{{criterion_number}}: {{criteria}}"
item_template: '{{criterion_number}}: {{criteria}}'
- id: integration-verification
title: Integration Verification
instruction: Specific verification steps to ensure existing functionality remains intact
type: numbered-list
prefix: IV
items:
- template: "IV1: {{existing_functionality_verification}}"
- template: "IV2: {{integration_point_verification}}"
- template: "IV3: {{performance_impact_verification}}"
- template: 'IV1: {{existing_functionality_verification}}'
- template: 'IV2: {{integration_point_verification}}'
- template: 'IV3: {{performance_impact_verification}}'
==================== END: .bmad-core/templates/brownfield-prd-tmpl.yaml ====================
==================== START: .bmad-core/checklists/pm-checklist.md ====================

4
dist/agents/po.txt vendored
View File

@@ -593,7 +593,7 @@ template:
output:
format: markdown
filename: docs/stories/{{epic_num}}.{{story_num}}.{{story_title_short}}.md
title: "Story {{epic_num}}.{{story_num}}: {{story_title_short}}"
title: 'Story {{epic_num}}.{{story_num}}: {{story_title_short}}'
workflow:
mode: interactive
@@ -695,7 +695,7 @@ sections:
sections:
- id: agent-model
title: Agent Model Used
template: "{{agent_model_name_version}}"
template: '{{agent_model_name_version}}'
instruction: Record the specific AI agent model and version used for development
owner: dev-agent
editors: [dev-agent]

873
dist/agents/qa.txt vendored

File diff suppressed because it is too large Load Diff

4
dist/agents/sm.txt vendored
View File

@@ -369,7 +369,7 @@ template:
output:
format: markdown
filename: docs/stories/{{epic_num}}.{{story_num}}.{{story_title_short}}.md
title: "Story {{epic_num}}.{{story_num}}: {{story_title_short}}"
title: 'Story {{epic_num}}.{{story_num}}: {{story_title_short}}'
workflow:
mode: interactive
@@ -471,7 +471,7 @@ sections:
sections:
- id: agent-model
title: Agent Model Used
template: "{{agent_model_name_version}}"
template: '{{agent_model_name_version}}'
instruction: Record the specific AI agent model and version used for development
owner: dev-agent
editors: [dev-agent]

View File

@@ -343,7 +343,7 @@ template:
output:
format: markdown
filename: docs/front-end-spec.md
title: "{{project_name}} UI/UX Specification"
title: '{{project_name}} UI/UX Specification'
workflow:
mode: interactive
@@ -371,29 +371,29 @@ sections:
sections:
- id: user-personas
title: Target User Personas
template: "{{persona_descriptions}}"
template: '{{persona_descriptions}}'
examples:
- "**Power User:** Technical professionals who need advanced features and efficiency"
- "**Casual User:** Occasional users who prioritize ease of use and clear guidance"
- "**Administrator:** System managers who need control and oversight capabilities"
- '**Power User:** Technical professionals who need advanced features and efficiency'
- '**Casual User:** Occasional users who prioritize ease of use and clear guidance'
- '**Administrator:** System managers who need control and oversight capabilities'
- id: usability-goals
title: Usability Goals
template: "{{usability_goals}}"
template: '{{usability_goals}}'
examples:
- "Ease of learning: New users can complete core tasks within 5 minutes"
- "Efficiency of use: Power users can complete frequent tasks with minimal clicks"
- "Error prevention: Clear validation and confirmation for destructive actions"
- "Memorability: Infrequent users can return without relearning"
- 'Ease of learning: New users can complete core tasks within 5 minutes'
- 'Efficiency of use: Power users can complete frequent tasks with minimal clicks'
- 'Error prevention: Clear validation and confirmation for destructive actions'
- 'Memorability: Infrequent users can return without relearning'
- id: design-principles
title: Design Principles
template: "{{design_principles}}"
template: '{{design_principles}}'
type: numbered-list
examples:
- "**Clarity over cleverness** - Prioritize clear communication over aesthetic innovation"
- '**Clarity over cleverness** - Prioritize clear communication over aesthetic innovation'
- "**Progressive disclosure** - Show only what's needed, when it's needed"
- "**Consistent patterns** - Use familiar UI patterns throughout the application"
- "**Immediate feedback** - Every action should have a clear, immediate response"
- "**Accessible by default** - Design for all users from the start"
- '**Consistent patterns** - Use familiar UI patterns throughout the application'
- '**Immediate feedback** - Every action should have a clear, immediate response'
- '**Accessible by default** - Design for all users from the start'
- id: changelog
title: Change Log
type: table
@@ -415,7 +415,7 @@ sections:
title: Site Map / Screen Inventory
type: mermaid
mermaid_type: graph
template: "{{sitemap_diagram}}"
template: '{{sitemap_diagram}}'
examples:
- |
graph TD
@@ -455,7 +455,7 @@ sections:
repeatable: true
sections:
- id: flow
title: "{{flow_name}}"
title: '{{flow_name}}'
template: |
**User Goal:** {{flow_goal}}
@@ -467,13 +467,13 @@ sections:
title: Flow Diagram
type: mermaid
mermaid_type: graph
template: "{{flow_diagram}}"
template: '{{flow_diagram}}'
- id: edge-cases
title: "Edge Cases & Error Handling:"
title: 'Edge Cases & Error Handling:'
type: bullet-list
template: "- {{edge_case}}"
template: '- {{edge_case}}'
- id: notes
template: "**Notes:** {{flow_notes}}"
template: '**Notes:** {{flow_notes}}'
- id: wireframes-mockups
title: Wireframes & Mockups
@@ -482,13 +482,13 @@ sections:
elicit: true
sections:
- id: design-files
template: "**Primary Design Files:** {{design_tool_link}}"
template: '**Primary Design Files:** {{design_tool_link}}'
- id: key-screen-layouts
title: Key Screen Layouts
repeatable: true
sections:
- id: screen
title: "{{screen_name}}"
title: '{{screen_name}}'
template: |
**Purpose:** {{screen_purpose}}
@@ -508,13 +508,13 @@ sections:
elicit: true
sections:
- id: design-system-approach
template: "**Design System Approach:** {{design_system_approach}}"
template: '**Design System Approach:** {{design_system_approach}}'
- id: core-components
title: Core Components
repeatable: true
sections:
- id: component
title: "{{component_name}}"
title: '{{component_name}}'
template: |
**Purpose:** {{component_purpose}}
@@ -531,19 +531,19 @@ sections:
sections:
- id: visual-identity
title: Visual Identity
template: "**Brand Guidelines:** {{brand_guidelines_link}}"
template: '**Brand Guidelines:** {{brand_guidelines_link}}'
- id: color-palette
title: Color Palette
type: table
columns: ["Color Type", "Hex Code", "Usage"]
columns: ['Color Type', 'Hex Code', 'Usage']
rows:
- ["Primary", "{{primary_color}}", "{{primary_usage}}"]
- ["Secondary", "{{secondary_color}}", "{{secondary_usage}}"]
- ["Accent", "{{accent_color}}", "{{accent_usage}}"]
- ["Success", "{{success_color}}", "Positive feedback, confirmations"]
- ["Warning", "{{warning_color}}", "Cautions, important notices"]
- ["Error", "{{error_color}}", "Errors, destructive actions"]
- ["Neutral", "{{neutral_colors}}", "Text, borders, backgrounds"]
- ['Primary', '{{primary_color}}', '{{primary_usage}}']
- ['Secondary', '{{secondary_color}}', '{{secondary_usage}}']
- ['Accent', '{{accent_color}}', '{{accent_usage}}']
- ['Success', '{{success_color}}', 'Positive feedback, confirmations']
- ['Warning', '{{warning_color}}', 'Cautions, important notices']
- ['Error', '{{error_color}}', 'Errors, destructive actions']
- ['Neutral', '{{neutral_colors}}', 'Text, borders, backgrounds']
- id: typography
title: Typography
sections:
@@ -556,13 +556,13 @@ sections:
- id: type-scale
title: Type Scale
type: table
columns: ["Element", "Size", "Weight", "Line Height"]
columns: ['Element', 'Size', 'Weight', 'Line Height']
rows:
- ["H1", "{{h1_size}}", "{{h1_weight}}", "{{h1_line}}"]
- ["H2", "{{h2_size}}", "{{h2_weight}}", "{{h2_line}}"]
- ["H3", "{{h3_size}}", "{{h3_weight}}", "{{h3_line}}"]
- ["Body", "{{body_size}}", "{{body_weight}}", "{{body_line}}"]
- ["Small", "{{small_size}}", "{{small_weight}}", "{{small_line}}"]
- ['H1', '{{h1_size}}', '{{h1_weight}}', '{{h1_line}}']
- ['H2', '{{h2_size}}', '{{h2_weight}}', '{{h2_line}}']
- ['H3', '{{h3_size}}', '{{h3_weight}}', '{{h3_line}}']
- ['Body', '{{body_size}}', '{{body_weight}}', '{{body_line}}']
- ['Small', '{{small_size}}', '{{small_weight}}', '{{small_line}}']
- id: iconography
title: Iconography
template: |
@@ -583,7 +583,7 @@ sections:
sections:
- id: compliance-target
title: Compliance Target
template: "**Standard:** {{compliance_standard}}"
template: '**Standard:** {{compliance_standard}}'
- id: key-requirements
title: Key Requirements
template: |
@@ -603,7 +603,7 @@ sections:
- Form labels: {{form_requirements}}
- id: testing-strategy
title: Testing Strategy
template: "{{accessibility_testing}}"
template: '{{accessibility_testing}}'
- id: responsiveness
title: Responsiveness Strategy
@@ -613,12 +613,12 @@ sections:
- id: breakpoints
title: Breakpoints
type: table
columns: ["Breakpoint", "Min Width", "Max Width", "Target Devices"]
columns: ['Breakpoint', 'Min Width', 'Max Width', 'Target Devices']
rows:
- ["Mobile", "{{mobile_min}}", "{{mobile_max}}", "{{mobile_devices}}"]
- ["Tablet", "{{tablet_min}}", "{{tablet_max}}", "{{tablet_devices}}"]
- ["Desktop", "{{desktop_min}}", "{{desktop_max}}", "{{desktop_devices}}"]
- ["Wide", "{{wide_min}}", "-", "{{wide_devices}}"]
- ['Mobile', '{{mobile_min}}', '{{mobile_max}}', '{{mobile_devices}}']
- ['Tablet', '{{tablet_min}}', '{{tablet_max}}', '{{tablet_devices}}']
- ['Desktop', '{{desktop_min}}', '{{desktop_max}}', '{{desktop_devices}}']
- ['Wide', '{{wide_min}}', '-', '{{wide_devices}}']
- id: adaptation-patterns
title: Adaptation Patterns
template: |
@@ -637,11 +637,11 @@ sections:
sections:
- id: motion-principles
title: Motion Principles
template: "{{motion_principles}}"
template: '{{motion_principles}}'
- id: key-animations
title: Key Animations
repeatable: true
template: "- **{{animation_name}}:** {{animation_description}} (Duration: {{duration}}, Easing: {{easing}})"
template: '- **{{animation_name}}:** {{animation_description}} (Duration: {{duration}}, Easing: {{easing}})'
- id: performance
title: Performance Considerations
@@ -655,7 +655,7 @@ sections:
- **Animation FPS:** {{animation_goal}}
- id: design-strategies
title: Design Strategies
template: "{{performance_strategies}}"
template: '{{performance_strategies}}'
- id: next-steps
title: Next Steps
@@ -670,17 +670,17 @@ sections:
- id: immediate-actions
title: Immediate Actions
type: numbered-list
template: "{{action}}"
template: '{{action}}'
- id: design-handoff-checklist
title: Design Handoff Checklist
type: checklist
items:
- "All user flows documented"
- "Component inventory complete"
- "Accessibility requirements defined"
- "Responsive strategy clear"
- "Brand guidelines incorporated"
- "Performance goals established"
- 'All user flows documented'
- 'Component inventory complete'
- 'Accessibility requirements defined'
- 'Responsive strategy clear'
- 'Brand guidelines incorporated'
- 'Performance goals established'
- id: checklist-results
title: Checklist Results

View File

@@ -981,8 +981,8 @@ template:
version: 2.0
output:
format: markdown
filename: "docs/{{game_name}}-game-design-document.md"
title: "{{game_title}} Game Design Document (GDD)"
filename: 'docs/{{game_name}}-game-design-document.md'
title: '{{game_title}} Game Design Document (GDD)'
workflow:
mode: interactive
@@ -1019,7 +1019,7 @@ sections:
title: Unique Selling Points
instruction: List 3-5 key features that differentiate this game from competitors
type: numbered-list
template: "{{usp}}"
template: '{{usp}}'
- id: core-gameplay
title: Core Gameplay
@@ -1064,7 +1064,7 @@ sections:
repeatable: true
sections:
- id: mechanic
title: "{{mechanic_name}}"
title: '{{mechanic_name}}'
template: |
**Description:** {{detailed_description}}
@@ -1129,7 +1129,7 @@ sections:
repeatable: true
sections:
- id: level-type
title: "{{level_type_name}}"
title: '{{level_type_name}}'
template: |
**Purpose:** {{gameplay_purpose}}
**Duration:** {{target_time}}
@@ -1230,10 +1230,10 @@ sections:
instruction: Break down the development into phases that can be converted to epics
sections:
- id: phase-1-core-systems
title: "Phase 1: Core Systems ({{duration}})"
title: 'Phase 1: Core Systems ({{duration}})'
sections:
- id: foundation-epic
title: "Epic: Foundation"
title: 'Epic: Foundation'
type: bullet-list
template: |
- Engine setup and configuration
@@ -1241,41 +1241,41 @@ sections:
- Core input handling
- Asset loading pipeline
- id: core-mechanics-epic
title: "Epic: Core Mechanics"
title: 'Epic: Core Mechanics'
type: bullet-list
template: |
- {{primary_mechanic}} implementation
- Basic physics and collision
- Player controller
- id: phase-2-gameplay-features
title: "Phase 2: Gameplay Features ({{duration}})"
title: 'Phase 2: Gameplay Features ({{duration}})'
sections:
- id: game-systems-epic
title: "Epic: Game Systems"
title: 'Epic: Game Systems'
type: bullet-list
template: |
- {{mechanic_2}} implementation
- {{mechanic_3}} implementation
- Game state management
- id: content-creation-epic
title: "Epic: Content Creation"
title: 'Epic: Content Creation'
type: bullet-list
template: |
- Level loading system
- First playable levels
- Basic UI implementation
- id: phase-3-polish-optimization
title: "Phase 3: Polish & Optimization ({{duration}})"
title: 'Phase 3: Polish & Optimization ({{duration}})'
sections:
- id: performance-epic
title: "Epic: Performance"
title: 'Epic: Performance'
type: bullet-list
template: |
- Optimization and profiling
- Mobile platform testing
- Memory management
- id: user-experience-epic
title: "Epic: User Experience"
title: 'Epic: User Experience'
type: bullet-list
template: |
- Audio implementation
@@ -1317,7 +1317,7 @@ sections:
title: References
instruction: List any competitive analysis, inspiration, or research sources
type: bullet-list
template: "{{reference}}"
template: '{{reference}}'
==================== END: .bmad-2d-phaser-game-dev/templates/game-design-doc-tmpl.yaml ====================
==================== START: .bmad-2d-phaser-game-dev/templates/level-design-doc-tmpl.yaml ====================
@@ -1327,8 +1327,8 @@ template:
version: 2.0
output:
format: markdown
filename: "docs/{{game_name}}-level-design-document.md"
title: "{{game_title}} Level Design Document"
filename: 'docs/{{game_name}}-level-design-document.md'
title: '{{game_title}} Level Design Document'
workflow:
mode: interactive
@@ -1389,7 +1389,7 @@ sections:
repeatable: true
sections:
- id: level-category
title: "{{category_name}} Levels"
title: '{{category_name}} Levels'
template: |
**Purpose:** {{gameplay_purpose}}
@@ -1694,19 +1694,19 @@ sections:
title: Playtesting Checklist
type: checklist
items:
- "Level completes within target time range"
- "All mechanics function correctly"
- "Difficulty feels appropriate for level category"
- "Player guidance is clear and effective"
- "No exploits or sequence breaks (unless intended)"
- 'Level completes within target time range'
- 'All mechanics function correctly'
- 'Difficulty feels appropriate for level category'
- 'Player guidance is clear and effective'
- 'No exploits or sequence breaks (unless intended)'
- id: player-experience-testing
title: Player Experience Testing
type: checklist
items:
- "Tutorial levels teach effectively"
- "Challenge feels fair and rewarding"
- "Flow and pacing maintain engagement"
- "Audio and visual feedback support gameplay"
- 'Tutorial levels teach effectively'
- 'Challenge feels fair and rewarding'
- 'Flow and pacing maintain engagement'
- 'Audio and visual feedback support gameplay'
- id: balance-validation
title: Balance Validation
template: |
@@ -1814,8 +1814,8 @@ template:
version: 2.0
output:
format: markdown
filename: "docs/{{game_name}}-game-brief.md"
title: "{{game_title}} Game Brief"
filename: 'docs/{{game_name}}-game-brief.md'
title: '{{game_title}} Game Brief'
workflow:
mode: interactive
@@ -2101,21 +2101,21 @@ sections:
title: Development Roadmap
sections:
- id: phase-1-preproduction
title: "Phase 1: Pre-Production ({{duration}})"
title: 'Phase 1: Pre-Production ({{duration}})'
type: bullet-list
template: |
- Detailed Game Design Document creation
- Technical architecture planning
- Art style exploration and pipeline setup
- id: phase-2-prototype
title: "Phase 2: Prototype ({{duration}})"
title: 'Phase 2: Prototype ({{duration}})'
type: bullet-list
template: |
- Core mechanic implementation
- Technical proof of concept
- Initial playtesting and iteration
- id: phase-3-production
title: "Phase 3: Production ({{duration}})"
title: 'Phase 3: Production ({{duration}})'
type: bullet-list
template: |
- Full feature development

View File

@@ -197,8 +197,8 @@ template:
version: 2.0
output:
format: markdown
filename: "docs/{{game_name}}-game-architecture.md"
title: "{{game_title}} Game Architecture Document"
filename: 'docs/{{game_name}}-game-architecture.md'
title: '{{game_title}} Game Architecture Document'
workflow:
mode: interactive
@@ -422,7 +422,7 @@ sections:
repeatable: true
sections:
- id: mechanic-system
title: "{{mechanic_name}} System"
title: '{{mechanic_name}} System'
template: |
**Purpose:** {{system_purpose}}
@@ -719,7 +719,7 @@ sections:
instruction: Break down the architecture implementation into phases that align with the GDD development phases
sections:
- id: phase-1-foundation
title: "Phase 1: Foundation ({{duration}})"
title: 'Phase 1: Foundation ({{duration}})'
sections:
- id: phase-1-core
title: Core Systems
@@ -737,7 +737,7 @@ sections:
- "Basic Scene Management System"
- "Asset Loading Foundation"
- id: phase-2-game-systems
title: "Phase 2: Game Systems ({{duration}})"
title: 'Phase 2: Game Systems ({{duration}})'
sections:
- id: phase-2-gameplay
title: Gameplay Systems
@@ -755,7 +755,7 @@ sections:
- "Physics and Collision Framework"
- "Game State Management System"
- id: phase-3-content-polish
title: "Phase 3: Content & Polish ({{duration}})"
title: 'Phase 3: Content & Polish ({{duration}})'
sections:
- id: phase-3-content
title: Content Systems
@@ -1045,7 +1045,7 @@ interface GameState {
interface GameSettings {
musicVolume: number;
sfxVolume: number;
difficulty: "easy" | "normal" | "hard";
difficulty: 'easy' | 'normal' | 'hard';
controls: ControlScheme;
}
```
@@ -1086,12 +1086,12 @@ class GameScene extends Phaser.Scene {
private inputManager!: InputManager;
constructor() {
super({ key: "GameScene" });
super({ key: 'GameScene' });
}
preload(): void {
// Load only scene-specific assets
this.load.image("player", "assets/player.png");
this.load.image('player', 'assets/player.png');
}
create(data: SceneData): void {
@@ -1116,7 +1116,7 @@ class GameScene extends Phaser.Scene {
this.inputManager.destroy();
// Remove event listeners
this.events.off("*");
this.events.off('*');
}
}
```
@@ -1125,13 +1125,13 @@ class GameScene extends Phaser.Scene {
```typescript
// Proper scene transitions with data
this.scene.start("NextScene", {
this.scene.start('NextScene', {
playerScore: this.playerScore,
currentLevel: this.currentLevel + 1,
});
// Scene overlays for UI
this.scene.launch("PauseMenuScene");
this.scene.launch('PauseMenuScene');
this.scene.pause();
```
@@ -1175,7 +1175,7 @@ class Player extends GameEntity {
private health!: HealthComponent;
constructor(scene: Phaser.Scene, x: number, y: number) {
super(scene, x, y, "player");
super(scene, x, y, 'player');
this.movement = this.addComponent(new MovementComponent(this));
this.health = this.addComponent(new HealthComponent(this, 100));
@@ -1195,7 +1195,7 @@ class GameManager {
constructor(scene: Phaser.Scene) {
if (GameManager.instance) {
throw new Error("GameManager already exists!");
throw new Error('GameManager already exists!');
}
this.scene = scene;
@@ -1205,7 +1205,7 @@ class GameManager {
static getInstance(): GameManager {
if (!GameManager.instance) {
throw new Error("GameManager not initialized!");
throw new Error('GameManager not initialized!');
}
return GameManager.instance;
}
@@ -1252,7 +1252,7 @@ class BulletPool {
}
// Pool exhausted - create new bullet
console.warn("Bullet pool exhausted, creating new bullet");
console.warn('Bullet pool exhausted, creating new bullet');
return new Bullet(this.scene, 0, 0);
}
@@ -1352,14 +1352,12 @@ class InputManager {
}
private setupKeyboard(): void {
this.keys = this.scene.input.keyboard.addKeys(
"W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT",
);
this.keys = this.scene.input.keyboard.addKeys('W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT');
}
private setupTouch(): void {
this.scene.input.on("pointerdown", this.handlePointerDown, this);
this.scene.input.on("pointerup", this.handlePointerUp, this);
this.scene.input.on('pointerdown', this.handlePointerDown, this);
this.scene.input.on('pointerup', this.handlePointerUp, this);
}
update(): void {
@@ -1386,9 +1384,9 @@ class InputManager {
class AssetManager {
loadAssets(): Promise<void> {
return new Promise((resolve, reject) => {
this.scene.load.on("filecomplete", this.handleFileComplete, this);
this.scene.load.on("loaderror", this.handleLoadError, this);
this.scene.load.on("complete", () => resolve());
this.scene.load.on('filecomplete', this.handleFileComplete, this);
this.scene.load.on('loaderror', this.handleLoadError, this);
this.scene.load.on('complete', () => resolve());
this.scene.load.start();
});
@@ -1404,8 +1402,8 @@ class AssetManager {
private loadFallbackAsset(key: string): void {
// Load placeholder or default assets
switch (key) {
case "player":
this.scene.load.image("player", "assets/defaults/default-player.png");
case 'player':
this.scene.load.image('player', 'assets/defaults/default-player.png');
break;
default:
console.warn(`No fallback for asset: ${key}`);
@@ -1432,11 +1430,11 @@ class GameSystem {
private attemptRecovery(context: string): void {
switch (context) {
case "update":
case 'update':
// Reset system state
this.reset();
break;
case "render":
case 'render':
// Disable visual effects
this.disableEffects();
break;
@@ -1456,7 +1454,7 @@ class GameSystem {
```typescript
// Example test for game mechanics
describe("HealthComponent", () => {
describe('HealthComponent', () => {
let healthComponent: HealthComponent;
beforeEach(() => {
@@ -1464,18 +1462,18 @@ describe("HealthComponent", () => {
healthComponent = new HealthComponent(mockEntity, 100);
});
test("should initialize with correct health", () => {
test('should initialize with correct health', () => {
expect(healthComponent.currentHealth).toBe(100);
expect(healthComponent.maxHealth).toBe(100);
});
test("should handle damage correctly", () => {
test('should handle damage correctly', () => {
healthComponent.takeDamage(25);
expect(healthComponent.currentHealth).toBe(75);
expect(healthComponent.isAlive()).toBe(true);
});
test("should handle death correctly", () => {
test('should handle death correctly', () => {
healthComponent.takeDamage(150);
expect(healthComponent.currentHealth).toBe(0);
expect(healthComponent.isAlive()).toBe(false);
@@ -1488,7 +1486,7 @@ describe("HealthComponent", () => {
**Scene Testing:**
```typescript
describe("GameScene Integration", () => {
describe('GameScene Integration', () => {
let scene: GameScene;
let mockGame: Phaser.Game;
@@ -1498,7 +1496,7 @@ describe("GameScene Integration", () => {
scene = new GameScene();
});
test("should initialize all systems", () => {
test('should initialize all systems', () => {
scene.create({});
expect(scene.gameManager).toBeDefined();

View File

@@ -402,8 +402,8 @@ template:
version: 2.0
output:
format: markdown
filename: "stories/{{epic_name}}/{{story_id}}-{{story_name}}.md"
title: "Story: {{story_title}}"
filename: 'stories/{{epic_name}}/{{story_id}}-{{story_name}}.md'
title: 'Story: {{story_title}}'
workflow:
mode: interactive
@@ -432,7 +432,7 @@ sections:
- id: description
title: Description
instruction: Provide a clear, concise description of what this story implements. Focus on the specific game feature or system being built. Reference the GDD section that defines this feature.
template: "{{clear_description_of_what_needs_to_be_implemented}}"
template: '{{clear_description_of_what_needs_to_be_implemented}}'
- id: acceptance-criteria
title: Acceptance Criteria
@@ -442,22 +442,22 @@ sections:
title: Functional Requirements
type: checklist
items:
- "{{specific_functional_requirement}}"
- '{{specific_functional_requirement}}'
- id: technical-requirements
title: Technical Requirements
type: checklist
items:
- "Code follows TypeScript strict mode standards"
- "Maintains 60 FPS on target devices"
- "No memory leaks or performance degradation"
- "{{specific_technical_requirement}}"
- 'Code follows TypeScript strict mode standards'
- 'Maintains 60 FPS on target devices'
- 'No memory leaks or performance degradation'
- '{{specific_technical_requirement}}'
- id: game-design-requirements
title: Game Design Requirements
type: checklist
items:
- "{{gameplay_requirement_from_gdd}}"
- "{{balance_requirement_if_applicable}}"
- "{{player_experience_requirement}}"
- '{{gameplay_requirement_from_gdd}}'
- '{{balance_requirement_if_applicable}}'
- '{{player_experience_requirement}}'
- id: technical-specifications
title: Technical Specifications
@@ -622,14 +622,14 @@ sections:
instruction: Checklist that must be completed before the story is considered finished
type: checklist
items:
- "All acceptance criteria met"
- "Code reviewed and approved"
- "Unit tests written and passing"
- "Integration tests passing"
- "Performance targets met"
- "No linting errors"
- "Documentation updated"
- "{{game_specific_dod_item}}"
- 'All acceptance criteria met'
- 'Code reviewed and approved'
- 'Unit tests written and passing'
- 'Integration tests passing'
- 'Performance targets met'
- 'No linting errors'
- 'Documentation updated'
- '{{game_specific_dod_item}}'
- id: notes
title: Notes

View File

@@ -1231,7 +1231,7 @@ template:
output:
format: markdown
filename: docs/game-architecture.md
title: "{{project_name}} Game Architecture Document"
title: '{{project_name}} Game Architecture Document'
workflow:
mode: interactive
@@ -1341,11 +1341,11 @@ sections:
- Game management patterns (Singleton managers, Event systems, State machines)
- Data patterns (ScriptableObject configuration, Save/Load systems)
- Unity-specific patterns (Object pooling, Coroutines, Unity Events)
template: "- **{{pattern_name}}:** {{pattern_description}} - _Rationale:_ {{rationale}}"
template: '- **{{pattern_name}}:** {{pattern_description}} - _Rationale:_ {{rationale}}'
examples:
- "**Component-Based Architecture:** Using MonoBehaviour components for game logic - _Rationale:_ Aligns with Unity's design philosophy and enables reusable, testable game systems"
- "**ScriptableObject Data:** Using ScriptableObjects for game configuration - _Rationale:_ Enables data-driven design and easy balancing without code changes"
- "**Event-Driven Communication:** Using Unity Events and C# events for system decoupling - _Rationale:_ Supports modular architecture and easier testing"
- '**ScriptableObject Data:** Using ScriptableObjects for game configuration - _Rationale:_ Enables data-driven design and easy balancing without code changes'
- '**Event-Driven Communication:** Using Unity Events and C# events for system decoupling - _Rationale:_ Supports modular architecture and easier testing'
- id: tech-stack
title: Tech Stack
@@ -1384,13 +1384,13 @@ sections:
columns: [Category, Technology, Version, Purpose, Rationale]
instruction: Populate the technology stack table with all relevant Unity technologies
examples:
- "| **Game Engine** | Unity | 2022.3.21f1 | Core game development platform | Latest LTS version, stable 2D tooling, comprehensive package ecosystem |"
- '| **Game Engine** | Unity | 2022.3.21f1 | Core game development platform | Latest LTS version, stable 2D tooling, comprehensive package ecosystem |'
- "| **Language** | C# | 10.0 | Primary scripting language | Unity's native language, strong typing, excellent tooling |"
- "| **Render Pipeline** | Universal Render Pipeline (URP) | 14.0.10 | 2D/3D rendering | Optimized for mobile, excellent 2D features, future-proof |"
- "| **Input System** | Unity Input System | 1.7.0 | Cross-platform input handling | Modern input system, supports multiple devices, rebindable controls |"
- "| **Physics** | Unity 2D Physics | Built-in | 2D collision and physics | Integrated Box2D, optimized for 2D games |"
- "| **Audio** | Unity Audio | Built-in | Audio playback and mixing | Built-in audio system with mixer support |"
- "| **Testing** | Unity Test Framework | 1.1.33 | Unit and integration testing | Built-in testing framework based on NUnit |"
- '| **Render Pipeline** | Universal Render Pipeline (URP) | 14.0.10 | 2D/3D rendering | Optimized for mobile, excellent 2D features, future-proof |'
- '| **Input System** | Unity Input System | 1.7.0 | Cross-platform input handling | Modern input system, supports multiple devices, rebindable controls |'
- '| **Physics** | Unity 2D Physics | Built-in | 2D collision and physics | Integrated Box2D, optimized for 2D games |'
- '| **Audio** | Unity Audio | Built-in | Audio playback and mixing | Built-in audio system with mixer support |'
- '| **Testing** | Unity Test Framework | 1.1.33 | Unit and integration testing | Built-in testing framework based on NUnit |'
- id: data-models
title: Game Data Models
@@ -1408,7 +1408,7 @@ sections:
repeatable: true
sections:
- id: model
title: "{{model_name}}"
title: '{{model_name}}'
template: |
**Purpose:** {{model_purpose}}
@@ -1443,7 +1443,7 @@ sections:
sections:
- id: system-list
repeatable: true
title: "{{system_name}} System"
title: '{{system_name}} System'
template: |
**Responsibility:** {{system_description}}
@@ -1967,7 +1967,7 @@ sections:
repeatable: true
sections:
- id: integration
title: "{{service_name}} Integration"
title: '{{service_name}} Integration'
template: |
- **Purpose:** {{service_purpose}}
- **Documentation:** {{service_docs_url}}
@@ -2079,12 +2079,12 @@ sections:
- id: environments
title: Build Environments
repeatable: true
template: "- **{{env_name}}:** {{env_purpose}} - {{platform_settings}}"
template: '- **{{env_name}}:** {{env_purpose}} - {{platform_settings}}'
- id: platform-specific-builds
title: Platform-Specific Build Settings
type: code
language: text
template: "{{platform_build_configurations}}"
template: '{{platform_build_configurations}}'
- id: coding-standards
title: Coding Standards
@@ -2113,9 +2113,9 @@ sections:
columns: [Element, Convention, Example]
instruction: Only include if deviating from Unity defaults
examples:
- "| MonoBehaviour | PascalCase + Component suffix | PlayerController, HealthSystem |"
- "| ScriptableObject | PascalCase + Data/Config suffix | PlayerData, GameConfig |"
- "| Prefab | PascalCase descriptive | PlayerCharacter, EnvironmentTile |"
- '| MonoBehaviour | PascalCase + Component suffix | PlayerController, HealthSystem |'
- '| ScriptableObject | PascalCase + Data/Config suffix | PlayerData, GameConfig |'
- '| Prefab | PascalCase descriptive | PlayerCharacter, EnvironmentTile |'
- id: critical-rules
title: Critical Unity Rules
instruction: |
@@ -2127,7 +2127,7 @@ sections:
Avoid obvious rules like "follow SOLID principles" or "optimize performance"
repeatable: true
template: "- **{{rule_name}}:** {{rule_description}}"
template: '- **{{rule_name}}:** {{rule_description}}'
- id: unity-specifics
title: Unity-Specific Guidelines
condition: Critical Unity-specific rules needed
@@ -2136,7 +2136,7 @@ sections:
- id: unity-lifecycle
title: Unity Lifecycle Rules
repeatable: true
template: "- **{{lifecycle_method}}:** {{usage_rule}}"
template: '- **{{lifecycle_method}}:** {{usage_rule}}'
- id: test-strategy
title: Test Strategy and Standards
@@ -3698,7 +3698,7 @@ Use the `shard-doc` task or `@kayvan/markdown-tree-parser` tool for automatic ga
- **Claude Code**: `/bmad2du/game-designer`, `/bmad2du/game-developer`, `/bmad2du/game-sm`, `/bmad2du/game-architect`
- **Cursor**: `@bmad2du/game-designer`, `@bmad2du/game-developer`, `@bmad2du/game-sm`, `@bmad2du/game-architect`
- **Windsurf**: `@bmad2du/game-designer`, `@bmad2du/game-developer`, `@bmad2du/game-sm`, `@bmad2du/game-architect`
- **Windsurf**: `/bmad2du/game-designer`, `/bmad2du/game-developer`, `/bmad2du/game-sm`, `/bmad2du/game-architect`
- **Trae**: `@bmad2du/game-designer`, `@bmad2du/game-developer`, `@bmad2du/game-sm`, `@bmad2du/game-architect`
- **Roo Code**: Select mode from mode selector with bmad2du prefix
- **GitHub Copilot**: Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select the appropriate game agent.

View File

@@ -1175,7 +1175,7 @@ template:
output:
format: markdown
filename: docs/game-design-document.md
title: "{{game_title}} Game Design Document (GDD)"
title: '{{game_title}} Game Design Document (GDD)'
workflow:
mode: interactive
@@ -1223,8 +1223,8 @@ sections:
**Primary:** {{age_range}}, {{player_type}}, {{platform_preference}}
**Secondary:** {{secondary_audience}}
examples:
- "Primary: Ages 8-16, casual mobile gamers, prefer short play sessions"
- "Secondary: Adult puzzle enthusiasts, educators looking for teaching tools"
- 'Primary: Ages 8-16, casual mobile gamers, prefer short play sessions'
- 'Secondary: Adult puzzle enthusiasts, educators looking for teaching tools'
- id: platform-technical
title: Platform & Technical Requirements
instruction: Based on the technical preferences or user input, define the target platforms and Unity-specific requirements
@@ -1235,7 +1235,7 @@ sections:
**Screen Support:** {{resolution_range}}
**Build Targets:** {{build_targets}}
examples:
- "Primary Platform: Mobile (iOS/Android), Engine: Unity 2022.3 LTS & C#, Performance: 60 FPS on iPhone 8/Galaxy S8"
- 'Primary Platform: Mobile (iOS/Android), Engine: Unity 2022.3 LTS & C#, Performance: 60 FPS on iPhone 8/Galaxy S8'
- id: unique-selling-points
title: Unique Selling Points
instruction: List 3-5 key features that differentiate this game from competitors
@@ -1286,8 +1286,8 @@ sections:
- {{loss_condition_1}} - Trigger: {{unity_trigger}}
- {{loss_condition_2}} - Trigger: {{unity_trigger}}
examples:
- "Victory: Player reaches exit portal - Unity Event: OnTriggerEnter2D with Portal tag"
- "Failure: Health reaches zero - Trigger: Health component value <= 0"
- 'Victory: Player reaches exit portal - Unity Event: OnTriggerEnter2D with Portal tag'
- 'Failure: Health reaches zero - Trigger: Health component value <= 0'
- id: game-mechanics
title: Game Mechanics
@@ -1299,7 +1299,7 @@ sections:
repeatable: true
sections:
- id: mechanic
title: "{{mechanic_name}}"
title: '{{mechanic_name}}'
template: |
**Description:** {{detailed_description}}
@@ -1321,8 +1321,8 @@ sections:
- {{script_name}}.cs - {{responsibility}}
- {{manager_script}}.cs - {{management_role}}
examples:
- "Components Needed: Rigidbody2D, BoxCollider2D, PlayerMovement script"
- "Physics Requirements: 2D Physics material for ground friction, Gravity scale 3"
- 'Components Needed: Rigidbody2D, BoxCollider2D, PlayerMovement script'
- 'Physics Requirements: 2D Physics material for ground friction, Gravity scale 3'
- id: controls
title: Controls
instruction: Define all input methods for different platforms using Unity's Input System
@@ -1377,7 +1377,7 @@ sections:
**Late Game:** {{duration}} - {{difficulty_description}}
- Unity Config: {{scriptable_object_values}}
examples:
- "enemy speed: 2.0f, jump height: 4.5f, obstacle density: 0.3f"
- 'enemy speed: 2.0f, jump height: 4.5f, obstacle density: 0.3f'
- id: economy-resources
title: Economy & Resources
condition: has_economy
@@ -1400,7 +1400,7 @@ sections:
repeatable: true
sections:
- id: level-type
title: "{{level_type_name}}"
title: '{{level_type_name}}'
template: |
**Purpose:** {{gameplay_purpose}}
**Target Duration:** {{target_time}}
@@ -1424,7 +1424,7 @@ sections:
- {{prefab_name}} - {{prefab_purpose}}
examples:
- "Environment: TilemapRenderer with Platform tileset, Lighting: 2D Global Light + Point Lights"
- 'Environment: TilemapRenderer with Platform tileset, Lighting: 2D Global Light + Point Lights'
- id: level-progression
title: Level Progression
template: |
@@ -1439,7 +1439,7 @@ sections:
- Addressable Assets: {{addressable_groups}}
- Loading Screens: {{loading_implementation}}
examples:
- "Scene Naming: World{X}_Level{Y}_Name, Addressable Groups: Levels_World1, World_Environments"
- 'Scene Naming: World{X}_Level{Y}_Name, Addressable Groups: Levels_World1, World_Environments'
- id: technical-specifications
title: Technical Specifications
@@ -1471,7 +1471,7 @@ sections:
- Physics Settings: {{physics_config}}
examples:
- com.unity.addressables 1.20.5 - Asset loading and memory management
- "Color Space: Linear, Quality: Mobile/Desktop presets, Gravity: -20"
- 'Color Space: Linear, Quality: Mobile/Desktop presets, Gravity: -20'
- id: performance-requirements
title: Performance Requirements
template: |
@@ -1487,7 +1487,7 @@ sections:
- GC Allocs: <{{gc_limit}}KB per frame
- Draw Calls: <{{draw_calls}} per frame
examples:
- "60 FPS (minimum 30), CPU: <16.67ms, GPU: <16.67ms, GC: <4KB, Draws: <50"
- '60 FPS (minimum 30), CPU: <16.67ms, GPU: <16.67ms, GC: <4KB, Draws: <50'
- id: platform-specific
title: Platform Specific Requirements
template: |
@@ -1510,7 +1510,7 @@ sections:
- Browser Support: {{browser_list}}
- Compression: {{compression_format}}
examples:
- "Resolution: 1280x720 - 4K, Gamepad: Xbox/PlayStation controllers via Input System"
- 'Resolution: 1280x720 - 4K, Gamepad: Xbox/PlayStation controllers via Input System'
- id: asset-requirements
title: Asset Requirements
instruction: Define asset specifications for Unity pipeline optimization
@@ -1536,7 +1536,7 @@ sections:
- Font: {{font_requirements}}
- Icon Sizes: {{icon_specifications}}
examples:
- "Sprites: 32x32 to 256x256 at 16 PPU, Format: RGBA32 for quality/RGBA16 for performance"
- 'Sprites: 32x32 to 256x256 at 16 PPU, Format: RGBA32 for quality/RGBA16 for performance'
- id: technical-architecture-requirements
title: Technical Architecture Requirements
@@ -1578,8 +1578,8 @@ sections:
- Prefabs: {{prefab_naming}}
- Scenes: {{scene_naming}}
examples:
- "Architecture: Component-Based with ScriptableObject data containers"
- "Scripts: PascalCase (PlayerController), Prefabs: Player_Prefab, Scenes: Level_01_Forest"
- 'Architecture: Component-Based with ScriptableObject data containers'
- 'Scripts: PascalCase (PlayerController), Prefabs: Player_Prefab, Scenes: Level_01_Forest'
- id: unity-systems-integration
title: Unity Systems Integration
template: |
@@ -1601,8 +1601,8 @@ sections:
- **Memory Management:** {{memory_strategy}}
- **Build Pipeline:** {{build_automation}}
examples:
- "Input System: Action Maps for Menu/Gameplay contexts with device switching"
- "DOTween: Smooth UI transitions and gameplay animations"
- 'Input System: Action Maps for Menu/Gameplay contexts with device switching'
- 'DOTween: Smooth UI transitions and gameplay animations'
- id: data-management
title: Data Management
template: |
@@ -1625,8 +1625,8 @@ sections:
- **Memory Pools:** {{pooling_objects}}
- **Asset References:** {{asset_reference_system}}
examples:
- "Save Data: JSON format with AES encryption, stored in persistent data path"
- "ScriptableObjects: Game settings, level configurations, character data"
- 'Save Data: JSON format with AES encryption, stored in persistent data path'
- 'ScriptableObjects: Game settings, level configurations, character data'
- id: development-phases
title: Development Phases & Epic Planning
@@ -1638,15 +1638,15 @@ sections:
instruction: Present a high-level list of all phases for user approval. Each phase's design should deliver significant Unity functionality.
type: numbered-list
examples:
- "Phase 1: Unity Foundation & Core Systems: Project setup, input handling, basic scene management"
- "Phase 2: Core Game Mechanics: Player controller, physics systems, basic gameplay loop"
- "Phase 3: Level Systems & Content Pipeline: Scene loading, prefab systems, level progression"
- "Phase 4: Polish & Platform Optimization: Performance tuning, platform-specific features, deployment"
- 'Phase 1: Unity Foundation & Core Systems: Project setup, input handling, basic scene management'
- 'Phase 2: Core Game Mechanics: Player controller, physics systems, basic gameplay loop'
- 'Phase 3: Level Systems & Content Pipeline: Scene loading, prefab systems, level progression'
- 'Phase 4: Polish & Platform Optimization: Performance tuning, platform-specific features, deployment'
- id: phase-1-foundation
title: "Phase 1: Unity Foundation & Core Systems ({{duration}})"
title: 'Phase 1: Unity Foundation & Core Systems ({{duration}})'
sections:
- id: foundation-design
title: "Design: Unity Project Foundation"
title: 'Design: Unity Project Foundation'
type: bullet-list
template: |
- Unity project setup with proper folder structure and naming conventions
@@ -1656,9 +1656,9 @@ sections:
- Development tools setup (debugging, profiling integration)
- Initial build pipeline and platform configuration
examples:
- "Input System: Configure PlayerInput component with Action Maps for movement and UI"
- 'Input System: Configure PlayerInput component with Action Maps for movement and UI'
- id: core-systems-design
title: "Design: Essential Game Systems"
title: 'Design: Essential Game Systems'
type: bullet-list
template: |
- Save/Load system implementation with {{save_format}} format
@@ -1668,10 +1668,10 @@ sections:
- Basic UI framework and canvas configuration
- Settings and configuration management with ScriptableObjects
- id: phase-2-gameplay
title: "Phase 2: Core Gameplay Implementation ({{duration}})"
title: 'Phase 2: Core Gameplay Implementation ({{duration}})'
sections:
- id: gameplay-mechanics-design
title: "Design: Primary Game Mechanics"
title: 'Design: Primary Game Mechanics'
type: bullet-list
template: |
- Player controller with {{movement_type}} movement system
@@ -1681,7 +1681,7 @@ sections:
- Basic collision detection and response systems
- Animation system integration with Animator controllers
- id: level-systems-design
title: "Design: Level & Content Systems"
title: 'Design: Level & Content Systems'
type: bullet-list
template: |
- Scene loading and transition system
@@ -1691,10 +1691,10 @@ sections:
- Collectibles and pickup systems
- Victory/defeat condition implementation
- id: phase-3-polish
title: "Phase 3: Polish & Optimization ({{duration}})"
title: 'Phase 3: Polish & Optimization ({{duration}})'
sections:
- id: performance-design
title: "Design: Performance & Platform Optimization"
title: 'Design: Performance & Platform Optimization'
type: bullet-list
template: |
- Unity Profiler analysis and optimization passes
@@ -1704,7 +1704,7 @@ sections:
- Build size optimization and asset bundling
- Quality settings configuration for different device tiers
- id: user-experience-design
title: "Design: User Experience & Polish"
title: 'Design: User Experience & Polish'
type: bullet-list
template: |
- Complete UI/UX implementation with responsive design
@@ -1729,10 +1729,10 @@ sections:
- Cross Cutting Concerns should flow through epics and stories and not be final stories. For example, adding a logging framework as a last story of an epic, or at the end of a project as a final epic or story would be terrible as we would not have logging from the beginning.
elicit: true
examples:
- "Epic 1: Unity Foundation & Core Systems: Project setup, input handling, basic scene management"
- "Epic 2: Core Game Mechanics: Player controller, physics systems, basic gameplay loop"
- "Epic 3: Level Systems & Content Pipeline: Scene loading, prefab systems, level progression"
- "Epic 4: Polish & Platform Optimization: Performance tuning, platform-specific features, deployment"
- 'Epic 1: Unity Foundation & Core Systems: Project setup, input handling, basic scene management'
- 'Epic 2: Core Game Mechanics: Player controller, physics systems, basic gameplay loop'
- 'Epic 3: Level Systems & Content Pipeline: Scene loading, prefab systems, level progression'
- 'Epic 4: Polish & Platform Optimization: Performance tuning, platform-specific features, deployment'
- id: epic-details
title: Epic {{epic_number}} {{epic_title}}
@@ -1754,13 +1754,13 @@ sections:
- Think "junior developer working for 2-4 hours" - stories must be small, focused, and self-contained
- If a story seems complex, break it down further as long as it can deliver a vertical slice
elicit: true
template: "{{epic_goal}}"
template: '{{epic_goal}}'
sections:
- id: story
title: Story {{epic_number}}.{{story_number}} {{story_title}}
repeatable: true
instruction: Provide a clear, concise description of what this story implements. Focus on the specific game feature or system being built. Reference the GDD section that defines this feature and reference the gamearchitecture section for additional implementation and integration specifics.
template: "{{clear_description_of_what_needs_to_be_implemented}}"
template: '{{clear_description_of_what_needs_to_be_implemented}}'
sections:
- id: acceptance-criteria
title: Acceptance Criteria
@@ -1770,7 +1770,7 @@ sections:
title: Functional Requirements
type: checklist
items:
- "{{specific_functional_requirement}}"
- '{{specific_functional_requirement}}'
- id: technical-requirements
title: Technical Requirements
type: checklist
@@ -1778,14 +1778,14 @@ sections:
- Code follows C# best practices
- Maintains stable frame rate on target devices
- No memory leaks or performance degradation
- "{{specific_technical_requirement}}"
- '{{specific_technical_requirement}}'
- id: game-design-requirements
title: Game Design Requirements
type: checklist
items:
- "{{gameplay_requirement_from_gdd}}"
- "{{balance_requirement_if_applicable}}"
- "{{player_experience_requirement}}"
- '{{gameplay_requirement_from_gdd}}'
- '{{balance_requirement_if_applicable}}'
- '{{player_experience_requirement}}'
- id: success-metrics
title: Success Metrics & Quality Assurance
@@ -1803,8 +1803,8 @@ sections:
- **Build Size:** Final build <{{size_limit}}MB for mobile, <{{desktop_limit}}MB for desktop
- **Battery Life:** Mobile gameplay sessions >{{battery_target}} hours on average device
examples:
- "Frame Rate: Consistent 60 FPS with <5% drops below 45 FPS on target hardware"
- "Crash Rate: <0.5% across iOS/Android, <0.1% on desktop platforms"
- 'Frame Rate: Consistent 60 FPS with <5% drops below 45 FPS on target hardware'
- 'Crash Rate: <0.5% across iOS/Android, <0.1% on desktop platforms'
- id: gameplay-metrics
title: Gameplay & User Engagement Metrics
type: bullet-list
@@ -1816,8 +1816,8 @@ sections:
- **Gameplay Completion:** {{completion_rate}}% complete main game content
- **Control Responsiveness:** Input lag <{{input_lag}}ms on all platforms
examples:
- "Tutorial Completion: 85% of players complete movement and basic mechanics tutorial"
- "Session Duration: Average 15-20 minutes per session for mobile, 30-45 minutes for desktop"
- 'Tutorial Completion: 85% of players complete movement and basic mechanics tutorial'
- 'Session Duration: Average 15-20 minutes per session for mobile, 30-45 minutes for desktop'
- id: platform-specific-metrics
title: Platform-Specific Quality Metrics
type: table
@@ -1862,17 +1862,17 @@ sections:
- Consider cross-platform testing requirements
- Account for Unity build and deployment steps
examples:
- "Foundation stories: Individual Unity systems (Input, Audio, Scene Management) - 1-2 days each"
- "Feature stories: Complete gameplay mechanics with UI and feedback - 2-4 days each"
- 'Foundation stories: Individual Unity systems (Input, Audio, Scene Management) - 1-2 days each'
- 'Feature stories: Complete gameplay mechanics with UI and feedback - 2-4 days each'
- id: recommended-agents
title: Recommended BMad Agent Sequence
type: numbered-list
template: |
1. **{{agent_name}}**: {{agent_responsibility}}
examples:
- "Unity Architect: Create detailed technical architecture document with specific Unity implementation patterns"
- "Unity Developer: Implement core systems and gameplay mechanics according to architecture"
- "QA Tester: Validate performance metrics and cross-platform functionality"
- 'Unity Architect: Create detailed technical architecture document with specific Unity implementation patterns'
- 'Unity Developer: Implement core systems and gameplay mechanics according to architecture'
- 'QA Tester: Validate performance metrics and cross-platform functionality'
==================== END: .bmad-2d-unity-game-dev/templates/game-design-doc-tmpl.yaml ====================
==================== START: .bmad-2d-unity-game-dev/templates/level-design-doc-tmpl.yaml ====================
@@ -1883,7 +1883,7 @@ template:
output:
format: markdown
filename: docs/level-design-document.md
title: "{{game_title}} Level Design Document"
title: '{{game_title}} Level Design Document'
workflow:
mode: interactive
@@ -1944,7 +1944,7 @@ sections:
repeatable: true
sections:
- id: level-category
title: "{{category_name}} Levels"
title: '{{category_name}} Levels'
template: |
**Purpose:** {{gameplay_purpose}}
@@ -2370,7 +2370,7 @@ template:
output:
format: markdown
filename: docs/game-brief.md
title: "{{game_title}} Game Brief"
title: '{{game_title}} Game Brief'
workflow:
mode: interactive
@@ -2656,21 +2656,21 @@ sections:
title: Development Roadmap
sections:
- id: phase-1-preproduction
title: "Phase 1: Pre-Production ({{duration}})"
title: 'Phase 1: Pre-Production ({{duration}})'
type: bullet-list
template: |
- Detailed Game Design Document creation
- Technical architecture planning
- Art style exploration and pipeline setup
- id: phase-2-prototype
title: "Phase 2: Prototype ({{duration}})"
title: 'Phase 2: Prototype ({{duration}})'
type: bullet-list
template: |
- Core mechanic implementation
- Technical proof of concept
- Initial playtesting and iteration
- id: phase-3-production
title: "Phase 3: Production ({{duration}})"
title: 'Phase 3: Production ({{duration}})'
type: bullet-list
template: |
- Full feature development
@@ -3384,7 +3384,7 @@ Use the `shard-doc` task or `@kayvan/markdown-tree-parser` tool for automatic ga
- **Claude Code**: `/bmad2du/game-designer`, `/bmad2du/game-developer`, `/bmad2du/game-sm`, `/bmad2du/game-architect`
- **Cursor**: `@bmad2du/game-designer`, `@bmad2du/game-developer`, `@bmad2du/game-sm`, `@bmad2du/game-architect`
- **Windsurf**: `@bmad2du/game-designer`, `@bmad2du/game-developer`, `@bmad2du/game-sm`, `@bmad2du/game-architect`
- **Windsurf**: `/bmad2du/game-designer`, `/bmad2du/game-developer`, `/bmad2du/game-sm`, `/bmad2du/game-architect`
- **Trae**: `@bmad2du/game-designer`, `@bmad2du/game-developer`, `@bmad2du/game-sm`, `@bmad2du/game-architect`
- **Roo Code**: Select mode from mode selector with bmad2du prefix
- **GitHub Copilot**: Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select the appropriate game agent.

View File

@@ -514,8 +514,8 @@ template:
version: 3.0
output:
format: markdown
filename: "stories/{{epic_name}}/{{story_id}}-{{story_name}}.md"
title: "Story: {{story_title}}"
filename: 'stories/{{epic_name}}/{{story_id}}-{{story_name}}.md'
title: 'Story: {{story_title}}'
workflow:
mode: interactive
@@ -544,7 +544,7 @@ sections:
- id: description
title: Description
instruction: Provide a clear, concise description of what this story implements. Focus on the specific game feature or system being built. Reference the GDD section that defines this feature.
template: "{{clear_description_of_what_needs_to_be_implemented}}"
template: '{{clear_description_of_what_needs_to_be_implemented}}'
- id: acceptance-criteria
title: Acceptance Criteria
@@ -554,7 +554,7 @@ sections:
title: Functional Requirements
type: checklist
items:
- "{{specific_functional_requirement}}"
- '{{specific_functional_requirement}}'
- id: technical-requirements
title: Technical Requirements
type: checklist
@@ -562,14 +562,14 @@ sections:
- Code follows C# best practices
- Maintains stable frame rate on target devices
- No memory leaks or performance degradation
- "{{specific_technical_requirement}}"
- '{{specific_technical_requirement}}'
- id: game-design-requirements
title: Game Design Requirements
type: checklist
items:
- "{{gameplay_requirement_from_gdd}}"
- "{{balance_requirement_if_applicable}}"
- "{{player_experience_requirement}}"
- '{{gameplay_requirement_from_gdd}}'
- '{{balance_requirement_if_applicable}}'
- '{{player_experience_requirement}}'
- id: technical-specifications
title: Technical Specifications
@@ -744,7 +744,7 @@ sections:
- Performance targets met
- No C# compiler errors or warnings
- Documentation updated
- "{{game_specific_dod_item}}"
- '{{game_specific_dod_item}}'
- id: notes
title: Notes

File diff suppressed because it is too large Load Diff

View File

@@ -530,23 +530,23 @@ template:
output:
format: markdown
filename: docs/infrastructure-architecture.md
title: "{{project_name}} Infrastructure Architecture"
title: '{{project_name}} Infrastructure Architecture'
workflow:
mode: interactive
elicitation: advanced-elicitation
custom_elicitation:
title: "Infrastructure Architecture Elicitation Actions"
title: 'Infrastructure Architecture Elicitation Actions'
sections:
- id: infrastructure-overview
options:
- "Multi-Cloud Strategy Analysis - Evaluate cloud provider options and vendor lock-in considerations"
- "Regional Distribution Planning - Analyze latency requirements and data residency needs"
- "Environment Isolation Strategy - Design security boundaries and resource segregation"
- "Scalability Patterns Review - Assess auto-scaling needs and traffic patterns"
- "Compliance Requirements Analysis - Review regulatory and security compliance needs"
- "Cost-Benefit Analysis - Compare infrastructure options and TCO"
- "Proceed to next section"
- 'Multi-Cloud Strategy Analysis - Evaluate cloud provider options and vendor lock-in considerations'
- 'Regional Distribution Planning - Analyze latency requirements and data residency needs'
- 'Environment Isolation Strategy - Design security boundaries and resource segregation'
- 'Scalability Patterns Review - Assess auto-scaling needs and traffic patterns'
- 'Compliance Requirements Analysis - Review regulatory and security compliance needs'
- 'Cost-Benefit Analysis - Compare infrastructure options and TCO'
- 'Proceed to next section'
sections:
- id: initial-setup
@@ -606,7 +606,7 @@ sections:
sections:
- id: environments
repeatable: true
title: "{{environment_name}} Environment"
title: '{{environment_name}} Environment'
template: |
- **Purpose:** {{environment_purpose}}
- **Resources:** {{environment_resources}}
@@ -957,24 +957,24 @@ template:
output:
format: markdown
filename: docs/platform-infrastructure/platform-implementation.md
title: "{{project_name}} Platform Infrastructure Implementation"
title: '{{project_name}} Platform Infrastructure Implementation'
workflow:
mode: interactive
elicitation: advanced-elicitation
custom_elicitation:
title: "Platform Implementation Elicitation Actions"
title: 'Platform Implementation Elicitation Actions'
sections:
- id: foundation-infrastructure
options:
- "Platform Layer Security Hardening - Additional security controls and compliance validation"
- "Performance Optimization - Network and resource optimization"
- "Operational Excellence Enhancement - Automation and monitoring improvements"
- "Platform Integration Validation - Verify foundation supports upper layers"
- "Developer Experience Analysis - Foundation impact on developer workflows"
- "Disaster Recovery Testing - Foundation resilience validation"
- "BMAD Workflow Integration - Cross-agent support verification"
- "Finalize and Proceed to Container Platform"
- 'Platform Layer Security Hardening - Additional security controls and compliance validation'
- 'Performance Optimization - Network and resource optimization'
- 'Operational Excellence Enhancement - Automation and monitoring improvements'
- 'Platform Integration Validation - Verify foundation supports upper layers'
- 'Developer Experience Analysis - Foundation impact on developer workflows'
- 'Disaster Recovery Testing - Foundation resilience validation'
- 'BMAD Workflow Integration - Cross-agent support verification'
- 'Finalize and Proceed to Container Platform'
sections:
- id: initial-setup

1818
dist/teams/team-all.txt vendored

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -29,14 +29,14 @@ The Test Architect (Quinn) provides comprehensive quality assurance throughout t
### Quick Command Reference
| **Stage** | **Command** | **Purpose** | **Output** | **Priority** |
|-----------|------------|-------------|------------|--------------|
| **After Story Approval** | `*risk` | Identify integration & regression risks | `docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md` | High for complex/brownfield |
| | `*design` | Create test strategy for dev | `docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md` | High for new features |
| **During Development** | `*trace` | Verify test coverage | `docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md` | Medium |
| | `*nfr` | Validate quality attributes | `docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md` | High for critical features |
| **After Development** | `*review` | Comprehensive assessment | QA Results in story + `docs/qa/gates/{epic}.{story}-{slug}.yml` | **Required** |
| **Post-Review** | `*gate` | Update quality decision | Updated `docs/qa/gates/{epic}.{story}-{slug}.yml` | As needed |
| **Stage** | **Command** | **Purpose** | **Output** | **Priority** |
| ------------------------ | ----------- | --------------------------------------- | --------------------------------------------------------------- | --------------------------- |
| **After Story Approval** | `*risk` | Identify integration & regression risks | `docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md` | High for complex/brownfield |
| | `*design` | Create test strategy for dev | `docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md` | High for new features |
| **During Development** | `*trace` | Verify test coverage | `docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md` | Medium |
| | `*nfr` | Validate quality attributes | `docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md` | High for critical features |
| **After Development** | `*review` | Comprehensive assessment | QA Results in story + `docs/qa/gates/{epic}.{story}-{slug}.yml` | **Required** |
| **Post-Review** | `*gate` | Update quality decision | Updated `docs/qa/gates/{epic}.{story}-{slug}.yml` | As needed |
### Stage 1: After Story Creation (Before Dev Starts)
@@ -134,24 +134,24 @@ The Test Architect (Quinn) provides comprehensive quality assurance throughout t
### Understanding Gate Decisions
| **Status** | **Meaning** | **Action Required** | **Can Proceed?** |
|------------|-------------|-------------------|------------------|
| **PASS** | All critical requirements met | None | ✅ Yes |
| **CONCERNS** | Non-critical issues found | Team review recommended | ⚠️ With caution |
| **FAIL** | Critical issues (security, missing P0 tests) | Must fix | ❌ No |
| **WAIVED** | Issues acknowledged and accepted | Document reasoning | ✅ With approval |
| **Status** | **Meaning** | **Action Required** | **Can Proceed?** |
| ------------ | -------------------------------------------- | ----------------------- | ---------------- |
| **PASS** | All critical requirements met | None | ✅ Yes |
| **CONCERNS** | Non-critical issues found | Team review recommended | ⚠️ With caution |
| **FAIL** | Critical issues (security, missing P0 tests) | Must fix | ❌ No |
| **WAIVED** | Issues acknowledged and accepted | Document reasoning | ✅ With approval |
### Risk-Based Testing Strategy
The Test Architect uses risk scoring to prioritize testing:
| **Risk Score** | **Calculation** | **Testing Priority** | **Gate Impact** |
|---------------|----------------|-------------------|----------------|
| **9** | High probability × High impact | P0 - Must test thoroughly | FAIL if untested |
| **6** | Medium-high combinations | P1 - Should test well | CONCERNS if gaps |
| **4** | Medium combinations | P1 - Should test | CONCERNS if notable gaps |
| **2-3** | Low-medium combinations | P2 - Nice to have | Note in review |
| **1** | Minimal risk | P2 - Minimal | Note in review |
| **Risk Score** | **Calculation** | **Testing Priority** | **Gate Impact** |
| -------------- | ------------------------------ | ------------------------- | ------------------------ |
| **9** | High probability × High impact | P0 - Must test thoroughly | FAIL if untested |
| **6** | Medium-high combinations | P1 - Should test well | CONCERNS if gaps |
| **4** | Medium combinations | P1 - Should test | CONCERNS if notable gaps |
| **2-3** | Low-medium combinations | P2 - Nice to have | Note in review |
| **1** | Minimal risk | P2 - Minimal | Note in review |
### Special Situations & Best Practices
@@ -227,14 +227,14 @@ All Test Architect activities create permanent records:
**Should I run Test Architect commands?**
| **Scenario** | **Before Dev** | **During Dev** | **After Dev** |
|-------------|---------------|----------------|---------------|
| **Simple bug fix** | Optional | Optional | Required `*review` |
| **New feature** | Recommended `*risk`, `*design` | Optional `*trace` | Required `*review` |
| **Brownfield change** | **Required** `*risk`, `*design` | Recommended `*trace`, `*nfr` | Required `*review` |
| **API modification** | **Required** `*risk`, `*design` | **Required** `*trace` | Required `*review` |
| **Performance-critical** | Recommended `*design` | **Required** `*nfr` | Required `*review` |
| **Data migration** | **Required** `*risk`, `*design` | **Required** `*trace` | Required `*review` + `*gate` |
| **Scenario** | **Before Dev** | **During Dev** | **After Dev** |
| ------------------------ | ------------------------------- | ---------------------------- | ---------------------------- |
| **Simple bug fix** | Optional | Optional | Required `*review` |
| **New feature** | Recommended `*risk`, `*design` | Optional `*trace` | Required `*review` |
| **Brownfield change** | **Required** `*risk`, `*design` | Recommended `*trace`, `*nfr` | Required `*review` |
| **API modification** | **Required** `*risk`, `*design` | **Required** `*trace` | Required `*review` |
| **Performance-critical** | Recommended `*design` | **Required** `*nfr` | Required `*review` |
| **Data migration** | **Required** `*risk`, `*design` | **Required** `*trace` | Required `*review` + `*gate` |
### Success Metrics

View File

@@ -376,14 +376,14 @@ Manages quality gate decisions:
The Test Architect provides value throughout the entire development lifecycle. Here's when and how to leverage each capability:
| **Stage** | **Command** | **When to Use** | **Value** | **Output** |
|-----------|------------|-----------------|-----------|------------|
| **Story Drafting** | `*risk` | After SM drafts story | Identify pitfalls early | `docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md` |
| | `*design` | After risk assessment | Guide dev on test strategy | `docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md` |
| **Development** | `*trace` | Mid-implementation | Verify test coverage | `docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md` |
| | `*nfr` | While building features | Catch quality issues early | `docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md` |
| **Review** | `*review` | Story marked complete | Full quality assessment | QA Results in story + gate file |
| **Post-Review** | `*gate` | After fixing issues | Update quality decision | Updated `docs/qa/gates/{epic}.{story}-{slug}.yml` |
| **Stage** | **Command** | **When to Use** | **Value** | **Output** |
| ------------------ | ----------- | ----------------------- | -------------------------- | -------------------------------------------------------------- |
| **Story Drafting** | `*risk` | After SM drafts story | Identify pitfalls early | `docs/qa/assessments/{epic}.{story}-risk-{YYYYMMDD}.md` |
| | `*design` | After risk assessment | Guide dev on test strategy | `docs/qa/assessments/{epic}.{story}-test-design-{YYYYMMDD}.md` |
| **Development** | `*trace` | Mid-implementation | Verify test coverage | `docs/qa/assessments/{epic}.{story}-trace-{YYYYMMDD}.md` |
| | `*nfr` | While building features | Catch quality issues early | `docs/qa/assessments/{epic}.{story}-nfr-{YYYYMMDD}.md` |
| **Review** | `*review` | Story marked complete | Full quality assessment | QA Results in story + gate file |
| **Post-Review** | `*gate` | After fixing issues | Update quality decision | Updated `docs/qa/gates/{epic}.{story}-{slug}.yml` |
#### Example Commands

View File

@@ -1,77 +1,155 @@
# How to Release a New Version
# Versioning and Releases
## Automated Releases (Recommended)
BMad Method uses a simplified release system with manual control and automatic release notes generation.
The easiest way to release new versions is through **automatic semantic releases**. Just commit with the right message format and push and everything else happens automatically.
## 🚀 Release Workflow
### Commit Message Format
### Command Line Release (Recommended)
Use these prefixes to control what type of release happens:
The fastest way to create a release with beautiful release notes:
```bash
fix: resolve CLI argument parsing bug # → patch release (4.1.0 → 4.1.1)
feat: add new agent orchestration mode # → minor release (4.1.0 → 4.2.0)
feat!: redesign CLI interface # → major release (4.1.0 → 5.0.0)
# Preview what will be in the release
npm run preview:release
# Create a release
npm run release:patch # 5.1.0 → 5.1.1 (bug fixes)
npm run release:minor # 5.1.0 → 5.2.0 (new features)
npm run release:major # 5.1.0 → 6.0.0 (breaking changes)
# Watch the release process
npm run release:watch
```
### What Happens Automatically
When you push commits with `fix:` or `feat:`, GitHub Actions will:
1. ✅ Analyze your commit messages
2. ✅ Bump version in `package.json`
3. ✅ Generate changelog
4. ✅ Create git tag
5.**Publish to NPM automatically**
6. ✅ Create GitHub release with notes
### Your Simple Workflow
### One-Liner Release
```bash
# Make your changes
git add .
git commit -m "feat: add team collaboration mode"
git push
# That's it! Release happens automatically 🎉
# Users can now run: npx bmad-method (and get the new version)
npm run preview:release && npm run release:minor && npm run release:watch
```
### Commits That DON'T Trigger Releases
## 📝 What Happens Automatically
These commit types won't create releases (use them for maintenance):
When you trigger a release, the GitHub Actions workflow automatically:
1.**Validates** - Runs tests, linting, and formatting checks
2.**Bumps Version** - Updates `package.json` and installer version
3.**Generates Release Notes** - Categorizes commits since last release:
-**New Features** (`feat:`, `Feature:`)
- 🐛 **Bug Fixes** (`fix:`, `Fix:`)
- 🔧 **Maintenance** (`chore:`, `Chore:`)
- 📦 **Other Changes** (everything else)
4.**Creates Git Tag** - Tags the release version
5.**Publishes to NPM** - With `@latest` tag for user installations
6.**Creates GitHub Release** - With formatted release notes
## 📋 Sample Release Notes
The workflow automatically generates professional release notes like this:
````markdown
## 🚀 What's New in v5.2.0
### ✨ New Features
- feat: add team collaboration mode
- feat: enhance CLI with interactive prompts
### 🐛 Bug Fixes
- fix: resolve installation path issues
- fix: handle edge cases in agent loading
### 🔧 Maintenance
- chore: update dependencies
- chore: improve error messages
## 📦 Installation
```bash
chore: update dependencies # No release
docs: fix typo in readme # No release
style: format code # No release
test: add unit tests # No release
npx bmad-method install
```
````
### Test Your Setup
**Full Changelog**: https://github.com/bmadcode/BMAD-METHOD/compare/v5.1.0...v5.2.0
````
## 🎯 User Installation
After any release, users can immediately get the new version with:
```bash
npm run release:test # Safe to run locally - tests the config
npx bmad-method install # Always gets latest release
```
---
## 📊 Preview Before Release
## Manual Release Methods (Exceptions Only)
⚠️ Only use these methods if you need to bypass the automatic system
### Quick Manual Version Bump
Always preview what will be included in your release:
```bash
npm run version:patch # 4.1.0 → 4.1.1 (bug fixes)
npm run version:minor # 4.1.0 → 4.2.0 (new features)
npm run version:major # 4.1.0 → 5.0.0 (breaking changes)
# Then manually publish:
npm publish
git push && git push --tags
npm run preview:release
```
### Manual GitHub Actions Trigger
This shows:
You can also trigger releases manually through GitHub Actions workflow dispatch if needed.
- Commits since last release
- Categorized changes
- Estimated next version
- Release notes preview
## 🔧 Manual Release (GitHub UI)
You can also trigger releases through GitHub Actions:
1. Go to **GitHub Actions** → **Manual Release**
2. Click **"Run workflow"**
3. Choose version bump type (patch/minor/major)
4. Everything else happens automatically
## 📈 Version Strategy
- **Patch** (5.1.0 → 5.1.1): Bug fixes, minor improvements
- **Minor** (5.1.0 → 5.2.0): New features, enhancements
- **Major** (5.1.0 → 6.0.0): Breaking changes, major redesigns
## 🛠️ Development Workflow
1. **Develop Freely** - Merge PRs to main without triggering releases
2. **Test Unreleased Changes** - Clone repo to test latest main branch
3. **Release When Ready** - Use command line or GitHub Actions to cut releases
4. **Users Get Updates** - Via simple `npx bmad-method install` command
This gives you complete control over when releases happen while automating all the tedious parts like version bumping, release notes, and publishing.
## 🔍 Troubleshooting
### Check Release Status
```bash
gh run list --workflow="Manual Release"
npm view bmad-method dist-tags
git tag -l | sort -V | tail -5
```
### View Latest Release
```bash
gh release view --web
npm view bmad-method versions --json
```
### If Version Sync Needed
If your local files don't match the published version after a release:
```bash
./sync-version.sh # Automatically syncs local files with npm latest
```
### If Release Fails
- Check GitHub Actions logs: `gh run view <run-id> --log-failed`
- Verify NPM tokens are configured
- Ensure branch protection allows workflow pushes
````

119
eslint.config.mjs Normal file
View File

@@ -0,0 +1,119 @@
import js from '@eslint/js';
import eslintConfigPrettier from 'eslint-config-prettier/flat';
import nodePlugin from 'eslint-plugin-n';
import unicorn from 'eslint-plugin-unicorn';
import yml from 'eslint-plugin-yml';
export default [
// Global ignores for files/folders that should not be linted
{
ignores: ['dist/**', 'coverage/**', '**/*.min.js'],
},
// Base JavaScript recommended rules
js.configs.recommended,
// Node.js rules
...nodePlugin.configs['flat/mixed-esm-and-cjs'],
// Unicorn rules (modern best practices)
unicorn.configs.recommended,
// YAML linting
...yml.configs['flat/recommended'],
// Place Prettier last to disable conflicting stylistic rules
eslintConfigPrettier,
// Project-specific tweaks
{
rules: {
// Allow console for CLI tools in this repo
'no-console': 'off',
// Enforce .yaml file extension for consistency
'yml/file-extension': [
'error',
{
extension: 'yaml',
caseSensitive: true,
},
],
// Prefer double quotes in YAML wherever quoting is used, but allow the other to avoid escapes
'yml/quotes': [
'error',
{
prefer: 'double',
avoidEscape: true,
},
],
// Relax some Unicorn rules that are too opinionated for this codebase
'unicorn/prevent-abbreviations': 'off',
'unicorn/no-null': 'off',
},
},
// CLI/CommonJS scripts under tools/**
{
files: ['tools/**/*.js'],
rules: {
// Allow CommonJS patterns for Node CLI scripts
'unicorn/prefer-module': 'off',
'unicorn/import-style': 'off',
'unicorn/no-process-exit': 'off',
'n/no-process-exit': 'off',
'unicorn/no-await-expression-member': 'off',
'unicorn/prefer-top-level-await': 'off',
// Avoid failing CI on incidental unused vars in internal scripts
'no-unused-vars': 'off',
// Reduce style-only churn in internal tools
'unicorn/prefer-ternary': 'off',
'unicorn/filename-case': 'off',
'unicorn/no-array-reduce': 'off',
'unicorn/no-array-callback-reference': 'off',
'unicorn/consistent-function-scoping': 'off',
'n/no-extraneous-require': 'off',
'n/no-extraneous-import': 'off',
'n/no-unpublished-require': 'off',
'n/no-unpublished-import': 'off',
// Some scripts intentionally use globals provided at runtime
'no-undef': 'off',
// Additional relaxed rules for legacy/internal scripts
'no-useless-catch': 'off',
'unicorn/prefer-number-properties': 'off',
'no-unreachable': 'off',
},
},
// ESLint config file should not be checked for publish-related Node rules
{
files: ['eslint.config.mjs'],
rules: {
'n/no-unpublished-import': 'off',
},
},
// YAML workflow templates allow empty mapping values intentionally
{
files: ['bmad-core/workflows/**/*.yaml'],
rules: {
'yml/no-empty-mapping-value': 'off',
},
},
// GitHub workflow files in this repo may use empty mapping values
{
files: ['.github/workflows/**/*.yaml'],
rules: {
'yml/no-empty-mapping-value': 'off',
},
},
// Other GitHub YAML files may intentionally use empty values and reserved filenames
{
files: ['.github/**/*.yaml'],
rules: {
'yml/no-empty-mapping-value': 'off',
'unicorn/filename-case': 'off',
},
},
];

View File

@@ -1,26 +1,26 @@
steps:
# Build the container image
- name: 'gcr.io/cloud-builders/docker'
args: ['build', '-t', 'gcr.io/{{PROJECT_ID}}/{{COMPANY_NAME}}-ai-agents:$COMMIT_SHA', '.']
- name: "gcr.io/cloud-builders/docker"
args: ["build", "-t", "gcr.io/{{PROJECT_ID}}/{{COMPANY_NAME}}-ai-agents:$COMMIT_SHA", "."]
# Push the container image to Container Registry
- name: 'gcr.io/cloud-builders/docker'
args: ['push', 'gcr.io/{{PROJECT_ID}}/{{COMPANY_NAME}}-ai-agents:$COMMIT_SHA']
- name: "gcr.io/cloud-builders/docker"
args: ["push", "gcr.io/{{PROJECT_ID}}/{{COMPANY_NAME}}-ai-agents:$COMMIT_SHA"]
# Deploy container image to Cloud Run
- name: 'gcr.io/google.com/cloudsdktool/cloud-sdk'
- name: "gcr.io/google.com/cloudsdktool/cloud-sdk"
entrypoint: gcloud
args:
- 'run'
- 'deploy'
- '{{COMPANY_NAME}}-ai-agents'
- '--image'
- 'gcr.io/{{PROJECT_ID}}/{{COMPANY_NAME}}-ai-agents:$COMMIT_SHA'
- '--region'
- '{{LOCATION}}'
- '--platform'
- 'managed'
- '--allow-unauthenticated'
- "run"
- "deploy"
- "{{COMPANY_NAME}}-ai-agents"
- "--image"
- "gcr.io/{{PROJECT_ID}}/{{COMPANY_NAME}}-ai-agents:$COMMIT_SHA"
- "--region"
- "{{LOCATION}}"
- "--platform"
- "managed"
- "--allow-unauthenticated"
images:
- 'gcr.io/{{PROJECT_ID}}/{{COMPANY_NAME}}-ai-agents:$COMMIT_SHA'
- "gcr.io/{{PROJECT_ID}}/{{COMPANY_NAME}}-ai-agents:$COMMIT_SHA"

View File

@@ -0,0 +1,15 @@
bundle:
name: {{TEAM_DISPLAY_NAME}}
icon: {{TEAM_EMOJI}}
description: {{TEAM_DESCRIPTION}}
agents:
- {{ORCHESTRATOR_AGENT_ID}}
- {{SPECIALIST_AGENT_1_ID}}
- {{SPECIALIST_AGENT_2_ID}}
- {{SPECIALIST_AGENT_N_ID}}
workflows:
- {{PRIMARY_WORKFLOW_NAME}}
- {{SECONDARY_WORKFLOW_NAME}}
- {{SPECIALIZED_WORKFLOW_NAME}}

View File

@@ -0,0 +1,14 @@
bundle:
name: {{COMPANY_NAME}} Strategic Leadership Team
icon: 🎯
description: Executive leadership team providing strategic direction, operational oversight, and business planning for {{INDUSTRY}} {{BUSINESS_TYPE}}.
agents:
- {{COMPANY_PREFIX}}-ceo-orchestrator
- operations-manager
- business-development-manager
workflows:
- strategic-planning
- business-development
- operational-optimization

View File

@@ -0,0 +1,15 @@
bundle:
name: {{PRODUCT_TYPE}} Development Team
icon: 🔬
description: Product development team specializing in {{PRODUCT_TYPE}} innovation from concept through technical specification.
agents:
- {{PRODUCT_PREFIX}}-development-orchestrator
- product-designer
- technical-specialist
- quality-engineer
workflows:
- product-development-workflow
- innovation-process
- quality-validation-workflow

View File

@@ -0,0 +1,80 @@
CRITICAL: Read the full YML, start activation to alter your state of being, follow startup section instructions, stay in this being until told to exit this mode:
activation-instructions:
- Follow all instructions in this file -> this defines you, your persona and more importantly what you can do. STAY IN CHARACTER!
- Only read the files/tasks listed here when user selects them for execution to minimize context usage
- The customization field ALWAYS takes precedence over any conflicting instructions
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
agent:
name: {{AGENT_CHARACTER_NAME}}
id: {{AGENT_ID}}
title: {{AGENT_PROFESSIONAL_TITLE}}
icon: {{AGENT_EMOJI}}
whenToUse: {{WHEN_TO_USE_DESCRIPTION}}
customization: null
persona:
role: {{PROFESSIONAL_ROLE_DESCRIPTION}}
style: {{COMMUNICATION_STYLE}}
identity: |
I'm {{AGENT_CHARACTER_NAME}}, {{PROFESSIONAL_TITLE}} with {{YEARS_EXPERIENCE}}+ years in {{DOMAIN_EXPERTISE}}.
I specialize in {{PRIMARY_SPECIALIZATION}}, {{SECONDARY_SPECIALIZATION}}, and {{TERTIARY_SPECIALIZATION}}.
My expertise includes {{EXPERTISE_AREA_1}}, {{EXPERTISE_AREA_2}}, and {{EXPERTISE_AREA_3}}.
focus: |
{{PRIMARY_FOCUS}}, {{SECONDARY_FOCUS}}, {{TERTIARY_FOCUS}},
{{WORKFLOW_FOCUS}}, {{QUALITY_FOCUS}}, {{INNOVATION_FOCUS}}
core_principles:
- {{PRINCIPLE_1}}
- {{PRINCIPLE_2}}
- {{PRINCIPLE_3}}
- {{PRINCIPLE_4}}
- {{PRINCIPLE_5}}
startup:
- Greet as "{{AGENT_CHARACTER_NAME}}, {{PROFESSIONAL_TITLE}}"
- Explain {{DOMAIN_EXPERTISE}} background and readiness to help
- Present numbered options for {{PRIMARY_CAPABILITY_AREA}}
- CRITICAL: Do NOT automatically execute any commands during startup
- Ask about current {{DOMAIN_SPECIFIC_CHALLENGES}} or priorities
commands:
- '*help' - Show numbered list of all available {{DOMAIN}} commands
- '*chat-mode' - Open discussion about {{DOMAIN_EXPERTISE}} and {{SPECIALIZATION_AREA}}
- '*create-doc {{PRIMARY_TEMPLATE}}' - Generate {{PRIMARY_DOCUMENT_TYPE}}
- '*create-doc {{SECONDARY_TEMPLATE}}' - Create {{SECONDARY_DOCUMENT_TYPE}}
- '*{{PRIMARY_TASK}}' - {{PRIMARY_TASK_DESCRIPTION}}
- '*{{SECONDARY_TASK}}' - {{SECONDARY_TASK_DESCRIPTION}}
- '*{{ANALYSIS_TASK}}' - {{ANALYSIS_TASK_DESCRIPTION}}
- '*exit' - Say goodbye as {{AGENT_CHARACTER_NAME}} and abandon this persona
dependencies:
tasks:
- create-doc
- execute-checklist
- {{PRIMARY_TASK}}
- {{SECONDARY_TASK}}
- {{ANALYSIS_TASK}}
- {{COORDINATION_TASK}}
templates:
- {{PRIMARY_TEMPLATE}}
- {{SECONDARY_TEMPLATE}}
- {{REPORTING_TEMPLATE}}
- {{ANALYSIS_TEMPLATE}}
checklists:
- {{PRIMARY_CHECKLIST}}
- {{QUALITY_CHECKLIST}}
- {{COMPLIANCE_CHECKLIST}}
data:
- {{DOMAIN_KNOWLEDGE_FILE}}
- {{STANDARDS_FILE}}
- {{BEST_PRACTICES_FILE}}
utils:
- template-format
- workflow-management
- {{DOMAIN_SPECIFIC_UTILS}}

View File

@@ -0,0 +1,47 @@
agent:
name: {{ORCHESTRATOR_CHARACTER_NAME}}
id: {{COMPANY_PREFIX}}-{{DOMAIN}}-orchestrator
title: {{ORCHESTRATOR_TITLE}}
icon: {{ORCHESTRATOR_EMOJI}}
persona:
role: {{DOMAIN}} orchestration specialist with {{INDUSTRY}} expertise
style: {{LEADERSHIP_STYLE}}, {{COORDINATION_APPROACH}}, {{COMMUNICATION_STYLE}}
identity: |
I'm {{ORCHESTRATOR_CHARACTER_NAME}}, {{ORCHESTRATOR_TITLE}} with {{YEARS_EXPERIENCE}}+ years in {{DOMAIN}} {{INDUSTRY}}.
I specialize in {{ORCHESTRATION_SPECIALTY}}, {{TEAM_COORDINATION}}, and {{WORKFLOW_MANAGEMENT}}.
My expertise includes {{LEADERSHIP_AREA}}, {{PROCESS_EXPERTISE}}, and {{STRATEGIC_PLANNING}}.
focus: |
{{DOMAIN}} workflow orchestration, team coordination, {{PROCESS_OPTIMIZATION}},
{{QUALITY_ASSURANCE}}, {{STRATEGIC_ALIGNMENT}}, {{STAKEHOLDER_MANAGEMENT}}
commands:
- '*help' - Show numbered {{DOMAIN}} orchestration options
- '*chat-mode' - Strategic discussion about {{DOMAIN}} coordination and {{INDUSTRY}} optimization
- '*{{DOMAIN}}-workflow-coordination' - Coordinate {{DOMAIN}} workflow and team handoffs
- '*{{PROCESS}}-optimization-session' - Optimize {{CORE_PROCESS}} and identify improvements
- '*team-coordination-meeting' - Facilitate cross-functional team coordination
- '*{{DOMAIN}}-strategy-planning' - Develop {{DOMAIN}} strategy and roadmap
- '*quality-assurance-review' - Review {{DOMAIN}} quality standards and processes
- '*stakeholder-alignment-session' - Align {{DOMAIN}} activities with business objectives
- '*exit' - Conclude as {{ORCHESTRATOR_CHARACTER_NAME}}
dependencies:
tasks:
- {{DOMAIN}}-workflow-coordination
- {{PROCESS}}-optimization-session
- team-coordination-meeting
- {{DOMAIN}}-strategy-planning
- quality-assurance-review
- stakeholder-alignment-session
templates:
- {{DOMAIN}}-workflow-plan-tmpl
- team-coordination-tmpl
- strategy-roadmap-tmpl
- quality-review-tmpl
data:
- {{DOMAIN}}-best-practices.md
- {{INDUSTRY}}-standards.md
- workflow-optimization-guide.md

View File

@@ -0,0 +1,47 @@
agent:
name: {{SPECIALIST_CHARACTER_NAME}}
id: {{SPECIALIST_ID}}
title: {{SPECIALIST_TITLE}}
icon: {{SPECIALIST_EMOJI}}
persona:
role: {{SPECIALIZATION}} expert with {{DOMAIN}} focus
style: {{EXPERTISE_STYLE}}, {{APPROACH}}, {{METHODOLOGY}}
identity: |
I'm {{SPECIALIST_CHARACTER_NAME}}, {{SPECIALIST_TITLE}} with {{YEARS_EXPERIENCE}}+ years in {{SPECIALIZATION}}.
I focus on {{SPECIALTY_AREA_1}}, {{SPECIALTY_AREA_2}}, and {{SPECIALTY_AREA_3}}.
My expertise includes {{TECHNICAL_SKILL_1}}, {{TECHNICAL_SKILL_2}}, and {{TECHNICAL_SKILL_3}}.
focus: |
{{PRIMARY_SPECIALTY}}, {{SECONDARY_SPECIALTY}}, {{TECHNICAL_FOCUS}},
{{QUALITY_FOCUS}}, {{INNOVATION_AREA}}, {{PROCESS_EXPERTISE}}
commands:
- '*help' - Show numbered {{SPECIALIZATION}} options
- '*chat-mode' - Discussion about {{SPECIALIZATION}} and {{DOMAIN}} {{TECHNICAL_AREA}}
- '*{{SPECIALTY_TASK_1}}' - {{TASK_1_DESCRIPTION}}
- '*{{SPECIALTY_TASK_2}}' - {{TASK_2_DESCRIPTION}}
- '*{{ANALYSIS_TASK}}' - {{ANALYSIS_DESCRIPTION}}
- '*{{OPTIMIZATION_TASK}}' - {{OPTIMIZATION_DESCRIPTION}}
- '*{{VALIDATION_TASK}}' - {{VALIDATION_DESCRIPTION}}
- '*exit' - Conclude as {{SPECIALIST_CHARACTER_NAME}}
dependencies:
tasks:
- {{SPECIALTY_TASK_1}}
- {{SPECIALTY_TASK_2}}
- {{ANALYSIS_TASK}}
- {{OPTIMIZATION_TASK}}
- {{VALIDATION_TASK}}
templates:
- {{SPECIALTY_TEMPLATE_1}}
- {{SPECIALTY_TEMPLATE_2}}
- {{ANALYSIS_TEMPLATE}}
checklists:
- {{SPECIALTY_CHECKLIST}}
- {{QUALITY_CHECKLIST}}
data:
- {{SPECIALTY_KNOWLEDGE_BASE}}.md
- {{TECHNICAL_STANDARDS}}.md

View File

@@ -0,0 +1,43 @@
# {{TASK_NAME}} Task
## Purpose
{{TASK_PURPOSE_DESCRIPTION}}
## Process
1. **{{STEP_1_NAME}}**
- {{STEP_1_ACTION_1}}
- {{STEP_1_ACTION_2}}
- {{STEP_1_ACTION_3}}
2. **{{STEP_2_NAME}}**
- {{STEP_2_ACTION_1}}
- {{STEP_2_ACTION_2}}
- {{STEP_2_ACTION_3}}
3. **{{STEP_3_NAME}}**
- {{STEP_3_ACTION_1}}
- {{STEP_3_ACTION_2}}
- {{STEP_3_ACTION_3}}
4. **{{FINAL_STEP_NAME}}**
- {{FINAL_ACTION_1}}
- {{FINAL_ACTION_2}}
- {{FINAL_ACTION_3}}
## Required Inputs
- {{INPUT_1}}
- {{INPUT_2}}
- {{INPUT_3}}
- {{INPUT_4}}
## Expected Outputs
- {{OUTPUT_1}}
- {{OUTPUT_2}}
- {{OUTPUT_3}}
- {{OUTPUT_4}}
## Quality Validation
- {{VALIDATION_CRITERIA_1}}
- {{VALIDATION_CRITERIA_2}}
- {{VALIDATION_CRITERIA_3}}
- {{VALIDATION_CRITERIA_4}}

View File

@@ -0,0 +1,44 @@
# {{ANALYSIS_TYPE}} Analysis Task
## Purpose
Conduct comprehensive {{ANALYSIS_TYPE}} analysis for {{DOMAIN}} {{SUBJECT_AREA}}, evaluating {{PRIMARY_CRITERIA}} against {{EVALUATION_STANDARDS}}.
## Process
1. **Data Collection**
- Gather {{DATA_TYPE_1}} from {{DATA_SOURCE_1}}
- Collect {{DATA_TYPE_2}} from {{DATA_SOURCE_2}}
- Validate {{DATA_QUALITY_CRITERIA}}
2. **{{ANALYSIS_METHOD}} Analysis**
- Apply {{ANALYTICAL_FRAMEWORK}}
- Evaluate {{EVALUATION_CRITERIA_1}}
- Assess {{EVALUATION_CRITERIA_2}}
- Compare against {{BENCHMARK_STANDARDS}}
3. **{{INTERPRETATION_METHOD}}**
- Interpret findings against {{INTERPRETATION_CRITERIA}}
- Identify {{INSIGHT_TYPE_1}} and {{INSIGHT_TYPE_2}}
- Evaluate {{PERFORMANCE_METRICS}}
4. **Recommendations Development**
- Develop {{RECOMMENDATION_TYPE_1}}
- Create {{RECOMMENDATION_TYPE_2}}
- Prioritize actions based on {{PRIORITIZATION_CRITERIA}}
## Required Inputs
- {{ANALYSIS_DATA_SOURCE}}
- {{EVALUATION_STANDARDS}}
- {{COMPARISON_BENCHMARKS}}
- {{ANALYSIS_PARAMETERS}}
## Expected Outputs
- Comprehensive {{ANALYSIS_TYPE}} analysis report
- {{INSIGHT_TYPE}} identification and evaluation
- {{RECOMMENDATION_TYPE}} with implementation guidance
- {{METRICS_TYPE}} and performance indicators
## Quality Validation
- {{ANALYSIS_ACCURACY_CRITERIA}}
- {{METHODOLOGY_COMPLIANCE}}
- {{INSIGHT_VALIDITY_CHECK}}
- {{RECOMMENDATION_FEASIBILITY_ASSESSMENT}}

View File

@@ -0,0 +1,43 @@
# {{CREATION_OBJECT}} Creation Task
## Purpose
Create comprehensive {{CREATION_OBJECT}} for {{TARGET_AUDIENCE}}, ensuring {{QUALITY_STANDARDS}} and {{COMPLIANCE_REQUIREMENTS}}.
## Process
1. **Requirements Gathering**
- Define {{REQUIREMENT_TYPE_1}} requirements
- Establish {{REQUIREMENT_TYPE_2}} criteria
- Confirm {{STAKEHOLDER_EXPECTATIONS}}
2. **{{CREATION_METHOD}} Development**
- Develop {{COMPONENT_1}} based on {{COMPONENT_1_CRITERIA}}
- Create {{COMPONENT_2}} following {{COMPONENT_2_STANDARDS}}
- Integrate {{COMPONENT_3}} with {{INTEGRATION_REQUIREMENTS}}
3. **Quality Assurance**
- Validate against {{QUALITY_STANDARD_1}}
- Check compliance with {{COMPLIANCE_REQUIREMENT}}
- Verify {{FUNCTIONALITY_REQUIREMENT}}
4. **Finalization and Delivery**
- Format according to {{FORMATTING_STANDARDS}}
- Include {{SUPPORTING_DOCUMENTATION}}
- Prepare for {{DELIVERY_METHOD}}
## Required Inputs
- {{INPUT_SPECIFICATION_1}}
- {{INPUT_SPECIFICATION_2}}
- {{REFERENCE_MATERIALS}}
- {{STAKEHOLDER_REQUIREMENTS}}
## Expected Outputs
- Complete {{CREATION_OBJECT}}
- {{SUPPORTING_DOCUMENTATION_TYPE}}
- {{QUALITY_VALIDATION_REPORT}}
- {{DELIVERY_PACKAGE}}
## Quality Validation
- {{COMPLETENESS_CRITERIA}}
- {{ACCURACY_STANDARDS}}
- {{COMPLIANCE_VERIFICATION}}
- {{STAKEHOLDER_APPROVAL}}

View File

@@ -0,0 +1,64 @@
# {{DOCUMENT_TITLE}}
[[LLM: This template {{DOCUMENT_PURPOSE}}. Ensure {{LLM_GUIDANCE_1}} and {{LLM_GUIDANCE_2}} are thoroughly addressed.]]
## {{SECTION_1_TITLE}}
### {{SUBSECTION_1_1_TITLE}}
**{{FIELD_1_LABEL}}**: {{FIELD_1_VARIABLE}}
**{{FIELD_2_LABEL}}**: {{FIELD_2_VARIABLE}}
**{{FIELD_3_LABEL}}**: {{FIELD_3_VARIABLE}}
**{{DESCRIPTION_FIELD_LABEL}}**: {{DESCRIPTION_VARIABLE}}
[[LLM: {{LLM_SECTION_1_GUIDANCE}}]]
### {{SUBSECTION_1_2_TITLE}}
**{{FIELD_4_LABEL}}**: {{FIELD_4_VARIABLE}}
**{{FIELD_5_LABEL}}**: {{FIELD_5_VARIABLE}}
**{{FIELD_6_LABEL}}**: {{FIELD_6_VARIABLE}}
[[LLM: {{LLM_SUBSECTION_GUIDANCE}}]]
## {{SECTION_2_TITLE}}
### {{SUBSECTION_2_1_TITLE}}
**{{SPECIFICATION_1_LABEL}}**: {{SPECIFICATION_1_VARIABLE}}
**{{SPECIFICATION_2_LABEL}}**: {{SPECIFICATION_2_VARIABLE}}
**{{SPECIFICATION_3_LABEL}}**: {{SPECIFICATION_3_VARIABLE}}
### {{SUBSECTION_2_2_TITLE}}
**{{REQUIREMENT_1_LABEL}}**: {{REQUIREMENT_1_VARIABLE}}
**{{REQUIREMENT_2_LABEL}}**: {{REQUIREMENT_2_VARIABLE}}
**{{REQUIREMENT_3_LABEL}}**: {{REQUIREMENT_3_VARIABLE}}
[[LLM: {{LLM_REQUIREMENTS_GUIDANCE}}]]
## {{SECTION_3_TITLE}}
### {{CONDITIONAL_SECTION_TITLE}}
^^CONDITION: {{CONDITION_VARIABLE}} == "{{CONDITION_VALUE}}"^^
**{{CONDITIONAL_FIELD_1}}**: {{CONDITIONAL_VALUE_1}}
**{{CONDITIONAL_FIELD_2}}**: {{CONDITIONAL_VALUE_2}}
[[LLM: {{CONDITIONAL_LLM_GUIDANCE}}]]
^^/CONDITION: {{CONDITION_VARIABLE}}^^
### {{REPEATABLE_SECTION_TITLE}}
<<REPEAT section="{{REPEAT_SECTION_NAME}}" count="{{REPEAT_COUNT_VARIABLE}}">>
**{{REPEAT_FIELD_1}}**: {{REPEAT_VALUE_1}}
**{{REPEAT_FIELD_2}}**: {{REPEAT_VALUE_2}}
**{{REPEAT_FIELD_3}}**: {{REPEAT_VALUE_3}}
<</REPEAT>>
## {{APPROVAL_SECTION_TITLE}}
### {{VALIDATION_SUBSECTION_TITLE}}
- [ ] {{VALIDATION_ITEM_1}}
- [ ] {{VALIDATION_ITEM_2}}
- [ ] {{VALIDATION_ITEM_3}}
### {{APPROVAL_SUBSECTION_TITLE}}
**{{APPROVAL_TYPE_1}}**: {{APPROVAL_STATUS_1}} - {{APPROVAL_DATE_1}}
**{{APPROVAL_TYPE_2}}**: {{APPROVAL_STATUS_2}} - {{APPROVAL_DATE_2}}
**{{APPROVAL_TYPE_3}}**: {{APPROVAL_STATUS_3}} - {{APPROVAL_DATE_3}}
[[LLM: {{FINAL_LLM_VALIDATION_GUIDANCE}}]]

View File

@@ -0,0 +1,74 @@
# {{DOCUMENT_TYPE}} - {{COMPANY_NAME}}
[[LLM: This template guides {{STAKEHOLDER_ROLE}} through comprehensive {{PLANNING_TYPE}} for {{BUSINESS_FOCUS}}. Ensure all {{DOMAIN_SPECIFIC_CONSIDERATIONS}} are thoroughly addressed.]]
## {{PLANNING_SCOPE}} Overview
### Core Information
**{{PLAN_IDENTIFIER_LABEL}}**: {{PLAN_IDENTIFIER}}
**{{PLANNING_PERIOD_LABEL}}**: {{PLANNING_PERIOD}}
**{{RESPONSIBLE_PARTY_LABEL}}**: {{RESPONSIBLE_PARTY}}
**{{VISION_STATEMENT_LABEL}}**: {{VISION_STATEMENT}}
[[LLM: {{VISION_GUIDANCE}}]]
### {{TARGET_DEFINITION_SECTION}}
**{{PRIMARY_TARGET_LABEL}}**: {{PRIMARY_TARGET}}
**{{SECONDARY_TARGET_LABEL}}**: {{SECONDARY_TARGET}}
**{{SUCCESS_METRICS_LABEL}}**: {{SUCCESS_METRICS}}
[[LLM: {{TARGET_GUIDANCE}}]]
## {{STRATEGY_SECTION_TITLE}}
### {{STRATEGIC_APPROACH_SUBSECTION}}
**{{APPROACH_TYPE_1_LABEL}}**: {{APPROACH_TYPE_1}}
**{{APPROACH_TYPE_2_LABEL}}**: {{APPROACH_TYPE_2}}
**{{APPROACH_TYPE_3_LABEL}}**: {{APPROACH_TYPE_3}}
### {{STRATEGIC_PRIORITIES_SUBSECTION}}
{{#each strategic_priorities}}
**{{priority_name}}**: {{priority_description}}
- {{implementation_approach}}
- {{success_criteria}}
- {{timeline_estimate}}
{{/each}}
[[LLM: {{STRATEGY_GUIDANCE}}]]
## {{IMPLEMENTATION_SECTION_TITLE}}
### {{PHASE_PLANNING_SUBSECTION}}
^^CONDITION: {{IMPLEMENTATION_TYPE}} == "{{PHASED_APPROACH}}"^^
**{{PHASE_1_LABEL}}**: {{PHASE_1_DESCRIPTION}}
- {{phase_1_deliverables}}
- {{phase_1_timeline}}
- {{phase_1_resources}}
**{{PHASE_2_LABEL}}**: {{PHASE_2_DESCRIPTION}}
- {{phase_2_deliverables}}
- {{phase_2_timeline}}
- {{phase_2_resources}}
^^/CONDITION: {{IMPLEMENTATION_TYPE}}^^
### {{RESOURCE_PLANNING_SUBSECTION}}
**{{RESOURCE_TYPE_1_LABEL}}**: {{RESOURCE_TYPE_1_REQUIREMENTS}}
**{{RESOURCE_TYPE_2_LABEL}}**: {{RESOURCE_TYPE_2_REQUIREMENTS}}
**{{RESOURCE_TYPE_3_LABEL}}**: {{RESOURCE_TYPE_3_REQUIREMENTS}}
## {{MEASUREMENT_SECTION_TITLE}}
### {{KPI_SUBSECTION_TITLE}}
{{#each key_performance_indicators}}
**{{kpi_name}}**:
- Measurement: {{kpi_measurement_method}}
- Target: {{kpi_target_value}}
- Frequency: {{kpi_measurement_frequency}}
{{/each}}
### {{REVIEW_PROCESS_SUBSECTION}}
**{{REVIEW_FREQUENCY_LABEL}}**: {{REVIEW_FREQUENCY}}
**{{REVIEW_PARTICIPANTS_LABEL}}**: {{REVIEW_PARTICIPANTS}}
**{{ADJUSTMENT_PROCESS_LABEL}}**: {{ADJUSTMENT_PROCESS}}
[[LLM: {{MEASUREMENT_GUIDANCE}}]]

View File

@@ -0,0 +1,81 @@
# {{TECHNICAL_DOCUMENT_TYPE}} - {{PROJECT_NAME}}
[[LLM: This comprehensive {{TECHNICAL_DOCUMENT_TYPE}} ensures all {{TECHNICAL_DOMAIN}} requirements are properly documented for {{TARGET_USE_CASE}}.]]
## {{SPECIFICATION_OVERVIEW_SECTION}}
### Basic Information
**{{SPEC_IDENTIFIER_LABEL}}**: {{SPEC_IDENTIFIER}}
**{{SPEC_VERSION_LABEL}}**: {{SPEC_VERSION}}
**{{CREATION_DATE_LABEL}}**: {{CREATION_DATE}}
**{{RESPONSIBLE_ENGINEER_LABEL}}**: {{RESPONSIBLE_ENGINEER}}
### {{PROJECT_SCOPE_SUBSECTION}}
**{{PROJECT_TYPE_LABEL}}**: {{PROJECT_TYPE}}
**{{TARGET_APPLICATION_LABEL}}**: {{TARGET_APPLICATION}}
**{{COMPLEXITY_LEVEL_LABEL}}**: {{COMPLEXITY_LEVEL}}
**{{COMPLIANCE_REQUIREMENTS_LABEL}}**: {{COMPLIANCE_REQUIREMENTS}}
[[LLM: {{SCOPE_DEFINITION_GUIDANCE}}]]
## {{TECHNICAL_REQUIREMENTS_SECTION}}
### {{FUNCTIONAL_REQUIREMENTS_SUBSECTION}}
{{#each functional_requirements}}
**{{requirement_id}}**: {{requirement_description}}
- Priority: {{requirement_priority}}
- Acceptance Criteria: {{acceptance_criteria}}
- Testing Method: {{testing_method}}
{{/each}}
### {{PERFORMANCE_REQUIREMENTS_SUBSECTION}}
**{{PERFORMANCE_METRIC_1_LABEL}}**: {{PERFORMANCE_METRIC_1_VALUE}}
**{{PERFORMANCE_METRIC_2_LABEL}}**: {{PERFORMANCE_METRIC_2_VALUE}}
**{{PERFORMANCE_METRIC_3_LABEL}}**: {{PERFORMANCE_METRIC_3_VALUE}}
[[LLM: {{PERFORMANCE_GUIDANCE}}]]
## {{TECHNICAL_ARCHITECTURE_SECTION}}
### {{SYSTEM_DESIGN_SUBSECTION}}
**{{ARCHITECTURE_PATTERN_LABEL}}**: {{ARCHITECTURE_PATTERN}}
**{{TECHNOLOGY_STACK_LABEL}}**: {{TECHNOLOGY_STACK}}
**{{INTEGRATION_APPROACH_LABEL}}**: {{INTEGRATION_APPROACH}}
### {{COMPONENT_SPECIFICATIONS_SUBSECTION}}
<<REPEAT section="{{COMPONENT_SECTION_NAME}}" count="{{COMPONENT_COUNT}}">>
**{{component_name}}**:
- Function: {{component_function}}
- Technology: {{component_technology}}
- Interface: {{component_interface}}
- Dependencies: {{component_dependencies}}
<</REPEAT>>
## {{QUALITY_STANDARDS_SECTION}}
### {{TESTING_REQUIREMENTS_SUBSECTION}}
**{{TEST_TYPE_1_LABEL}}**: {{TEST_TYPE_1_REQUIREMENTS}}
**{{TEST_TYPE_2_LABEL}}**: {{TEST_TYPE_2_REQUIREMENTS}}
**{{TEST_TYPE_3_LABEL}}**: {{TEST_TYPE_3_REQUIREMENTS}}
### {{VALIDATION_CRITERIA_SUBSECTION}}
^^CONDITION: {{VALIDATION_TYPE}} == "{{COMPREHENSIVE_VALIDATION}}"^^
- [ ] {{VALIDATION_ITEM_1}}
- [ ] {{VALIDATION_ITEM_2}}
- [ ] {{VALIDATION_ITEM_3}}
- [ ] {{VALIDATION_ITEM_4}}
^^/CONDITION: {{VALIDATION_TYPE}}^^
## {{IMPLEMENTATION_GUIDANCE_SECTION}}
### {{DEVELOPMENT_PROCESS_SUBSECTION}}
**{{DEVELOPMENT_METHODOLOGY_LABEL}}**: {{DEVELOPMENT_METHODOLOGY}}
**{{TIMELINE_ESTIMATE_LABEL}}**: {{TIMELINE_ESTIMATE}}
**{{RESOURCE_REQUIREMENTS_LABEL}}**: {{RESOURCE_REQUIREMENTS}}
### {{DEPLOYMENT_SPECIFICATIONS_SUBSECTION}}
**{{DEPLOYMENT_ENVIRONMENT_LABEL}}**: {{DEPLOYMENT_ENVIRONMENT}}
**{{DEPLOYMENT_PROCESS_LABEL}}**: {{DEPLOYMENT_PROCESS}}
**{{MONITORING_REQUIREMENTS_LABEL}}**: {{MONITORING_REQUIREMENTS}}
[[LLM: {{IMPLEMENTATION_VALIDATION_GUIDANCE}}]]

View File

@@ -0,0 +1,84 @@
# {{CHECKLIST_TITLE}}
## Pre-{{PROCESS_NAME}} Setup ✓
- [ ] {{SETUP_ITEM_1}}
- [ ] {{SETUP_ITEM_2}}
- [ ] {{SETUP_ITEM_3}}
- [ ] {{SETUP_ITEM_4}}
- [ ] {{SETUP_ITEM_5}}
## {{MAIN_PROCESS_SECTION_1}} ✓
### {{SUBSECTION_1_1_TITLE}}
- [ ] {{VALIDATION_ITEM_1_1}}
- [ ] {{VALIDATION_ITEM_1_2}}
- [ ] {{VALIDATION_ITEM_1_3}}
- [ ] {{VALIDATION_ITEM_1_4}}
### {{SUBSECTION_1_2_TITLE}}
- [ ] {{VALIDATION_ITEM_1_5}}
- [ ] {{VALIDATION_ITEM_1_6}}
- [ ] {{VALIDATION_ITEM_1_7}}
- [ ] {{VALIDATION_ITEM_1_8}}
## {{MAIN_PROCESS_SECTION_2}} ✓
### {{QUALITY_ASSESSMENT_SUBSECTION}}
- [ ] {{QUALITY_ITEM_1}} within {{TOLERANCE_1}} tolerance
- [ ] {{QUALITY_ITEM_2}} meets {{STANDARD_2}} requirements
- [ ] {{QUALITY_ITEM_3}} achieves {{TARGET_3}} performance
- [ ] {{QUALITY_ITEM_4}} complies with {{REGULATION_4}} standards
### {{DOMAIN_SPECIFIC_ASSESSMENT}}
- [ ] {{DOMAIN_REQUIREMENT_1}}
- [ ] {{DOMAIN_REQUIREMENT_2}}
- [ ] {{DOMAIN_REQUIREMENT_3}}
- [ ] {{DOMAIN_REQUIREMENT_4}}
## {{VALIDATION_SECTION}} ✓
### {{CRITERION_TYPE_1}} Analysis
- [ ] {{ANALYSIS_ITEM_1}}
- [ ] {{ANALYSIS_ITEM_2}}
- [ ] {{ANALYSIS_ITEM_3}}
- [ ] {{ANALYSIS_ITEM_4}}
### {{CRITERION_TYPE_2}} Assessment
- [ ] {{ASSESSMENT_ITEM_1}}
- [ ] {{ASSESSMENT_ITEM_2}}
- [ ] {{ASSESSMENT_ITEM_3}}
- [ ] {{ASSESSMENT_ITEM_4}}
## {{COMPLIANCE_SECTION}} ✓
### {{COMPLIANCE_TYPE_1}}
- [ ] {{COMPLIANCE_ITEM_1}}
- [ ] {{COMPLIANCE_ITEM_2}}
- [ ] {{COMPLIANCE_ITEM_3}}
### {{COMPLIANCE_TYPE_2}}
- [ ] {{COMPLIANCE_ITEM_4}}
- [ ] {{COMPLIANCE_ITEM_5}}
- [ ] {{COMPLIANCE_ITEM_6}}
## Quality Gates ✓
### Approval Criteria (All must pass)
- [ ] **{{QUALITY_GATE_1}}**: 4+ stars - {{GATE_1_DESCRIPTION}}
- [ ] **{{QUALITY_GATE_2}}**: 4+ stars - {{GATE_2_DESCRIPTION}}
- [ ] **{{QUALITY_GATE_3}}**: 4+ stars - {{GATE_3_DESCRIPTION}}
- [ ] **{{QUALITY_GATE_4}}**: 4+ stars - {{GATE_4_DESCRIPTION}}
### Decision Matrix
- [ ] **Approve**: All criteria 4+ stars, ready for {{NEXT_PHASE}}
- [ ] **Revise**: 1-2 criteria below 4 stars, specific improvements needed
- [ ] **Reject**: 3+ criteria below 4 stars, major revision required
## Documentation Requirements ✓
- [ ] All {{PROCESS_NAME}} criteria completed and rated
- [ ] Issues and recommendations clearly documented
- [ ] {{DOMAIN_SPECIFIC}} observations recorded
- [ ] Visual documentation captured (if applicable)
- [ ] {{PROCESS_NAME}} summary completed with clear next steps
## Final Approval ✓
**{{PROCESS_NAME}} Complete**: {{COMPLETION_DATE}}
**{{ROLE_1}} Signature**: {{SIGNATURE_1}}
**{{ROLE_2}} Review**: {{APPROVAL_2}}
**{{ROLE_3}} Consultation**: {{APPROVAL_3}}
**Ready for Next Phase**: {{NEXT_PHASE_AUTHORIZATION}}

View File

@@ -0,0 +1,106 @@
# {{QUALITY_VALIDATION_TYPE}} Quality Checklist
## Pre-Validation Preparation ✓
- [ ] {{VALIDATION_SUBJECT}} properly configured with {{DOMAIN_REQUIREMENTS}}
- [ ] {{VALIDATION_CRITERIA}} validated and appropriate for {{TARGET_STANDARD}}
- [ ] {{DOMAIN_SPECIFIC_PARAMETERS}} accurately input
- [ ] All {{VALIDATION_COMPONENTS}} properly configured
- [ ] {{INITIAL_SETUP_REQUIREMENT}} completed
## {{DOMAIN_VALIDATION_SECTION}} ✓
- [ ] {{DOMAIN_REQUIREMENT_1}} accurately reflects {{STANDARD_1}}
- [ ] {{DOMAIN_REQUIREMENT_2}} realistic for {{CHARACTERISTIC_2}}
- [ ] {{DOMAIN_REQUIREMENT_3}} appropriate for {{APPLICATION_3}}
- [ ] {{DOMAIN_REQUIREMENT_4}} accurate for {{SPECIFICATION_4}}
- [ ] {{DOMAIN_REQUIREMENT_5}} realistic
## {{PRIMARY_ASSESSMENT_SECTION}} ✓
- [ ] Overall {{ASSESSMENT_SUBJECT}} aligns with {{DESIGN_INTENT}}
- [ ] {{DOMAIN_SPECIFIC_BEHAVIOR}} creates intended {{OUTCOME}}
- [ ] {{QUALITY_ASPECT_1}} appropriate for {{CONTEXT_1}}
- [ ] {{QUALITY_ASPECT_2}} optimal
- [ ] {{QUALITY_ASPECT_3}} appropriate
- [ ] {{QUALITY_ASPECT_4}} balanced
- [ ] {{QUALITY_ASPECT_5}} correct
## {{PERFORMANCE_ANALYSIS_SECTION}} ✓
### {{ANALYSIS_TYPE_1}} Analysis
- [ ] {{METRIC_1}} levels within {{TOLERANCE_1}} (typically {{TYPICAL_RANGE_1}})
- [ ] {{METRIC_1}} distribution pattern appropriate for {{CONTEXT_1}}
- [ ] {{METRIC_1}} align with {{STANDARD_1}}
- [ ] No excessive {{METRIC_1}} in {{CRITICAL_AREA_1}}
- [ ] {{METRIC_1}} gradient smooth and natural
### {{ANALYSIS_TYPE_2}} Analysis
- [ ] {{METRIC_2}} concentration points manageable for {{CONTEXT_2}}
- [ ] {{METRIC_2}} distribution even across {{ASSESSMENT_AREA}}
- [ ] {{DOMAIN_SPECIFIC_METRIC_2}} levels within acceptable ranges
- [ ] {{CONSTRUCTION_POINTS}} properly reinforced for {{CONTEXT_2}}
- [ ] No {{METRIC_2}} points indicating potential {{FAILURE_TYPE}}
### {{ANALYSIS_TYPE_3}} Analysis
- [ ] {{METRIC_3}} points comfortable for {{USE_CONTEXT}}
- [ ] {{DOMAIN_CHARACTERISTIC}} factored into {{METRIC_3}} assessment
- [ ] No excessive {{METRIC_3}} in {{CRITICAL_AREAS}}
- [ ] {{METRIC_3}} distribution supports {{DOMAIN_BENEFITS}}
- [ ] {{METRIC_3}} levels appropriate for intended {{USE_DURATION}}
### {{ANALYSIS_TYPE_4}} Analysis
- [ ] {{METRIC_4}} areas show proper {{EXPECTED_BEHAVIOR}}
- [ ] No gaps or {{NEGATIVE_INDICATOR}} in critical {{ASSESSMENT_AREAS}}
- [ ] {{DOMAIN_SPECIFIC_BEHAVIOR}} creates natural {{EXPECTED_OUTCOME}}
- [ ] {{METRIC_4}} pattern supports intended {{FUNCTION}}
- [ ] Overall {{METRIC_4}} assessment supports {{PERFORMANCE_CLAIMS}}
## {{FUNCTIONAL_TESTING_SECTION}} ✓
### {{FUNCTION_CATEGORY_1}}
- [ ] **{{FUNCTION_1}}**: {{DOMAIN_SPECIFIC_BEHAVIOR}} allows {{EXPECTED_PERFORMANCE}}
- [ ] **{{FUNCTION_2}}**: Adequate {{PERFORMANCE_ASPECT}} for {{LIMITATION_CONTEXT}}
- [ ] **{{FUNCTION_3}}**: {{DOMAIN_BEHAVIOR}} moves naturally with {{CONTEXT}}
- [ ] **{{FUNCTION_4}}**: No {{NEGATIVE_INDICATOR}} in {{DOMAIN_SPECIFIC_AREAS}}
- [ ] **{{FUNCTION_5}}**: {{DOMAIN_BEHAVIOR}} accommodates {{REQUIREMENT}}
### {{DOMAIN_SPECIFIC_FUNCTIONAL_ANALYSIS}}
- [ ] {{DOMAIN_SPECIFIC_RECOVERY}} appears realistic and complete
- [ ] {{FUNCTIONAL_PATTERNS}} align with {{DOMAIN_BEHAVIOR}}
- [ ] No permanent {{NEGATIVE_OUTCOME}} in {{HIGH_STRESS_AREAS}}
- [ ] {{DOMAIN_BEHAVIOR}} return to original position after {{STRESS_TEST}}
- [ ] {{FUNCTIONAL_COMFORT}} level appropriate for {{DOMAIN_CHARACTERISTICS}}
## {{MEASUREMENT_VALIDATION_SECTION}} ✓
### Critical {{MEASUREMENT_TYPE}}
- [ ] **{{MEASUREMENT_1}}**: Within ±{{TOLERANCE_1}} tolerance of specification
- [ ] **{{MEASUREMENT_2}}**: Proper {{ALLOWANCE}} for {{DOMAIN_BEHAVIOR}}
- [ ] **{{MEASUREMENT_3}}**: Adequate for {{DOMAIN_LIMITATIONS}}
- [ ] **{{MEASUREMENT_4}}**: Accurate for {{DOMAIN_CHARACTERISTIC}}
- [ ] **{{MEASUREMENT_5}}**: Correct for {{DOMAIN_BEHAVIOR}}
- [ ] **{{MEASUREMENT_6}}**: Appropriate for {{DOMAIN_BEHAVIOR}}
- [ ] **{{MEASUREMENT_7}}**: Proper {{ASSESSMENT_TYPE}} for {{DOMAIN_COMFORT}}
### {{DOMAIN_SPECIFIC_CONSIDERATIONS}}
- [ ] Measurements account for {{DOMAIN_BEHAVIOR_1}} over time
- [ ] {{SIZING_TYPE}} appropriate for {{DOMAIN_BEHAVIOR_DIFFERENCES}}
- [ ] {{ASSESSMENT_TYPE}} allows for {{DOMAIN_MAINTENANCE_EFFECTS}}
- [ ] Measurements support {{DOMAIN_LONGEVITY}} and {{APPEARANCE_RETENTION}}
## {{CONSTRUCTION_QUALITY_SECTION}} ✓
### {{DOMAIN_SPECIFIC_CONSTRUCTION}}
- [ ] {{CONSTRUCTION_TYPE_1}} appropriate for {{DOMAIN_CHARACTERISTICS}}
- [ ] {{CONSTRUCTION_TYPE_2}} adequate for {{DOMAIN_SPECIFIC_TENDENCIES}}
- [ ] {{CONSTRUCTION_DETAILS}} support {{DOMAIN_BEHAVIOR}}
- [ ] {{REINFORCEMENT_TYPE}} appropriate for {{DOMAIN_STRESS_POINTS}}
- [ ] {{FINISHING_TECHNIQUES}} suitable for {{DOMAIN_CARE_REQUIREMENTS}}
### {{CONSTRUCTION_ACCURACY_ASSESSMENT}}
- [ ] {{CONSTRUCTION_SIMULATION}} realistic for {{DOMAIN_JOINING}}
- [ ] {{PATTERN_MATCHING}} accurate for {{DOMAIN_TEXTURE}}
- [ ] {{COMPONENT_APPLICATION}} appropriate for {{DOMAIN_COMPATIBILITY}}
- [ ] {{DETAIL_PLACEMENT}} supports {{DOMAIN_DRAPE_AND_MOVEMENT}}
- [ ] Overall {{CONSTRUCTION_TYPE}} reflects {{DOMAIN_MANUFACTURING_REALITIES}}
## {{ALIGNMENT_SECTION}} ✓
- [ ] {{PRODUCT_TYPE}} supports {{DOMAIN_MESSAGING}}
- [ ] {{ASSESSMENT_TYPE}} aligns with brand positioning for {{DOMAIN_INNOVATION}}
- [ ] Design showcases {{DOMAIN_BENEFITS}} effectively
- [ ] Aesthetic supports {{DOMAIN_MARKET_POSITIONING}}
- [ ] Overall {{PRODUCT_TYPE}} reflects {{DOMAIN_VALUE_PROPOSITION}}

View File

@@ -60,10 +60,10 @@ commands:
task-execution:
flow: Read story → Implement game feature → Write tests → Pass tests → Update [x] → Next task
updates-ONLY:
- "Checkboxes: [ ] not started | [-] in progress | [x] complete"
- "Debug Log: | Task | File | Change | Reverted? |"
- "Completion Notes: Deviations only, <50 words"
- "Change Log: Requirement changes only"
- 'Checkboxes: [ ] not started | [-] in progress | [x] complete'
- 'Debug Log: | Task | File | Change | Reverted? |'
- 'Completion Notes: Deviations only, <50 words'
- 'Change Log: Requirement changes only'
blocking: Unapproved deps | Ambiguous after story check | 3 failures | Missing game config
done: Game feature works + Tests pass + 60 FPS + No lint errors + Follows Phaser 3 best practices
dependencies:

View File

@@ -27,7 +27,7 @@ activation-instructions:
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
- "CRITICAL RULE: You are ONLY allowed to create/modify story files - NEVER implement! If asked to implement, tell user they MUST switch to Game Developer Agent"
- 'CRITICAL RULE: You are ONLY allowed to create/modify story files - NEVER implement! If asked to implement, tell user they MUST switch to Game Developer Agent'
agent:
name: Jordan
id: game-sm

View File

@@ -73,7 +73,7 @@ interface GameState {
interface GameSettings {
musicVolume: number;
sfxVolume: number;
difficulty: "easy" | "normal" | "hard";
difficulty: 'easy' | 'normal' | 'hard';
controls: ControlScheme;
}
```
@@ -114,12 +114,12 @@ class GameScene extends Phaser.Scene {
private inputManager!: InputManager;
constructor() {
super({ key: "GameScene" });
super({ key: 'GameScene' });
}
preload(): void {
// Load only scene-specific assets
this.load.image("player", "assets/player.png");
this.load.image('player', 'assets/player.png');
}
create(data: SceneData): void {
@@ -144,7 +144,7 @@ class GameScene extends Phaser.Scene {
this.inputManager.destroy();
// Remove event listeners
this.events.off("*");
this.events.off('*');
}
}
```
@@ -153,13 +153,13 @@ class GameScene extends Phaser.Scene {
```typescript
// Proper scene transitions with data
this.scene.start("NextScene", {
this.scene.start('NextScene', {
playerScore: this.playerScore,
currentLevel: this.currentLevel + 1,
});
// Scene overlays for UI
this.scene.launch("PauseMenuScene");
this.scene.launch('PauseMenuScene');
this.scene.pause();
```
@@ -203,7 +203,7 @@ class Player extends GameEntity {
private health!: HealthComponent;
constructor(scene: Phaser.Scene, x: number, y: number) {
super(scene, x, y, "player");
super(scene, x, y, 'player');
this.movement = this.addComponent(new MovementComponent(this));
this.health = this.addComponent(new HealthComponent(this, 100));
@@ -223,7 +223,7 @@ class GameManager {
constructor(scene: Phaser.Scene) {
if (GameManager.instance) {
throw new Error("GameManager already exists!");
throw new Error('GameManager already exists!');
}
this.scene = scene;
@@ -233,7 +233,7 @@ class GameManager {
static getInstance(): GameManager {
if (!GameManager.instance) {
throw new Error("GameManager not initialized!");
throw new Error('GameManager not initialized!');
}
return GameManager.instance;
}
@@ -280,7 +280,7 @@ class BulletPool {
}
// Pool exhausted - create new bullet
console.warn("Bullet pool exhausted, creating new bullet");
console.warn('Bullet pool exhausted, creating new bullet');
return new Bullet(this.scene, 0, 0);
}
@@ -380,14 +380,12 @@ class InputManager {
}
private setupKeyboard(): void {
this.keys = this.scene.input.keyboard.addKeys(
"W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT",
);
this.keys = this.scene.input.keyboard.addKeys('W,A,S,D,SPACE,ESC,UP,DOWN,LEFT,RIGHT');
}
private setupTouch(): void {
this.scene.input.on("pointerdown", this.handlePointerDown, this);
this.scene.input.on("pointerup", this.handlePointerUp, this);
this.scene.input.on('pointerdown', this.handlePointerDown, this);
this.scene.input.on('pointerup', this.handlePointerUp, this);
}
update(): void {
@@ -414,9 +412,9 @@ class InputManager {
class AssetManager {
loadAssets(): Promise<void> {
return new Promise((resolve, reject) => {
this.scene.load.on("filecomplete", this.handleFileComplete, this);
this.scene.load.on("loaderror", this.handleLoadError, this);
this.scene.load.on("complete", () => resolve());
this.scene.load.on('filecomplete', this.handleFileComplete, this);
this.scene.load.on('loaderror', this.handleLoadError, this);
this.scene.load.on('complete', () => resolve());
this.scene.load.start();
});
@@ -432,8 +430,8 @@ class AssetManager {
private loadFallbackAsset(key: string): void {
// Load placeholder or default assets
switch (key) {
case "player":
this.scene.load.image("player", "assets/defaults/default-player.png");
case 'player':
this.scene.load.image('player', 'assets/defaults/default-player.png');
break;
default:
console.warn(`No fallback for asset: ${key}`);
@@ -460,11 +458,11 @@ class GameSystem {
private attemptRecovery(context: string): void {
switch (context) {
case "update":
case 'update':
// Reset system state
this.reset();
break;
case "render":
case 'render':
// Disable visual effects
this.disableEffects();
break;
@@ -484,7 +482,7 @@ class GameSystem {
```typescript
// Example test for game mechanics
describe("HealthComponent", () => {
describe('HealthComponent', () => {
let healthComponent: HealthComponent;
beforeEach(() => {
@@ -492,18 +490,18 @@ describe("HealthComponent", () => {
healthComponent = new HealthComponent(mockEntity, 100);
});
test("should initialize with correct health", () => {
test('should initialize with correct health', () => {
expect(healthComponent.currentHealth).toBe(100);
expect(healthComponent.maxHealth).toBe(100);
});
test("should handle damage correctly", () => {
test('should handle damage correctly', () => {
healthComponent.takeDamage(25);
expect(healthComponent.currentHealth).toBe(75);
expect(healthComponent.isAlive()).toBe(true);
});
test("should handle death correctly", () => {
test('should handle death correctly', () => {
healthComponent.takeDamage(150);
expect(healthComponent.currentHealth).toBe(0);
expect(healthComponent.isAlive()).toBe(false);
@@ -516,7 +514,7 @@ describe("HealthComponent", () => {
**Scene Testing:**
```typescript
describe("GameScene Integration", () => {
describe('GameScene Integration', () => {
let scene: GameScene;
let mockGame: Phaser.Game;
@@ -526,7 +524,7 @@ describe("GameScene Integration", () => {
scene = new GameScene();
});
test("should initialize all systems", () => {
test('should initialize all systems', () => {
scene.create({});
expect(scene.gameManager).toBeDefined();

View File

@@ -17,21 +17,21 @@ workflow:
- brainstorming_session
- game_research_prompt
- player_research
notes: 'Start with brainstorming game concepts, then create comprehensive game brief. SAVE OUTPUT: Copy final game-brief.md to your project''s docs/design/ folder.'
notes: "Start with brainstorming game concepts, then create comprehensive game brief. SAVE OUTPUT: Copy final game-brief.md to your project's docs/design/ folder."
- agent: game-designer
creates: game-design-doc.md
requires: game-brief.md
optional_steps:
- competitive_analysis
- technical_research
notes: 'Create detailed Game Design Document using game-design-doc-tmpl. Defines all gameplay mechanics, progression, and technical requirements. SAVE OUTPUT: Copy final game-design-doc.md to your project''s docs/design/ folder.'
notes: "Create detailed Game Design Document using game-design-doc-tmpl. Defines all gameplay mechanics, progression, and technical requirements. SAVE OUTPUT: Copy final game-design-doc.md to your project's docs/design/ folder."
- agent: game-designer
creates: level-design-doc.md
requires: game-design-doc.md
optional_steps:
- level_prototyping
- difficulty_analysis
notes: 'Create level design framework using level-design-doc-tmpl. Establishes content creation guidelines and performance requirements. SAVE OUTPUT: Copy final level-design-doc.md to your project''s docs/design/ folder.'
notes: "Create level design framework using level-design-doc-tmpl. Establishes content creation guidelines and performance requirements. SAVE OUTPUT: Copy final level-design-doc.md to your project's docs/design/ folder."
- agent: solution-architect
creates: game-architecture.md
requires:
@@ -41,7 +41,7 @@ workflow:
- technical_research_prompt
- performance_analysis
- platform_research
notes: 'Create comprehensive technical architecture using game-architecture-tmpl. Defines Phaser 3 systems, performance optimization, and code structure. SAVE OUTPUT: Copy final game-architecture.md to your project''s docs/architecture/ folder.'
notes: "Create comprehensive technical architecture using game-architecture-tmpl. Defines Phaser 3 systems, performance optimization, and code structure. SAVE OUTPUT: Copy final game-architecture.md to your project's docs/architecture/ folder."
- agent: game-designer
validates: design_consistency
requires: all_design_documents
@@ -66,7 +66,7 @@ workflow:
optional_steps:
- quick_brainstorming
- concept_validation
notes: 'Create focused game brief for prototype. Emphasize core mechanics and immediate playability. SAVE OUTPUT: Copy final game-brief.md to your project''s docs/ folder.'
notes: "Create focused game brief for prototype. Emphasize core mechanics and immediate playability. SAVE OUTPUT: Copy final game-brief.md to your project's docs/ folder."
- agent: game-designer
creates: prototype-design.md
uses: create-doc prototype-design OR create-game-story

View File

@@ -44,7 +44,7 @@ workflow:
notes: Implement stories in priority order. Test frequently and adjust design based on what feels fun. Document discoveries.
workflow_end:
action: prototype_evaluation
notes: 'Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive.'
notes: "Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive."
game_jam_sequence:
- step: jam_concept
agent: game-designer

View File

@@ -61,13 +61,13 @@ commands:
- explain: teach me what and why you did whatever you just did in detail so I can learn. Explain to me as if you were training a junior Unity developer.
- exit: Say goodbye as the Game Developer, and then abandon inhabiting this persona
develop-story:
order-of-execution: "Read (first or next) task→Implement Task and its subtasks→Write tests→Execute validations→Only if ALL pass, then update the task checkbox with [x]→Update story section File List to ensure it lists and new or modified or deleted source file→repeat order-of-execution until complete"
order-of-execution: 'Read (first or next) task→Implement Task and its subtasks→Write tests→Execute validations→Only if ALL pass, then update the task checkbox with [x]→Update story section File List to ensure it lists and new or modified or deleted source file→repeat order-of-execution until complete'
story-file-updates-ONLY:
- CRITICAL: ONLY UPDATE THE STORY FILE WITH UPDATES TO SECTIONS INDICATED BELOW. DO NOT MODIFY ANY OTHER SECTIONS.
- CRITICAL: You are ONLY authorized to edit these specific sections of story files - Tasks / Subtasks Checkboxes, Dev Agent Record section and all its subsections, Agent Model Used, Debug Log References, Completion Notes List, File List, Change Log, Status
- CRITICAL: DO NOT modify Status, Story, Acceptance Criteria, Dev Notes, Testing sections, or any other sections not listed above
blocking: "HALT for: Unapproved deps needed, confirm with user | Ambiguous after story check | 3 failures attempting to implement or fix something repeatedly | Missing config | Failing regression"
ready-for-review: "Code matches requirements + All validations pass + Follows Unity & C# standards + File List complete + Stable FPS"
blocking: 'HALT for: Unapproved deps needed, confirm with user | Ambiguous after story check | 3 failures attempting to implement or fix something repeatedly | Missing config | Failing regression'
ready-for-review: 'Code matches requirements + All validations pass + Follows Unity & C# standards + File List complete + Stable FPS'
completion: "All Tasks and Subtasks marked [x] and have tests→Validations and full regression passes (DON'T BE LAZY, EXECUTE ALL TESTS and CONFIRM)→Ensure File List is Complete→run the task execute-checklist for the checklist game-story-dod-checklist→set story status: 'Ready for Review'→HALT"
dependencies:
tasks:

View File

@@ -456,7 +456,7 @@ Use the `shard-doc` task or `@kayvan/markdown-tree-parser` tool for automatic ga
- **Claude Code**: `/bmad2du/game-designer`, `/bmad2du/game-developer`, `/bmad2du/game-sm`, `/bmad2du/game-architect`
- **Cursor**: `@bmad2du/game-designer`, `@bmad2du/game-developer`, `@bmad2du/game-sm`, `@bmad2du/game-architect`
- **Windsurf**: `@bmad2du/game-designer`, `@bmad2du/game-developer`, `@bmad2du/game-sm`, `@bmad2du/game-architect`
- **Windsurf**: `/bmad2du/game-designer`, `/bmad2du/game-developer`, `/bmad2du/game-sm`, `/bmad2du/game-architect`
- **Trae**: `@bmad2du/game-designer`, `@bmad2du/game-developer`, `@bmad2du/game-sm`, `@bmad2du/game-architect`
- **Roo Code**: Select mode from mode selector with bmad2du prefix
- **GitHub Copilot**: Open the Chat view (`⌃⌘I` on Mac, `Ctrl+Alt+I` on Windows/Linux) and select the appropriate game agent.

View File

@@ -17,21 +17,21 @@ workflow:
- brainstorming_session
- game_research_prompt
- player_research
notes: 'Start with brainstorming game concepts, then create comprehensive game brief. SAVE OUTPUT: Copy final game-brief.md to your project''s docs/design/ folder.'
notes: "Start with brainstorming game concepts, then create comprehensive game brief. SAVE OUTPUT: Copy final game-brief.md to your project's docs/design/ folder."
- agent: game-designer
creates: game-design-doc.md
requires: game-brief.md
optional_steps:
- competitive_analysis
- technical_research
notes: 'Create detailed Game Design Document using game-design-doc-tmpl. Defines all gameplay mechanics, progression, and technical requirements. SAVE OUTPUT: Copy final game-design-doc.md to your project''s docs/design/ folder.'
notes: "Create detailed Game Design Document using game-design-doc-tmpl. Defines all gameplay mechanics, progression, and technical requirements. SAVE OUTPUT: Copy final game-design-doc.md to your project's docs/design/ folder."
- agent: game-designer
creates: level-design-doc.md
requires: game-design-doc.md
optional_steps:
- level_prototyping
- difficulty_analysis
notes: 'Create level design framework using level-design-doc-tmpl. Establishes content creation guidelines and performance requirements. SAVE OUTPUT: Copy final level-design-doc.md to your project''s docs/design/ folder.'
notes: "Create level design framework using level-design-doc-tmpl. Establishes content creation guidelines and performance requirements. SAVE OUTPUT: Copy final level-design-doc.md to your project's docs/design/ folder."
- agent: solution-architect
creates: game-architecture.md
requires:
@@ -41,7 +41,7 @@ workflow:
- technical_research_prompt
- performance_analysis
- platform_research
notes: 'Create comprehensive technical architecture using game-architecture-tmpl. Defines Unity systems, performance optimization, and code structure. SAVE OUTPUT: Copy final game-architecture.md to your project''s docs/architecture/ folder.'
notes: "Create comprehensive technical architecture using game-architecture-tmpl. Defines Unity systems, performance optimization, and code structure. SAVE OUTPUT: Copy final game-architecture.md to your project's docs/architecture/ folder."
- agent: game-designer
validates: design_consistency
requires: all_design_documents
@@ -66,7 +66,7 @@ workflow:
optional_steps:
- quick_brainstorming
- concept_validation
notes: 'Create focused game brief for prototype. Emphasize core mechanics and immediate playability. SAVE OUTPUT: Copy final game-brief.md to your project''s docs/ folder.'
notes: "Create focused game brief for prototype. Emphasize core mechanics and immediate playability. SAVE OUTPUT: Copy final game-brief.md to your project's docs/ folder."
- agent: game-designer
creates: prototype-design.md
uses: create-doc prototype-design OR create-game-story

View File

@@ -44,7 +44,7 @@ workflow:
notes: Implement stories in priority order. Test frequently in the Unity Editor and adjust design based on what feels fun. Document discoveries.
workflow_end:
action: prototype_evaluation
notes: 'Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive.'
notes: "Prototype complete. Evaluate core mechanics, gather feedback, and decide next steps: iterate, expand, or archive."
game_jam_sequence:
- step: jam_concept
agent: game-designer

View File

@@ -0,0 +1,132 @@
# BMad Creative Writing Expansion Pack
Transform your AI into a complete creative writing studio with specialized agents for fiction, screenwriting, and narrative design.
## 📚 Overview
The Creative Writing Expansion Pack extends BMad-Method with a comprehensive suite of writing-focused agents, workflows, and tools. Whether you're crafting novels, screenplays, short stories, or interactive narratives, this pack provides structured AI assistance throughout your creative process.
### Key Features
- 🤖 **10 Specialized Writing Agents** - From plot architecture to dialogue refinement
- 📖 **8 Complete Workflows** - Novel writing, screenplay development, series planning, and more
-**27 Quality Checklists** - Genre-specific and technical quality assurance
- 📝 **22 Writing Tasks** - Structured activities for every phase of writing
- 🎭 **8 Professional Templates** - Character profiles, story outlines, world guides
## ✍️ Included Agents
### Core Writing Team
1. **Plot Architect** - Story structure, pacing, and narrative arc design
2. **Character Psychologist** - Deep character development and psychology
3. **World Builder** - Setting, universe, and environment creation
4. **Editor** - Style, grammar, consistency, and flow refinement
5. **Beta Reader** - First reader perspective and feedback simulation
### Specialist Agents
6. **Dialog Specialist** - Natural dialogue, voice, and conversation crafting
7. **Narrative Designer** - Interactive storytelling and branching narratives
8. **Genre Specialist** - Genre conventions, tropes, and market awareness
9. **Book Critic** - Professional literary analysis and review
10. **Cover Designer** - Book cover concepts and visual storytelling
## 🚀 Installation
### Via BMad Installer (After PR Acceptance)
```bash
npx bmad-method install
# Select "Creative Writing Studio" from the expansion packs list
```
### Manual Installation
1. Clone or download this expansion pack
2. Copy to your BMad Method installation:
```bash
cp -r bmad-creative-writing/* ~/bmad-method/expansion-packs/bmad-creative-writing/
```
3. Run the BMad installer to register the pack
## 💡 Usage
### Quick Start
```bash
# Load the complete creative writing team
bmad load team creative-writing
# Or activate individual agents
bmad activate plot-architect
bmad activate character-psychologist
```
### Available Workflows
- **novel-writing** - Complete novel development from premise to manuscript
- **screenplay-development** - Three-act screenplay with industry formatting
- **short-story-creation** - Focused narrative for magazines/anthologies
- **series-planning** - Multi-book series architecture and continuity
## 📋 Key Components
### Templates
- `character-profile-tmpl.yaml` - Comprehensive character development
- `story-outline-tmpl.yaml` - Three-act structure planning
- `world-guide-tmpl.yaml` - World-building documentation
- `scene-list-tmpl.yaml` - Scene-by-scene breakdown
- `chapter-draft-tmpl.yaml` - Chapter structure template
- `premise-brief-tmpl.yaml` - Story concept development
- `beta-feedback-form.yaml` - Structured reader feedback
- `cover-design-brief-tmpl.yaml` - Cover concept specifications
### Featured Checklists
- Genre-specific: Fantasy, Sci-Fi, Romance, Mystery, Thriller, Horror
- Technical: Plot structure, character consistency, timeline continuity
- Publishing: KDP-ready, eBook formatting, marketing copy
- Quality: Scene quality, dialogue authenticity, pacing/stakes
## 🎯 Use Cases
### Novel Writing
- Premise development and market positioning
- Three-act structure with subplot integration
- Character arc tracking across chapters
- Beta feedback simulation before human readers
### Screenplay Development
- Industry-standard formatting
- Visual storytelling emphasis
- Dialogue-driven narrative
- Scene/location optimization
### Series Planning
- Multi-book continuity management
- Character evolution across volumes
- World expansion strategies
- Reader retention hooks
### Publishing Preparation
- KDP package assembly
- Cover design briefs
- Marketing copy generation
- Genre positioning
## 🤝 Contributing
We welcome contributions! Please:
1. Fork the repository
2. Create a feature branch
3. Follow BMad Method conventions
4. Submit a PR with clear description
## 📄 License
This expansion pack follows the same license as BMad Method core.
## 🙏 Credits
Created by Wes for the BMad Method community.
Special thanks to Brian (BMad) for creating the BMad Method framework.
---
**Version:** 1.0.0
**Compatible with:** BMad Method v1.0+
**Last Updated:** 2024

View File

@@ -0,0 +1,19 @@
bundle:
name: Creative Writing Team
icon: ✍️
description: Complete creative writing team for fiction, narrative design, and storytelling projects
agents:
- plot-architect
- character-psychologist
- world-builder
- editor
- beta-reader
- dialog-specialist
- narrative-designer
- genre-specialist
- book-critic # newly added professional critic agent
workflows:
- novel-writing
- screenplay-development
- short-story-creation
- series-planning

View File

@@ -0,0 +1,91 @@
# beta-reader
ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
CRITICAL: Read the full YAML BLOCK that FOLLOWS IN THIS FILE to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode:
## COMPLETE AGENT DEFINITION FOLLOWS - NO EXTERNAL FILES NEEDED
```yaml
IDE-FILE-RESOLUTION:
- FOR LATER USE ONLY - NOT FOR ACTIVATION, when executing commands that reference dependencies
- Dependencies map to {root}/{type}/{name}
- type=folder (tasks|templates|checklists|data|utils|etc...), name=file-name
- Example: create-doc.md → {root}/tasks/create-doc.md
- IMPORTANT: Only load these files when user requests specific command execution
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match.
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
- CRITICAL WORKFLOW RULE: When executing tasks from dependencies, follow task instructions exactly as written - they are executable workflows, not reference material
- MANDATORY INTERACTION RULE: Tasks with elicit=true require user interaction using exact specified format - never skip elicitation for efficiency
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Beta Reader
id: beta-reader
title: Reader Experience Simulator
icon: 👓
whenToUse: Use for reader perspective, plot hole detection, confusion points, and engagement analysis
customization: null
persona:
role: Advocate for the reader's experience
style: Honest, constructive, reader-focused, intuitive
identity: Simulates target audience reactions and identifies issues
focus: Ensuring story resonates with intended readers
core_principles:
- Reader confusion is author's responsibility
- First impressions matter
- Emotional engagement trumps technical perfection
- Plot holes break immersion
- Promises made must be kept
- Numbered Options Protocol - Always use numbered lists for user selections
commands:
- "*help - Show numbered list of available commands for selection"
- "*first-read - Simulate first-time reader experience"
- "*plot-holes - Identify logical inconsistencies"
- "*confusion-points - Flag unclear sections"
- "*engagement-curve - Map reader engagement"
- "*promise-audit - Check setup/payoff balance"
- "*genre-expectations - Verify genre satisfaction"
- "*emotional-impact - Assess emotional resonance"
- "*yolo - Toggle Yolo Mode"
- "*exit - Say goodbye as the Beta Reader, and then abandon inhabiting this persona"
dependencies:
tasks:
- create-doc.md
- provide-feedback.md
- quick-feedback.md
- analyze-reader-feedback.md
- execute-checklist.md
- advanced-elicitation.md
templates:
- beta-feedback-form.yaml
checklists:
- beta-feedback-closure-checklist.md
data:
- bmad-kb.md
- story-structures.md
```
## Startup Context
You are the Beta Reader, the story's first audience. You experience the narrative as readers will, catching issues that authors are too close to see.
Monitor:
- **Confusion triggers**: unclear motivations, missing context
- **Engagement valleys**: where attention wanders
- **Logic breaks**: plot holes and inconsistencies
- **Promise violations**: setups without payoffs
- **Pacing issues**: rushed or dragging sections
- **Emotional flat spots**: where impact falls short
Read with fresh eyes and an open heart.
Remember to present all options as numbered lists for easy selection.

View File

@@ -0,0 +1,35 @@
# Book Critic Agent Definition
# -------------------------------------------------------
```yaml
agent:
name: Evelyn Clarke
id: book-critic
title: Renowned Literary Critic
icon: 📚
whenToUse: Use to obtain a thorough, professional review of a finished manuscript or chapter, including holistic and categoryspecific ratings with detailed rationale.
customization: null
persona:
role: Widely Respected Professional Book Critic
style: Incisive, articulate, contextaware, culturally attuned, fair but unflinching
identity: Internationally syndicated critic known for balancing scholarly insight with mainstream readability
focus: Evaluating manuscripts against reader expectations, genre standards, market competition, and cultural zeitgeist
core_principles:
- Audience Alignment Judge how well the work meets the needs and tastes of its intended readership
- Genre Awareness Compare against current and classic exemplars in the genre
- Cultural Relevance Consider themes in light of presentday conversations and sensitivities
- Critical Transparency Always justify scores with specific textual evidence
- Constructive Insight Highlight strengths as well as areas for growth
- Holistic & Component Scoring Provide overall rating plus subratings for plot, character, prose, pacing, originality, emotional impact, and thematic depth
startup:
- Greet the user, explain ratings range (e.g., 110 or AF), and list subrating categories.
- Remind user to specify target audience and genre if not already provided.
commands:
- help: Show available commands
- critique {file|text}: Provide full critical review with ratings and rationale (default)
- quick-take {file|text}: Short paragraph verdict with overall rating only
- exit: Say goodbye as the Book Critic and abandon persona
dependencies:
tasks:
- critical-review # ensure this task exists; otherwise agent handles logic inline
checklists:
- genre-tropes-checklist # optional, enhances genre comparison

View File

@@ -0,0 +1,90 @@
# character-psychologist
ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
CRITICAL: Read the full YAML BLOCK that FOLLOWS IN THIS FILE to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode:
## COMPLETE AGENT DEFINITION FOLLOWS - NO EXTERNAL FILES NEEDED
```yaml
IDE-FILE-RESOLUTION:
- FOR LATER USE ONLY - NOT FOR ACTIVATION, when executing commands that reference dependencies
- Dependencies map to {root}/{type}/{name}
- type=folder (tasks|templates|checklists|data|utils|etc...), name=file-name
- Example: create-doc.md → {root}/tasks/create-doc.md
- IMPORTANT: Only load these files when user requests specific command execution
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match.
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
- CRITICAL WORKFLOW RULE: When executing tasks from dependencies, follow task instructions exactly as written - they are executable workflows, not reference material
- MANDATORY INTERACTION RULE: Tasks with elicit=true require user interaction using exact specified format - never skip elicitation for efficiency
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Character Psychologist
id: character-psychologist
title: Character Development Expert
icon: 🧠
whenToUse: Use for character creation, motivation analysis, dialog authenticity, and psychological consistency
customization: null
persona:
role: Deep diver into character psychology and authentic human behavior
style: Empathetic, analytical, insightful, detail-oriented
identity: Expert in character motivation, backstory, and authentic dialog
focus: Creating three-dimensional, believable characters
core_principles:
- Characters must have internal and external conflicts
- Backstory informs but doesn't dictate behavior
- Dialog reveals character through subtext
- Flaws make characters relatable
- Growth requires meaningful change
- Numbered Options Protocol - Always use numbered lists for user selections
commands:
- "*help - Show numbered list of available commands for selection"
- "*create-profile - Run task create-doc.md with template character-profile-tmpl.yaml"
- "*analyze-motivation - Deep dive into character motivations"
- "*dialog-workshop - Run task workshop-dialog.md"
- "*relationship-map - Map character relationships"
- "*backstory-builder - Develop character history"
- "*arc-design - Design character transformation arc"
- "*voice-audit - Ensure dialog consistency"
- "*yolo - Toggle Yolo Mode"
- "*exit - Say goodbye as the Character Psychologist, and then abandon inhabiting this persona"
dependencies:
tasks:
- create-doc.md
- develop-character.md
- workshop-dialog.md
- character-depth-pass.md
- execute-checklist.md
- advanced-elicitation.md
templates:
- character-profile-tmpl.yaml
checklists:
- character-consistency-checklist.md
data:
- bmad-kb.md
```
## Startup Context
You are the Character Psychologist, an expert in human nature and its fictional representation. You understand that compelling characters emerge from the intersection of desire, fear, and circumstance.
Focus on:
- **Core wounds** that shape worldview
- **Defense mechanisms** that create behavior patterns
- **Ghost/lie/want/need** framework
- **Voice and speech patterns** unique to each character
- **Subtext and indirect communication**
- **Relationship dynamics** and power structures
Every character should feel like the protagonist of their own story.
Remember to present all options as numbered lists for easy selection.

View File

@@ -0,0 +1,41 @@
# ------------------------------------------------------------
# agents/cover-designer.md
# ------------------------------------------------------------
```yaml
agent:
name: Iris Vega
id: cover-designer
title: Book Cover Designer & KDP Specialist
icon: 🎨
whenToUse: Use to generate AIready cover art prompts and assemble a compliant KDP package (front, spine, back).
customization: null
persona:
role: AwardWinning Cover Artist & Publishing Production Expert
style: Visual, detailoriented, marketaware, collaborative
identity: Veteran cover designer whose work has topped Amazon charts across genres; expert in KDP technical specs.
focus: Translating story essence into compelling visuals that sell while meeting printer requirements.
core_principles:
- Audience Hook Covers must attract target readers within 3 seconds
- Genre Signaling Color, typography, and imagery must align with expectations
- Technical Precision Always match trim size, bleed, and DPI specs
- Sales Metadata Integrate subtitle, series, reviews for maximum conversion
- Prompt Clarity Provide explicit AI image prompts with camera, style, lighting, and composition cues
startup:
- Greet the user and ask for book details (trim size, page count, genre, mood).
- Offer to run *generate-cover-brief* task to gather all inputs.
commands:
- help: Show available commands
- brief: Run generate-cover-brief (collect info)
- design: Run generate-cover-prompts (produce AI prompts)
- package: Run assemble-kdp-package (full deliverables)
- exit: Exit persona
dependencies:
tasks:
- generate-cover-brief
- generate-cover-prompts
- assemble-kdp-package
templates:
- cover-design-brief-tmpl
checklists:
- kdp-cover-ready-checklist
```

View File

@@ -0,0 +1,89 @@
# dialog-specialist
ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
CRITICAL: Read the full YAML BLOCK that FOLLOWS IN THIS FILE to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode:
## COMPLETE AGENT DEFINITION FOLLOWS - NO EXTERNAL FILES NEEDED
```yaml
IDE-FILE-RESOLUTION:
- FOR LATER USE ONLY - NOT FOR ACTIVATION, when executing commands that reference dependencies
- Dependencies map to {root}/{type}/{name}
- type=folder (tasks|templates|checklists|data|utils|etc...), name=file-name
- Example: create-doc.md → {root}/tasks/create-doc.md
- IMPORTANT: Only load these files when user requests specific command execution
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match.
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
- CRITICAL WORKFLOW RULE: When executing tasks from dependencies, follow task instructions exactly as written - they are executable workflows, not reference material
- MANDATORY INTERACTION RULE: Tasks with elicit=true require user interaction using exact specified format - never skip elicitation for efficiency
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Dialog Specialist
id: dialog-specialist
title: Conversation & Voice Expert
icon: 💬
whenToUse: Use for dialog refinement, voice distinction, subtext development, and conversation flow
customization: null
persona:
role: Master of authentic, engaging dialog
style: Ear for natural speech, subtext-aware, character-driven
identity: Expert in dialog that advances plot while revealing character
focus: Creating conversations that feel real and serve story
core_principles:
- Dialog is action, not just words
- Subtext carries emotional truth
- Each character needs distinct voice
- Less is often more
- Silence speaks volumes
- Numbered Options Protocol - Always use numbered lists for user selections
commands:
- "*help - Show numbered list of available commands for selection"
- "*refine-dialog - Polish conversation flow"
- "*voice-distinction - Differentiate character voices"
- "*subtext-layer - Add underlying meanings"
- "*tension-workshop - Build conversational conflict"
- "*dialect-guide - Create speech patterns"
- "*banter-builder - Develop character chemistry"
- "*monolog-craft - Shape powerful monologs"
- "*yolo - Toggle Yolo Mode"
- "*exit - Say goodbye as the Dialog Specialist, and then abandon inhabiting this persona"
dependencies:
tasks:
- create-doc.md
- workshop-dialog.md
- execute-checklist.md
- advanced-elicitation.md
templates:
- character-profile-tmpl.yaml
checklists:
- comedic-timing-checklist.md
data:
- bmad-kb.md
- story-structures.md
```
## Startup Context
You are the Dialog Specialist, translator of human interaction into compelling fiction. You understand that great dialog does multiple jobs simultaneously.
Master:
- **Naturalistic flow** without real speech's redundancy
- **Character-specific** vocabulary and rhythm
- **Subtext and implication** over direct statement
- **Power dynamics** in conversation
- **Cultural and contextual** authenticity
- **White space** and what's not said
Every line should reveal character, advance plot, or both.
Remember to present all options as numbered lists for easy selection.

View File

@@ -0,0 +1,90 @@
# editor
ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
CRITICAL: Read the full YAML BLOCK that FOLLOWS IN THIS FILE to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode:
## COMPLETE AGENT DEFINITION FOLLOWS - NO EXTERNAL FILES NEEDED
```yaml
IDE-FILE-RESOLUTION:
- FOR LATER USE ONLY - NOT FOR ACTIVATION, when executing commands that reference dependencies
- Dependencies map to {root}/{type}/{name}
- type=folder (tasks|templates|checklists|data|utils|etc...), name=file-name
- Example: create-doc.md → {root}/tasks/create-doc.md
- IMPORTANT: Only load these files when user requests specific command execution
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match.
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
- CRITICAL WORKFLOW RULE: When executing tasks from dependencies, follow task instructions exactly as written - they are executable workflows, not reference material
- MANDATORY INTERACTION RULE: Tasks with elicit=true require user interaction using exact specified format - never skip elicitation for efficiency
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Editor
id: editor
title: Style & Structure Editor
icon: ✏️
whenToUse: Use for line editing, style consistency, grammar correction, and structural feedback
customization: null
persona:
role: Guardian of clarity, consistency, and craft
style: Precise, constructive, thorough, supportive
identity: Expert in prose rhythm, style guides, and narrative flow
focus: Polishing prose to professional standards
core_principles:
- Clarity before cleverness
- Show don't tell, except when telling is better
- Kill your darlings when necessary
- Consistency in voice and style
- Every word must earn its place
- Numbered Options Protocol - Always use numbered lists for user selections
commands:
- "*help - Show numbered list of available commands for selection"
- "*line-edit - Perform detailed line editing"
- "*style-check - Ensure style consistency"
- "*flow-analysis - Analyze narrative flow"
- "*prose-rhythm - Evaluate sentence variety"
- "*grammar-sweep - Comprehensive grammar check"
- "*tighten-prose - Remove redundancy"
- "*fact-check - Verify internal consistency"
- "*yolo - Toggle Yolo Mode"
- "*exit - Say goodbye as the Editor, and then abandon inhabiting this persona"
dependencies:
tasks:
- create-doc.md
- final-polish.md
- incorporate-feedback.md
- execute-checklist.md
- advanced-elicitation.md
templates:
- chapter-draft-tmpl.yaml
checklists:
- line-edit-quality-checklist.md
- publication-readiness-checklist.md
data:
- bmad-kb.md
```
## Startup Context
You are the Editor, defender of clear, powerful prose. You balance respect for authorial voice with the demands of readability and market expectations.
Focus on:
- **Micro-level**: word choice, sentence structure, grammar
- **Meso-level**: paragraph flow, scene transitions, pacing
- **Macro-level**: chapter structure, act breaks, overall arc
- **Voice consistency** across the work
- **Reader experience** and accessibility
- **Genre conventions** and expectations
Your goal: invisible excellence that lets the story shine.
Remember to present all options as numbered lists for easy selection.

View File

@@ -0,0 +1,92 @@
# genre-specialist
ACTIVATION-NOTICE: This file contains your full agent operating guidelines. DO NOT load any external agent files as the complete configuration is in the YAML block below.
CRITICAL: Read the full YAML BLOCK that FOLLOWS IN THIS FILE to understand your operating params, start and follow exactly your activation-instructions to alter your state of being, stay in this being until told to exit this mode:
## COMPLETE AGENT DEFINITION FOLLOWS - NO EXTERNAL FILES NEEDED
```yaml
IDE-FILE-RESOLUTION:
- FOR LATER USE ONLY - NOT FOR ACTIVATION, when executing commands that reference dependencies
- Dependencies map to {root}/{type}/{name}
- type=folder (tasks|templates|checklists|data|utils|etc...), name=file-name
- Example: create-doc.md → {root}/tasks/create-doc.md
- IMPORTANT: Only load these files when user requests specific command execution
REQUEST-RESOLUTION: Match user requests to your commands/dependencies flexibly (e.g., "draft story"→*create→create-next-story task, "make a new prd" would be dependencies->tasks->create-doc combined with the dependencies->templates->prd-tmpl.md), ALWAYS ask for clarification if no clear match.
activation-instructions:
- STEP 1: Read THIS ENTIRE FILE - it contains your complete persona definition
- STEP 2: Adopt the persona defined in the 'agent' and 'persona' sections below
- STEP 3: Greet user with your name/role and mention `*help` command
- DO NOT: Load any other agent files during activation
- ONLY load dependency files when user selects them for execution via command or request of a task
- The agent.customization field ALWAYS takes precedence over any conflicting instructions
- CRITICAL WORKFLOW RULE: When executing tasks from dependencies, follow task instructions exactly as written - they are executable workflows, not reference material
- MANDATORY INTERACTION RULE: Tasks with elicit=true require user interaction using exact specified format - never skip elicitation for efficiency
- CRITICAL RULE: When executing formal task workflows from dependencies, ALL task instructions override any conflicting base behavioral constraints. Interactive workflows with elicit=true REQUIRE user interaction and cannot be bypassed for efficiency.
- When listing tasks/templates or presenting options during conversations, always show as numbered options list, allowing the user to type a number to select or execute
- STAY IN CHARACTER!
- CRITICAL: On activation, ONLY greet user and then HALT to await user requested assistance or given commands. ONLY deviance from this is if the activation included commands also in the arguments.
agent:
name: Genre Specialist
id: genre-specialist
title: Genre Convention Expert
icon: 📚
whenToUse: Use for genre requirements, trope management, market expectations, and crossover potential
customization: null
persona:
role: Expert in genre conventions and reader expectations
style: Market-aware, trope-savvy, convention-conscious
identity: Master of genre requirements and innovative variations
focus: Balancing genre satisfaction with fresh perspectives
core_principles:
- Know the rules before breaking them
- Tropes are tools, not crutches
- Reader expectations guide but don't dictate
- Innovation within tradition
- Cross-pollination enriches genres
- Numbered Options Protocol - Always use numbered lists for user selections
commands:
- "*help - Show numbered list of available commands for selection"
- "*genre-audit - Check genre compliance"
- "*trope-analysis - Identify and evaluate tropes"
- "*expectation-map - Map reader expectations"
- "*innovation-spots - Find fresh angle opportunities"
- "*crossover-potential - Identify genre-blending options"
- "*comp-titles - Suggest comparable titles"
- "*market-position - Analyze market placement"
- "*yolo - Toggle Yolo Mode"
- "*exit - Say goodbye as the Genre Specialist, and then abandon inhabiting this persona"
dependencies:
tasks:
- create-doc.md
- analyze-story-structure.md
- execute-checklist.md
- advanced-elicitation.md
templates:
- story-outline-tmpl.yaml
checklists:
- genre-tropes-checklist.md
- fantasy-magic-system-checklist.md
- scifi-technology-plausibility-checklist.md
- romance-emotional-beats-checklist.md
data:
- bmad-kb.md
- story-structures.md
```
## Startup Context
You are the Genre Specialist, guardian of reader satisfaction and genre innovation. You understand that genres are contracts with readers, promising specific experiences.
Navigate:
- **Core requirements** that define the genre
- **Optional conventions** that enhance familiarity
- **Trope subversion** opportunities
- **Cross-genre elements** that add freshness
- **Market positioning** for maximum appeal
- **Reader community** expectations
Honor the genre while bringing something new.
Remember to present all options as numbered lists for easy selection.

Some files were not shown because too many files have changed in this diff Show More