Chip companion: art rebuild, +19 poses, +11 wired surfaces#62
Conversation
Preserves the recovered onboarding, guidance, route-coaching, mobile hardening, and release metadata work before the release-candidate lock-in pass continues. Save schema, engine behavior, and deploy surfaces remain untouched.
Locks in the recovered Chip public-release work with save/load runtime evidence, later-season route guidance, and release audit docs so Kevin can review the candidate without relying on stale verification. Keeps SAVE_VERSION 35 and save schema unchanged.
Capture the late-season ship-prep evidence, Kevin playtest path, and a focused clipboard fallback so the public candidate has a reviewable release handoff without changing save schema, deploy state, or sim determinism.
Keeps the public candidate honest by closing the last release-decision P1s: invalid imports now stay player-facing and save-safe, and Kevin has a concrete ship/no-ship package for final playtest. Documents the verified Week 9 deadline state, flagged preview requirements, deploy checklist, and remaining post-release risks without changing save schema, SAVE_VERSION, or deterministic sim behavior.
Bring real Chip character art (17 PNGs) into the design system as the visible Chip layer while keeping the legacy SVG hidden as a test/animation contract, so existing pose, reduced-motion, and Chip data contracts continue to hold. CHIP_POSE_ART maps every existing pose to a PNG so dialogue, route coaching, and dock surfaces inherit the art without per-surface code changes. Adds app-shell.css plus landmark data attributes (data-mfd-app-shell, -main-content, -brand-lockup, -nav-group, -nav-actions) so the top nav, grouped scan area, action cluster, and main content can be polished from CSS without rewriting App.tsx. Main content gets a 1580px cap with safe-area-aware mobile padding; the nav-group grid stays scannable at narrower widths. ChipDock layout polish from the same source patch is intentionally deferred — it conflicted with release-candidate hardening already on this branch and reconciling those competing border/shadow/label choices belongs in a focused follow-up. Dock keeps its release-candidate-verified version. Save schema, SAVE_VERSION, deterministic engine behavior, and deploy surfaces remain untouched.
Use square inline crops for sm/md Chip art while keeping lg on the full-body PNGs, restoring the 96x96 inline footprint that cold-open surfaces were built around. The mobile dock grid now reserves the lg portrait column so expanded Chip art does not overlap controls or dialogue content. Adds a focused Playwright visual gate that builds the flagged preview, walks Start Dynasty and Launch Demo Scenario at desktop/tablet/mobile viewports, and stores screenshot/metrics evidence under .codex/MFD/evidence/chip-art-shell-polish-v2-20260506-170852. save schema, `SAVE_VERSION`, deterministic engine behavior, and deploy surfaces remain untouched
Moves the cold-open primary action into Chip's companion controls when the Chip host is visible, leaving the existing footer action as the fallback for non-Chip or skipped companion states. SKIP remains in its existing ChipHost and SetupColdOpen locations. Adds a v3 Playwright proof that fails when the primary action sits outside Chip's column and captures desktop, tablet, and mobile cold-open evidence. save schema, `SAVE_VERSION`, deterministic engine behavior, and deploy surfaces remain untouched
Replaces the v2 mixed-render Chip assets with a single procedural retro-broadcast rig rendered to the existing PNG paths. The muted khaki/navy palette keeps Chip subordinate to the gold/cyan callouts, while full-body and inline variants now derive from the same source so each pose reads as the same person. Adds the v3 visual evidence sweep and contact sheet for cold-open Chip/NEXT placement, setup talk pose, dock collapsed/expanded, and all 17 full/inline pose pairs. The generator uses Playwright as a transient render tool; no runtime dependency or resolver contract changes. save schema, `SAVE_VERSION`, deterministic engine behavior, and deploy surfaces remain untouched
Documents the current Chip coverage across onboarding, dock, route coaching, game-day modals, weekly dialogue, direct feature surfaces, and missing route-level moments so the pose expansion can stay scoped. This keeps the clean recovery clone as the working repo and leaves the messy MFD checkout untouched. save schema, `SAVE_VERSION`, deterministic engine behavior, and deploy surfaces remain untouched
Adds a focused v3 procedural pose batch for game-day intensity, front-office admin, reactions, and film-room context while preserving the existing 17 assets by default in the generator. The design-system atlas, art resolver, legacy hidden SVG pose-layer map, and tests are updated together so there are no orphan pose names or orphan PNG files. save schema, `SAVE_VERSION`, deterministic engine behavior, and deploy surfaces remain untouched
Routes the expanded Chip pose atlas into weekly guidance, high-stakes pose events, route coaching, halftime, postgame recap, press conference, and achievement unlock feedback. Adds narrow route-beat coverage for training camp, trade deadline, and expansion draft without touching the engine event spine or save/import/export behavior. save schema, `SAVE_VERSION`, deterministic engine behavior, and deploy surfaces remain untouched
There was a problem hiding this comment.
💡 Codex Review
Here are some automated review suggestions for this pull request.
Reviewed commit: 6b09bc166f
ℹ️ About Codex in GitHub
Your team has set up Codex to review pull requests in this repo. Reviews are triggered when you
- Open a pull request for review
- Mark a draft as ready
- Comment "@codex review".
If Codex has suggestions, it will comment; otherwise it will react with 👍.
Codex can also answer questions or update the PR. Try commenting "@codex address that feedback".
| <FranchiseSetupWizard onStageAdvance={onStageAdvance} /> | ||
| <FranchiseSetupWizard | ||
| companionPrimaryActionActive={setupCompanionVisible} | ||
| onCompanionActionChange={(action) => setSetupCompanionAction(action)} |
There was a problem hiding this comment.
Stabilize the companion action callback
When the cold-open companion is visible, FranchiseSetupWizard stores a ReactNode in the parent from an effect that depends on onCompanionActionChange; this inline function is recreated every App render, so the child effect cleans up with setSetupCompanionAction(null) and then sets a new action, triggering another parent render and repeating. This can put first-time setup into a render/effect loop as soon as the Chip-hosted primary action appears; pass a useCallback-stable handler (or avoid using the callback identity as an effect dependency) so publishing the companion action does not retrigger itself.
Useful? React with 👍 / 👎.
- Promote Play Now link to a prominent header callout - Add Meet Chip section with 5-pose portrait strip (rallying, calling-play, on-phone, proud, head-in-hands) - Add Chip companion to feature list under What It Is - Document the procedural rig and how to regenerate the atlas - Fix stale `cd MFD/mfd` contributor path (correct path is `cd MFD`) - CHANGELOG: log post-launch polish — Chip companion rebuild (PR #62) and the Sprint 46 series Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
Summary
What changed
Art
scripts/generate-chip-v3-art.cjs(357 → 588 lines). No second pipeline.chip-coach.png557KB → 61KB).Layout
Wiring (eventBridge / route registry / direct features)
rallying, cap-overrun →head-in-hands, trade rumor →on-phone, HOF retirement →head-in-hands, decision-locked-in →fist-bump./training-camp,/trade-deadline,/expansion-draft(none of which had Chip beats before).time-out/calling-play/coaching-crouchinstead of generic point-left/right.rallying/proud, close wins →fist-bump, choke losses →facepalm/head-in-hands.skepticalfor high ambition,coffee-sipfor low-key,fist-bumpwhen locked in.proudpose.What was deferred (intentionally)
gameComplete/seasonEnddialogue: needs a broader catalog, not one-off lines. Documented in audit.Audit + evidence
.codex/MFD/chip-coverage-audit-20260507.md— 24-surface inventory with current state + recommendation per surface..codex/MFD/evidence/chip-full-wire-20260507-061123/— 28 screenshots across 9 surfaces × 3 viewports (desktop/tablet/mobile), pluspose-contact-sheet.pngshowing all 36 poses at once andchip-art-metrics.jsonwith DOM measurements.Safety
SAVE_VERSION, deterministic engine behavior, RNG, and deploy surfaces unchanged.6340bbd).Test plan
/MFD/and complete the cold-open — CONTINUE BRIEFING is in Chip's column./training-camp,/trade-deadline,/expansion-draft— Chip beat appears with the right pose.pnpm -r typecheck && pnpm -r test && pnpm -r build(Codex passed locally; web typecheck independently re-confirmed).🤖 Generated with Claude Code