Commit Graph
6 Commits
Author SHA1 Message Date
fez5587andClaude Fable 5 7ab6db469d Consultant escalation policy + milestone delivery checks
Manager policy, active only when a company employs a consultant:
- a task that blows its wall-clock budget or blocks on machine failure
  (crashed worker, capability gap — anything except needs_input) is
  reassigned to the consultant with the failure context appended
- every objective rollup spawns a consultant review task: verify each
  deliverable against acceptance criteria, write milestone-check.md,
  verdict per deliverable, fix nothing

Also: employee_role_check widened to include consultant (db + live);
consultant sprite shirt color in the office.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 14:34:12 -05:00
fez5587andClaude Fable 5 b141900ad7 Office: company switcher tabs + active objective line
Tabs render only when more than one active company exists; objective line
shows the newest in-progress objective above the canvas.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 13:33:48 -05:00
fez5587andClaude Fable 5 f41eac033f Research room + task kinds
- Decomposition now classifies each task kind (build/research/review);
  research/review map to matching work_item types, dispatcher dispatches
  them alongside task/subtask/defect
- Office: walled research room (bookshelves, reading table, own floor)
  bottom-right; generalized room routing (per-room door waypoints);
  workers on research-type tasks walk there and read (page-flip anim)
  instead of sitting at a desk; break area moved to mid-floor

Verified live: research directive decomposed into 4 research + 1 build
task; worker rendered at the reading table.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 13:20:08 -05:00
fez5587andClaude Fable 5 a0bae6dc51 Office pathing fixes: room test uses x+y, door waypoints, live typing anim
- inConf() was x-only, so the break area routed through the conference door
- door crossings now go west-waypoint -> doorway -> target (no wall clipping)
- workers face the viewer at their desk; typing anim/monitor glow computed
  from live state in the draw loop instead of waiting for the next poll

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 12:28:10 -05:00
fez5587andClaude Fable 5 b3138fb5b0 Office v1: top-down pixel office + sibling-context handoff in dispatch
- /office rebuilt Chrono Trigger style: tile map (work floor, walled
  conference room with door, break area), 4-direction sprites with walk
  cycles; employees path through the door and walk to their desk when
  working (typing anim, lit monitor), to the conference room with a "?"
  bubble when blocked on an answer, to the water cooler when idle. All
  movement derives from polled engine state only.
- Dispatcher now appends completed-sibling task reports to each task body
  so decomposed tasks are no longer blind to each other's output (fixes
  the "apply the patch task A made" capability block).

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 12:24:40 -05:00
fez5587andClaude Fable 5 c2320c3dc8 Clarification answer path + pixel office v0
- POST /companies/{slug}/work-items/{id}/answer: shareholder answers a
  blocked item; answer is appended to the description and the existing
  kanban task is rerun (status=ready + updated body), or the item goes
  back to ready for fresh dispatch if it was never dispatched
- Dashboard: answer button on blocked work item rows (native prompt)
- /office: pixel-art 2D office view — one desk row per employee, avatar
  color by role, LED/typing animation driven only by real engine status,
  live event ticker (PRD 12: no fake activity)

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
2026-08-04 12:01:37 -05:00