--- estimated_steps: 4 estimated_files: 2 skills_used: - react-best-practices - test --- # T02: Make the job table expose the right next action and prove the daily loop **Slice:** S04 — Daily control loop surfaces **Milestone:** M001 ## Description Strengthen the job table so the first daily view shows what action is actually due and can jump directly into the right job workspace tab. ## Steps 1. Audit the existing job-table row chips and actions against the reminder/readiness data already available. 2. Add clearer action affordances for follow-up and package work that route into the same job workspace state used by dashboard/reminders. 3. Fold the table interactions into the focused daily-loop test. 4. Verify the routed-table behavior and build output. ## Must-Haves - [ ] Job-table urgency signals are actionable, not just decorative. - [ ] Table actions route into the same workspace state used by reminders/dashboard. - [ ] The focused UI test proves the table participates in the same daily loop. ## Verification - `CI=true npm --prefix job-tracker-ui test -- --watch=false --runTestsByPath src/daily-control-loop.test.tsx` - `CI=true npm --prefix job-tracker-ui run build` ## Inputs - `job-tracker-ui/src/components/JobTable.tsx` — current table and row actions. - `job-tracker-ui/src/daily-control-loop.test.tsx` — focused loop test from T01. ## Expected Output - `job-tracker-ui/src/components/JobTable.tsx` — clearer next-action affordances. - `job-tracker-ui/src/daily-control-loop.test.tsx` — proof that the table participates in the routed daily loop. ## Observability Impact - Signals changed: the table's urgency chips and primary row actions should now expose the same routed follow-up and package-work intents already used by dashboard and reminders. - How to inspect later: read `job-tracker-ui/src/components/JobTable.tsx` for the shared workspace-route usage and run `CI=true npm --prefix job-tracker-ui test -- --watch=false --runTestsByPath src/daily-control-loop.test.tsx` to confirm table, reminders, and dashboard all land in the expected workspace state. - Failure state made visible: if table actions drift from the shared routing contract, the focused UI test should fail with the wrong route/tab content instead of silently leaving decorative chips in place.