Grid Dungeon test plans
When to use
- Opening or closing a griddungeon-game or design-docs issue tied to implementation
- User asks for a test plan, manual QA steps, or verification checklist
- Updating a plan after user test feedback (mark verified, N/A, defer to another issue)
Complements .cursor/rules/ticket-test-documentation.mdc (always-on reminder). This skill owns format and workflow.
Rules
- Do not invent results — unchecked until the user or CI reports green.
- No Unity CLI batch tests while the Editor may be open — ask the user to run Test Runner (unity-no-cli-tests-while-editor-open.mdc).
- Post to GitHub issue comment by default; mirror under
## Test plan on the PR.
- Mark steps N/A with reason + follow-up issue (e.g. instant enemy AI → #35), not as failures.
- Use tables for manual steps:
| Step | Action | Expected | with stable step numbers across edits.
- Local drafts only under
.cursor/local/ — never write test-plan-issue-*.md at .cursor/ root or anywhere else tracked by git (in griddungeon-game, add the same .gitignore entry).
Local draft path (optional)
Use when the user runs Create test plan / asks for a file to edit before posting (typically in griddungeon-game):
| Item |
Value |
| Directory |
.cursor/local/test-plans/ (gitignored) |
| Filename |
test-plan-issue-<N>.md or test-plan-pr-<N>.md |
| Commit |
Never — canonical copy lives on the GitHub issue/PR |
Do not place drafts in .cursor/test-plan-issue-*.md (tracked in the game repo; committed by mistake on #29).
Workflow
- Read the issue/PR scope and touched domains (
Combat, Exploration, Map, Foe, GameFlow).
- Pick a preset from template.md (full skeleton) or examples.md.
- Fill Setup, Automated (Test Runner tree paths), Manual sections (A/B…), Regressions, Spec/ADRs.
- If a local file is needed, write only to
.cursor/local/test-plans/… (game repo).
- Before close-out on implementation tickets: in griddungeon-game, run fresh-reviewer after commits on the branch (see game
.cursor/agents/fresh-reviewer.md) with diff + issue AC only; fix Blockers in follow-up commits before posting the plan / merging.
- Post via
gh issue comment or edit existing test-plan comment (gh api PATCH).
- After user feedback: update sign-off date, check boxes, add Notes for N/A/deferred.
Defaults (unless the ticket overrides)
| Topic |
Default |
| Scene |
DevBootstrap.unity — regenerate GridDungeon → Scenes → Create Dev Bootstrap |
| Phase keys |
F1 Hub, F2 Exploration, F3 Combat, F4 flee, F6 party ready, F7 stratum entry |
| Exploration timing |
Normal: step 0.28s, turn 0.26s (ADR 018) |
| F3 dev roster |
2 cores + slime when party empty — game README |
| Combat highlight |
Core command pick → party roster, not AGI strip (combat.md) |
| Edit Mode tree |
Tests → <Domain> → <Fixture> — Assets/Tests/README.md |
| Exploration Esc (map not fullscreen) |
Pause: Resume / Quit to title (confirm). No hub from pause (ADR 014 §7) |
| Exploration Esc (map fullscreen) |
Closes fullscreen map only (ADR 014) |
| Return to hub from exploration |
In-world only: stairs (gate), items, exits/gates, events, defeat — not pause (game phase) |
| Combat Esc |
Resume / Settings only (ADR 015) |
Section letters (manual primary)
Use one block per feature area; keep numbering global across the plan (e.g. A1 steps 1–6, A2 steps 7–10):
| Block |
Typical scope |
| A1 |
Phase visibility / HUD show-hide |
| A2 |
Domain-specific UI (strip, map, hub panel) |
| A3 |
Input / commands / keyboard parity |
| A4 |
Data display (HP, labels, save) |
| A5–A6 |
Placeholders, dev HUD coexist |
| B |
Short cross-phase regressions (~5 min) |
Sign-off block
Always end with a dated checklist (copy from template.md). Separate verified date from pending Edit Mode line.
Resources
- Full copy-paste template: template.md
- Examples (#34 combat HUD, #27 exploration pause): examples.md
1---2name: test-plan-grid-dungeon3description: Writes Grid Dungeon GitHub/PR test plans with consistent structure (automated Edit Mode paths, DevBootstrap manual tables, sign-off, N/A deferrals). Use when creating or updating test plans for issues, PRs, handoff, or ticket close-out.4---56# Grid Dungeon test plans78## When to use910- Opening or closing a **griddungeon-game** or **design-docs** issue tied to implementation11- User asks for a **test plan**, **manual QA steps**, or **verification checklist**12- Updating a plan after **user test feedback** (mark verified, N/A, defer to another issue)1314Complements [.cursor/rules/ticket-test-documentation.mdc](../../rules/ticket-test-documentation.mdc) (always-on reminder). This skill owns **format and workflow**.1516## Rules17181. **Do not invent results** — unchecked until the user or CI reports green.192. **No Unity CLI batch tests** while the Editor may be open — ask the user to run Test Runner ([unity-no-cli-tests-while-editor-open.mdc](../../rules/unity-no-cli-tests-while-editor-open.mdc)).203. **Post to GitHub issue comment** by default; mirror under `## Test plan` on the PR.214. Mark steps **N/A** with reason + follow-up issue (e.g. instant enemy AI → #35), not as failures.225. Use **tables** for manual steps: `| Step | Action | Expected |` with stable step numbers across edits.236. **Local drafts only under `.cursor/local/`** — never write `test-plan-issue-*.md` at `.cursor/` root or anywhere else tracked by git (in **griddungeon-game**, add the same `.gitignore` entry).2425## Local draft path (optional)2627Use when the user runs **Create test plan** / asks for a file to edit before posting (typically in **griddungeon-game**):2829| Item | Value |30|------|--------|31| Directory | `.cursor/local/test-plans/` (gitignored) |32| Filename | `test-plan-issue-<N>.md` or `test-plan-pr-<N>.md` |33| Commit | **Never** — canonical copy lives on the GitHub issue/PR |3435Do **not** place drafts in `.cursor/test-plan-issue-*.md` (tracked in the game repo; committed by mistake on #29).3637## Workflow38391. Read the issue/PR scope and touched domains (`Combat`, `Exploration`, `Map`, `Foe`, `GameFlow`).402. Pick a preset from [template.md](template.md) (full skeleton) or [examples.md](examples.md).413. Fill **Setup**, **Automated** (Test Runner tree paths), **Manual** sections (A/B…), **Regressions**, **Spec/ADRs**.424. If a local file is needed, write only to `.cursor/local/test-plans/…` (game repo).435. **Before close-out** on implementation tickets: in **griddungeon-game**, run **fresh-reviewer** after commits on the branch (see [game `.cursor/agents/fresh-reviewer.md`](https://github.com/miramocha/griddungeon-game/blob/main/.cursor/agents/fresh-reviewer.md)) with diff + issue AC only; fix Blockers in follow-up commits before posting the plan / merging.446. Post via `gh issue comment` or edit existing test-plan comment (`gh api` PATCH).457. After user feedback: update sign-off date, check boxes, add **Notes** for N/A/deferred.4647## Defaults (unless the ticket overrides)4849| Topic | Default |50|-------|---------|51| Scene | `DevBootstrap.unity` — regenerate **GridDungeon → Scenes → Create Dev Bootstrap** |52| Phase keys | **F1** Hub, **F2** Exploration, **F3** Combat, **F4** flee, **F6** party ready, **F7** stratum entry |53| Exploration timing | Normal: step **0.28s**, turn **0.26s** ([ADR 018](../../decisions/018-exploration-animation-speed.md)) |54| F3 dev roster | 2 cores + slime when party empty — [game README](https://github.com/miramocha/griddungeon-game/blob/main/Assets/Scripts/README.md) |55| Combat highlight | Core command pick → **party roster**, not AGI strip ([combat.md](../../docs/02-systems/combat.md#turn-order-strip-agi-queue-ui)) |56| Edit Mode tree | `Tests → <Domain> → <Fixture>` — [Assets/Tests/README.md](https://github.com/miramocha/griddungeon-game/blob/main/Assets/Tests/README.md) |57| Exploration **Esc** (map not fullscreen) | Pause: **Resume** / **Quit to title** (confirm). **No** hub from pause ([ADR 014](../../decisions/014-mvp1-exploration-map.md) §7) |58| Exploration **Esc** (map fullscreen) | Closes fullscreen map only ([ADR 014](../../decisions/014-mvp1-exploration-map.md)) |59| Return to **hub** from exploration | In-world only: stairs (gate), items, exits/gates, events, defeat — not pause ([game phase](../../docs/02-systems/game-phase.md#return-to-hub-exploration-only)) |60| Combat **Esc** | Resume / Settings only ([ADR 015](../../decisions/015-mvp1-combat.md)) |6162## Section letters (manual primary)6364Use one block per feature area; keep numbering **global** across the plan (e.g. A1 steps 1–6, A2 steps 7–10):6566| Block | Typical scope |67|-------|----------------|68| **A1** | Phase visibility / HUD show-hide |69| **A2** | Domain-specific UI (strip, map, hub panel) |70| **A3** | Input / commands / keyboard parity |71| **A4** | Data display (HP, labels, save) |72| **A5–A6** | Placeholders, dev HUD coexist |73| **B** | Short cross-phase regressions (~5 min) |7475## Sign-off block7677Always end with a dated checklist (copy from [template.md](template.md)). Separate **verified** date from **pending** Edit Mode line.7879## Resources8081- Full copy-paste template: [template.md](template.md)82- Examples (#34 combat HUD, #27 exploration pause): [examples.md](examples.md)