npm package: @haribabu.npm/bmad-testing-agents
Description: GitHub Copilot agents for C++ gtest generation (TestForge) and Squish test refactoring (Nova) - powered by BMAD
Author: Haribabu
Latest version: 1.0.5

# @haribabu.npm/bmad-testing-agents

GitHub Copilot agents for C++ test generation and Squish test refactoring -- powered by BMAD.

---

## Agents Included

| Agent         | Trigger     | What it does                                                  |
|---------------|-------------|---------------------------------------------------------------|
| **TestForge** | `@gtestgen` | Generates complete Google Test (gtest/gmock) suites for C++   |
| **Nova**      | `@refactor` | Refactors Squish GUI test scripts into YAML-driven Python     |

---

## Installation

> **Windows / PowerShell users:** Always wrap the package name in double quotes.
> The `@` symbol is a PowerShell operator and will cause a parser error without quotes.

### One-time install (recommended -- no package.json needed)

**PowerShell / Windows:**
```powershell
npx "@haribabu.npm/bmad-testing-agents"
```

**bash / macOS / Linux:**
```bash
npx @haribabu.npm/bmad-testing-agents
```

### Add to your project permanently

**PowerShell / Windows:**
```powershell
npm install "@haribabu.npm/bmad-testing-agents"
```

**bash / macOS / Linux:**
```bash
npm install @haribabu.npm/bmad-testing-agents
```

> **Note:** The npm package page displays `npm i @haribabu.npm/bmad-testing-agents` (without quotes).
> That command works in bash but **fails in PowerShell**. Always use quotes on Windows.

Both methods copy the agents into `.github/agents/` inside your current project folder.

---

## What Gets Installed

```
.github/
  agents/
    gtestgen.agent.md        <- TestForge: C++ gtest agent
    refactor.agent.md        <- Nova: Squish refactoring agent
    scripts/
      validate-aaa-pattern.py
      validate-test-naming.py
      validate-includes.py
      validate-deliverable-checklist.py
      count-test-metrics.py
      run-tests-gtest.sh
      validate-yaml-structure.py
      scan-hardcoded-snooze.py
      scan-ui-calls-in-yaml.py
      validate-ascii-compliance.py
      validate-param-references.py
      count-refactoring-metrics.py
      run-tests-refactor.sh
```

---

## Usage

1. Run the install command from your project root
2. Reload Copilot Chat: `Ctrl+Shift+P` -> "Copilot: Reload"
3. Open GitHub Copilot Chat and type:

```
@gtestgen hi
@refactor hi
```

4. Paste your C++ code or test.py -- the agent starts immediately.

---

## TestForge (@gtestgen) -- C++ Google Test Generator

**Capabilities:**
- Unit tests using AAA pattern (Arrange / Act / Assert)
- Test fixtures (TEST_F), parameterized tests (TEST_P), mock objects (GMock)
- Death tests (EXPECT_DEATH), typed/type-parameterized tests
- 6-dimension coverage: happy path, boundaries, error handling, state transitions, integration, perf hints
- CMakeLists.txt generation + include path resolution
- Auto-validation: naming check, AAA audit, metrics, 13-point checklist

**Commands:**
- `[GT]` -- Full guided generation flow
- `[QG]` -- Quick generate (paste code -> instant tests)
- `[SM]` -- Save project conventions to memory

---

## Nova (@refactor) -- Squish Test Refactoring Agent

**Capabilities:**
- Parameterization: hard-coded values -> YAML data tables
- Dual-file output: test.py + test_data.yaml
- Dead code removal, loop consolidation, domain management, module creation
- XRAY/Jira traceability: 4-tier fallback, auto TC ID detection, evidence table
- Snooze optimization: audit, removal, named constants
- Auto-validation: YAML structure, snooze scanner, ASCII check, param reference check

**Commands:**
- `[RF]` -- Full guided 12-step refactoring flow
- `[QR]` -- Quick refactor (paste test.py -> instant output)
- `[SM]` -- Save project conventions to memory
- `[EV]` -- View XRAY evidence table from last session

---

## Requirements

- VS Code with GitHub Copilot extension
- Node.js >= 16.0.0
- Copilot agent mode enabled (VS Code 1.99+)

---

## License

MIT (c) Haribabu