@tekyzinc/gsd-t 2.19.0 → 2.20.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/CHANGELOG.md CHANGED
@@ -2,6 +2,17 @@
2
2
 
3
3
  All notable changes to GSD-T are documented here. Updated with each release.
4
4
 
5
+ ## [2.20.0] - 2026-02-16
6
+
7
+ ### Added
8
+ - **Playwright Setup in Init**: `gsd-t-init` now installs Playwright, creates `playwright.config.ts`, and sets up E2E test directory for every project. Detects package manager (bun, npm, yarn, pnpm, pip) automatically
9
+ - **Playwright Readiness Guard**: Before any testing command (execute, test-sync, verify, quick, wave, milestone, complete-milestone, debug), checks for `playwright.config.*` and auto-installs if missing. Playwright must always be ready — no deferring to "later"
10
+
11
+ ## [2.19.1] - 2026-02-16
12
+
13
+ ### Changed
14
+ - **Quick**: Now runs the FULL test suite (not just affected tests), requires comprehensive test creation for new/changed code paths including Playwright E2E, and verifies against requirements and contracts. "Quick doesn't mean skip testing."
15
+
5
16
  ## [2.19.0] - 2026-02-16
6
17
 
7
18
  ### Changed
@@ -174,13 +174,35 @@ After initialization, verify all created documentation is consistent:
174
174
 
175
175
  ### Skip what's not affected — init creates docs, so most ripple is about consistency verification.
176
176
 
177
- ## Step 7.6: Test Verification
177
+ ## Step 7.6: Playwright Setup (MANDATORY)
178
+
179
+ Every GSD-T project must have Playwright ready for E2E testing. If `playwright.config.*` does not exist:
180
+
181
+ 1. **Detect package manager**: Check for `bun.lockb` (bun), `yarn.lock` (yarn), `pnpm-lock.yaml` (pnpm), `package-lock.json` or `package.json` (npm), `requirements.txt`/`pyproject.toml` (Python)
182
+ 2. **Install Playwright**:
183
+ - bun: `bun add -d @playwright/test && bunx playwright install chromium`
184
+ - npm: `npm install -D @playwright/test && npx playwright install chromium`
185
+ - yarn: `yarn add -D @playwright/test && yarn playwright install chromium`
186
+ - pnpm: `pnpm add -D @playwright/test && pnpm exec playwright install chromium`
187
+ - Python: `pip install playwright && playwright install chromium`
188
+ - No package manager detected: `npm init -y && npm install -D @playwright/test && npx playwright install chromium`
189
+ 3. **Create `playwright.config.ts`** (or `.js` if not using TypeScript) with sensible defaults:
190
+ - `testDir: './e2e'` (or `./tests/e2e`)
191
+ - `use: { baseURL: 'http://localhost:3000' }` (adjust based on project)
192
+ - Chromium only (keep it fast; user can add more browsers later)
193
+ - Screenshot on failure enabled
194
+ 4. **Create the E2E test directory** (`e2e/` or `tests/e2e/`) with a placeholder spec
195
+ 5. **Add test script** to `package.json` if it exists: `"test:e2e": "playwright test"`
196
+
197
+ Skip silently if `playwright.config.*` already exists.
198
+
199
+ ## Step 7.7: Test Verification
178
200
 
179
201
  After initialization:
180
202
 
181
203
  1. **If existing code with tests**: Run the full test suite to establish a baseline. Document results in `.gsd-t/progress.md`
182
- 2. **If existing code without tests**: Note the absencerecommend test setup as part of the first milestone
183
- 3. **If greenfield**: No tests to run, but note that test infrastructure should be in Milestone 1
204
+ 2. **If existing code without tests**: Playwright is now set up (Step 7.6) note unit test framework should be added as part of the first milestone
205
+ 3. **If greenfield**: Playwright is ready. Note that unit test infrastructure should be added in Milestone 1
184
206
  4. **Verify init outputs**: Confirm all created files exist and are non-empty
185
207
 
186
208
  ## Step 8: Report
@@ -52,14 +52,23 @@ If `.gsd-t/progress.md` exists, assess what documentation was affected and updat
52
52
 
53
53
  ### Skip what's not affected — most quick tasks will only touch 1-2 of these.
54
54
 
55
- ## Step 5: Test Verification
56
-
57
- Before committing, verify the change works:
58
-
59
- 1. **Update tests**: If the change adds or modifies behavior, update or add tests to cover it
60
- 2. **Run affected tests**: Execute all tests related to the changed files and domain
61
- 3. **Verify passing**: All tests must pass. If any fail, fix before proceeding (up to 2 attempts)
62
- 4. **Run E2E tests**: If the change touched UI, routes, or user flows and an E2E framework exists, run affected specs
63
- 5. **No test framework?**: At minimum, manually verify the change works as expected and document how you verified it in the commit message
55
+ ## Step 5: Test & Verify (MANDATORY)
56
+
57
+ Quick does not mean skip testing. Before committing:
58
+
59
+ 1. **Write/update tests for every new or changed code path**:
60
+ - Unit tests: happy path + common edge cases + error cases
61
+ - Playwright E2E specs (if UI/routes/flows/modes changed): create new specs for new functionality, update existing specs for changed behavior
62
+ - Cover all modes/flags affected by this change
63
+ - "No feature code without test code" applies to quick tasks too
64
+ 2. **Run the FULL test suite** — not just affected tests:
65
+ - All unit/integration tests
66
+ - Full Playwright E2E suite (if configured)
67
+ - Fix any failures before proceeding (up to 2 attempts)
68
+ 3. **Verify against requirements**:
69
+ - Does the change satisfy its intended requirement?
70
+ - Did the change break any existing functionality? (the full test run catches this)
71
+ - If a contract exists for the interface touched, does the code still match?
72
+ 4. **No test framework?**: Set one up, or at minimum manually verify and document how in the commit message
64
73
 
65
74
  $ARGUMENTS
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@tekyzinc/gsd-t",
3
- "version": "2.19.0",
3
+ "version": "2.20.0",
4
4
  "description": "GSD-T: Contract-Driven Development for Claude Code — 41 slash commands with backlog management, impact analysis, test sync, and milestone archival",
5
5
  "author": "Tekyz, Inc.",
6
6
  "license": "MIT",
@@ -191,6 +191,16 @@ If any are missing:
191
191
 
192
192
  **Exempt commands** (do not trigger auto-init): `gsd-t-init`, `gsd-t-init-scan-setup`, `gsd-t-help`, `gsd-t-version-update`, `gsd-t-version-update-all`, `gsd-t-prompt`, `gsd-t-brainstorm`.
193
193
 
194
+ ## Playwright Readiness Guard
195
+
196
+ Before any command that involves testing (`gsd-t-execute`, `gsd-t-test-sync`, `gsd-t-verify`, `gsd-t-quick`, `gsd-t-wave`, `gsd-t-milestone`, `gsd-t-complete-milestone`, `gsd-t-debug`), check if `playwright.config.*` exists in the project. If it does not:
197
+ 1. Detect the package manager and install Playwright (`@playwright/test` + chromium)
198
+ 2. Create a basic `playwright.config.ts` with sensible defaults
199
+ 3. Create the E2E test directory with a placeholder spec
200
+ 4. Then continue with the original command
201
+
202
+ Playwright must always be ready before any testing occurs. Do not skip this check. Do not defer setup to "later."
203
+
194
204
  ## Prime Rule
195
205
  KEEP GOING. Only stop for:
196
206
  1. Unrecoverable errors after 2 fix attempts