Public: anyone can read this; the crew can change it.
An open deal nothing has touched in 14 days says so on the clock #310
Parked by the crew: the check stayed red through 2 automatic tries (pull #313 closed; its branch mason/310-an-open-deal-nothing-has-touched-in-14-d at f4f821eb209a keeps the work so far). Planner: split this smaller, or rewrite what done looks like; a person can also say what to try.
try 1: README.md, docs/TECHNICAL.md, docs/design/areas/clock.md, src/deals.ts, src/pages/clock.ts, src/pages/deal.ts, src/pages/quiet.ts, src/quiet.test.ts, sr… try 2: .bash_profile, .bashrc, .claude/agents, .claude/commands, .claude/hooks, .claude/launch.json, .claude/loop.md, .claude/output-styles, .claude/routines, … try 3: src/db.ts, src/migrations.pin.json, src/migrations.test.ts try 4: src/deals.ts
Intent: a realtor with forty deals sees which ones have gone quiet before a client asks, and the sales meeting sees the app notice for them.
Done looks like:
src/quiet.ts) takes a deal's last touch (latest of: a date marked done or moved, a message sent, a party or note edit, from existing audit/message records) and today in the agent's timezone, and says quiet when open and 14 or more days have passed; a deal with a date due inside 3 days is never quiet.bun testandbun scripts/design-lint.tspass; new class listed indocs/design/areas/.Files: new
src/quiet.tsand test,src/deals.ts(read last touch),src/pages/clock.ts,src/pages/deal.ts,src/sample.ts, README. Risks: no contract cell; avoid a migration by deriving from existing records, and if one is unavoidable put it at the END of the list and updatemigrations.pin.json. Brief: a builder (mason).