For: before a sales meeting the agent opens /, not /people; the nudge from #223 is only seen by someone who already thought to look.
Done looks like:
[ ] On / (the clock), when one or more people have a nudge (people(deals, on) with nudge !== null, the existing rule in src/people.ts, not a copy), a single amber line near the top reads "2 people owe a date soon and have heard nothing from you in a week" ("1 person owes…" for one) and links to /people.
[ ] With nobody to nudge, the clock is exactly as on main: no line, no empty box, no layout shift.
[ ] The count uses the agent's today passed in, never the clock inside the page module.
[ ] Tests: the sample data on a fresh boot shows the line with the right count and an href="/people"; a book with no nudges shows none; both fail on main.
[ ] The clock still answers in under 50 ms with 200 deals (the existing speed test covers /).
[ ] Output escaped; bun test and bun scripts/design-lint.ts pass; a new class goes in docs/design/areas/, not docs/DESIGN.md.
Files: src/pages/clock.ts, the / handler in src/server.ts, a test beside the clock's page tests.
Risks: no contract cell, no new route; anon sees nothing new. Brief: a builder (mason).
For: before a sales meeting the agent opens
/, not/people; the nudge from #223 is only seen by someone who already thought to look.Done looks like:
/(the clock), when one or more people have a nudge (people(deals, on)withnudge !== null, the existing rule insrc/people.ts, not a copy), a single amber line near the top reads "2 people owe a date soon and have heard nothing from you in a week" ("1 person owes…" for one) and links to/people.href="/people"; a book with no nudges shows none; both fail on main./).bun testandbun scripts/design-lint.tspass; a new class goes indocs/design/areas/, notdocs/DESIGN.md.Files:
src/pages/clock.ts, the/handler insrc/server.ts, a test beside the clock's page tests. Risks: no contract cell, no new route; anon sees nothing new. Brief: a builder (mason).