Afternoon Brief

Saturday, May 23, 2026 — 12:00 PM PT

Last Night’s Builds

Photo Annotation Markup DailyReportr+

Dominique shipped Photo Annotation Markup (v2.25.0) — a lightweight drawing layer that lets superintendents annotate photos with arrows, circles, rectangles, freehand strokes, and text callouts directly after capture, before attaching to a daily report. Annotated images are flattened to JPEG for storage and can be reviewed alongside original captures. This was yesterday’s afternoon brief idea #2, extending the brief-to-build streak to 11 consecutive days (May 13–23). DailyReportr+ now has the photo evidence trifecta: capture → annotate → sync via outbox.

Branch: feature/nightly-20260523
Commits: 0ad837e (stub) → dfb966c (feat) → 3c70b77 (merge)
Version: v2.25.0 · TestFlight: Uploaded (7154acbf)
Builder: Dominique

Offline Sync Outbox Buildr+

Katey/Howard-3 shipped the Offline Sync Outbox (v3.18.0) — a persistent, user-facing queue showing every RFI, submittal, change order, and meeting minute waiting to sync. Each item displays type, size, timestamp, retry count, and status with a home-screen banner and tap-to-expand detail page. This was yesterday’s afternoon brief idea #1. Buildr+ was the last app without a visible sync queue — all four apps now have offline sync outbox visibility, completing the cross-app offline parity that morning briefs have tracked for weeks.

Branch: feature/nightly2-20260523
Commits: 4890d62 (feat) → 18f9e88 (merge) → d61602b (version bump)
Version: v3.18.0 · TestFlight: Uploaded (2c58cac8)
Builder: Katey / Howard-3

Closr+ — No Build

Closr+ received no nightly build. Last activity: May 22, Closeout Warranty QR Tags (v2.22.0) by Dominique. Katey last built Closr+ on May 20 (Closeout Exposure Aging Buckets) — a 3-day builder gap.

Inspectr+ — No Build

Inspectr+ received no nightly build. Last activity: May 22, Offline Sync Outbox (v4.27.0) by Katey. Dominique last built Inspectr+ on May 20 (Inspector Route Pack) — a 3-day builder gap.

Codebase Health

Flutter Analyze — All 4 Apps

Buildr+
0 errors · 61 warnings · 392 infos
Closr+
0 errors · 47 warnings · 205 infos
Inspectr+
0 errors · 90 warnings · 881 infos
DailyReportr+
0 errors · 70 warnings · 1,560 infos
Status: All 4 apps remain error-free for the fifth consecutive day. Tonight’s builds introduced zero new warnings. BuildrPlus infos rose from 380 to 392 (+12) with the Sync Outbox feature; DailyReportr+ infos rose from 1,556 to 1,560 (+4) with Photo Annotation Markup — both modest increases from new code, not regressions. Closr+ remains the cleanest codebase (252 total issues). DailyReportr+’s missing assets/images/ directory warning persists. Dominant lint debt remains deprecated_member_use (withOpacity) and require_trailing_commas — both auto-fixable with dart fix --apply.
Recurring Themes from Morning Briefs

Shipped: Both Afternoon Brief Assignments Built — 11-Day Streak

Yesterday’s afternoon brief assigned Dominique → DailyReportr+ (Photo Annotation Markup) and Katey → Buildr+ (Offline Sync Outbox). Both shipped exactly as suggested. The afternoon-brief-to-nightly conversion streak now stands at 11 consecutive days (May 13–23). Every suggested assignment from this brief has been built the following night, with both builders again shipping the exact app and feature pairing.

Active: Pre-Sync Data Quality — The Next Frontier

With all four apps now having offline sync outboxes and DailyReportr+ adding photo annotation, the morning briefs are converging on the next layer: pre-sync validation. Three consecutive briefs (May 21–23) have pushed for quality checks before data leaves the device — Offline Photo QA Before Sync (May 22), Photo-to-RFI Draft (May 21), and Signal-Loss Walk Mode (May 23). The pattern: field-captured data needs validation at the point of capture, not after sync. Inspectr+ already has photo markup but no quality gate; DailyReportr+ now has markup but no pre-upload checks.

Active: Closeout Accountability — From Tracking to Workflow

Two of the last three morning briefs have pushed closeout responsibility themes: Closeout Aging Digest (May 23) and Closeout Responsibility Heat Map (May 22). Closr+ has strong tracking infrastructure (exposure aging buckets, document nudges, warranty QR tags, punch aging) but lacks a sequential approval workflow — the handoff from “we know what’s missing” to “this trade’s closeout package is formally accepted.” The next step is turning visibility into action.

Feature Ideas

1. Photo Capture QA Gate Inspectr+

Add a pre-upload quality gate that validates inspection photos before they enter the sync outbox. The gate checks: image sharpness (reject blurry captures via variance-of-Laplacian threshold), GPS/location tag presence, caption or description field populated, linked deficiency or checklist item, and duplicate-angle detection against other photos in the same inspection. Photos failing any check get a yellow warning badge; photos failing critical checks (blur, no location) are held in a “Review Before Sync” queue rather than syncing silently. Field users see exactly what needs fixing while still on-site.

Why now: Three consecutive morning briefs (May 21–23) have flagged pre-sync data quality as the next frontier now that all apps have sync outboxes. Inspectr+ has the heaviest photo workflow (deficiency evidence, checklist verification, punch list photos) and already has photo markup — but no quality validation between capture and upload. Autodesk Construction Cloud just shipped Apple Pencil markup on mobile; adding a quality gate puts Inspectr+ ahead on photo evidence integrity, not just annotation.

Sketch: lib/services/photo_qa_service.dart — pure functions: checkSharpness(Uint8List) using image package variance-of-Laplacian, checkMetadata(ExifData) for GPS/timestamp, checkCompleteness(PhotoAttachment) for caption and linked item. lib/models/photo_qa_result.dart — result class with pass/warn/fail per check. lib/widgets/photo_qa_badge.dart — compact overlay badge on photo thumbnails. Modify photo_upload_widget.dart to run QA checks after markup and before outbox insertion; show review sheet for failed items.

2. Closeout Signoff Chain Closr+

Add a sequential approval workflow for closeout document packages: Trade/Sub submits docs → PM reviews and accepts or returns → Owner gives final acceptance. Each document category (O&M manuals, warranties, training records, as-builts, attic stock) has a per-trade signoff status that flows through three stages. The PM sees a “Pending Review” queue; the owner sees a “Ready for Acceptance” queue in the client portal. Returned items carry rejection notes and re-enter the chain. A closeout package is only “complete” when all categories for a trade have owner acceptance.

Why now: Morning briefs on May 22 and 23 both flagged closeout accountability — Closr+ has strong visibility (aging buckets, document nudges, exposure snapshots) but no formal acceptance workflow. The gap is between “we can see what’s overdue” and “this trade’s closeout is formally accepted.” Adding the signoff chain turns passive tracking into an active handover process, which is the critical last mile for transit and commercial construction closeout.

Sketch: lib/models/signoff_chain.dartSignoffStage enum (submitted, pmReview, pmAccepted, ownerReview, ownerAccepted, returned), SignoffRecord with stage, reviewer, timestamp, notes. lib/providers/signoff_chain_provider.dart — Riverpod notifier managing stage transitions per trade × document category. lib/pages/closeout/signoff_review_page.dart — PM review queue with accept/return actions. lib/pages/portal/signoff_acceptance_page.dart — owner-facing acceptance queue. Wire into existing owner_handover_tab_view.dart and client_portal_page.dart.

3. Inspection Template Library Inspectr+

Add a reusable, shareable template library for common inspection types. Field teams can save any completed inspection as a template, pre-filling checklist items, required photo counts, spec references, and pass/fail criteria. Ship with 6 built-in templates: MEP Pre-Cover, Fire Stopping, Waterproofing Membrane, Concrete Pre-Pour, Elevator Pit, and Final Punch. Templates are project-independent and sync across devices via Supabase, so an inspector who builds a template on one project can reuse it on the next. Each template shows estimated inspection duration based on historical data.

Why now: Procore just split Quality and Safety Inspections into separate tools with configurable fieldsets and custom field sections — raising the bar for inspection configurability. Inspectr+ currently requires manual setup for each new inspection. A template library reduces setup friction from minutes to seconds and standardizes quality across projects. This pairs well with the Photo Capture QA Gate (idea #1): templates can specify which checklist items require photo evidence, feeding the QA gate’s completeness checks.

Sketch: lib/models/inspection_template.dart — template model with name, category, checklist items (each with required-photo flag, spec reference, pass/fail criteria), estimated duration. lib/providers/template_library_provider.dart — Riverpod provider syncing templates from Supabase inspection_templates table. lib/pages/templates/template_library_page.dart — browsable grid with category filters and search. lib/pages/templates/template_detail_page.dart — preview and “Start Inspection” action that pre-fills a new inspection. Add “Save as Template” action to existing inspection detail page.
Competitive Intel

Industry Moves — Last 7 Days

ProcoreQuality/Safety Inspections split now live: permanently divides all inspections into separate Quality Inspections and Safety Inspections, each with their own configurable custom field sections and field types (Project Users, Company, Location, Date/Time). Also shipped Bulk Delete in Daily Logs for teams managing 50–100+ entries per day, and custom Equipment Log fields. Directly competes with Inspectr+’s single-type inspection model and DailyReportr+’s log management. (source)

BluebeamBluebeam Max now globally available with Claude/Anthropic AI integration for natural-language markup automation, Magic Markups for automated takeoff, Smart Overlay for cross-revision change detection, and Connected Sessions linking Bluebeam markups to Revit 3D model views. First major construction tool with embedded LLM intelligence — focused on plan review rather than field ops, but sets the expectation that construction software should have AI-assisted workflows. (source)

FieldwireBIM 3D Task Management shipped in January 2026: create and track tasks in 3D models, share updates instantly, flag issues with precise coordinates and thumbnails, fully synced with 2D plans. Also shipped Nested Locations with up to 5 tiers of hierarchy and mobile location creation. The 5-level nesting is a gap for our apps, which use flat or 2-level location structures. (source)

Takeaway: Three signals: (1) Inspection configurability arms race — Procore’s Quality/Safety split and custom fieldsets raise the bar; our Inspection Template Library idea addresses this with reusable, shareable templates. (2) AI is production-ready in construction — Bluebeam Max with Claude AI is live globally; field-app AI features are now a matter of “when” not “if.” (3) Photo evidence quality is competitive terrain — ACC’s Apple Pencil markup (from last week) plus Procore’s inspection custom fields mean the bar for field evidence capture is rising fast; our Photo Capture QA Gate would be a differentiator.
Tomorrow’s Build Suggestion

Dominique → Inspectr+

Dominique last built Inspectr+ on May 20 (Inspector Route Pack) — a 3-day builder gap, the longest current gap for Dominique across all apps. Inspectr+ last received a build on May 22 (Offline Sync Outbox by Katey). Suggest building Photo Capture QA Gate (idea #1 above) to validate inspection photos before sync — answering 3 consecutive morning briefs pushing for pre-sync data quality and differentiating against ACC’s mobile markup beta.

Katey → Closr+

Katey/Howard-3 last built Closr+ on May 20 (Closeout Exposure Aging Buckets) — a 3-day builder gap matching Dominique’s Inspectr+ gap. Closr+ last received a build on May 22 (Warranty QR Tags by Dominique). Suggest building Closeout Signoff Chain (idea #2 above) to add a formal acceptance workflow for closeout documents — turning Closr+’s strong visibility infrastructure into an actionable handover process.