Commit Graph

271 Commits (27daef70a7af8c1916d561211fff3705ea15bbdc)

Author SHA1 Message Date
VinPropane b702b14be4 NEON-28: drop freed occluder keys without material restore 2026-04-10 23:09:12 -04:00
VinPropane e225f1c550 NEON-28: sync plan with review (physics tick, occluder handoff) 2026-04-10 22:53:36 -04:00
VinPropane 6340693b46 NEON-28: run follow camera in physics after Player (fix jitter) 2026-04-10 22:23:50 -04:00
VinPropane 15d304fa2c NEON-28: camera contracts, E6.M2 adjacency, occluder purge 2026-04-10 22:11:40 -04:00
VinPropane 7e674c3710 NEON-28: reconcile plan with Jira (MCP sync) 2026-04-10 21:59:35 -04:00
VinPropane 92104b0b53 NEON-28: add implementation plan for camera hardening 2026-04-10 21:56:44 -04:00
VinPropane 1f5c1e7619 NEON-16: harden idle jitter follow-up
Harden idle settling so flat ground, obstacle contacts, and rare bump-edge cases stop drifting instead of looping corrective nudges. Also resolves the saved review follow-up items and syncs the runtime docs to the final feet-height and idle-anchor behavior.
2026-04-10 00:46:53 -04:00
VinPropane 6f4f5d4350 NEON-16: code review — idle jitter follow-up branch
docs/reviews/2026-04-10-NEON-16-followup.md: Request changes — two
blocking gdlint issues (export var order, line-length on
vertical_arrival_error) plus suggestions and nits.
2026-04-10 00:39:14 -04:00
VinPropane 1f8c0d04d1 NEON-30: address review — check AC boxes, add manual-check section to README 2026-04-09 23:03:17 -04:00
VinPropane 0fa2c0f93b NEON-30: skip occluder bodies in ground-pick raycast loop
ground_pick.gd now checks _collider_is_occluder before the walkable
break: when the ray hits a body in the "occluder" group it advances
OCCLUDER_PICK_THROUGH past the hit point and continues, unconditionally
and regardless of OcclusionPolicy fade state.  Non-occluder click
targeting is unchanged.

Three unit tests added to ground_pick_test.gd covering occluder ancestry
detection.  Plan open questions and module doc updated.
2026-04-09 22:51:22 -04:00
VinPropane f1b4e50729 NEON-27: finalise review (Approved) + Godot uid files
Review verdict updated to Approved; all blocking issues and suggestions
resolved and documented. Add auto-generated Godot .uid sidecar files for
occlusion_policy.gd and occlusion_policy_test.gd.
2026-04-08 23:55:29 -04:00
VinPropane 71232c36ef NEON-27: address review suggestions — doc alignment pass
- Plan: reconcile null-material prose in "Material override strategy"
  to match implementation (null → new StandardMaterial3D, not skipped)
- module_dependency_register.md: E1.M2 note updated — occlusion shipped,
  only integration hardening (NEON-28) remains
- documentation_and_implementation_alignment.md: add E1.M2 tracking row
  (NEON-25–27 shipped, NEON-28 open)
- Review: strike through both suggestions as Done
2026-04-08 23:52:46 -04:00
VinPropane 5e16fdccc8 NEON-27: restore occluders on all _process early-return paths
Fixes review blocking issue: when the follow target is null (freed,
renamed, or path unresolved) or the Camera3D child is missing,
_restore_all_occluders() is now called before returning so geometry
cannot be left stuck semi-transparent.
2026-04-08 23:50:48 -04:00
VinPropane 8bc2efb854 NEON-27: check off all acceptance criteria; record PR screenshots
Before/after evidence: obstacle fades to ~25% alpha when occluding the
player; restores on clear. All three ACs satisfied.
2026-04-08 23:42:31 -04:00
VinPropane 15d405261f NEON-27: implement OcclusionPolicy — RayCast-based material fade
Adds OcclusionPolicy resource and wires it into IsometricFollowCamera.
Each _process frame, iterative rays from the camera eye to the player
focus detect bodies tagged "occluder"; their MeshInstance3D surfaces are
overridden with a transparent StandardMaterial3D (fade_alpha=0.25, instant).
Materials restore when the body clears the ray. Null-material surfaces
(e.g. the prototype Obstacle with no material assigned) receive a plain
transparent StandardMaterial3D so they fade correctly.

- client/scripts/occlusion_policy.gd — new Resource (enabled, fade_alpha,
  occluder_group, occluder_collision_mask, max_occluder_cast_depth,
  occluder_count_log_threshold, is_valid)
- client/resources/isometric_occlusion_policy.tres — default instance
- client/scripts/isometric_follow_camera.gd — occlusion_policy export,
  _update_occlusion pipeline, _apply_occluder_fade/_restore_occluder helpers,
  static occlusion_policy_is_valid guard, _exit_tree cleanup
- client/scenes/main.tscn — Obstacle tagged "occluder", policy assigned
- client/test/occlusion_policy_test.gd — new GdUnit4 unit tests
- client/test/isometric_follow_camera_test.gd — policy guard static tests
- docs/decomposition/modules/E1_M2_IsometricCameraController.md — NEON-27
  snapshot + readability demo gate note
- docs/plans/NEON-27-implementation-plan.md — null-material decision recorded
2026-04-08 23:34:00 -04:00
VinPropane b2d2500e6a NEON-27: record planning decisions in implementation plan
Occluder ID: explicit group tag. Fade: instant (no Tween). Non-StandardMaterial3D
surfaces: skip + push_warning. Rationale documented in Decisions table.
2026-04-08 23:28:02 -04:00
VinPropane 185af5a7f6 NEON-27: add implementation plan for OcclusionPolicy
Documents RayCast-based material-fade approach, files to add/modify,
GdUnit4 test coverage, and readability risk gate note.
2026-04-08 23:21:51 -04:00
VinPropane ae643bc81c NEON-26: refresh review after follow-up fixes 2026-04-08 23:00:10 -04:00
VinPropane ff830813c7 NEON-26: address code review follow-ups (zoom validation, docs) 2026-04-08 22:58:28 -04:00
VinPropane b9ec6ccb0f NEON-26: add code review notes for zoom bands 2026-04-08 22:55:37 -04:00
VinPropane 753ce84861 NEON-26: ZoomBandConfig, discrete zoom input, CameraState sync 2026-04-08 22:32:45 -04:00
VinPropane f4a30b1b9d NEON-26: add implementation plan for zoom bands 2026-04-08 22:17:36 -04:00
VinPropane e000da20ee NEON-15: address review nits (shutdown token, plan verification note) 2026-04-08 22:09:12 -04:00
VinPropane adde98e4a8 chore: review follow-up uses strikethrough on suggestions, not extra section 2026-04-08 22:06:17 -04:00
VinPropane 8c3e8c0a03 NEON-15: apply code review doc suggestions (E1.M1 pointers, PR notes) 2026-04-08 21:59:53 -04:00
VinPropane 2617b65f79 NEON-15: add code review (2026-04-08) 2026-04-08 21:58:18 -04:00
VinPropane 62ff210830 NEON-15: log plan decisions; require docs sync for planning/implementation 2026-04-08 21:49:56 -04:00
VinPropane abffd29299 NEON-15: add implementation plan for NpgsqlDataSource shutdown 2026-04-08 21:16:50 -04:00
VinPropane e96f70d889 NEON-25: follow-up from code review (missing target warn, docs, E1.M2 status) 2026-04-07 23:54:27 -04:00
VinPropane f4b34316a6 NEON-25: add code review for isometric follow camera 2026-04-07 23:51:46 -04:00
VinPropane 4930fd89a6 NEON-25: isometric follow camera, CameraState, tests, and docs 2026-04-07 23:46:04 -04:00
VinPropane 262abb5f2e NEON-29: register prototype district story in E1.M2 backlog 2026-04-07 23:38:55 -04:00
VinPropane 644bfc8c3d NEON-25: lock low-controversy camera defaults in implementation plan 2026-04-07 23:34:20 -04:00
VinPropane 00c2c4520e NEON-25: add implementation plan for isometric follow camera 2026-04-07 23:27:44 -04:00
VinPropane 09257b4cc3 chore: align E1.M2 Jira table with NEON-25 summary 2026-04-07 23:21:45 -04:00
VinPropane 2b00de309b chore: expand E1.M2 module doc (Jira backlog, rotation policy)
- Link NEON-10/NEON-25–28 under parent NEON-1 in Summary and Jira backlog table
- Document mid-project-only yaw orbit compromise; post-release camera model settled
- Extend CameraState contract and slice/risk notes accordingly
2026-04-07 23:12:48 -04:00
VinPropane 175c6e0500 chore: document Jira epic→story + labels (no Feature issues)
Module/slice grouping below epics is labels on stories only; Feature
work items are not used. Cross-link from jira-git-naming, story kickoff,
and documentation alignment table.
2026-04-07 00:20:01 -04:00
VinPropane fa19ab7337 chore: migrate Jira references from NS-* to NEON-* in docs and rules
Rename implementation plans and dated reviews to NEON issue numbers per
Atlassian project re-key. Update browse URLs, cross-links, module docs,
client/server READMEs, and Cursor rules (project key NEON).
2026-04-07 00:15:06 -04:00
VinPropane 791c7dad1b
Merge branch 'main' into NS-21-gdscript-unit-testing 2026-04-06 22:22:16 -04:00
VinPropane 7b11d4e238 NS-24: Eliminate idle jitter and movement QA bumps (Godot client)
Physics: Jolt 3D; physics_interpolation off; 120 TPS. CharacterBody3D idle
path uses dual floor_max_angle, rim/straddle and ridged-contact handling,
rim settle and random-floor-bump lip/wall escape, floor_block_on_wall,
NavigationAgent3D avoidance off, per-node interp off. No global_transform in
_process (avoid render/physics ghosting).

QA geometry: random_floor_bumps.gd (load from main.gd); each bump on its own
StaticBody3D under NavigationRegion3D; random_floor_bump_collision_constants.gd
for collider fudge and RANDOM_FLOOR_BUMP_MESH_GROUP.

Scene: player safe_margin and mesh Y lift; MoveRejectPedestal / MoveRejectFarPad
renamed from NS19*; Mat_player_capsule without polygon_offset (per follow-up).

Docs: NS-24 plan + resolution, client/README manual steps, code review
2026-04-05-NS-24.md; server/README bump height note. Code/scene identifiers
avoid ticket-based ns19_* naming.
2026-04-06 00:32:41 -04:00
VinPropane a02e54da2d NS-21: fold test CI into gdscript.yml; document test-with-scripts policy 2026-04-05 21:21:58 -04:00
VinPropane 6ff0c77da5 NS-21: add implementation plan for GDScript unit testing 2026-04-05 21:03:12 -04:00
VinPropane 43b58a8bc7 chore: align E1.M1 decomposition with NS-10 Done (Ready) 2026-04-05 15:16:16 -04:00
VinPropane f412da8f44 docs: Mark NS-23 code review blocking items and suggestions done 2026-04-05 15:04:39 -04:00
VinPropane d22d252b59 docs: Link NS-24 for idle jitter (plan + client README) 2026-04-05 15:04:09 -04:00
VinPropane 14a6813985 NS-23: Document movement tradeoff — no required obstacle auto-nav
Align plan, client/server README, E1.M1 snapshot, and code review note with
the chosen design: descend bypass favors smooth stepped surfaces; multi-click
around obstacles is OK. NS-24 remains for idle jitter.
2026-04-05 14:56:52 -04:00
VinPropane 2891a4553a docs: NS-23 branch code review (2026-04-05) 2026-04-05 14:52:08 -04:00
VinPropane 0ac059fa3b NS-23: NavigationAgent3D path-follow with server move authority 2026-04-05 00:23:03 -04:00
VinPropane 1f4e3c49f6 NS-23: Resolve agent tuning and nav sync risks in implementation plan 2026-04-05 00:14:37 -04:00
VinPropane ec3c0ee4fe NS-23: Add implementation plan and E1.M1 snapshot for path-follow kickoff 2026-04-05 00:10:11 -04:00
VinPropane 32d2153acb NS-19: server move validation, client rejection UX, scene QA props 2026-04-04 23:39:40 -04:00
VinPropane 7f81378361 NS-19: plan walkable bumps and tall pedestal for manual validation 2026-04-04 23:17:16 -04:00
VinPropane 8e421d09c1 NS-19: add files to add/modify and tests sections to plan 2026-04-04 23:14:47 -04:00
VinPropane 95f770d8ea NS-19: lock move validation plan to reject policy 2026-04-04 23:13:10 -04:00
VinPropane b043e8ac45 NS-18: InteractionRequest, client prototype, Postgres test UX
Server: POST /game/players/{id}/interact, HorizontalReach, prototype registry, DTOs, tests; default spawn (-5,0.9,-5); dev HttpLogging.

Client: terminal, radius glow preview, interaction_request_client (interact/E), main wiring; obstacle moved off center.

Tests: postgres.runsettings, launchSettings, Docker compose auto-start/teardown harness, async-safe init.

Docs: plan AC, E1.M1 snapshot, alignment table, server/client README, code review 2026-04-04.
2026-04-04 20:19:33 -04:00
VinPropane 06f9ce8647 NS-18: add implementation plan for InteractionRequest range check 2026-04-04 18:55:13 -04:00
VinPropane f762240ff8 chore: document governing design axioms (fun, cyberpunk theme) 2026-04-04 18:46:55 -04:00
VinPropane 3d9ea1fc6c chore: mark vision-plan suggestion done in final docs review 2026-04-03 22:58:14 -04:00
VinPropane a0544f4d33 chore: final branch docs review and Epic 2 E2.M2 note fix
Add docs/reviews/2026-04-03-final-branch-docs-review.md. Correct epic
E2.M2 integration note: E5.M1 uses gig progression, not E2.M2 skill XP.
2026-04-03 22:55:21 -04:00
VinPropane 0dea48e9fa chore: add zones game-design doc and cross-links
Add docs/game-design/zones.md for place identity (tone, economy, faction
hooks) on the E4.M1 graph, distinct from risk-security-bands tier rules.
Link from overview, README, related vision docs, brainstorm table, and
docs-review-agent; anchor Epic 4 slice 1 for deep links.
2026-04-03 22:47:05 -04:00
VinPropane d192567f57 chore: add game-design risk-security-bands doc
- Add risk-security-bands.md (E4.M4 tiers, E6.M1/M2 PvP + consent, tier gates)
- epic_04: anchor epic-4-slice-2 for security tier slice
- Cross-link death, items, economy, gathering; overview combat stub + index
- Extend docs-review-agent ground truth
2026-04-03 22:35:03 -04:00
VinPropane 6602f78b4b chore: add game-design death-loss-recovery doc
- Add death-loss-recovery.md (E5.M1, E3.M4, E6.M3, recovery, PvE vs PvP)
- Cross-link from overview (incl. combat stub), progression, skills, gigs, items, economy, gathering, crafting, abilities, README
- Extend docs-review-agent ground truth for death/loss
2026-04-03 22:30:11 -04:00
VinPropane 81695f93e4 chore: add game-design economy doc and cross-links
- Add economy.md (faucets, sinks, trade, E3.M5/E8.M3/E6.M4, mission vs loot)
- epic_03: anchor epic-3-slice-4 for stable deep links
- Wire overview, progression, skills, gigs, items, crafting, gathering, abilities, README
- Extend docs-review-agent hybrid ground truth for economy.md
2026-04-03 22:20:39 -04:00
VinPropane 6b7623615d chore: stable Epic 3 slice anchors; deep-links from gather/craft docs
- epic_03: HTML ids epic-3-slice-2 / epic-3-slice-3
- gathering/crafting: where-next and prototype scope use # anchors
- game-design docs review: mark slice nit done; clarify gigs-first nit
2026-04-03 22:14:47 -04:00
VinPropane 1bdc29288d chore: note PEP 668 / venv in docs review verification 2026-04-03 22:13:56 -04:00
VinPropane 0a07f1dec9 chore: mark game-design docs review suggestions done (strikethrough) 2026-04-03 22:02:17 -04:00
VinPropane 6b9f4e8b5f chore: apply game-design docs review suggestions
- overview: drop placeholder artifact table row
- skills: next-pass cites gathering/crafting + E2.M1 slice freeze
- abilities: framing links gather → craft spine
2026-04-03 21:59:39 -04:00
VinPropane 277c25fdd0 chore: add game-design crafting & recipes doc
- Add crafting.md (pipeline, E3.M2 contracts, bench vs gig, module map)
- Cross-link from overview, progression, skills, gigs, items, gathering, abilities, README
- gathering.md: point pipeline follow-up to crafting.md; where-next row
- Extend docs-review-agent hybrid progression list
2026-04-03 21:51:25 -04:00
VinPropane 8d560e0df8 chore: add game-design gathering & resources doc
- Add gathering.md (nodes, Gather skills, gig vs skill XP, E3.M1/E4.M2)
- Cross-link from overview, progression, skills, gigs, items, abilities, README
- Extend docs-review-agent hybrid progression ground truth
2026-04-03 21:47:59 -04:00
VinPropane f45a5d8c06 chore: tie items.md to Epic 3 modules; add combat pillars stub
- items.md: E3.M3 contract summary, Epic 3 module map table, expanded where-next
- overview.md: Combat pillars vision stub with Items row; fix artifact cross-links
- abilities.md: pointer to overview combat pillars stub
2026-04-03 21:44:49 -04:00
VinPropane 940cc71840 chore: add game-design items doc and cross-links
- Add items.md (buckets, acquisition, rarity, loadouts, open questions)
- Link from overview, progression, skills, gigs, abilities, README
- Include items.md in docs-review-agent ground-truth list
- Fix content README path in items.md
2026-04-03 21:42:18 -04:00
VinPropane c90c5baa41 docs: add game-design abilities.md and wire cross-links
- Taxonomy: gig combat abilities, skill interactions, item channels
- Decisions log + open questions; links to Seams, E1.M4, E5.M1, Epic 2/5/7
- overview, progression, gigs, skills, README; docs-review-agent ground truth
2026-04-03 21:39:43 -04:00
VinPropane d1138bfe62 docs: E2.M1 contract column lists allowedXpSourceKinds (nit #2) 2026-04-03 21:34:49 -04:00
VinPropane fe38ebeb4f docs: drop classless terminology; rename Epic 2 to skills and progression
- Rename epic_02_classless_progression.md → epic_02_skills_and_progression.md
- Epic 2 / vision plan: Skills and Progression Framework; clarify gigs vs non-combat skills
- Replace classless prose in README, game-design, E2 modules, reviews, quest_scope
- Plan diagrams: SkillsProgression, SkillXpAndMastery
2026-04-03 21:33:53 -04:00
VinPropane aceb6027bf chore: align Epic 2 title with epic_02 filename (nit #1)
- Rename to Classless Progression Framework in epic, vision plan, README, E2 modules, game-design links
- Update 2026-04-03 review nit status
2026-04-03 21:30:53 -04:00
VinPropane 6599e136d6 chore: CI check for decomposition hybrid vocabulary (suggestion 4)
- Add scripts/check_decomposition_language.py (stdlib); PR gate step
- CT.M1, content README, docs-review-agent, 2026-04-03 review updates
2026-04-03 21:29:28 -04:00
VinPropane d11641159d chore: Epic 2 E2.M1 stub, content CI validation, doc follow-ups
- epic_02: expand E2.M1 module breakdown (non-combat SkillDef, allowedXpSourceKinds)
- PR gate: Python jsonschema validate content/skills vs skill-def.schema.json
- Add scripts/validate_content.py, requirements-content.txt; ignore .venv-content
- CT.M1, E2.M1, internal-content-authoring, content README: document CI spine
- Update 2026-04-03 branch review (suggestions 2–3 done)
2026-04-03 21:27:52 -04:00
VinPropane f9de62b563 chore: branch-wide docs review vs main + Epic 2 objective hybrid wording
- Save docs/reviews/2026-04-03-branch-chore-game-design-docs-vs-main.md
- Epic 2 Objective: skill vs gig progression; link progression + E2.M2
2026-04-03 21:23:36 -04:00
VinPropane dd2fef797d chore: align game-design docs, SkillDef schema, and docs review agent
- Hybrid progression: encounter gig XP, mission skill rewards, Slice 3 split
- SkillDef JSON Schema: stable id, gather/process/make/tech, allowedXpSourceKinds
- Prototype skills: salvage, refine, intrusion; expand E2.M1/E2.M2 contracts
- Add docs-review-agent rule, skills coherence review, AGENTS.md row
- gigs/progression/overview/skills cross-links; explicit HTML anchors in skills.md
2026-04-03 21:21:33 -04:00
VinPropane b7aeccafa9 chore: defer failure XP, respec, synergy to late-stage tuning 2026-04-03 20:44:04 -04:00
VinPropane c40923d1f9 chore: log Tech skill category roster as agreed solid for v0 2026-04-03 20:40:41 -04:00
VinPropane 681b9a6a95 chore: clarify Rigging vs Hardshell hybrid note in skills roster 2026-04-03 20:38:37 -04:00
VinPropane 08a9e67211 chore: non-combat Rigging use by specialty skill; utility items without hooks 2026-04-03 20:37:57 -04:00
VinPropane 3786bae41e chore: gig-gate combat deployables and default Make non-consumables in combat 2026-04-03 20:36:39 -04:00
VinPropane 9f7a1e0af8 chore: split armor into Hardshell and Softshell; powered armor on Rigging 2026-04-03 20:34:09 -04:00
VinPropane a3140e509e chore: add Edgesmith Make skill for non-gun weapons 2026-04-03 20:29:15 -04:00
VinPropane 38021311aa chore: keep Food synth Make skill; remove defer note 2026-04-03 20:28:18 -04:00
VinPropane cc71b79e78 chore: cybernetic replacement cost; old unit likely becomes scrap 2026-04-03 20:27:39 -04:00
VinPropane c21f65532c chore: Armtech swappable vs Cybernetics body-integrated—no overlap 2026-04-03 20:27:07 -04:00
VinPropane ad0d1bc2b5 chore: cybernetics semi-permanent and not gig-gated (Seams + decisions) 2026-04-03 20:26:25 -04:00
VinPropane 39ef946814 chore: add Cybernetics Make skill to skills roster 2026-04-03 20:23:56 -04:00
VinPropane f6c4cb6b52 fix: stable #seams-gigs-skills anchor for Seams section links 2026-04-03 20:22:53 -04:00
VinPropane 1757e87830 chore: separate Data scrub (data/firmware) from Fab tech 2026-04-03 20:21:23 -04:00
VinPropane e13043f09a chore: generalize multi-stage Process note; roster intro for chain shape 2026-04-03 20:20:18 -04:00
VinPropane b4f72c77e6 chore: document multi-stage Process chains (e.g. Composite work) 2026-04-03 20:19:27 -04:00
VinPropane 3d57013e14 chore: separate Fab tech (PCBs, chips, solenoids) from Refine 2026-04-03 20:17:46 -04:00
VinPropane 30d7608741 chore: split Refine (physical materials) vs Synth-chem prep (bio/chem) 2026-04-03 20:16:47 -04:00
VinPropane f8d99bfd4d chore: note overlapping Process/Make production chains in skills doc 2026-04-03 20:14:34 -04:00
VinPropane 8bcd4cba04 chore: define Salvage (consumer/vehicles) vs Quarry (urban infrastructure) 2026-04-03 20:10:42 -04:00
VinPropane aa655d7a6f chore: move grim presentation and teen rating target to game design overview 2026-04-03 20:09:02 -04:00
VinPropane 193001c92b chore: cap grim skill concepts at non-adult-only presentation 2026-04-03 20:06:48 -04:00
VinPropane ae0ca367e1 chore: document grim Harvest (bio) sourcing in skills roster 2026-04-03 20:05:32 -04:00
VinPropane b2de73bbaf chore: drop Reclaim skill; Salvage and Quarry cover the space 2026-04-03 20:04:57 -04:00
VinPropane 5fded86bca chore: clarify Extraction (earth) vs Quarry (city infrastructure) 2026-04-03 20:02:22 -04:00
VinPropane feafb4d5a0 chore: format skill roster as per-category tables like gigs 2026-04-03 19:59:40 -04:00
VinPropane eacd03e5c5 chore: document low-gig specialist path and growing skill roster 2026-04-03 19:58:16 -04:00
VinPropane 3846c23ef2 chore: drop Social skill category from game design skills doc 2026-04-03 19:54:02 -04:00
VinPropane 0fcedd5c09 chore: expand Tech roster with hacking and cyber security skills 2026-04-03 19:53:11 -04:00
VinPropane d18656d29b chore: move fab tech into Process / refine family in skill roster 2026-04-03 19:52:08 -04:00
VinPropane 714f98ae4f chore: v0 skill roster ideas by Gather/Process/Make/Tech/Social 2026-04-03 19:50:21 -04:00
VinPropane ebbe1f90b2 chore: clarify skill domains vs categories in skills.md 2026-04-03 19:49:07 -04:00
VinPropane 8fa93d6455 chore: add progression.md; make skills.md non-combat-only at top 2026-04-03 19:46:53 -04:00
VinPropane 18f3635fbe chore: flesh out skills.md — domains, categories, XP, gates, mastery, epics 2026-04-03 19:43:27 -04:00
VinPropane 68419d0396 chore: add docs/game-design/brainstorm/ for loose ideas 2026-04-03 19:41:30 -04:00
VinPropane 8bc7018776 chore: capture hack + bodyguard mission idea (skills + gigs) 2026-04-03 19:40:22 -04:00
VinPropane 49ee930f5d chore: note likely fourth damage gig later; keep 9-gig v1 roster 2026-04-03 19:29:03 -04:00
VinPropane 29838c8627 chore: cyberpunk-themed gig names (Breach, Cascade, Sightline, …) 2026-04-03 19:27:27 -04:00
VinPropane 4c8239b3bf chore: add third damage gig Reach (ranged) 2026-04-03 19:25:32 -04:00
VinPropane 6b59ebbbe4 chore: first-draft 8-gig roster (2 per archetype) 2026-04-03 19:23:48 -04:00
VinPropane a6b33d8a30 chore: PvP gig rules open indefinite pending PvP scope 2026-04-03 19:22:33 -04:00
VinPropane 4c6dc94d5e chore: defer recruitment channel until broader vision 2026-04-03 19:22:03 -04:00
VinPropane c07237db39 chore: conditional LFG design — niches, gig+loadout eligibility, multi-select 2026-04-03 19:17:59 -04:00
VinPropane 1ff835dd91 chore: decouple party recruitment from assumed LFG UI 2026-04-03 19:16:21 -04:00
VinPropane 31e7361ab3 chore: passive consumable amp applies from main or sub-gig 2026-04-03 19:13:48 -04:00
VinPropane a204fb12e3 chore: gig XP only on main gig; sub earns none 2026-04-03 19:12:54 -04:00
VinPropane 8b97835189 chore: add game-design gigs.md artifact; link from overview and skills 2026-04-03 19:09:36 -04:00
VinPropane 8d5974fb74 chore: agree per-gig combat progression 2026-03-31 23:31:15 -04:00
VinPropane 6114dc613c chore: agree hub-only gig swap (no on-the-fly) 2026-03-31 23:30:06 -04:00
VinPropane 975acf267b chore: agree soft skill caps with escalating XP per level 2026-03-31 23:29:13 -04:00
VinPropane 72526ebc11 chore: clarify failure XP is per-skill, open; not death penalty 2026-03-31 23:27:15 -04:00
VinPropane d30ee1c291 chore: agree primary skill XP from doing the activity 2026-03-31 23:25:51 -04:00
VinPropane 0766bbcc9b chore: mark combat vs non-combat split agreed in decisions log 2026-03-31 23:24:59 -04:00
VinPropane 0f90f9500e chore: agree sub-gig; drop combinatorial emphasis 2026-03-31 23:23:32 -04:00
VinPropane e815b42734 chore: document optional FFXI-style sub-gig slot 2026-03-31 23:18:13 -04:00
VinPropane f41426cdee chore: multi-gig mastery OK; time-gated by slow gig leveling 2026-03-31 23:16:35 -04:00
VinPropane db452e9c56 chore: rep character-wide, gig-scoped storylines and main quests 2026-03-31 23:13:48 -04:00
VinPropane 3d3de5b85e chore: agree consumables baseline + gig amplification seam 2026-03-31 23:12:26 -04:00
VinPropane a855551a6b chore: combat gear crafting has no gig dependency 2026-03-31 23:10:49 -04:00
VinPropane 36533a5f98 chore: seam decision — combat gear is gig-restricted 2026-03-31 23:07:58 -04:00
VinPropane bb23b155a6 chore: lock game-design vocabulary (gig vs skill) 2026-03-31 23:06:10 -04:00
VinPropane 08673b6e59 chore: document hybrid combat gigs + classless non-combat skills 2026-03-31 23:00:46 -04:00
VinPropane e929f60e8a chore: add game-design skills vision doc 2026-03-31 22:44:10 -04:00
VinPropane 55c4396da7 chore: fold professions into skills stub in game-design overview 2026-03-31 22:40:46 -04:00
VinPropane afe6eed53c chore: expand game-design overview planned topic stubs 2026-03-31 22:35:58 -04:00
VinPropane a8dd1b22cd chore: add game-design overview as master index 2026-03-31 22:33:39 -04:00
VinPropane ff60b129cd chore: add docs/game-design for vision and mechanics notes 2026-03-31 22:32:09 -04:00
VinPropane 107eda77d8 chore: add CT content-tooling track and vision plan tooling epic
- Add docs/decomposition/tooling/internal_authoring.md and CT.M1–M3 module stubs
- Register CT modules and cross-cutting section in decomposition README
- Add internal-content-authoring execution plan
- Extend neon_sprawl_vision.plan.md with Tooling epic (CT) in Core Epic Map and modules
2026-03-30 23:18:40 -04:00
VinPropane e2d64a7a57 NS-17: PostgreSQL position persistence and integration tests
Wire IPositionStateStore to Npgsql when ConnectionStrings:NeonSprawl is set,
with versioned DDL under server/db/migrations and a shared PostgresPositionBootstrap
for schema plus dev-player seeding at host startup. In-memory tests override Postgres
registrations when CI sets the connection string globally.

Add GitHub Actions Postgres service for dotnet test, server README updates,
decomposition and implementation-plan docs, code review write-up, and C# brace
conventions in csharp-style rule.
2026-03-30 22:55:17 -04:00
VinPropane 3882b0e2c6 NS-16: MoveCommand → server PositionState, Godot sync, tests
Implement E1.M1 intent → authority: POST /game/players/{id}/move with v1 JSON
MoveCommandRequest (snap + sequence), extend in-memory store and
PositionStateApi. Godot client splits ground_pick and position_authority_client
with thin main.gd; snap_to_server on player.

Tests live under NeonSprawl.Server.Tests/Game/PositionState/ with AAA layout
and MethodName_ShouldExpectedOutcome_WhenScenario naming. Debug builds use
UseAppHost=false so Linux IDEs resolve .NET 10 from a user-local SDK.

Add NS-16 implementation plan, code review doc, godot-client-script-organization
rule, csharp test layout/naming rules, and refresh E1.M1 / alignment docs.
Server and client README updates include move API, prerequisites, and Rider
notes.

Made-with: Cursor
2026-03-30 19:54:17 -04:00
VinPropane 813baa670d docs: tidy data_and_ops_policy table and vision plan links
Widen content-reload policy table columns; use proper markdown links to
neon_sprawl_vision.plan.md (not code-span wrapped URLs).

Made-with: Cursor
2026-03-30 19:05:49 -04:00