# Pending playtesting and completion gates Updated: 23 October 2026. Human playtesting is deferred because the user is currently unavailable. This file collects the remaining acceptance for the current enemy AI work and links the wider first-stage gates. Implementation and automated qualification can progress separately; neither records a human pass. The [current brief](PROJECT_PLAN.md), [enemy implementation roadmap](superpowers/plans/2026-10-13-enemy-ai-implementation.md) and [engagement replacement plan](superpowers/plans/2026-10-23-engagement-pursuit-replacement.md) remain the source of scope and dependencies. The replacement plan has four tasks; its Task 4 is qualification and the keep/tune/revert decision, not a fifth feature. ## Acceptance already supplied - [x] Engagement Tasks 1–2: the user reports they are good based on human playtesting. Do not infer unreported co-op, hardware or separate-network coverage. - [x] Task 3 overhead diagnostics: the user accepts the visual inspection. - [x] Task 4 bounded automated qualification: completed 23 October 2026; exact current proof, compatible reuse, retained failures and limits are in the [Task 4 record](superpowers/plans/2026-10-23-engagement-replacement-task4.md). - [ ] Task 3 diagnostics during actual gameplay: still required. Static visual acceptance does not establish timing, moving readability or behavioral accuracy. - [ ] Engagement Task 4: remaining gameplay coverage and explicit keep/tune/revert. The scenarios below specify coverage still to record, not a demand to repeat already accepted observations. Identify which build, roster and scenarios previous feedback actually covered before reusing it. Changes after acceptance require only the affected recheck, with the original result retained. ## Start the engagement playtest Open **ProjectI > Debug > Enemy AI > Shooter sandbox**. Quick checkpoints are also under **ProjectI > Enemy behavior > Engagement checkpoint**: normal shooter, three normal shooters, large shooter and melee. Use the sandbox's E01–E13 exercise selection and normal/large/C2 pack launch controls. E06 supplies the paid melee fixture for its individual launch; C2 pack + elite does not itself create human peers. If resuming a paused checkpoint, press **F5 after resuming** for fresh actors and clocks. Record the active exercise and captured startup values; next-reset edits do not describe current actors. The current baseline is a 20-second pursuit attempt, two-second consecutive bolt confirmation, immediate distinct valid melee admission and full three-second Breakoff. Use the actual captured values if tuning changes. The [settings reference](ENEMY_AI_SETTINGS.md#engagement-replacement-checkpoint-and-overhead-inspection) explains the controls and activity legend. Temporary fixture geometry is disposable; use **Stop sandbox / restore Editor scenes** when done. Preserve authored terrain and NavMeshes; no rebuild or rebake is part of this checklist. ## Engagement and Task 3 gameplay observations For each relevant row compare normal shooter, large shooter and melee where their capabilities apply. Cover both a single enemy and multiple simultaneous actors. The exercise controls supply setups and instructions; launching one is not a pass. | Done | Exercise | Observation still to record | |---|---|---| | [ ] | E01 MovingFight | Useful combat remains convincing as the fight moves, including across the former combat-area boundary. Each actor's A/P/F/B phase matches its behavior. | | [ ] | E02 ReachableDetour | An out-of-range stationary player produces a supported finite approach, including useful detours/stairs and normal/large differences. No wall crossing, edge snapping or indefinite approach. | | [ ] | E03 CoverExit | Breaking sight to reload or leave unseen buys time. Search uses captured evidence rather than following the hidden player; firing still requires own sight and a clear lane. | | [ ] | E04 FreshEvidence | Brief peeks, potshots and new reports do not visibly refill spent search or restart the same pursuit countdown. Revised search follows genuine new evidence. | | [ ] | E05 RealCombatReturn | Sustained legitimate bolt combat restores Fight; interrupted contact cannot accumulate confirmation. A new valid melee attack confirms immediately, including a dodged miss. | | [ ] | E06 ShortMeleeExchanges | Repeated short exchanges feel responsive. Retries, proximity and incoming damage do not impersonate a new admitted attack. Losing the opportunity starts a finite attempt. | | [ ] | E07 LongAttackCycle | Preparation, shooting, commitment and paid recovery are distinguishable. A departed target is not pursued indefinitely because an animation or cooldown remains. | | [ ] | E08 BreakoffReturn | Expiry gives a visible full interruption to target-seeking movement. Returning into legal fire/melee range is dangerous, but does not restore pursuit travel early. | | [ ] | E09 RepeatedCycles | Repeated fight/retreat/reassessment gives usable escape and repositioning space. Fixed regroup or holding does not become periodic enemy trains or synchronized mass disengagement. | | [ ] | E10 SplitTargets | With actual two/four-player control, pressure remains useful across split/swapped targets. Members retain independent phases/deadlines; contrast actual sustained combat against another player with sight/damage-only swaps. | | [ ] | E11 InterruptedWork | Root, stun, yielding, blocked paths and crowded movement produce understandable bounded behavior and stop reasons; interruption does not visibly restart the pursuit allowance. Query starvation and exact boundaries also need automated proof. | | [ ] | E12 AllyClearance | A blocked rear shooter makes a bounded useful step while the productive front shooter continues. Hidden relocation is not tracked; impossible clearance stops without jitter or endless retries. Alert turning alone does not count as Fight. | | [ ] | E13 LifecycleCleanup | Death, F5, disconnect, stage/session change and stop/relaunch clear old labels and behavior. Replacement actors do not inherit old task bars, claims, pursuit or attack cues. | Across those exercises, explicitly check the diagnostic behavior: - [ ] Labels stay above the correct enemy and face the local camera while enemies and the camera move. Judge near/far actors, crowded overlap and combat HUD legibility. - [ ] Phase and activity remain independent: pressure approach, direct pursuit, wall/prediction search, shooting, melee, observation, recovery and holding are attributed to actual current work. Disabled/finished owners are not shown as active. - [ ] The named time bar describes the current bounded task; enclosing pursuit, search and Breakoff countdowns remain understandable. Fight has no invented expiry. - [ ] Search travel spent/remaining, prediction attempts and inspections agree with observed progress. Finished allowance is visibly inactive, not a fresh budget. - [ ] Stop reasons explain blocked routes, exhausted allowances, finished/no-useful predictions or awaiting reassessment. Historical outcomes cannot be mistaken for the current reason for holding. - [ ] Turning overheads/text inspection on and off causes no perceptible gameplay change or unacceptable cost at representative enemy load. Automated neutrality checks remain the proof of owner/RNG/claim/deadline isolation. - [ ] With two squad observers reporting, an admitted approach stays coherent as newer reports arrive. Its original countdown does not refill; losing its original witness or report permission stops that work without granting hidden firing knowledge. Exact clock boundaries, authority, source lifetimes and budget conservation are automated contracts as well as useful observations. Human inspection alone does not close them. Death, an unfinished exercise or an absent capture is incomplete. ## Other open enemy milestones ### M8 — crawler/melee acceptance M8's isolated implementation already exists; its implementation checklist is largely checked. The explicitly unchecked gameplay item is mixed melee/shooter pressure. The [M8 record](superpowers/plans/2026-10-13-enemy-ai-implementation.md#m8--restore-melee-with-committed-avoidable-lunges) retains the broader qualification and presentation limits. - [ ] Read the windup and dodge a strike/lunge before and after commitment. A late dodge earns a miss without a late heading/target change or an immediate free retry. - [ ] Play mixed melee/shooter pressure: crawlers close to their own attack range, do not inherit shooter stand-off and do not wait for a slower group member. - [ ] Judge walls, bridge/stair edges, root/stun/slow and paid recovery during actual combat. No unsafe snapping, obstacle penetration or confusing contact after a dodge. - [ ] Compare Root before an out-of-range strike, Root with valid close contact, and Root arriving after a lunge has already been paid. Distant rooted enemies should hold without buying strikes; close contact and existing paid recovery remain understandable in the engagement labels and timers. - [ ] Compare host and remote lunge warnings, commitment, contact and recovery in independently controlled two/four-player sessions with representative latency. - [ ] Record the crawler's moving/lunging opportunity together with the replacement engagement phase, shared search allowance and Breakoff. Earlier stationary-strike probes alone do not establish this integrated experience. ### M6 coordination, alerts and teammate clearance - [ ] Moving and split parties receive useful independent pressure without exact hidden tracking, instant replacement or every member waiting for the slowest role. - [ ] Original squad reports and eligible roaming-elite cooperation guide awareness; direct attacks still need the role's own permitted evidence and physical clearance. - [ ] Crowd/ally blocking, fresh alerts and unseen relocation remain readable and preserve earned space. Reuse E10–E12 observations when their setup actually covers this. Sources: [M6 gate](superpowers/plans/2026-10-13-enemy-ai-implementation.md#m6--add-moving-encounter-pressure-and-squads), [alert checks](ENEMY_AI_SETTINGS.md#exhausted-enemy-alert-response) and [teammate-clearance checks](ENEMY_AI_SETTINGS.md#teammate-blocked-repositioning). The removed credit/refill/combat-sphere rules in historical records are not new acceptance requirements; the replacement contract governs current actors. ### M7 bounded recovery and hidden retirement - [ ] Use the M7 visible/hidden cover comparison: a visible stranded actor remains present; uncertainty, status interruption or deferred work does not cause disappearance. - [ ] A useful alternate player or legal contribution prevents false retirement. Observe preserved wounds/recovery rather than a healed or immediately replaced actor. - [ ] Eligible hidden retirement is nonlethal and produces no kill/loot/progression reward, split or catch-up group. Check downed observers and lifecycle transitions. - [ ] Record actual solo/co-op acceptance separately from packaged automation. Source: [M7 remaining acceptance and controls](superpowers/plans/2026-10-19-enemy-m7-recovery.md#closure-and-remaining-acceptance). Its recovery/retirement gate remains separate from pursuit expiry; expiry alone is not proof that an actor is stranded. ## Wider completion still has separate owners | Work | Remaining human acceptance / boundary | |---|---| | Current weapon integration | [Sunskipper integration](Art/Weapons/Sunskipper/Integration/README.md) and [weapon plan](superpowers/plans/2026-10-20-weapon-model-integration.md): handling, framing and combat readability remain recorded separately. | | Movement and reference weapon feel | The [current brief](PROJECT_PLAN.md#current-state-and-next-step) retains directional movement, ADS/sprint and handcannon follow-ups. Enemy acceptance does not close these. | | M9–M14 role restoration | Bombardier, Keeper, Lancer, Bulwark, Splinterbeast and bosses are future implementation/acceptance work, not completed roles waiting only for this playtest. | | M15–M17 first-stage completion | Production roster binding, full-roster integrated proof, actual solo/two/four-player stage play, specialist/revive/boss/build-variety comparisons, representative hardware and separate-network acceptance remain in the [original roadmap](superpowers/plans/2026-10-13-enemy-ai-implementation.md#m15--promote-the-verified-roster-into-authored-content). | Completing the current enemy checkpoint does not complete the unimplemented roster or all first-stage acceptance. Track additional feature handbacks here by linking their own source/evidence and specific remaining human observations. ## Recommended work while human playtesting is unavailable The previously recommended automated work is complete for the current checkpoint: full suites were executed, demonstrated blockers corrected with affected rechecks, M8/current-cycle native proof retained, matching builds/exclusion checked and actual two/four-peer coordination, lifecycle, arena, menu and Verdant progression exercised. The [Task 4 record](superpowers/plans/2026-10-23-engagement-replacement-task4.md) distinguishes fresh proof from compatible per-leaf/release reuse and preserves RED artifacts. This does not close unrelated historical campaigns or first-stage gates. **Next is the human session above.** No additional crawler feature is required before that playtest. Keep the launch paths, matching checkpoint and targeted Root/ report-source observations ready; do not tune feel or select keep/tune/revert while the required feedback is unavailable. Read-only preparation for later roles can continue without treating those dependent milestones as authorized implementation. **Next new roster implementation is M9 Bombardier**, not another unimplemented crawler milestone. M9 depends on M6–M8. Close their required gates first, or obtain an explicit scoped exception before starting an isolated M9 implementation; no such exception is granted by this document. Read-only review of Bombardier's existing authored values, personal-memory contract and ballistic/warning seams is useful preparation while gameplay acceptance is unavailable. Production activation remains a later gate. This document records and recommends work; it does not start tests, fixes or M9. Use [TESTING](TESTING.md) and the [catalogue](TEST_CATALOGUE.md) when executing an authorized verification batch. No new Natural-arrival campaign attempts are implied. ## Record results and close only the completed scope For each session record date, exact source/build, exercise, roster, captured tuning, solo/host/client roles, player count, latency/network conditions, hardware/quality, observations and captures. Mark each row **pass, fail or incomplete**, with a specific issue for failures. The same observation can close overlapping checklist rows when the conditions match; it cannot fill an unplayed peer/role scenario. - [ ] Record current Task 3 gameplay readability/diagnostic acceptance. - [ ] Record the remaining engagement gameplay scenarios and keep/tune/revert. - [ ] Record M8 mixed-role/crawler acceptance and outstanding M6/M7 observations. - [x] Complete Task 4's bounded automated/build/peer qualification and source reviews; retain exact reuse and historical failures. Human/hardware/separate-network and production promotion gates remain open. The user-authorized [AI source checkpoint](superpowers/plans/2026-10-23-enemy-ai-checkpoint-commits.md) records the completed implementation without closing those acceptance gates. - [ ] Update the current brief and owning milestone records with the exact accepted scope and any remaining omissions; retain historical failed/incomplete evidence. Documentation-only verification on creation: source-plan comparison, local links, acceptance wording and scoped diff inspection. No Unity operations, tests, gameplay or build execution was performed for this checklist. Subsequent automated qualification is attributed to the linked Task 4 record.