a73x

0384efae

docs: serve sprint demos locally unless publishing is requested

a73x   2026-09-06 09:28

Commit message
docs: serve sprint demos locally unless publishing is requested

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.