Submittal Risk Badge Polish Buildr+
The new missing-reviewer watch signal is useful; make it obvious in the field UI so unassigned reviewers do not hide inside a general risk state. Tighten the list/card states around Watch, due date, reviewer, and next action.
💡 How: Extract a shared SubmittalRiskBadge, add compact/expanded variants, and cover long titles plus missing reviewer/due-soon states with widget tests.
Offline Inspection Draft Recovery Inspectr+
Give inspectors a visible recovery queue for unsynced inspection notes, photos, and punch items after poor connectivity or app restarts. This turns offline reliability into something the user can trust, not just background sync behavior.
💡 How: Store draft events locally with stable IDs, show a SyncRecoveryPanel, and reconcile to Supabase with retry/failure/posted states.
Closeout Package Completeness Matrix Closr+
Add a matrix view that shows each required closeout item by spec section, responsible party, status, and blocker. PMs should be able to see which package is truly ready for owner review without opening every record.
💡 How: Build a Supabase view over closeout requirements, documents, owner review links, and responsible contacts; render as a dense Flutter table with filters for missing, rejected, expiring, and ready.
Competitive Intel
- Procore is pushing agentic AI for RFIs, submittals, daily logs, contract review, and deep search. Leonard's apps should answer with smaller human-reviewed prompts: source, risk, recommendation, next action.
- Fieldwire keeps winning on mobile/offline field execution. Inspectr+ and DailyReportr+ should keep sync state, photos, and task updates visible at all times.
- Bluebeam Max is leaning into Smart Overlay and Smart Review for drawing discrepancies. Buildr+ and Closr+ can borrow the pattern: highlight changed/missing documents before review, without pretending the app replaced professional judgment.
Code Health
- Inspectr+: 0 analyzer issues
- DailyReportr+: 0 analyzer issues
- Closr+: 0 analyzer issues
- Buildr+: 0 analyzer issues