HardYards/LANE_PROMPTS.md
m3ultra 8338c0fa99 Add 3D execution plan, lane prompts, and THREADS log
PLAN3D.md: locked stack (vendored three.js r175 + stdlib server, DJsim
house style), verified asset inventory on the M1 Ultra, module contracts,
five parallel lanes (world/sail/weather/player/assets) with acceptance
criteria and integration order.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-07-16 21:05:57 +10:00

80 lines
4.5 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# Lane launch prompts (Opus 4.8, run on the M1 Ultra)
Per lane: clone `git@gitea.partly.party:monster/shades.git` to
`~/Documents/shades-lane<X>`, branch `lane/<x>`, paste the prompt.
Lane A starts first; B/C/D/E can start immediately after in parallel
(they develop against contracts + selftest mocks until A's M0 merges).
---
## Lane A — world, shell & integration
> You are Lane A on SHADES 3D. Read PLAN3D.md fully (you own §5 Lane A), then
> DESIGN.md, then play prototype/ (`python3 -m http.server 8642 --directory
> prototype`). Build the M0 skeleton exactly per PLAN3D §3/§4/§5-A: vendored
> three.js copied from ~/Documents/90sDJsim/web/world/vendor/, stdlib server.py
> on 8801, contracts.js, graybox 30×20 m yard with house edge/trees/posts/garden
> bed, third-person camera, sun lighting, selftest.html harness. Merge M0 to
> main as fast as possible — every other lane rebases on you. Then build the HUD
> against mock data, and act as merge shepherd per PLAN3D §6. Log every landing
> in THREADS.md.
## Lane B — sail simulation & rigging
> You are Lane B on SHADES 3D. Read PLAN3D.md fully (you own sail.js +
> rigging.js, §5 Lane B), DESIGN.md §geometry/§hardware, and prototype/game.js —
> your job is the faithful 3D port of its cloth/load/failure behavior. Build the
> 3D verlet cloth with per-FACE wind pressure (F ∝ area·dot(wind,normal)²) so
> hypar twist genuinely sheds load — prove it with the selftest assert (twisted
> rig peak load < flat rig peak load in the same storm). Corner load = smoothed
> incident-spring stretch; break after 0.4 s sustained overload; flogging must
> be emergent from the freed node. Then the prep-phase rigging UI with the
> prototype's economy. Until Lane A's M0 merges, develop inside selftest.html
> with a stub wind function; keep every module deterministic (dt,t in — no
> Date.now, no rAF in sim code). Log in THREADS.md.
## Lane C — weather, sky & debris
> You are Lane C on SHADES 3D. Read PLAN3D.md fully (you own weather.js,
> skyfx.js, debris.js, data/storms/, §5 Lane C) and prototype/game.js's gust
> scheduler — port its telegraph/ramp/hold/fade shape. Implement
> wind.sample(pos,t) per contracts.js: base curve + gusts + direction change +
> spatial noise + tree wind-shadow. Storms are data (JSON, PLAN3D §4) — author
> storm_01_gentle and storm_02_wildnight. Then instanced rain following local
> wind, storm sky + lightning flash, WebAudio layers (wind bed, gust whoosh,
> rope creak keyed to max corner load, flog when broken), and hand-rolled
> debris (crates/tubs from models/debris/) with player knockdown + sail impulse.
> No physics engine, no deps. Selftest: telegraph lead ≥1.2 s, wind continuity,
> storm JSON validator. Log in THREADS.md.
## Lane D — player character & interaction
> You are Lane D on SHADES 3D. Read PLAN3D.md fully (you own player.js +
> interact.js, §5 Lane D) and 90sDJsim's DEVMANUAL rigged-characters section
> (~/Documents/90sDJsim/DEVMANUAL.md) — its loading rules are law
> (SkeletonUtils.clone, head-bone height normalize, never blind setScalar).
> Copy a ped from ~/Documents/90sDJsim/web/world/models/peds/ into models/
> (copies rule), merge Walk/Running/Happy Idle clips via ~/Documents/
> character_kit/ pipeline; queue Climbing Ladder / crank / dig on the
> ~/Documents/mixamo-fetch wishlist for M3. Camera-relative WASD + anim state
> machine, wind slow/shove/knockdown per PLAN3D, and hold-E interactions via
> interact.register (re-rig with spare 2.5 s, per-corner turnbuckle trim 1.2 s,
> carry-one-item from shed table). Selftest: state machine table test. Log in
> THREADS.md.
## Lane E — nature & hardware assets (Blender)
> You are Lane E on SHADES 3D. Read PLAN3D.md fully (you own tools/blender/ +
> models/, §5 Lane E). Study the house Blender-scripting idiom in
> ~/Documents/3D-STORE/build_booth_room_v23.py and racks_to_glb.py, then write
> ONE deterministic tools/blender/build_yard_assets.py that generates every
> deliverable in PLAN3D §5-E (gum trees with named canopy/branch_anchor nodes,
> fence set, house_yardside with fascia_anchor empties, shed + table, garden
> bed with 3 damage states, raked sail post, ladder, close-up shackle/
> carabiner/turnbuckle, ref_capsule) and exports meter-scale Y-up GLBs, <15 k
> tris, low-poly stylized to sit beside the 90sDJsim ped fleet. Also copy +
> scale-check the debris set from ~/Documents/3D-STORE/clean_glbs/ into
> models/debris/. Verify every export by rendering a contact sheet against the
> 1.7 m ref capsule (the 3D=models/_thumbnails pattern). Commit script AND
> GLBs. Log in THREADS.md.