# Test Strategy ## Scope The risk-based completion boundary for audit C06 (2026-09-09), agreed on 2026-09-17, is regression coverage of important workflows, not elimination of every source-text assertion. Beads task `sokko-g-zsd` tracks acceptance and status. This document is a coverage reference, not a separate task backlog. An inventory found 350 `match` / `doesNotMatch` calls across the static app, toolbox and style tests before the final batch. This counts assertion calls, not bugs, missing scenarios or a percentage of work remaining. ## Coverage Boundary | Risk | Behavioral coverage | | --- | --- | | Data loss, startup failure, deferred media | `e2e/persistence.spec.js`, `storage-startup.spec.js`, `deferred-media.spec.js`; Node persistence queue and image action tests | | React lifecycle, shared editing and navigation | `e2e/editor-lifecycle.spec.js`, `inline-edit.spec.js`, `form-reorder.spec.js`, `shell-behavior.spec.js`, `session-state.spec.js` | | Shared reorder policy and module order | `e2e/grouped-reorder.spec.js`, `module-order.spec.js` | | Toolbox creation, import/export, text exchange | `e2e/toolbox.spec.js`, `text-exchange.spec.js`; Node toolbox module tests | | Links: creation, copy, category removal preserving links, deletion and reload | `e2e/basic-tools.spec.js` | | Counters: creation, signed values, reset, deletion and reload | `e2e/basic-tools.spec.js` | | Checklist: quantities, clamping, completed category visibility and persistence | `e2e/basic-tools.spec.js` | | Planner: editing, recurrence, prerequisites, subtree reorder and persistence | `e2e/task-planner.spec.js` | | Representative visual states and responsive layouts | `e2e/style-layouts.spec.js`, `tool-style-states.spec.js`, `card-surfaces.spec.js`, `nds-controls.spec.js`, `nds-patterns.spec.js` | | Production onboarding | `e2e/production/onboarding.spec.js` | These suites cover selected risks, not every permutation of every tool. Public formats, product vocabulary, editorial validation, security restrictions and deliberate architecture constraints retain static or pure-function tests. Implementation-name assertions can be replaced when their owning code changes; their mere presence is not a functional defect. ## Optional Extensions Exhaustive advanced tool variants (calendar recurrence operations, goal graph combinations, equipment and combo permutations), every text-exchange UI adapter, fine calculator geometry and wholesale conversion of remaining implementation assertions are outside this closure boundary. They are candidates when related features change or a concrete regression demonstrates missing coverage, not automatic follow-on batches required to finish this audit. ## Validation Run targeted tests while implementing a grouped change, then `npm run check:full` as the final gate: lint, Node tests, build, development E2E and production E2E. Review the diff and report actual failures or limits before closing the task. Do not introduce visual snapshots solely to prove that a page loads. Keep detailed command logs outside tracked source and report concise results.