79 lines
3.0 KiB
Markdown
79 lines
3.0 KiB
Markdown
---
|
|
id: PLN-0166
|
|
ticket: hub-suspended-game-kill-affordance
|
|
title: Publish Hub Kill Contract Spec And Lesson Hooks
|
|
status: open
|
|
created: 2026-07-05
|
|
ref_decisions: [DEC-0040]
|
|
tags: [hub, lifecycle, game, ui]
|
|
---
|
|
|
|
## Briefing
|
|
|
|
DEC-0040 introduces a user-visible Hub lifecycle control. Any canonical spec covering Hub, lifecycle, resident games, or cartridge switching must reflect the accepted contract before implementation is considered complete.
|
|
|
|
## Objective
|
|
|
|
Publish the Hub suspended-game kill contract in the appropriate canonical spec location and prepare the discussion thread for post-execution lessons.
|
|
|
|
## Dependencies
|
|
|
|
- Source decision: DEC-0040.
|
|
- Should run after PLN-0164, PLN-0163, and PLN-0165 identify the exact final module boundaries.
|
|
|
|
## Scope
|
|
|
|
- Locate canonical specs for Hub behavior, SystemOS lifecycle, resident game state, and cartridge switching.
|
|
- Add English normative text for the red bottom-right kill affordance.
|
|
- Document the cleanup contract at the spec level.
|
|
- Document required log/event behavior.
|
|
- Leave lesson creation for post-execution housekeeping.
|
|
|
|
## Non-Goals
|
|
|
|
- Do not create lessons before implementation is complete.
|
|
- Do not move discussion artifacts into legacy docs paths.
|
|
- Do not reopen DEC-0040 semantics unless implementation proves the contract insufficient.
|
|
|
|
## Execution Method
|
|
|
|
1. Locate canonical specs.
|
|
- Search existing `specs/`, runtime docs, or repository-approved spec paths.
|
|
- Do not write new normative text under `discussion/lessons/`.
|
|
|
|
2. Update Hub spec text.
|
|
- State that Hub shows a bottom-right red control when a `Game` resident/suspended cartridge exists.
|
|
- State that the control displays only the game title.
|
|
- State that click kills immediately and keeps the user in Hub.
|
|
|
|
3. Update lifecycle/spec text.
|
|
- State that manual Hub kill uses the same resident-game termination path as cartridge switching.
|
|
- State cleanup obligations: task/process, VM session, resident state, render ownership, audio lifecycle, composer, assets, physical banks.
|
|
- State that the killed game cannot be resumed.
|
|
|
|
4. Update logging/spec text if a logging contract exists.
|
|
- Record the required INFO event and message shape.
|
|
|
|
5. Prepare housekeeping note.
|
|
- After implementation and validation, run discussion housekeeping for DSC-0044 with an English lesson if the implementation yields durable knowledge.
|
|
|
|
## Acceptance Criteria
|
|
|
|
- [ ] Canonical spec text exists for the Hub kill affordance.
|
|
- [ ] Spec text is in English.
|
|
- [ ] Spec text includes visibility, layout, click behavior, cleanup, no-resume behavior, and log event requirements.
|
|
- [ ] No normative text is added to `discussion/lessons/`.
|
|
- [ ] `discussion validate` passes after artifact/spec updates.
|
|
|
|
## Tests
|
|
|
|
- `discussion validate`
|
|
- Documentation/spec review against DEC-0040
|
|
- Any repository doc lint/check if present
|
|
|
|
## Affected Artifacts
|
|
|
|
- Canonical specs location, to be identified during execution
|
|
- `discussion/workflow/plans/`
|
|
- Later `discussion/lessons/` only through housekeeping after implementation
|