by Ta-Tech Solutions All documents

10 - Build Record & Milestones

CivicLoop by Ta-Tech Solutions Purpose: What was built between 2026-05-14 and the May 23, 2026 presentation. What was reused, what was net-new, what shipped each day, and what is left for dress rehearsal.

This document was originally written on 2026-05-14 as a forward-looking plan. As of 2026-05-18 the build is essentially complete - all 9 days' worth of scope shipped on the dates below. The day-by-day stands as the build RECORD, not a forecast.


1. The constraint, stated honestly (in retrospect)

This was achievable for one reason: CivicLoop is a new product on a proven engine, not a build from zero. Roughly half the system - the hard, slow half - already existed in production. The 9 days built the 311-specific half on top. If this had been greenfield, 9 days would have been fantasy. It was not greenfield.

The discipline that makes it real: one agency, one hero flow, built deep. Everything in this plan serves the Maria-pothole flow (Document 06, Section 2) to full presentation polish, plus the secondary flows working but lighter. Scope creep is the only thing that breaks this plan.

2. Reused vs net-new

Reused from the Ta-Tech engine (already in production, ~half the system):

Net-new for CivicLoop (the 9-day build):

3. The 9-day build record

The written submission was drafted in parallel from Day 1, because much of it - this design doc set, the agency-alignment narrative, the competitive case - did not depend on the built product. What actually shipped each day is in the right-most column.

Day Date What shipped Submission track
1 Wed 14 Design doc set complete (this set). Scaffold on the engine: tenant, auth, RBAC, i18n, dashboard shell. 311 domain model + Supabase project. Doc set live as the submission backbone
2 Thu 15 Resident report flow (4-step wizard, persists to DB). AI auto-routing (Haiku) with rationale + ai_decisions. /admin operations console. Doc set finalized for HTML build
3 Fri 16 Agent console queue + request workspace + lifecycle transitions. /track resident surface (privacy-gated lookup + two-way replies). Director Dashboard with trend detection. Staff auth + RBAC. TOTP 2FA. Photo upload to Supabase Storage. 25 Playwright tests green. HTML docs deployed to civicloop-docs.netlify.app
4-8 Sat 17 Marathon day - five days of scope shipped in one Saturday: proactive notifications (Twilio SMS + Resend email, fail-safe, EN+ES templates); resolution-photo upload satisfies the close-invariant trigger (resolved -> closed end-to-end); voice intake (Web Speech API, EN+ES) + AI duplicate detection (Haiku) + agent merge action; AI sentiment classification (distressed -> escalated) + SLA breach prediction (>=0.7 -> sla_predicted_breach) + Director Dashboard AI Insights panel; Open311 / GeoReport v2 endpoints (services list/detail, requests GET+POST, api_key gating); 220-request demo seeder for dashboard volume; global Ta-Tech footer; Executive Summary (doc 14); 99-page combined submission PDF; reveal.js pitch deck + PDF; demo recording script. All six AI components from Doc 07 live. Pitch deck + summary deployed to civicloop-docs.netlify.app
- Sun 18 Web app stood up on its own Netlify site (civicloop-pgc.netlify.app). All envs imported, Node 24 -> Node 20 deploy wrapper. EN/ES language toggle in the top bar. Geolocation silent-fail bug fixed with translated errors. Full server-action i18n refactor: every error flows through errors.* keys and useErrorTranslator. Spanish residents never see English fallthrough. Then, in the same day, the post-core "wild standout" wave: Autopilot dial (off/route/full); Equity dashboard (council-district disparity headline); Predictive issue forecast (12-week mean times recent seasonality, predicted_issues table); Council-district view (/council/[district]); Auto-survey + NPS panel; Public transparency portal (/public) + CSV; Self-healing SLA escalator (manual Run now + cron endpoint); Department channels (Slack-style, 7 dept + #311-all) with @loop AI persona and CP-... auto-link; scheduled visits with .ics; QR codes (tracking on success page + location posters at /admin/locations); pitch-card printable; progress-photo upload allowed in assigned. Schema dump updated with the 5 new tables and 4 new columns; RLS + smoke tests pass. Doc accuracy sweep. Playwright tests green. Docs redeployed with this build record
6-7 Mon 19 - Thu 21 Buffer for any field-tested fixes. Record the backup demo video. Final review of all materials
8 Fri 22 Dress rehearsal of the live demo; fix whatever breaks; buffer. Rehearse the pitch
- Sat 23 Present Present

The full buffer day (Day 9) is deliberately preserved.

4. The definition of "done" for May 23

Done is not "every screen in Document 06 exists." Done is:

  1. The hero flow works live, end to end, on real demo data, in English and Spanish - all eight steps of the Maria-pothole flow (Document 06, Section 2).
  2. The six AI components are real and survive a panelist probing them (Document 07, Section 9).
  3. The agentic layer visibly runs - the panel sees the system do the running-around while the resident and agent do almost nothing.
  4. The Director Dashboard is presentation-grade - real-time, visual, with a live trend card.
  5. The secondary flows work (SMS intake, routing override, needs-info loop, duplicate merge, sentiment escalation) - shown briefly, not the focus.
  6. A backup demo video exists - if live fails, the pitch does not.
  7. The written submission is complete - this doc set as HTML + PDF, the agency-alignment narrative, the competitive case, the security/accessibility/VPAT package, the pilot proposal.

5. Risk register

Risk Likelihood Impact Mitigation
Scope creep - the temptation to build more agencies, more screens, more role agents High Fatal The plan is locked to one hero flow. Every "could we also..." is logged for Phase 1's full release, not the 9-day build. This document is the scope contract.
AI intake not polished enough to demo live Medium High Build it first (Day 3), not last. EN + ES only for the demo; more languages switchable but not rehearsed. Backup video (Day 8) covers a live failure.
Live demo fails on the day (network, device) Medium High Backup demo video recorded Day 8. Demo runs on a controlled device + connection. The dress rehearsal (Day 9) is a real rehearsal, not a check.
A second front - Bamenda pilot + Twilio are open elsewhere Certain Medium For these 9 days CivicLoop has priority; the other work is explicitly paused and that decision is recorded.
Demo data feels fake Medium Medium Seed with realistic Prince George's County geography, real category mix, plausible volumes and timings (Day 7). A panelist from the County will notice fake.
A panelist probes an AI component and it looks like theater Medium High The Document 07 standard - every component does real work, shows its work, fails safe - is built to survive exactly this. Rehearse the probe answers.
Engine integration friction - the new 311 model meets the engine in an unexpected way Low-Medium Medium The engine is known; the team has shipped on it repeatedly. Day 1 scaffolding surfaces integration issues early, not on Day 8.

5a. Phase post-pitch (already shipped on Sun May 18, 2026)

A second wave landed on Sunday May 18 as the build settled and the team realized there was time to push past "core demo" into "wild standout" territory. All of it is SHIPPED, live at https://civicloop-pgc.netlify.app, schema-applied, RLS-protected, and trigger-smoke-tested:

Feature Status Notes
Autopilot dial (off / route / full) SHIPPED /admin dial; web/src/lib/autopilot/run.ts; counties.autopilot_level column; audit-logged; reversible. Demo closing move.
Equity dashboard SHIPPED Director dashboard panel; web/src/lib/dashboard/equity.ts; new service_areas.council_district, locations.council_district, service_areas.zip_code, locations.zip_code columns.
Predictive issue forecast SHIPPED Director "Run forecast now" button; web/src/lib/predict/forecast.ts; new predicted_issues table. 12-week mean times recent seasonality.
Council-district view (/council/[district]) SHIPPED One scoped dashboard per PG County council district (1-9).
Auto-survey + NPS panel SHIPPED web/src/lib/survey/send.ts fires on every RESOLVED transition; /[locale]/survey/[token] is the public page; new request_surveys table; NPS panel on director dashboard.
Public transparency portal (/public) SHIPPED Anonymous, no PII, no locale; /api/public/weekly.csv for the CSV download; print-to-PDF button.
Self-healing SLA escalator SHIPPED /admin Run now; /api/cron/self-heal with optional SELFHEAL_CRON_TOKEN; 6-hour cooldown; idempotent.
Department channels (Slack-style + @loop) SHIPPED 7 dept channels + #311-all; slash commands deterministic; @loop calls Claude Haiku with a fresh county snapshot. New channels and channel_messages tables.
Scheduled visits (.ics + SMS + email + alarm) SHIPPED Console "Schedule visit" action; web/src/lib/visits/*; web/src/app/api/visits/[id]/ics/route.ts; upcoming-visits panel on director dashboard. New scheduled_visits table.
QR codes SHIPPED /api/qr SVG endpoint; tracking QR on report success page; /[locale]/admin/locations poster builder.
/[locale]/pitch-card SHIPPED Bilingual printable handout with QR for community meetings.
Progress-photo upload in assigned SHIPPED Dispatched crews can post evidence on arrival, not only when status flips to in_progress.

The phase is named here, in the build record, so a panel reading this doc on May 23 sees that the wave was real, dated, and delivered, not promised. Documents 06, 07, 08, and 09 carry the detail.

6. Post-presentation - what happens if the County says yes

The 9-day build produces a real, working, demo-grade product - not a prototype that gets thrown away. If the County moves to a pilot:

The 9-day build is the seed of the real thing, not a separate throwaway.

7. Why this plan is credible

It is credible because the hard half is already built and running in production, because the scope is locked to one deep flow rather than many shallow ones, because the written submission is drafted in parallel rather than crammed at the end, and because there is a real buffer day and a real backup video. It is the plan of a team that has shipped before - not a hope.


Next: 11 - Pilot & Pricing Proposal.

PreviousSecurity, Privacy & Accessibility
CivicLoop - Ta-Tech Solutions - Architecture & Design Documentation