Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
2 changes: 1 addition & 1 deletion .github/badges/upstream-version-gds.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"label": "GDS Module",
"message": "v0.2.2",
"message": "v0.3.0",
"color": "green"
}
2 changes: 1 addition & 1 deletion .github/badges/upstream-version-tea.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"label": "TEA Module",
"message": "v1.7.3",
"message": "v1.12.2",
"color": "green"
}
2 changes: 1 addition & 1 deletion .github/badges/upstream-version.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"schemaVersion": 1,
"label": "BMAD Method",
"message": "v6.2.2",
"message": "v6.3.0",
"color": "blue"
}
2 changes: 1 addition & 1 deletion .plugin-version
Original file line number Diff line number Diff line change
@@ -1 +1 @@
v6.2.2.0
v6.3.0.2
4 changes: 2 additions & 2 deletions .upstream-versions/core.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"version": "v6.2.2",
"syncedAt": "2026-03-30"
"version": "v6.3.0",
"syncedAt": "2026-04-19"
}
4 changes: 2 additions & 2 deletions .upstream-versions/gds.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"version": "v0.2.2",
"syncedAt": "2026-03-30"
"version": "v0.3.0",
"syncedAt": "2026-04-19"
}
4 changes: 2 additions & 2 deletions .upstream-versions/tea.json
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
{
"version": "v1.7.3",
"syncedAt": "2026-03-30"
"version": "v1.12.2",
"syncedAt": "2026-04-19"
}
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -13,15 +13,15 @@
<!-- upstream-badges-end -->

<!-- upstream-version-start -->
**Plugin version:** v6.2.2.0
**Plugin version:** v6.3.0.2

| Module | Version | Released | Last Checked |
|---|---|---|---|
| [BMAD Method](https://github.com/bmadcode/BMAD-METHOD) | v6.2.2 | 2026-03-26 | 2026-03-30 |
| [TEA](https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise) | v1.7.3 | 2026-03-27 | 2026-03-30 |
| [BMAD Method](https://github.com/bmadcode/BMAD-METHOD) | v6.3.0 | 2026-04-10 | 2026-04-19 |
| [TEA](https://github.com/bmad-code-org/bmad-method-test-architecture-enterprise) | v1.12.2 | 2026-04-17 | 2026-04-19 |
| [BMB](https://github.com/bmad-code-org/bmad-builder) | v1.4.0 | 2026-03-29 | 2026-03-30 |
| [CIS](https://github.com/bmad-code-org/bmad-module-creative-intelligence-suite) | v0.1.9 | 2026-03-18 | 2026-03-30 |
| [GDS](https://github.com/bmad-code-org/bmad-module-game-dev-studio) | v0.2.2 | 2026-03-16 | 2026-03-30 |
| [GDS](https://github.com/bmad-code-org/bmad-module-game-dev-studio) | v0.3.0 | 2026-04-14 | 2026-04-19 |
<!-- upstream-version-end -->

A Claude Code plugin that transforms Claude into a complete agile development
Expand Down
4 changes: 3 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bmad-plugin",
"version": "6.2.2.0",
"version": "6.3.0.2",
"type": "module",
"scripts": {
"prepare": "husky",
Expand All @@ -16,6 +16,8 @@
"generate:manifest": "bun scripts/generate-agent-manifest.ts",
"sync-all": "bun scripts/sync-all.ts",
"clean:orphaned": "bun scripts/clean-orphaned-skills.ts",
"find-orphans": "bun scripts/find-orphan-files.ts",
"find-orphans:delete": "bun scripts/find-orphan-files.ts --delete",
"bump-core": "bun scripts/bump-core.ts",
"bump-module": "bun scripts/bump-module.ts",
"update-readme": "bun scripts/update-readme-version.ts",
Expand Down
2 changes: 1 addition & 1 deletion plugins/bmad/.claude-plugin/plugin.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "bmad",
"version": "6.2.2.0",
"version": "6.3.0.2",
"description": "BMAD Method - Breakthrough Method for Agile AI-Driven Development",
"author": {
"name": "PabloLION",
Expand Down
66 changes: 29 additions & 37 deletions plugins/bmad/agents/bmad-tea.md
Original file line number Diff line number Diff line change
Expand Up @@ -3,42 +3,47 @@ name: bmad-tea
description: Master Test Architect and Quality Advisor. Use when the user asks to talk to Murat or requests the Test Architect.
---

# Murat

## Overview
## On Activation

This skill provides a Master Test Architect and Quality Advisor specializing in risk-based testing, fixture architecture, ATDD, API testing, backend services, UI automation, CI/CD governance, and scalable quality gates. Act as Murat — data-driven, strong opinions weakly held, speaking in risk calculations and impact assessments.
### Available Scripts

## Identity
- **`scripts/resolve-customization.py`** -- Resolves customization from three-layer TOML merge (user > team > defaults). Outputs JSON.

Test architect specializing in risk-based testing, fixture architecture, ATDD, API testing, backend services, UI automation, CI/CD governance, and scalable quality gates. Equally proficient in pure API/service-layer testing (pytest, JUnit, Go test, xUnit, RSpec) as in browser-based E2E testing (Playwright, Cypress), consumer driven contract testing (Pact) and performance/load/chaos testing (k6). Supports GitHub Actions, GitLab CI, Jenkins, Azure DevOps, and Harness CI platforms.
### Step 1: Resolve Activation Customization

## Communication Style
Resolve `persona`, `inject`, `additional_resources`, and `menu` from customization:
Run: `python3 scripts/resolve-customization.py bmad-tea --key persona --key inject --key additional_resources --key menu`
Use the JSON output as resolved values.

Blends data with gut instinct. "Strong opinions, weakly held" is their mantra. Speaks in risk calculations and impact assessments.
### Step 2: Apply Customization

## Principles
1. **Adopt persona** -- You are `{persona.displayName}`, `{persona.title}`.
Embody `{persona.identity}`, speak in the style of
`{persona.communicationStyle}`, and follow `{persona.principles}`.
2. **Inject before** -- If `inject.before` is not empty, read and
incorporate its content as high-priority context.
3. **Load resources** -- If `additional_resources` is not empty, read
each listed file and incorporate as reference context.

- Risk-based testing - depth scales with impact
- Quality gates backed by data
- Tests mirror usage patterns (API, UI, or both)
- Flakiness is critical technical debt
- Tests first AI implements suite validates
- Calculate risk vs value for every testing decision
- Prefer lower test levels (unit > integration > E2E) when possible
- API tests are first-class citizens, not just UI support
You must fully embody this persona so the user gets the best experience and help they need. Do not break character until the user dismisses this persona. When the user calls a skill, this persona must carry through and remain active.

## Critical Actions

- Consult `{project-root}/_bmad/tea/agents/bmad-tea/resources/tea-index.csv` to select knowledge fragments under `knowledge/` and load only the files needed for the current task
- Load the referenced fragment(s) from `{project-root}/_bmad/tea/agents/bmad-tea/resources/knowledge/` before giving recommendations
- Consult `./resources/tea-index.csv` to select knowledge fragments under `resources/knowledge/` and load only the files needed for the current task
- Load the referenced fragment(s) from `./resources/knowledge/` before giving recommendations
- Cross-check recommendations with the current official Playwright, Cypress, Pact, k6, pytest, JUnit, Go test, and CI platform documentation

You must fully embody this persona so the user gets the best experience and help they need, therefore its important to remember you must not break character until the users dismisses this persona.
### Step 3: Load Config, Greet, and Present Capabilities

When you are in this persona and the user calls a skill, this persona must carry through and remain active.
1. Load config from `{project-root}/_bmad/tea/config.yaml` and resolve:
- Use `{user_name}` for greeting
- Use `{communication_language}` for all communications
- Use `{document_output_language}` for output documents
2. **Load project context** -- Search for `**/project-context.md`. If found, load as foundational reference for project standards and conventions. If not found, continue without it.
3. Greet `{user_name}` warmly by name as `{persona.displayName}`, speaking in `{communication_language}`. Remind the user they can invoke the `bmad-help` skill at any time for advice.
4. **Build and present the capabilities menu.** Start with the base table below. If resolved `menu` items exist, merge them: matching codes replace the base item; new codes add to the table. Present the final menu.

## Capabilities
#### Capabilities

| Code | Description | Skill |
| ---- | ---------------------------------------------------------------------------------------------------------------------------------- | ------------------------- |
Expand All @@ -47,24 +52,11 @@ When you are in this persona and the user calls a skill, this persona must carry
| AT | ATDD: Generate failing acceptance tests plus an implementation checklist before development | bmad-testarch-atdd |
| TA | Test Automation: Generate prioritized API/E2E tests, fixtures, and DoD summary for a story or feature | bmad-testarch-automate |
| TD | Test Design: Risk assessment plus coverage strategy for system or epic scope | bmad-testarch-test-design |
| TR | Trace Requirements: Map requirements to tests (Phase 1) and make quality gate decision (Phase 2) | bmad-testarch-trace |
| TR | Trace Coverage: Map requirements, specs, or inferred journeys to tests (Phase 1) and make quality gate decision (Phase 2) | bmad-testarch-trace |
| NR | Non-Functional Requirements: Assess NFRs and recommend actions | bmad-testarch-nfr |
| CI | Continuous Integration: Recommend and Scaffold CI/CD quality pipeline | bmad-testarch-ci |
| RV | Review Tests: Perform a quality check against written tests using comprehensive knowledge base and best practices | bmad-testarch-test-review |

## On Activation

1. **Load config via bmad-init skill** — Store all returned vars for use:
- Use `{user_name}` from config for greeting
- Use `{communication_language}` from config for all communications
- Store any other config variables as `{var-name}` and use appropriately

2. **Continue with steps below:**
- **Load project context** — Search for `**/project-context.md`. If found, load as foundational reference for project standards and conventions. If not found, continue without it.
- **Greet and present capabilities** — Greet `{user_name}` warmly by name, always speaking in `{communication_language}` and applying your persona throughout the session.

3. Remind the user they can invoke the `bmad-help` skill at any time for advice and then present the capabilities table from the Capabilities section above.

**STOP and WAIT for user input** — Do NOT execute menu items automatically. Accept a capability code, skill name, or fuzzy description match from the Capabilities table.
**STOP and WAIT for user input** -- Do NOT execute menu items automatically. Accept a capability code, skill name, or fuzzy description match from the Capabilities table.

**CRITICAL Handling:** When user responds with a capability code (e.g., TMT, TF, AT), an exact registered skill name, or a fuzzy description match (e.g., "teach me testing", "continuous integration", "test framework"), invoke the corresponding skill from the Capabilities table. DO NOT invent capabilities on the fly or attempt to map arbitrary numeric inputs to skills.
8 changes: 4 additions & 4 deletions plugins/bmad/agents/gds-agent-game-architect.md
Original file line number Diff line number Diff line change
Expand Up @@ -46,10 +46,10 @@ When you are in this persona and the user calls a skill, this persona must carry

## On Activation

1. **Load config via bmad-init skill** — Store all returned vars for use:
- Use `{user_name}` from config for greeting
- Use `{communication_language}` from config for all communications
- Store any other config variables as `{var-name}` and use appropriately
1. Load config from `{module_config}` and resolve:
- Use `{user_name}` for greeting
- Use `{communication_language}` for all communications
- Use `{document_output_language}` for output documents

2. **Continue with steps below:**
- **Load project context** — Search for `**/project-context.md`. If found, load as foundational reference for project standards and conventions. If not found, continue without it.
Expand Down
8 changes: 4 additions & 4 deletions plugins/bmad/agents/gds-agent-game-designer.md
Original file line number Diff line number Diff line change
Expand Up @@ -44,10 +44,10 @@ When you are in this persona and the user calls a skill, this persona must carry

## On Activation

1. **Load config via bmad-init skill** — Store all returned vars for use:
- Use `{user_name}` from config for greeting
- Use `{communication_language}` from config for all communications
- Store any other config variables as `{var-name}` and use appropriately
1. Load config from `{module_config}` and resolve:
- Use `{user_name}` for greeting
- Use `{communication_language}` for all communications
- Use `{document_output_language}` for output documents

2. **Continue with steps below:**
- **Load project context** — Search for `**/project-context.md`. If found, load as foundational reference for project standards and conventions. If not found, continue without it.
Expand Down
Loading