Published progress appears above. These separate planning and history feeds retain their recorded scope and dates.
Operations
Projects, reviews, service health and feedback.
Accounts & services
Access, teams and connected services.
Firm settings
Existing business, design and local preferences.
Sections collapse to keep the console scannable. State is remembered in this browser.
Sprint contract & recorded delivery
Loading
Versioned execution state for program delivery. This view is informational and does not assert PE, AHJ, regulatory, or release approval.
TripTik loadingLoading the owner-only progress feed.
Schedule & pull-plan dependencies
Schedule
Backward pull plan
Ownership & risks
RACI
RAID / risks
Full checkpoint table & recorded delivery metrics
Accepted sprint history
Read-only projection of the append-only sprint log. Commit, evidence, UNKNOWN, rollback, and next-action fields remain attributed to their recorded sprint attempt.
All micro-sprints
🎭 Preview as persona (testing)
Jump to any role's landing page and see exactly what they see. This sets a client-side view-as — your real account stays owner, server data still uses your access, and a badge in the top-right corner lets you exit anytime.
🤖 Experimental drawing QA
FOUNDER TESTING
Not a design or regulatory finding. 's visual observations are unproven and may be wrong. This tool does not edit the design, create or clear blockers, change permit readiness, or replace PE/AHJ judgment.
The Designer opens the selected saved record, displays its exact revision digest, and lets you choose one assembled sheet. The review remains Anthropic-only.
Founder control plane for N&C dogfooding, organization safety, recovery, and business-tool rollout.
Status is versioned in source and changes only with recorded evidence. Software readiness is not PE or AHJ approval.
Founder login
Signed in
⚠ You're using the default password password. Change it now.
Use the configured Founder password. Password reset remains an offline operator recovery action.
Anthropic API key
Stored encrypted on the server (AES-256-GCM) and used only server-side for 's calls. It is never shown again or sent to the browser.
OpenAI API key
Stored encrypted on the server (AES-256-GCM) and never shown again or sent back to the browser. A successful server test is required before OpenAI can be selected.
Service health
Click “Run checks” to probe the live services.
External source-link audit
Weekly availability evidence for one public verification link and one live data service. Reachability is not source authority, project truth, or a professional determination.
Loading recent outcomes…
When
Source
Pool
Result
Latency
Unassigned projects — firm visibility
Records with no owning firm (created before that firm's team existed, or by the founder). Firm members can't see these in their pipeline until you assign each to its firm. Assigning stamps the owning firm; it never moves a project already owned by another firm.
Loading…
Project
Owner / site
State
Assign to firm
Citation source authority
Ledger
This ledger is the engineering citation authority. A source URL prints on a drawing, report, or deck only when it is ok here. Dead means we stop linking. It is not a GitHub outage.
Loading ledger...
50-state dual-axis deployment
Two ladders: design pack (stateDesignPack.ts: indexed → statute → research → beta → production)
and geodata (stateGeoSources.ts: unsurveyed → surveyed → verified → adapter-built → production).
Research ≠ designer-live. Roles: ✓ state source verified · ○ listed but unverified/down · ✕ verified gap · nat national default · — unknown.
Public board: codemap.html. A probe failure from the browser may be CORS, not an outage.
OWTS design workflow build-out
A system row and each distribution method clear independently. Available does not
imply every dosing option is complete. Planned rows remain visible in the Designer but
cannot be newly selected for a project. Existing records retain their system identity.
Distribution cells are the build-tracking inventory. Runtime gates consume a cell only
after that path is mapped; incomplete modes remain blocked or explicitly VERIFY.
AI source
Choose the truthed provider for general conversation. The server records provider, model, and token usage with each model answer and never silently falls back.
Engineering capability lock: drawing review, aerial/building vision, and manufacturer-document extraction remain on Anthropic. They will not switch until a representative cross-provider engineering evaluation proves equivalent results.
These fill proposal signature / letterhead fields — not hardcoded in the letter engine.
Dogfood presets: Canton — Burley and Buffalo — Reynolds. Pick an office, edit any field, Save.
Reynolds first name / title / PE # are intentionally editable blanks until you fill them.
Design defaults
controls
The API key is a server secret (never stored here). Server status: unknown
✉️ Email notifications (Resend)
Get an email when someone signs in or a proposal request or bug/feature lands. Powered by Resend. The API key is a server secret (encrypted, never stored in this browser).
The default onboarding@resend.dev from-address works immediately but only delivers to your own Resend account email — perfect for founder alerts. Auto-reply to homeowners needs a verified sending domain in Resend first (otherwise those sends are rejected).
🔑 Google sign-in (OAuth)
Let engineers, vendors, contractors, regulators & homeowners sign in with Google. Create an OAuth 2.0 Web client in Google Cloud Console with redirect URIs https://www.owtsdesigner.com/auth/google/callback and http://localhost:5173/auth/google/callback, then paste the credentials here. The secret is encrypted server-side (or set GOOGLE_CLIENT_ID/GOOGLE_CLIENT_SECRET as Fly secrets, which win).
👥 Access & roles
Pending access requests + everyone who's signed in. Approve a request to grant its role, or change a role anytime. Anyone with Google can sign in as a base homeowner; elevated roles are granted here.
Invite a member (username + password)
Provision a login and email the invite to the member. Fill in a username, their email, role, and (optionally) a password — leave it blank to auto-generate. The invite email with the credentials is sent to the address below; the member must choose a new password on first sign-in. The credentials also appear once here as a fallback.
Pending requests
Loading…
Users
Loading…
Synthetic QA personas
Reusable regulator, contractor, and homeowner browser-test accounts. They stay outside every firm roster, are restricted to NC-SYNTH-* projects, and are suspended with no usable password between test runs.
Loading…
Submission access (share one specific design)
By default a submission is private to its owner. Choose regulator review access or a homeowner's read-only project window. Access is grant-only and can be revoked at any time.
🎚️ Subscription tiers
Define subscription seat tiers for organizations. Changing a tier's seat count updates every organization on that tier immediately. Stripe products will map to these later. (A tier in use can't be removed.)
🏢 Organizations & OWTS practices
Subscription ownership controls billing and seats. Practice leads and administrators control OWTS membership and professional roles. Existing team IDs remain the compatible organization identity.
Loading…
Proposal pricing
Per-engineer pricing. “Flat rate” = always the base fee, no difficulty flags — for shops that only do simple systems. Jurisdiction review fee (e.g. ECDOH $300) comes from the county profile, not here. Signatory comes from Firm & engineer above (mail-merge).
Proposal requests (leads)
Homeowner submissions from the public request page — already geolocated + assistant-assessed.
Conversion funnel
Read-only rollup of persisted lead and proposal lifecycle timestamps. It does not change client, project, or financial records.
Persona activity
What homeowners, contractors, and regulators did across their journeys — all persisted on the volume.
📄 Proposals — homeowner e-sign / pay
✓ Regulator determinations
📍 Contractor as-builts
Wishlist / feedback
Every in-app 🐞 / 💡 submission, newest first. Record the Founder disposition and related sprint or dispatch references here.
conversations
What beta testers actually ask — click a row to read the full transcript.
🧪 learning evidence
Explicitly consented corrections and action outcomes for evaluation review. Acceptance here never trains automatically and never promotes evidence into project, engineering, professional, field, manufacturer, or regulatory truth.
✎ Teach (lessons)
Your rules, corrections, and local-jurisdiction nuances. retrieves + cites these, ranked above the generic handbook. You can also teach in-flow from the assistant's ✎ link while designing.
💾 Data backup & offline restore
Download a complete copy of all operational data (leads, twins, proposals, pipeline, feedback, assistant chats & lessons, photos) as one file — keep it off-site (your machine / OneDrive). The encrypted key vault is excluded. This is the off-Fly copy that volume snapshots can't be.
Restores into temporary storage and compares hashes; it never writes the live volume.
Fly also takes automatic daily volume snapshots (retention 30 days) as a second layer — but those stay on Fly. Download an off-site copy regularly. Validation expands the archive only into temporary isolated storage; activating a restore requires the offline maintenance workflow and never mutates the live volume from this page.
Labor rates ($/hr)
Rates drive labor cost on every job (office time auto-logged + manual field/travel/close-out/as-built) and the Fee-tuning rollup below.
Fee tuning
Actual in-software design time logged per complexity tier. Suggested scalers = avg time ÷ Routine avg — tune your pricing from data, not guesses.
UI
Settings persist in this browser (localStorage) — see Storage below.
Storage & persistence
Catalog health
Shop-drawing intake completeness for every product in the catalog. Click a row to render a live section. Runs client-side from @engine — no server call. Catalog run report: each tank's shop drawing with the readers' marks, to confirm by eye.