--- title: 2026-07-07_Workflow_Consolidation type: note permalink: gamevault/07-sessions/2026/2026-07-07-workflow-consolidation --- # 2026-07-07 (session C) — Workflow consolidation: CLAUDE.md audit, extraction, validation harness **Driver:** operator ask — "is CLAUDE.md appropriate and accurate? should any of it be separated into docs/skills? what should change to make you a better agent?" Plus: collision playtest finding scoped + logged. ## Collision todo (Phase 1.5 stabilize #2 — scoped) Operator: **collision shapes don't match the visual meshes** (cover rocks etc.) — environment collider FIDELITY, not body-blocking or hit-reg. Logged on the roadmap with the fix direction (fit colliders to render meshes; verify in the baked subscene PhysicsWorld; re-validate the enemy stuck-fix backstop after shape changes). ## CLAUDE.md audit → findings → fixes (all applied) - **1 false claim:** `CreateLocalWorld` "is internal" — reflect-checked installed netcode 6.5.0: **PUBLIC** now. - **3 stale "1.13.2" stamps** (pre-6.5-unification); `NetCodeTestWorld` re-checked (still effectively unavailable). - **1 dead path:** conventions pointed at `~/.claude/skills/dots-dev/` — the skill is in-repo only. - ctx7 netcode pin re-searched: **no 6.x docs set exists yet** — `1_10_api` stays, annotation refreshed. - **Systemic:** chronic budget saturation (39.9–40.2 KB all week; every gotcha cost a condensation pass). Root cause: ~⅓ of the file was game-state narrative duplicating vault DRs. ## Operator decisions (4 locked) 1. **Full game-state extraction NOW** → done: PlacedStructure/EB-1/EB-2/END-1/END-2/M7/harvest/core-loop bullets condensed to invariants + DR pointers (originals verbatim in the gotchas archive, heading 2026-07-07c). **CLAUDE.md: 40,183 → 38,096 B** — ~2.9 KB headroom; the per-session condensation tax is gone. 2. **`validation-harness.md` built** (`.claude/skills/dots-dev/references/`) — consolidates the formerly machine-local-only Play-driving lore (pause/sleep/focus rules, execute_code traps, the server-inject harness proven on NodeFeedbackSystem, headless-run failure modes, visual-verification limits) into the in-repo skill; referenced from SKILL.md Phase 6 + References. Closes a cross-machine-rule violation. 3. **Standing docs-commit authorization** — vault/CLAUDE.md/skill-reference changes now auto-commit at session end as a `Docs:` group; code commits stay explicitly gated; never push. Recorded in SKILL.md non-negotiable #5 + native memory `docs-commits-standing-authorization`. 4. **Pending tree committed**: `8baf98622` (WorldFeelConfig attribute fix) + `5a16acc56` (session-B docs). ## Also recommended to the operator (their side) - **Playtest-notes drop file** (`07_Sessions/User Sessions/`, object + action + expected-vs-actual) — kills the scoping round-trip on feel feedback. - Editor focus during compile/Burst-heavy phases (reaffirmed); the DR-044 2-instance LAN smoke is still open. ## Housekeeping MEMORY.md index de-bloated (two ~500-word narrative lines → true one-liners; detail stays in the memory files); the stale "scale LEG children" root-cause claim corrected in the redirect memory (real fix was the swallowed attribute — see [[2026-07-07_Phase15_NodeFeedback_Attribute_Swallow]]). ## Round 2 (same session) — health sweep + operator authorizations Sweep findings: **GitHub PAT leaked in the `origin` remote URL** (operator rotating; never echo credentialed remote URLs) · **75 commits unpushed to origin / 25 to gitea** · basic-memory sync verified LIVE · four pre-redirect roadmap docs lacked supersession banners (added, `03fb4052e`) · playtest-notes drop file created (`User Sessions/` is git-ignored — local scratch by design; durable record = session logs). Operator authorized ×3: (1) **auto-push `main`→gitea whenever** (SKILL.md #5 + memory; origin stays ask-first); (2) **serena REMOVED completely** — `.mcp.json`, `.serena/` (moved to scratchpad; memories were empty), all references in CLAUDE.md ("three layers" now), SKILL.md, memory-protocol.md, Documentation_Protocol.md; C# nav = Grep/Glob; (3) **console-noise purge + conventions**: fixed CS0618/CS0414 in `MenuUi` (FindAnyObjectByType), GA `SaveParticleSystemScript` (prefabAssetPath→assetPath ×2), Synty `SampleOscillateSliders` (FindObjectsByType overload), `POLYGON_DogAnimationController` (dead `death_b` removed) — **plus a real bug the sweep surfaced: `PixelArtDevControls` used legacy `Input.GetKeyDown(F3)` → `InvalidOperationException` EVERY FRAME in Play** (Input System-only project; fixed to `Keyboard.current.f3Key.wasPressedThisFrame`). Test-count convention: durable docs say "suite green (N at the time)", never absolute counts (455 ≠ the stale "456" stamps). Suite green (455) post-purge; compile warnings zero; remaining console = known test-world `Ignoring invalid [UpdateBefore]` artifacts + bridge noise. ## Next-session intent Phase 1.5 in earnest: collision-fidelity pass (stabilize #2, now scoped) → lighting/atmosphere pass → art-look decision gate (pixel filter ON/OFF side-by-sides). Operator eyeballs harvest feel on real nodes en route. Related: [[Iteration_2026-07_CoopHades]] · [[2026-07-07_Phase15_NodeFeedback_Attribute_Swallow]]