| name | test-plan-grid-dungeon |
| description | 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. |
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.
- Edit Mode with Editor open: run tests via editor-agent-test skill —
request-test-status.ps1 -Category <Domain> only (handoff default). No -Fixture / -Test for agents (brittle). No Unity.exe -batchmode -runTests while Editor may be open (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).
- Automated section: agent runs cite
request-test-status.ps1 -Category <Domain>; name Tests → <Domain> → <Fixture> from the PR/diff for manual Test Runner or documentation (Assets/Tests/README.md is domains/conventions only).
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: domains + fixture classes from the PR diff — not README inventory), 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; honor .cursor/review-config.json when the branch adds/renames C# types; 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 (agent) | request-test-status.ps1 -Category <Domain> — one domain per run; see editor-agent-test |
| Edit Mode (manual) | Test Runner → Tests → <Domain> → <Fixture> — classes from the ticket diff |
| 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