cli: backend: "codex" event_loop: prompt_file: "PROMPT.md" starting_event: "work.start" completion_promise: "LOOP_COMPLETE" max_iterations: 35 backpressure: gates: - name: "lint" command: "npm run lint" on_fail: "retry" - name: "typecheck" command: "npm run typecheck" on_fail: "retry" - name: "build" command: "npm run build" on_fail: "retry" hats: planner: name: "Constellation Planner" description: "Plans chart interaction, timeline parity, and design-token alignment changes." triggers: ["work.start", "review.changes_requested"] publishes: ["plan.ready"] instructions: | Read PROMPT.md first. Your role is planning only: - Inspect chart pointer/focus interaction layers and hover event flow. - Inspect timeline data exports and role/education mapping used by constellation + timeline UI. - Write/update .ralph/plan.md with concrete file-level steps and acceptance checks. - Define clear scope boundaries so the builder avoids unrelated refactors. - If triggered by review.changes_requested, read .ralph/review.md and revise the plan. Do not implement code. Emit plan.ready when the plan is ready. builder: name: "Constellation Builder" description: "Implements chart hover fixes, timeline/data alignment, and token-consistent styling." triggers: ["plan.ready"] publishes: ["build.done"] instructions: | Read PROMPT.md and .ralph/plan.md first. Implement the planned work end-to-end: - Fix pointer hover reliability in the constellation chart. - Resolve interaction-layer conflicts between accessibility overlay controls and SVG node events. - Keep touch and keyboard flows working. - Align timeline mapping/order semantics between chart and work-experience surfaces. - Clarify timeline data exports (career/education/combined) where needed for correctness. - Align font/token usage with the site design system and remove invalid token usage. - Resolve or remove divergent/duplicate timeline pathing that causes inconsistent behavior. Keep project conventions intact and avoid unrelated refactors. Update .ralph/plan.md as steps are completed. Emit build.done exactly once when implementation is complete and lint/typecheck/build pass. reviewer: name: "Constellation Reviewer" description: "Validates behavior, parity, accessibility flows, and build quality against PROMPT requirements." triggers: ["build.done"] publishes: ["review.changes_requested"] instructions: | Read PROMPT.md (and .ralph/plan.md if needed), then review the final implementation. Validate all success criteria: - Pointer hover reliability in chart nodes - No pointer/focus layering conflicts - Timeline parity between chart and work-experience surfaces - Coherent cross-highlighting behavior - Font/token consistency for chart and timeline-adjacent UI - Touch and keyboard behavior preserved - Lint/typecheck/build passing Write findings and manual verification notes to .ralph/review.md. If anything is incomplete or incorrect, emit review.changes_requested with specific fixes. If all criteria pass, print LOOP_COMPLETE and stop.