0384efae
docs: serve sprint demos locally unless publishing is requested
a73x 2026-09-06 09:28
Commit message
docs/native-sprint-workflow.md
| Old | New | ||
|---|---|---|---|
| @@ -126,7 +126,7 @@ packages. Keep one sprint active, ending in a working demo and explicit acceptan | |||
| 126 | A sandbox denial is not a product failure: run required local socket/PTY checks with the appropriate | 126 | A sandbox denial is not a product failure: run required local socket/PTY checks with the appropriate |
| 127 | authorized permissions. Rerun affected gates after meaningful changes; do not | 127 | authorized permissions. Rerun affected gates after meaningful changes; do not |
| 128 | repeatedly run broad suites without a new reason. | 128 | repeatedly run broad suites without a new reason. |
| 129 | 9. **Record and share the actual demo.** Use Rig with `MUXG_VIDEODRIVER=wayland` | 129 | 9. **Record and serve the local demo.** Use Rig with `MUXG_VIDEODRIVER=wayland` |
| 130 | and the current compositor environment. Create fixtures, focus the owned GUI, | 130 | and the current compositor environment. Create fixtures, focus the owned GUI, |
| 131 | and drive the same user controls being delivered. Capture the actual compositor | 131 | and drive the same user controls being delivered. Capture the actual compositor |
| 132 | window continuously; on Sway, find its rectangle by PID with `swaymsg -t get_tree` | 132 | window continuously; on Sway, find its rectangle by PID with `swaymsg -t get_tree` |
| @@ -149,15 +149,11 @@ packages. Keep one sprint active, ending in a working demo and explicit acceptan | |||
| 149 | 149 | ||
| 150 | Keep the page usable on desktop and mobile. Retain its source beside the | 150 | Keep the page usable on desktop and mobile. Retain its source beside the |
| 151 | sprint records and its video outside temporary fixture directories. Verify | 151 | sprint records and its video outside temporary fixture directories. Verify |
| 152 | page loading, video metadata and seeking before sharing. Use the established | 152 | page loading, video metadata and seeking. Serve the page and its assets on |
| 153 | private sharing route within the user's authorized scope; preserve unrelated | 153 | localhost by default, using a loopback HTTP server with byte-range support. |
| 154 | services and demos awaiting review. Give the user the webpage URL in the final | 154 | Give the user the local webpage URL, with the direct video link on the page. |
| 155 | handoff, with the direct video link available from the page. | 155 | Publishing is optional and happens only when explicitly requested; do not |
| 156 | 156 | ask about publishing during routine sprint delivery. Preserve unrelated services. | |
| 157 | The user has authorised sharing mux sprint review pages and their demo assets | ||
| 158 | privately on their own Tailscale so they can review from all their devices. | ||
| 159 | Treat that as standing authorization for this handoff; use the existing | ||
| 160 | private Serve host and preserve unrelated routes and services. | ||
| 161 | 157 | ||
| 162 | Build both demo binaries together in an isolated release prefix: | 158 | Build both demo binaries together in an isolated release prefix: |
| 163 | 159 | ||
| @@ -182,19 +178,9 @@ packages. Keep one sprint active, ending in a working demo and explicit acceptan | |||
| 182 | path. Cursor-warp commands can move the visible cursor without delivering | 178 | path. Cursor-warp commands can move the visible cursor without delivering |
| 183 | held-button motion. Verify actual divider movement and release, then check PTYs. | 179 | held-button motion. Verify actual divider movement and release, then check PTYs. |
| 184 | 180 | ||
| 185 | For a user on the same tailnet, serve only the demo page/video through a loopback | 181 | Verify playback and HTTP range responses. Retain the recording outside |
| 186 | HTTP server with byte-range support, then use Tailscale Serve: | 182 | temporary fixture directories and record the server's teardown command. |
| 187 | |||
| 188 | ```sh | ||
| 189 | tailscale serve status | ||
| 190 | tailscale serve --bg --https=443 --set-path /SPRINT-ROUTE http://127.0.0.1:18765/SPRINT-ROUTE | ||
| 191 | ``` | ||
| 192 | 183 | ||
| 193 | Check existing routes before changing them; preserve unrelated services. Use | ||
| 194 | the private HTTPS URL printed by Serve. Verify playback/HTTP range responses, | ||
| 195 | retain the recording outside temporary fixture directories, and record the | ||
| 196 | server's teardown command. Funnel and audio are unnecessary for this workflow. | ||
| 197 | Replace `SPRINT-ROUTE` and the port with the recorded demo's values. | ||
| 198 | 10. **Close honestly.** Inspect the final diff, commit validated work, and provide | 184 | 10. **Close honestly.** Inspect the final diff, commit validated work, and provide |
| 199 | the review webpage with the demo, controls, test results, and material limits. | 185 | the review webpage with the demo, controls, test results, and material limits. |
| 200 | User demo acceptance is | 186 | User demo acceptance is |
| @@ -202,15 +188,8 @@ packages. Keep one sprint active, ending in a working demo and explicit acceptan | |||
| 202 | or a hands-on trial, and capture any requested ergonomic adjustments separately. | 188 | or a hands-on trial, and capture any requested ergonomic adjustments separately. |
| 203 | Update the spec/plan status and RETRO.md with resolved findings and checkable | 189 | Update the spec/plan status and RETRO.md with resolved findings and checkable |
| 204 | next-sprint actions. Mark acceptance only when given; a recorded-demo approval | 190 | next-sprint actions. Mark acceptance only when given; a recorded-demo approval |
| 205 | does not imply hands-on feedback. On acceptance, remove only that demo's route | 191 | does not imply hands-on feedback. On acceptance, stop that demo's owned |
| 206 | with `tailscale serve --https=443 --set-path /SPRINT-ROUTE off`, then stop its | 192 | server and remaining GUI, recorder or compositor fixtures; remove any sharing |
| 207 | recorded server and any remaining owned GUI, recorder or compositor fixtures. | 193 | route created at the user's request. Recheck process ownership and verify |
| 208 | Recheck process ownership before stopping a recorded PID. Verify that the route | 194 | teardown. Preserve unrelated services and retain the page, recording and |
| 209 | and processes are gone and unrelated routes remain; record teardown in the | 195 | validation evidence. Then begin the next authorized sprint with step 1. |
| 210 | sprint notes. Keep the page source, recording and validation artifacts. Do not | ||
| 211 | use global Serve reset/off or leave accepted demos running unless requested. | ||
| 212 | Then begin the next authorized sprint with | ||
| 213 | step 1. | ||
| 214 | |||
| 215 | Sprint 2 established the recorded Sway/private Serve demo route. Sprint 3 adds the | ||
| 216 | opening cleanup pass by user request; keep the closing cleanup as well. | ||
docs/skills/sprint-delivery/SKILL.md
| Old | New | ||
|---|---|---|---|
| @@ -87,7 +87,9 @@ place by removing duplication or simplifying dependencies. | |||
| 87 | adapter uses; moving files alone does not establish isolation. Freeze source | 87 | adapter uses; moving files alone does not establish isolation. Freeze source |
| 88 | before final checks; rerun affected checks after meaningful changes. Demonstrate | 88 | before final checks; rerun affected checks after meaningful changes. Demonstrate |
| 89 | the working result, including relevant failure paths. A recording must show | 89 | the working result, including relevant failure paths. A recording must show |
| 90 | the actual application, not a slideshow. | 90 | the actual application, not a slideshow. Serve the review page and assets on |
| 91 | localhost by default. Publish only when the user explicitly requests it; | ||
| 92 | do not prompt for optional publishing during routine delivery. | ||
| 91 | 6. **Close and hand off.** Commit validated work within existing authorization. | 93 | 6. **Close and hand off.** Commit validated work within existing authorization. |
| 92 | Update the spec/plan and ownership map to match the delivered code. Record | 94 | Update the spec/plan and ownership map to match the delivered code. Record |
| 93 | results, removed duplication/paths, justified retained debt, lessons, and | 95 | results, removed duplication/paths, justified retained debt, lessons, and |
| @@ -132,5 +134,4 @@ separately from frame timing, and state polling overhead or other material limit | |||
| 132 | 134 | ||
| 133 | Keep platform-specific gates and demo mechanics in project documentation. In mux, | 135 | Keep platform-specific gates and demo mechanics in project documentation. In mux, |
| 134 | the documented native gates complement `make ci`; the raw-output gate builds both | 136 | the documented native gates complement `make ci`; the raw-output gate builds both |
| 135 | the daemon and GUI in release mode. Preserve existing services when sharing a | 137 | the daemon and GUI in release mode. Preserve existing services when serving a demo. |
| 136 | demo, and use only the sharing scope the user authorized. | ||
docs/superpowers/plans/2026-09-06-native-text-selection.md
| Old | New | ||
|---|---|---|---|
| @@ -82,7 +82,7 @@ needed for clipboard evidence. Any broader hook extraction requires a concrete | |||
| 82 | benefit rather than an arbitrary file split. Reuse the existing Rig and recorder | 82 | benefit rather than an arbitrary file split. Reuse the existing Rig and recorder |
| 83 | assets with isolated XDG state and compositor addresses. | 83 | assets with isolated XDG state and compositor addresses. |
| 84 | 84 | ||
| 85 | Deliver a private Tailscale review page with achievements, actual GUI recording, | 85 | Deliver a localhost review page with achievements, actual GUI recording, |
| 86 | controls, checks and limitations. Preserve demos awaiting review; tear down accepted | 86 | controls, checks and limitations. Preserve demos awaiting review; tear down accepted |
| 87 | demo routes and owned processes while retaining their artifacts. Record demo approval | 87 | demo routes and owned processes while retaining their artifacts. Record demo approval |
| 88 | only after the user gives it. | 88 | only after the user gives it. |