Benton Drones logo Benton Drones

Project Completion Guide

The exact path to launch: what you need to do, what the agents will build, and how we split the work.

Where We Are — The Big Picture

402 tests green (unit/integration + HTTP E2E + real-browser Playwright). The app is live on Render, and the agent-buildable engineering is DONE: signup/consent/dashboard/exports/JIRA MVP, real geocoder, persistent rate limiting, JIRA queue replay, email notification code, backup tooling — plus the ADR-001 layer: Access JWT verification, JSON admin API + CORS, admin audit trail, noindex headers, and the pages-admin/ dashboard bundle that deploys the moment Cloudflare is ready.

Kickoff email sent 2026-08-17 — Anderson is reviewing the launch briefing now. The critical path is Anderson's ~2-hour account session (nameserver cutover + SMTP app password + legal waiver review), then Tyler flips Cloudflare Pages + Access + the custom domains. No more agent engineering is blocking.

Agent engineering done ADR-001 assets shipped Anderson session in progress 3 gaps to close (G2, G3 creds, G4 creds)

The Road to Launch

Build order, left to right. Everything before the human gate is DONE ( -marked); everything after it unblocks the moment the session happens.

G1 Geocoder G6 JIRA Replay G5 Rate Limit G3 Email Code G4 Backup Code Human Session G2 Domain G3/G4 Credentials Launch G7 Shopify Proxy G8 Map UI

Agents build green   Needs human input amber   Human gate red   Post-launch grey

What YOU Need to Do

Six steps, roughly 70–90 minutes total, doable in one sitting. An agent can ride along on a call or screenshare and do the technical parts live — you just provide the logins.

#What to doWhereTimeWhat it unblocks
1Create a read-only API token scoped to bentondrones.com with Zone read + DNS read permissions.Cloudflare dashboard → My Profile → API Tokens~10 minDNS automation preflight (scripts/check_cloudflare_zone.py)
2Screenshot the current nameservers and every DNS record exactly as they exist today.Namecheap → Domain List → Advanced DNS~10 minSafe DNS cutover with a rollback reference
3Confirm the MX / SPF / DKIM / DMARC records, and create an SMTP app password for the notification sender (set as SMTP_USER + SMTP_PASSWORD on Render).Google Admin console~20 minG3 email notifications go live + preserves email through the DNS cutover
4Note the myshopify.com domain and the A/CNAME requirements; draft the landing page with a CTA linking to the signup.Shopify Admin~20 minShopify landing page + future App Proxy (G7)
5Add leads.bentondrones.com as a custom domain on the Render service.Render dashboard → service → Settings → Custom Domains~10 minG2 domain cutover + TLS certificate
6Fill the <<HUMAN:>> placeholders in docs/backup-recovery-playbook.md (Neon retention + project values) and create a free external uptime monitor (UptimeRobot/BetterStack) pointed at /healthz.Neon console + monitor signup~15 minG4 backups evidence + alerting
7Decide the open legal/business questions (listed below).Anywhere — just answersVariesFinal go/no-go

Open questions to decide (step 6)

Total human time: ~90 minutes. One sitting. Agents do everything else. (Production database is already Neon Postgres — that decision is made.)

What the AGENTS Will Do

The autonomous build phase is complete — G1, G5, G6, G3(code), and G4(code) all shipped in wiggum loop iterations 11–15 with judge verdicts recorded. What remains for agents is the credential-gated activation during/after your session, then post-launch work.

IDWhat we built / will doEffortStatus
G1Real geocoder: US Census primary + Nominatim fallback, DB cache, backfill script. GEOCODER_MODE=live activates it on Render.MDONE — judge PASS
G5Persistent token-bucket-in-DB rate limiting, shared across processes and restarts.SDONE — judge PASS
G6JIRA queue replay worker: on-read sweep + daemon, exponential backoff, dead-letter, idempotency keys.SDONE — judge PASS
G3 (code)smtplib email notifications + DB-backed queue + templates. Agents flip it live the moment SMTP_USER/SMTP_PASSWORD exist.MCode DONE live-send waits on credential
G4 (code)DB-aware /healthz, read-only verify_backup.py, recovery playbook. Agents wire the monitor once the account exists.SCode+docs DONE evidence waits on console
G2Domain cutover: Cloudflare DNS + Render custom domain + TLS, executed live during your session with rollback ready.SDuring human session
G7Shopify App Proxy signature verification against real Shopify requests (post-launch).SPost-launch
G8Internal map UI for leads, clusters, and service zones (post-launch polish).LPost-launch

How We’ll Work Together

You — the human
  • Account logins: Cloudflare, Namecheap, Google Workspace, Shopify, Render.
  • Legal sign-off on the final waiver text.
  • The final go/no-go call before cutover and launch.
The agents
  • All code, tests, and documentation.
  • Deployment configuration and verification.
  • DNS record creation once the Cloudflare token exists.
  • Cutover execution during your session, with rollback ready.

The rule: agents never touch production DNS or email, and never deploy to the branded domain, without your explicit go. You hold the keys; we do the typing.

Definition of Done — Launch Checklist

  1. All 8 production gaps (G1–G8) closed or consciously deferred. (G1, G5, G6 already closed; G3/G4 code-complete awaiting credentials.)
  2. Test suite still 459+ green across unit/integration and HTTP E2E (471 with browser E2E).
  3. leads.bentondrones.com live with valid TLS.
  4. First real signup tested end-to-end on the custom domain: signup → consent audit → email notification → admin dashboard → exports → JIRA ticket.
  5. Anderson trained on the admin workflow.

PRD & UAT Plan Current State Roadmap