docs(claude): require unit + latest-API E2E in the definition of done #252

Merged
JMR-dev merged 3 commits from docs-definition-of-done into main 2026-07-03 18:14:57 +00:00
JMR-dev commented 2026-07-03 18:00:25 +00:00 (Migrated from github.com)

Summary

  • Add a "Definition of done" section to CLAUDE.md: a change is not complete until it ships with passing unit tests and E2E/instrumented tests that exercise the new or changed behaviour.
  • The E2E test must actually run and pass, not merely compile: preflight now runs the latest-API-level emulator E2E locally — api36DebugAndroidTest, the highest API level in the E2E matrix and its Gradle Managed Device task — and it must be green before the change is done. The full multi-API matrix (and the API 37 preview job) stays CI's job.
  • Update the /preflight skill (.claude/skills/preflight/SKILL.md) to match: add api36DebugAndroidTest as the final gate step, note the emulator/managed-device precondition, and replace the old "don't run E2E locally" guidance so CLAUDE.md and the skill stay consistent.

Test plan

  • Docs/skill-only change; no Gradle build needed.
  • Verified CLAUDE.md and the preflight skill agree (same api36DebugAndroidTest task, same "latest-API local / full matrix on CI" split) with no contradiction.
  • Confirmed api36 is the highest API level in both the Gradle Managed Device list (app/build.gradle.kts) and the CI E2E matrix (.github/workflows/ci.yml); API 37 is the CI-only preview job.

🤖 Generated with Claude Code

## Summary - Add a "Definition of done" section to `CLAUDE.md`: a change is not complete until it ships with passing **unit tests** and **E2E/instrumented tests** that exercise the new or changed behaviour. - The E2E test must actually **run and pass**, not merely compile: preflight now runs the latest-API-level emulator E2E locally — `api36DebugAndroidTest`, the highest API level in the E2E matrix and its Gradle Managed Device task — and it must be green before the change is done. The full multi-API matrix (and the API 37 preview job) stays CI's job. - Update the `/preflight` skill (`.claude/skills/preflight/SKILL.md`) to match: add `api36DebugAndroidTest` as the final gate step, note the emulator/managed-device precondition, and replace the old "don't run E2E locally" guidance so `CLAUDE.md` and the skill stay consistent. ## Test plan - [x] Docs/skill-only change; no Gradle build needed. - [x] Verified `CLAUDE.md` and the preflight skill agree (same `api36DebugAndroidTest` task, same "latest-API local / full matrix on CI" split) with no contradiction. - [x] Confirmed `api36` is the highest API level in both the Gradle Managed Device list (`app/build.gradle.kts`) and the CI E2E matrix (`.github/workflows/ci.yml`); API 37 is the CI-only preview job. 🤖 Generated with [Claude Code](https://claude.com/claude-code)
Sign in to join this conversation.