New / changed action in src/actions/*.actions.ts | agents/coding-rules.md (action conventions); agents/selector-rules.md if it introduces a new page-object getter |
New / changed page object in src/pages/*.page.ts | agents/selector-rules.md (Linkby Quasar cookbook) |
New / changed named assertion in src/assertions/*.assertions.ts | agents/coding-rules.md §"Assertions"; mention in README.md only if it adds a new pattern (compound vs. inline) |
TestEnv union or env-URL keys changed in src/env/api-urls.ts or src/env/urls.ts | .env.sample, config/playwright.config.ts, .github/workflows/e2e.yml, TEST_DATA_STRATEGY.md, TEST_DATA_IMPLEMENTATION_PLAN.md |
| New env var added or removed | .env.sample, .github/workflows/e2e.yml, README.md if user-visible |
New field in src/seed/manifest.types.ts (SeedManifest) | src/env/seed-manifest.e2e.json regenerated via npm run reset:e2e; src/seed/seeder.ts updated to write the new field; docs/seed.md if author-facing |
New entity type or default in src/seed/ (loader.ts, creators/*.ts, defaults.ts) | docs/seed.md schema reference; one example in scenarios/<name>/seed.yaml; mention in PR body if it changes auto-defaulting rules |
Schema list changed in src/db/wipe-runner.ts | TEST_DATA_STRATEGY.md (the four hard-coded schemas); scripts/local-env/setup-local-e2e-db.sh grants list; provisioning notes in TEST_DATA_IMPLEMENTATION_PLAN.md PR 4 |
Change to scripts/seed/** (wipe-e2e.ts, seed-scenarios.ts, seed-lookups.sh, validate-manifest.ts, lookup-data.sql) or src/seed/** | docs/seed.md if author-facing; TEST_DATA_STRATEGY.md matching section; .env.sample if a new env var is read; ARCHITECTURE.md §"npm scripts" if the public CLI surface changes |
Change to scripts/local-env/setup-local-e2e-db.sh, scripts/local-env/start-local-e2e-api.sh | TEST_DATA_IMPLEMENTATION_PLAN.md PR 4 "Verified locally" block; README.md / QUICK_START.md local-dev section if user-visible |
New top-level folder under src/ (e.g. src/db/) | README.md repo-structure section, ARCHITECTURE.md §"Who edits what" |
New npm script in package.json | ARCHITECTURE.md §"npm scripts" cheatsheet |
New / changed slash command in .claude/commands/ | ARCHITECTURE.md §"Slash commands" cheatsheet; README.md if user-visible |
New / changed subagent in .claude/agents/ | ARCHITECTURE.md §"Who edits what"; verify agents/coding-rules.md / agents/selector-rules.md references stay accurate |
Validator rule added in scripts/authoring/validate-scenarios.ts or scripts/authoring/validate-plans.ts | scenarios/README.md "Common mistakes" table; README.md if author-facing |
Lint rule added in scripts/specs/lint-generated.ts | README.md §"Generated specs" discipline list; agents/coding-rules.md §"Spec format" |
New scenario in scenarios/ | matching plan + spec must exist — run /regen <stem> if missing; generated/manifest.json regenerated |
New Owner: value introduced in a scenario | agents/owner-routing.json; ARCHITECTURE.md §"Owner field" if routing semantics change |
Test-data fixture change in src/fixtures/*.ts (test-data.fixture.ts, cleanup-ledger.ts, extract-ids-from-signup.ts) that affects lifecycle | TEST_DATA_STRATEGY.md (hygiene + factory section); scenario ## Data blocks if fixture fields changed; TEST_DATA_IMPLEMENTATION_PLAN.md PR 2 reframe if ledger semantics shift |
Cleanup / teardown change in src/global/*.ts (teardown.ts, cleanup-runner.ts) or scripts/cleanup/*.ts | TEST_DATA_STRATEGY.md "What's already shipped" / "Trade-offs"; TEST_DATA_IMPLEMENTATION_PLAN.md PR 2/3 reframe; ARCHITECTURE.md §"npm scripts" if cleanup:retry/cleanup:status surface changes |
New top-level doc file (*.md in repo root) | README.md and ARCHITECTURE.md links section; NEXT_STEPS.md if it captures deferred work |
package.json dep added | nothing required, but flag the new dep in the PR body |
CI workflow change in .github/workflows/ | README.md, ARCHITECTURE.md §"CI pipeline"; TEST_DATA_IMPLEMENTATION_PLAN.md if it touches the test-data lifecycle |