diff --git a/PLAYWRIGHT-UTILS-INTEGRATION-PLAN.md b/PLAYWRIGHT-UTILS-INTEGRATION-PLAN.md deleted file mode 100644 index 4a55d898..00000000 --- a/PLAYWRIGHT-UTILS-INTEGRATION-PLAN.md +++ /dev/null @@ -1,771 +0,0 @@ -# Playwright Utils Integration - Implementation Plan - -**Status:** ✅ APPROVED - READY TO IMPLEMENT -**Version:** 5.0 FINAL (Aligned) -**Last Review:** 2025-01-20 - ---- - -## Quick Reference - -**Files:** 20 total (2 installer + 9 knowledge + 6 workflows + 3 docs) -**Timeline:** 25-32 hours over 3 weeks -**Validation:** `npm run validate:schemas && npm run test:schemas` - ---- - -## Overview - -Add `@seontechnologies/playwright-utils` integration to TEA with: - -- Installation prompt (mirrors tea_use_mcp_enhancements) -- 8 lean fragments (keep bundles light) -- 5 priority workflows + 1 light mention -- Minimal docs (small section in test-architecture.md) - -## Final Scope (Approved - Lean First Set) - -**11 Complete Fragments** (ALL utilities included): - -1. `overview.md` - Installation and design principles -2. `api-request.md` - HTTP client with schema validation -3. `network-recorder.md` - HAR record/playback -4. `auth-session.md` - Token persistence (very involved) -5. `intercept-network-call.md` - Network spy/stub -6. `recurse.md` - Polling patterns -7. `log.md` - Structured logging -8. `file-utils.md` - CSV/XLSX/PDF/ZIP -9. `burn-in.md` - Smart test selection (very important for CI) -10. `network-error-monitor.md` - HTTP error detection -11. `fixtures-composition.md` - mergeTests patterns - -**Naming convention:** No `-util` suffix (standardized) -**Total:** 32 fragments in tea-index.csv (21 + 11) - -**5 Priority Workflows** + 1 light mention: - -1. testarch/automate (CRITICAL) -2. testarch/framework -3. testarch/test-review -4. testarch/ci -5. testarch/atdd -6. testarch/test-design (light mention only) - -**Keep minimal:** trace, nfr-assess (no changes for now) - -**Key Principles:** - -- ✅ Mirror `config.tea_use_mcp_enhancements` pattern -- ✅ Preserve current behavior when flag is false -- ✅ NO package.json auto-detection -- ✅ Lean fragments (150-250 lines each) -- ✅ Minimal doc updates -- ✅ Keep bundles light - ---- - -## Phase 1: Installation Enhancement - -### 1.1 Add Installation Prompt - -**Files to modify:** - -1. `src/modules/bmm/_module-installer/install-config.yaml` - Add prompt (next to `tea_use_mcp_enhancements`) -2. `src/modules/bmm/_module-installer/installer.js` - Wire prompt to config write - -**Add prompt to install-config.yaml:** - -```yaml -# Add next to existing tea_use_mcp_enhancements prompt -prompts: - tea_use_mcp_enhancements: - # ... existing MCP prompt ... - - tea_use_playwright_utils: # New prompt - type: confirm - name: usePlaywrightUtils - message: 'Are you using @seontechnologies/playwright-utils in your project?' - default: false -``` - -### 1.2 Wire to Config Write - -**In `installer.js`**, ensure CLI writes `use_playwright_utils` into `bmad/bmm/config.yaml`. - -**Flag naming (matches tea_use_mcp_enhancements pattern):** - -- Prompt key: `usePlaywrightUtils` (camelCase) -- Stored key: `use_playwright_utils` (underscore) -- Workflow reference: `config.use_playwright_utils` (mirrors `config.tea_use_mcp_enhancements`) - -**Generated config structure in `bmad/bmm/config.yaml`:** - -```yaml -# Test Architect Configuration -test_architect: - use_playwright_utils: false # Set based on user response - tea_use_mcp_enhancements: false # Existing MCP flag for reference -``` - -### 1.3 Verification - -**Test the installation flow:** - -- Run: `npx bmad-method@alpha install` -- Select BMM module -- Verify prompt appears after MCP prompt -- Answer "Yes" → verify `bmad/bmm/config.yaml` has `use_playwright_utils: true` -- Answer "No" → verify `bmad/bmm/config.yaml` has `use_playwright_utils: false` - ---- - -## Phase 2: Knowledge Base Expansion (10-12 hours) - -### 2.1 Create 8 Lean Fragments (Keep Bundles Light) - -**Location:** `src/modules/bmm/testarch/knowledge/` - -**Target:** 150-250 lines each, action-focused, real examples from playwright-utils docs - -| Fragment | Lines | Description | -| --------------------------- | ----- | ------------------------------------------------ | -| `overview.md` | 200 | Installation, design principles, fixture pattern | -| `api-request.md` | 250 | Typed HTTP client, schema validation, retry | -| `network-recorder.md` | 250 | HAR record/playback, stateful CRUD detection | -| `auth-session.md` | 250 | Token persistence, multi-user, ephemeral | -| `intercept-network-call.md` | 200 | Network spy/stub, automatic JSON parsing | -| `recurse.md` | 200 | Cypress-style polling, async conditions | -| `log.md` | 150 | Test report integration, structured logging | -| `fixtures-composition.md` | 200 | mergeTests composition, integration patterns | - -**Total: ~1,500 lines (lean, focused, light bundle)** - -**Add later:** file-utils, burn-in, network-error-monitor - -### 2.2 Update TEA Index - -**File:** `src/modules/bmm/testarch/tea-index.csv` - -**Schema:** `id,name,description,tags,fragment_file` (keep tags short) - -**Add 8 rows:** - -```csv -overview,Playwright Utils Overview,"Installation, design principles, fixture patterns","playwright-utils,fixtures",knowledge/overview.md -api-request,API Request,"Typed HTTP client, schema validation","api,playwright-utils",knowledge/api-request.md -network-recorder,Network Recorder,"HAR record/playback, CRUD detection","network,playwright-utils",knowledge/network-recorder.md -auth-session,Auth Session,"Token persistence, multi-user","auth,playwright-utils",knowledge/auth-session.md -intercept-network-call,Intercept Network Call,"Network spy/stub, JSON parsing","network,playwright-utils",knowledge/intercept-network-call.md -recurse,Recurse Polling,"Async polling, condition waiting","polling,playwright-utils",knowledge/recurse.md -log,Log Utility,"Report logging, structured output","logging,playwright-utils",knowledge/log.md -fixtures-composition,Fixtures Composition,"mergeTests composition patterns","fixtures,playwright-utils",knowledge/fixtures-composition.md -``` - -**Result:** 29 total fragments (21 existing + 8 new) - -**Validation (run after changes):** - -```bash -npm run validate:schemas -npm run test:schemas -``` - -### 2.3 Fragment Structure Template - -Each fragment should follow this structure: - -````markdown -# [Utility Name] - -## Principle - -[Core concept of the utility] - -## Rationale - -[Why this utility exists, what problems it solves] - -## Pattern Examples - -### Example 1: [Basic Usage Pattern] - -**Context**: [When to use this pattern] - -**Implementation**: - -```typescript -// Code example from playwright-utils docs -``` -```` - -**Key Points**: - -- Point 1 -- Point 2 - -### Example 2: [Advanced Pattern] - -**Context**: [When to use this pattern] - -**Implementation**: - -```typescript -// Code example -``` - -**Key Points**: - -- Point 1 -- Point 2 - -## Integration with Other Utilities - -[How this utility works with other playwright-utils] - -## Anti-Patterns - -[What NOT to do] - -## Related Fragments - -- `fragment-id-1` - Description -- `fragment-id-2` - Description - -```` - ---- - -## Phase 3: Workflow Integration (8-10 hours) - -### 3.1 Update 5 Priority Workflows + 1 Light Mention - -**Preserve current behavior when flag is false** - -| Workflow | Integration | -|----------|-------------| -| `testarch/automate` | Generate tests with playwright-utils (CRITICAL) | -| `testarch/framework` | Recommend installation, scaffold fixtures | -| `testarch/test-review` | Review against utility best practices | -| `testarch/ci` | CI workflow updates | -| `testarch/atdd` | ATDD with utility patterns | -| `testarch/test-design` | Light mention only | - -**Keep minimal (no changes):** trace, nfr-assess - -### 3.2 Workflow Modification Pattern - -**Each workflow will follow this pattern:** - -```markdown -## Step X: Load Knowledge Base - -**Actions:** - -1. Check playwright-utils flag from config: - - Read `{config_source}` and check `config.use_playwright_utils` - - (Pattern matches existing: `config.tea_use_mcp_enhancements`) - -2. Load knowledge fragments based on flag: - - **If `config.use_playwright_utils: true`:** - - Load playwright-utils fragments: - - overview.md - - api-request.md - - network-recorder.md - - auth-session.md - - intercept-network-call.md - - recurse.md - - log.md - - fixtures-composition.md - - **If `config.use_playwright_utils: false`:** - - Load traditional pattern fragments (existing behavior preserved) - -3. [Continue with existing step content] -```` - -**Example workflow reference in instructions:** - -```markdown -**Critical:** Check configuration flag. - -Read `{config_source}` and check `config.use_playwright_utils`. - -If true, load playwright-utils fragments. If false, load traditional pattern fragments. - -This ensures backward compatibility and preserves existing behavior. -``` - -### 3.3 Example: `*automate` Workflow Enhancement - -**File:** `src/modules/bmm/workflows/testarch/automate/instructions.md` - -**Current Step 2 (Load Knowledge Base):** - -```markdown -## Step 2: Load Knowledge Base - -**Critical:** Consult `{project-root}/{bmad_folder}/bmm/testarch/tea-index.csv` to load: - -- `fixture-architecture.md` - Pure function → fixture pattern -- `network-first.md` - Intercept-before-navigate workflow -- `data-factories.md` - Factory functions with overrides -``` - -**Enhanced Step 2 (With Playwright Utils Check):** - -```markdown -## Step 2: Load Knowledge Base - -**Critical:** Check configuration and load appropriate fragments. - -1. **Read Configuration** - - Load `{config_source}` - - Check `test_architect.use_playwright_utils` flag - -2. **Load Fragments Based on Configuration** - - **If `use_playwright_utils: true`:** - - Consult `{project-root}/{bmad_folder}/bmm/testarch/tea-index.csv` and load: - - `playwright-utils-overview.md` - Installation and design principles - - `api-request-util.md` - Typed HTTP client with schema validation - - `network-recorder-util.md` - HAR record/playback for offline testing - - `auth-session-util.md` - Token management and session persistence - - `recurse-util.md` - Polling patterns for async operations - - `intercept-network-util.md` - Enhanced network interception - - `log-util.md` - Playwright report-integrated logging - - `file-utils-util.md` - File reading and validation - - `playwright-utils-fixtures.md` - Fixture composition patterns - - **If `use_playwright_utils: false`:** - - Consult `{project-root}/{bmad_folder}/bmm/testarch/tea-index.csv` and load: - - `fixture-architecture.md` - Pure function → fixture pattern - - `network-first.md` - Intercept-before-navigate workflow - - `data-factories.md` - Factory functions with overrides - - `component-tdd.md` - Component TDD loop -``` - -### 3.4 Code Generation Enhancement - -**In `*automate` workflow, modify test generation instructions:** - -````markdown -## Step 4: Generate Test Code - -**If `use_playwright_utils: true`:** - -Generate tests using playwright-utils utilities: - -```typescript -// Import from playwright-utils -import { test } from '@seontechnologies/playwright-utils/fixtures'; -// Or merge with your fixtures: -import { test } from '../support/merged-fixtures'; - -test('should fetch user data', async ({ apiRequest, recurse }) => { - // Use apiRequest utility - const { status, body } = await apiRequest({ - method: 'GET', - path: '/api/users/123', - }); - - expect(status).toBe(200); - - // Use recurse for polling - await recurse({ - command: () => apiRequest({ method: 'GET', path: `/api/users/${body.id}/status` }), - predicate: (response) => response.body.ready === true, - options: { timeout: 30000 }, - }); -}); -``` -```` - -**If `use_playwright_utils: false`:** - -Generate tests using traditional patterns: - -```typescript -test('should fetch user data', async ({ request }) => { - const response = await request.get('/api/users/123'); - expect(response.ok()).toBeTruthy(); - const body = await response.json(); - - // Manual polling - await expect - .poll( - async () => { - const statusResponse = await request.get(`/api/users/${body.id}/status`); - const statusBody = await statusResponse.json(); - return statusBody.ready; - }, - { timeout: 30000 }, - ) - .toBe(true); -}); -``` - -```` - ---- - -## Phase 4: Testing & Validation (REVISED - Focused Scope) - -### 4.1 Schema & Index Validation (PRIORITY) - -**Run after tea-index.csv changes:** - -```bash -npm run validate:schemas # Validate YAML structure, tea-index.csv format -npm run test:schemas # Ensure agent YAML compiles correctly -```` - -**Verify:** - -- tea-index.csv has correct column headers: `id,name,description,tags,fragment_file` -- All 8 new fragment_file paths exist -- Tags are short (3-4 max per fragment) -- No duplicate IDs - -### 4.2 Installation Testing - -**Test Cases:** - -1. **New Installation - Playwright Utils Selected** - - Run: `npx bmad-method@alpha install` - - Select BMM module - - Answer "Yes" to playwright-utils prompt - - Verify: `bmad/bmm/config.yaml` has `use_playwright_utils: true` - -2. **New Installation - Playwright Utils Not Selected** - - Run installation - - Answer "No" to playwright-utils prompt - - Verify: `bmad/bmm/config.yaml` has `use_playwright_utils: false` - -### 4.3 Workflow Testing (5 Priority Workflows) - -**Test Cases:** - -1. **Automate Workflow - Flag True** - - Set `use_playwright_utils: true` in config - - Run `*automate` - - Verify: Loads playwright-utils fragments (api-request-util, etc.) - - Verify: Generated code imports from `@seontechnologies/playwright-utils` - -2. **Automate Workflow - Flag False** - - Set `use_playwright_utils: false` in config - - Run `*automate` - - Verify: Loads traditional fragments (fixture-architecture, etc.) - - Verify: Generated code uses vanilla Playwright patterns - -3. **Framework/Test-Review/CI/ATDD Workflows** - - Test with both flag states - - Verify conditional behavior preserves existing functionality when flag is false - -### 4.4 Knowledge Fragment Validation - -**Validation per fragment (8 total):** - -- [ ] Fragment is 150-300 lines (action-focused, concise) -- [ ] All code examples use working playwright-utils patterns -- [ ] Related fragments cross-referenced -- [ ] Tags accurate in tea-index.csv -- [ ] No bloating of bundle size - ---- - -## Phase 5: Documentation Updates (REVISED - Concise Updates) - -### 5.1 Update TEA Documentation - -**File:** `src/modules/bmm/docs/test-architecture.md` - -**Add small "Playwright Utils Integration" section:** - -````markdown -### Playwright Utils Integration - -TEA optionally integrates with `@seontechnologies/playwright-utils`. - -**Installation:** - -```bash -npm install -D @seontechnologies/playwright-utils -``` -```` - -**Enable during BMAD installation** by answering "Yes" when prompted. - -**Supported utilities:** api-request, network-recorder, auth-session, intercept-network-call, recurse, log, fixtures-composition. - -**Workflows adapt:** automate, framework, test-review, ci, atdd (+ light mention in test-design). - -```` - -**Update knowledge base count:** - -```markdown -TEA maintains 29 knowledge fragments (21 core + 8 playwright-utils). -```` - -### 5.2 Update README (Minimal) - -**File:** `README.md` - -**Add one line to Test Architect section:** - -```markdown -**Test Architect** - Optionally integrates with `@seontechnologies/playwright-utils` for fixture-based utility recommendations. -``` - -### 5.3 Update CHANGELOG - -**File:** `CHANGELOG.md` - -```markdown -## [6.1.0] - 2025-XX-XX - -### Added - -- **Playwright Utils Integration**: TEA supports optional integration with `@seontechnologies/playwright-utils` - - Installation-time prompt with `use_playwright_utils` configuration flag - - 8 new concise knowledge fragments (~1,700-2,100 lines total) - - Adaptive workflow recommendations in 5 priority workflows - - 29 total knowledge fragments (21 core + 8 playwright-utils) -``` - ---- - -## Implementation Checklist (REVISED - Focused Scope) - -### Phase 1: Installation Enhancement ✅ - -- [ ] Locate and update `src/modules/bmm/_module-installer/install-config.yaml` - - [ ] Add prompt: `usePlaywrightUtils` (camelCase) -- [ ] Wire prompt in `tools/cli/installers/lib/install-steps.js` (or equivalent) -- [ ] Ensure flag writes to `bmad/bmm/config.yaml` as `use_playwright_utils` (underscore) -- [ ] Test installation: - - [ ] Answer "Yes" → verify `use_playwright_utils: true` - - [ ] Answer "No" → verify `use_playwright_utils: false` - -### Phase 2: Knowledge Base Expansion 📚 - -- [ ] Create 8 focused knowledge fragments (150-300 lines each): - - [ ] playwright-utils-overview.md - - [ ] api-request-util.md - - [ ] network-recorder-util.md - - [ ] auth-session-util.md - - [ ] intercept-network-util.md - - [ ] recurse-util.md - - [ ] log-util.md - - [ ] playwright-utils-fixtures.md -- [ ] Update tea-index.csv with 8 new entries - - [ ] Verify column headers: `id,name,description,tags,fragment_file` - - [ ] Keep tags short (3-4 max) -- [ ] Run schema validation: - - [ ] `npm run validate:schemas` - - [ ] `npm run test:schemas` - -### Phase 3: Workflow Integration 🔄 - -- [ ] Update 5 priority workflows with flag checks: - - [ ] `*automate` (CRITICAL - test generation with utilities) - - [ ] `*framework` (recommend installation, scaffold fixtures) - - [ ] `*test-review` (check for utility best practices) - - [ ] `*ci` (mention burn-in/network-error-monitor) - - [ ] `*atdd` (recommend utility patterns) -- [ ] Implement conditional fragment loading in each workflow -- [ ] Preserve existing behavior when `use_playwright_utils: false` - -### Phase 4: Testing & Validation 🧪 - -- [ ] Schema validation (PRIORITY): - - [ ] `npm run validate:schemas` - - [ ] `npm run test:schemas` - - [ ] Verify tea-index.csv format -- [ ] Installation testing (2 scenarios) -- [ ] Workflow testing (5 workflows × 2 flag states) -- [ ] Fragment validation (8 fragments) - - [ ] 150-300 lines each - - [ ] Working code examples - - [ ] No bundle bloat - -### Phase 5: Documentation Updates 📝 - -- [ ] Update test-architecture.md - - [ ] Add brief "Playwright Utils Integration" section - - [ ] Update knowledge base count (29 fragments) -- [ ] Update README.md (one line addition) -- [ ] Update CHANGELOG.md (concise entry) - -### Phase 6: Quality Assurance 🎯 - -- [ ] Run `npm run validate:schemas` (final check) -- [ ] Run `npm run test:schemas` (final check) -- [ ] Test installation end-to-end -- [ ] Test one workflow with both flag states -- [ ] Optional: `npm run bundle` if bundling for web - ---- - -## Success Criteria - -### Installation - -- ✅ User is prompted about playwright-utils during BMM installation -- ✅ Flag is correctly stored in `bmad/bmm/config.yaml` -- ✅ Installation completes successfully with both "Yes" and "No" responses - -### Knowledge Base - -- ✅ All 11 new fragments created and indexed -- ✅ tea-index.csv has 32 total entries -- ✅ All code examples are tested and functional -- ✅ Fragments follow consistent template structure - -### Workflow Integration - -- ✅ All 8 TEA workflows check for playwright-utils flag -- ✅ Workflows load appropriate fragments based on flag -- ✅ Generated code uses playwright-utils when flag is true -- ✅ Generated code uses vanilla Playwright when flag is false - -### Documentation - -- ✅ test-architecture.md includes playwright-utils integration section -- ✅ README.md references playwright-utils -- ✅ CHANGELOG.md documents changes -- ✅ All documentation is accurate and complete - -### Testing - -- ✅ All schema validation passes -- ✅ All agent tests pass -- ✅ Installation tests pass -- ✅ Workflow tests pass -- ✅ Bundle generation succeeds - ---- - -## Timeline Estimate (REVISED - Complete Scope) - -| Phase | Estimated Time | Dependencies | -| ------------------------------------------- | --------------- | ------------ | -| Phase 1: Installation | 3-4 hours | None | -| Phase 2: Knowledge Base (11 fragments) | 16-20 hours | Phase 1 | -| Phase 3: Workflow Integration (8 workflows) | 12-16 hours | Phase 2 | -| Phase 4: Testing & Validation | 6-8 hours | Phase 3 | -| Phase 5: Documentation | 3-4 hours | Phase 4 | -| Phase 6: QA | 3-4 hours | Phase 5 | -| **Total** | **43-56 hours** | Sequential | - -**Recommended approach:** - -- Week 1-2: Phases 1-2 (Installation + All 11 fragments) -- Week 3: Phase 3 (All 8 workflows) -- Week 4: Phases 4-6 (Testing, Docs, QA) - ---- - -## Risk Assessment - -| Risk | Impact | Likelihood | Mitigation | -| -------------------------------------- | ------ | ---------- | --------------------------------------------- | -| Knowledge fragments too verbose | Medium | Medium | Follow existing fragment size patterns | -| Workflow conditionals add complexity | Medium | High | Clear documentation, extensive testing | -| Breaking changes to existing workflows | High | Low | Preserve existing behavior when flag is false | -| Installation prompt not intuitive | Low | Medium | User testing, clear prompt wording | -| Schema validation failures | High | Low | Validate early and often | -| Bundle size increases significantly | Low | High | Monitor bundle sizes, optimize if needed | - ---- - -## Future Enhancements - -### Post-v6.1 Considerations: - -1. **Auto-detection**: Automatically detect if `@seontechnologies/playwright-utils` is in package.json -2. **Version compatibility**: Check playwright-utils version and recommend upgrade if needed -3. **Utility-specific knowledge**: Add more granular fragments for specific utility patterns -4. **Interactive examples**: Link to live examples in playwright-utils repo -5. **Migration guide**: Create workflow to help migrate from vanilla Playwright to playwright-utils -6. **Performance metrics**: Track how playwright-utils affects test execution time -7. **Community contributions**: Allow users to contribute playwright-utils patterns - ---- - -## Notes - -- This integration maintains backward compatibility - existing installations work unchanged -- The flag is opt-in, preserving TEA's original pattern-based approach -- All code examples in fragments should be tested in the playwright-utils repository -- This enhancement positions BMAD as the premier framework for modern Playwright testing -- Opens door for future integrations with other utility libraries - ---- - -## Questions for Discussion - -1. Should we auto-detect playwright-utils in package.json instead of prompting? -2. Should we create a migration workflow for projects moving to playwright-utils? -3. Should we bundle sample fixtures that integrate playwright-utils? -4. Should we create a separate "quick start" guide for playwright-utils + BMAD? -5. Should we add telemetry to track playwright-utils adoption? - ---- - -## Summary of Changes from Initial Plan - -**Scope Adjustments (Final):** - -1. **Fragment count**: ALL 11 utilities included (non-negotiable) -2. **Fragment size**: 150-300 lines (concise, action-focused) -3. **Total lines**: ~2,250-2,850 lines -4. **Workflow count**: ALL 8 TEA workflows updated (non-negotiable) -5. **Timeline**: 43-56 hours (complete coverage) -6. **tea-index.csv**: 32 total fragments (21 existing + 11 new) -7. **NO package.json auto-detection** (repos may not be TypeScript/Node.js) - -**Key Improvements:** - -- File locations aligned with actual repo structure -- Consistent kebab-case naming (`use_playwright_utils`) -- Short tags in tea-index.csv (max 3 tags) -- Context-aware fragment loading (UI/API/CI-CD) -- Schema validation prioritized throughout -- Preserve existing behavior when flag is false -- Utility context mapping for smart recommendations - ---- - -**Document Version:** 3.0 (FINAL - Ready for Implementation) -**Created:** 2025-01-20 -**Last Updated:** 2025-01-20 -**Owner:** Test Architect Enhancement Team - ---- - -## Implementation-Ready Checklist - -Before starting implementation, verify these concrete file locations exist: - -- [ ] `src/modules/bmm/_module-installer/install-config.yaml` - For adding prompt -- [ ] `src/modules/bmm/_module-installer/installer.js` - For wiring to config write -- [ ] `src/modules/bmm/testarch/tea-index.csv` - Verify columns: `id,name,description,tags,fragment_file` -- [ ] `src/modules/bmm/testarch/knowledge/` - Directory for new fragments -- [ ] `src/modules/bmm/workflows/testarch/automate/instructions.md` - Priority workflow -- [ ] `src/modules/bmm/workflows/testarch/framework/instructions.md` - Priority workflow -- [ ] `src/modules/bmm/workflows/testarch/test-review/instructions.md` - Priority workflow -- [ ] `src/modules/bmm/workflows/testarch/ci/instructions.md` - Priority workflow -- [ ] `src/modules/bmm/workflows/testarch/atdd/instructions.md` - Priority workflow - -**Validation commands to run:** - -```bash -npm run validate:schemas # After tea-index.csv changes -npm run test:schemas # After agent YAML changes -```