Files
sar/.claude/skills/bmad-testarch-framework/steps-c/step-02-select-framework.md
julian 17c08e6392 chore: initial monorepo scaffold + WDS Phase 1+2 artifacts
- Nx 22.7 monorepo (pnpm 11.1, TypeScript 5.9, Node 24)
- apps/api: NestJS 11 (CJS conforme CODING-RULES.md PGD-DB-004)
- apps/web: React 19 + Vite 8 (ESM)
- libs/shared/api-interface: Zod contract base
- Docker Compose dev: Postgres 18, Valkey 8, MinIO, Mailpit
- WDS artifacts:
  - design-artifacts/A-Product-Brief/ (5 docs canônicos + 16 dialogs)
  - design-artifacts/B-Trigger-Map/ (hub + 4 personas + feature impact)
- Stack canon: STACK.md v2.2 + CODING-RULES.md v2.0 + brand.md
- AGENTS.md + README.md como entrada para devs/agentes

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-27 14:34:20 +00:00

2.9 KiB

name, description, nextStepFile, outputFile
name description nextStepFile outputFile
step-02-select-framework Select Playwright or Cypress and justify choice {skill-root}/steps-c/step-03-scaffold-framework.md {test_artifacts}/framework-setup-progress.md

Step 2: Framework Selection

STEP GOAL

Choose the most appropriate framework and document the rationale.

MANDATORY EXECUTION RULES

  • 📖 Read the entire step file before acting
  • Speak in {communication_language}

EXECUTION PROTOCOLS:

  • 🎯 Follow the MANDATORY SEQUENCE exactly
  • 💾 Record outputs before proceeding
  • 📖 Load the next step only when instructed

CONTEXT BOUNDARIES:

  • Available context: config, loaded artifacts, and knowledge fragments
  • Focus: this step's goal only
  • Limits: do not execute future steps
  • Dependencies: prior steps' outputs (if any)

MANDATORY SEQUENCE

CRITICAL: Follow this sequence exactly. Do not skip, reorder, or improvise.

1. Selection Logic

Use {detected_stack} from Step 1 to guide framework selection.

If {detected_stack} is frontend or fullstack (browser-based testing):

Default to Playwright unless strong reasons suggest Cypress.

Playwright recommended when:

  • Large or complex repo
  • Multi-browser support needed
  • Heavy API + UI integration
  • CI speed/parallelism is important

Cypress recommended when:

  • Small team prioritizes DX
  • Component testing focus
  • Simpler setup needed

If {detected_stack} is backend (no browser-based testing):

Select the framework matching the project language:

  • Python: pytest (default), unittest
  • Java/Kotlin: JUnit 5 (default), TestNG
  • Go: Go test (built-in)
  • C#/.NET: xUnit (default), NUnit, MSTest
  • Ruby: RSpec (default), Minitest
  • Rust: cargo test (built-in)

If {detected_stack} is fullstack:

Select both a browser-based framework (Playwright/Cypress) AND the appropriate backend framework for the detected language.

Respect config.test_framework if explicitly set (not "auto").


2. Announce Decision

State the selected framework and reasoning.


3. Save Progress

Save this step's accumulated work to {outputFile}.

  • If {outputFile} does not exist (first save), create it with YAML frontmatter:

    ---
    stepsCompleted: ['step-02-select-framework']
    lastStep: 'step-02-select-framework'
    lastSaved: '{date}'
    ---
    

    Then write this step's output below the frontmatter.

  • If {outputFile} already exists, update:

    • Add 'step-02-select-framework' to stepsCompleted array (only if not already present)
    • Set lastStep: 'step-02-select-framework'
    • Set lastSaved: '{date}'
    • Append this step's output to the appropriate section of the document.

Load next step: {nextStepFile}

🚨 SYSTEM SUCCESS/FAILURE METRICS:

SUCCESS:

  • Step completed in full with required outputs

SYSTEM FAILURE:

  • Skipped sequence steps or missing outputs Master Rule: Skipping steps is FORBIDDEN.