{
 "version": "1.8.0",
 "slug": "private-property-tow-authorization-completeness-desk",
 "title": "TowAuth Clear — Private Property Tow Authorization & Signage Completeness Desk",
 "vertical": "Private-property parking/towing regulatory compliance / multifamily & HOA statutory documentation production",
 "seed": {
  "s": "private-property-tow-authorization-completeness-desk",
  "t": "TowAuth Clear — Private Property Tow Authorization & Signage Completeness Desk",
  "v": "Private-property parking/towing regulatory compliance / multifamily & HOA statutory documentation production",
  "r": "Medium-high",
  "m": "M"
 },
 "product": {
  "slug": "private-property-tow-authorization-completeness-desk",
  "project_name": "TowAuth Clear — Private Property Tow Authorization & Signage Completeness Desk",
  "project_type": "AI-native compliance-document-production service business",
  "vertical": "Private-property parking/towing regulatory compliance / multifamily & HOA statutory documentation production",
  "audience": "California regional multifamily / HOA community-association-management (CAM) and fee-management company principals and collections/compliance coordinators overseeing 3-40 properties with an active tow vendor (secondary: self-managed HOA board treasurer/president with counsel on call)",
  "geography": "California at launch (CVC §22658 beachhead); Texas (Occ. Code Ch. 2308) and Florida (§715.07) are gated expansion states, one jurisdiction at a time, each requiring a $500+ activation fee and an attorney-reviewed Statute Checklist before onboarding",
  "scale_expectation": "8 properties / 5 PM accounts capped in the pilot cohort; a 5-pilot checkpoint hardens intake photo requirements and OCR confidence gates; a 10-pilot checkpoint hardens SOPs, exception queues, reviewer checklists, and delivery templates; a standing 20-pilot pause on new logos until COGS, rework rate, cycle time, and escalation rate are measured — signage/agreement completeness is a point-in-time audit plus an optional recurring retainer, not a continuous monthly flow the way HOA delinquency notices are",
  "core_workflows": [
   "Entrance-by-entrance signage and agreement intake & confidence-scored normalization",
   "Statute Checklist retrieval & deterministic pass/fail gap analysis (CVC §22658)",
   "Tow-Readiness Completeness Pack drafting & Compliance Analyst two-person PASS review",
   "Per-tow Evidence Pack assembly & Portfolio Monitoring Retainer re-verification"
  ],
  "discovery": {
   "one_line_purpose": "Turn a property's entrance photos and tow contract into a dated, statute-cited Tow-Readiness Completeness Pack before the next wrongful-tow demand letter or board audit lands.",
   "primary_users": [
    "CAM/PM principal or regional manager (economic buyer)",
    "Property-level site staff / facilities coordinator (champion, supplies photos)",
    "Self-managed HOA board president/treasurer with counsel on call",
    "Client's retained California attorney (escalation approver, not a TowAuth Clear user)"
   ],
   "jobs_to_be_done": [
    "When I authorize a tow, I want proof my signs and paperwork meet CVC §22658 so I am not personally/board-liable for 2x-4x statutory charges.",
    "When my tow vendor changes, I want signs and the master towing authorization agreement updated the same week, not whenever facilities gets to it.",
    "When a resident disputes a tow, I want a dated evidence pack (photos, authorization form, LE-notification log) in one PDF within hours.",
    "When counsel or an insurer asks, I want a portfolio-wide readiness status without buying another parking SaaS login."
   ],
   "value_prop": "A dated, statute-cited Tow-Readiness Completeness Pack per property — at a fraction of counsel-hour cost, with none of the trust burden of an outside parking-enforcement vendor.",
   "competitors": [
    "Reliant / Parking Boss / Parkade (permit + enforcement SaaS)",
    "LPR + tow-dispatch API stacks",
    "Local tow companies (removal + storage only)",
    "HOA/PM counsel billing hourly for signage/authorization opinions",
    "Generic AI consulting / prompt-automation builders"
   ],
   "differentiation": "TowAuth Clear is a documentation-completeness vendor, never the towing authorizer of record: it drafts a statute-cited Tow-Readiness Completeness Pack grounded in a maintained, attorney-reviewed Statute Checklist, at flat per-property pricing, and never bills hourly or shares a cut of tow fees.",
   "positioning_statement": "For CA multifamily/HOA PM principals and compliance coordinators managing a multi-property portfolio, TowAuth Clear is the tow-readiness completeness desk that turns entrance photos and a tow contract into a statute-cited pack before the next demand letter — unlike parking SaaS and tow vendors, TowAuth Clear never becomes the towing authorizer of record and never bills by the hour."
  },
  "assumptions": [
   {
    "id": "A1",
    "statement": "A CA PM managing 3+ properties with an active tow vendor has enough wrongful-tow exposure for per-property pricing to matter.",
    "confidence": "Medium",
    "impact_if_wrong": "MVP wedge would need a lower property-count floor or a bundled small-portfolio price instead of per-property.",
    "revisit_trigger": "Fewer than 2 of the first 5 pilot signups meet the 3-property floor."
   },
   {
    "id": "A2",
    "statement": "CA PMs will accept a free 3-entrance Signage Gap Scan as a lead magnet without treating street-view photo review as a liability admission.",
    "confidence": "Medium",
    "impact_if_wrong": "Lead magnet would need to shift from an unsolicited diagnosis memo to an opt-in-only scan request.",
    "revisit_trigger": "Scan-to-pilot conversion under 15% after the first 20 scan requests."
   },
   {
    "id": "A3",
    "statement": "A PM that buys one property's Completeness Pack expands to a Portfolio Monitoring Retainer covering its full portfolio within 90 days if the pack performs.",
    "confidence": "Low — inferred, not yet measured",
    "impact_if_wrong": "Retainer-attach assumption in the financial model would need to be revised downward toward one-time-pack-only revenue.",
    "revisit_trigger": "Fewer than 2 of the first 5 pilot clients attach a retainer by day 90."
   }
  ],
  "unknowns": [
   {
    "id": "U1",
    "question": "What is the true primary-source cost band for a wrongful-tow incident (the $3,200-$8,400 figure is vendor-blog-cited, not confirmed against a primary NAA document)?",
    "blocks": "Precise ROI framing in sales copy",
    "resolution_path": "Treat the figure as directional/unverified everywhere it appears; do not state it as a confirmed average without a primary source."
   },
   {
    "id": "U2",
    "question": "What exact per-property fees do parking SaaS vendors' free/bundled 'compliance checklist' features actually cover?",
    "blocks": "Precise positioning against the 'parking SaaS bundles a free checklist' competitive risk",
    "resolution_path": "Direct pilot-client conversations about what checklist features they already have access to before finalizing objection-handling copy."
   },
   {
    "id": "U3",
    "question": "How will Davis-Stirling HOA-process requirements interact with CVC §22658 in edge cases (e.g., board-vote documentation)?",
    "blocks": "Full HOA-specific completeness scope",
    "resolution_path": "Route any Davis-Stirling interplay question to the client's association counsel; TowAuth Clear documents CVC §22658 checklist items only."
   }
  ],
  "expert_panel": [
   {
    "role": "California community-association attorney",
    "key_concern": "Unauthorized practice of law if TowAuth Clear opines on the legal sufficiency of a specific tow or CC&R interplay rather than just checking statutory elements.",
    "recommendation": "Keep every legal-sufficiency opinion strictly with the client's retained attorney; TowAuth Clear only checklists published statute text against the property's own documents.",
    "dissent": "None — this is already the MVP design."
   },
   {
    "role": "Compliance operations lead",
    "key_concern": "100% two-person review at launch caps analyst throughput to 3-4 packs/day.",
    "recommendation": "Accept the throughput cap through the 20-pilot checkpoint; only move to single-reviewer spot-check once 100+ reviewed packs prove the failure-rate pattern.",
    "dissent": "A growth-focused reviewer might push to single-review sooner; overruled by the never-false-PASS hard floor."
   },
   {
    "role": "Insurance/risk officer",
    "key_concern": "TowAuth Clear being perceived as an insurance or legal guarantee rather than a documentation-completeness service.",
    "recommendation": "Every pack and every page of the microsite carries the 'documentation completeness service — not legal advice' disclaimer; guarantee language never promises litigation outcomes.",
    "dissent": "None."
   }
  ],
  "strategy": {
   "business_model": "Flat per-property, per-tow-event, and monthly-retainer document-production service; never hourly, never a share of tow fees.",
   "revenue_streams": [
    "Tow-Readiness Completeness Pack ($495-$995/property, $695 standard)",
    "Rush delivery add-on (+$200-$350/pack, <=48 business hours)",
    "Portfolio Monitoring Retainer ($149-$399/mo per PM account)",
    "Per-tow Evidence Pack ($75-$150/tow event)",
    "New-state activation add-on (+$500-$1,500 one-time per jurisdiction, TX/FL)"
   ],
   "moat": [
    "Maintained, version-controlled, attorney-reviewed CVC §22658 / TX 2308 / FL 715.07 Statute Checklist library",
    "Gold-standard Completeness Pack vault tied to real dispute/claim outcomes",
    "Two-person-review audit trail that insurers, boards, and counsel trust",
    "Draft-only positioning that avoids the towing-authorizer-of-record trust burden competitors carry"
   ],
   "gtm": [
    "Free 3-entrance Signage Gap Scan lead magnet",
    "NARPM / CAI local chapter events and directories",
    "LinkedIn signage-teardown content to CA PMs/CAMs",
    "HOA/community-association attorney referral partnerships",
    "Tow-vendor partner referrals (compliant lots = fewer disputes for them)"
   ],
   "pricing_hypothesis": "Flat $695 standard pricing undercuts a single billable attorney hour while remaining profitable once analyst review time falls from 100-120 to 25-40 minutes per pack by year one.",
   "kill_criteria": [
    "Any delivered pack later shown to have produced a false PASS in a real dispute",
    "Rework rate above 15% through the first 10 pilots",
    "Fewer than 5 CA PM/CAM companies willing to pilot after 30 days of outreach"
   ]
  },
  "security": {
   "stride": [
    {
     "threat": "Spoofing",
     "scenario": "An attacker impersonates a PM company to submit a fraudulent entrance-photo intake.",
     "mitigation": "Authenticated intake portal/form tied to a verified client account before any Property Readiness File is opened."
    },
    {
     "threat": "Tampering",
     "scenario": "Entrance photos or the tow contract PDF are altered between capture and analyst review.",
     "mitigation": "Encrypted intake/storage and an append-only audit log of every upload, draft, review, and delivery event."
    },
    {
     "threat": "Repudiation",
     "scenario": "A client disputes that a pack was reviewed by a second analyst before a PASS rating was issued.",
     "mitigation": "Both reviewer IDs and checklist results logged on every PASS-rated pack, retained for the audit trail."
    },
    {
     "threat": "Information disclosure",
     "scenario": "Property photos, tow-vendor contract terms, or signer-roster PII leak from the review tooling.",
     "mitigation": "Access-controlled review tooling limited to trained Compliance Analysts and the compliance lead."
    },
    {
     "threat": "Denial of service",
     "scenario": "A burst of scan/pack requests exceeds analyst review capacity.",
     "mitigation": "Pilot caps (8 properties / 5 PM accounts) explicitly bound intake volume until throughput is proven."
    },
    {
     "threat": "Elevation of privilege",
     "scenario": "A non-attorney role attempts to issue a legal-sufficiency opinion inside a delivered pack.",
     "mitigation": "Legal-opinion content is hard-gated out of every pack template; any such question routes to the Exception Queue for the client's attorney."
    }
   ],
   "privacy_posture": "Minimal data retention, encrypted storage, and access limited to the analysts actively working a given Property Readiness File; no property or roster data used outside the engaged client's own files.",
   "compliance_targets": [
    "California Vehicle Code §22658 (core)",
    "Texas Occupations Code Ch. 2308 (expansion)",
    "Florida Statute §715.07 (expansion)",
    "Unauthorized-practice-of-law boundaries for non-attorney compliance vendors"
   ],
   "data_classifications": [
    "Entrance/signage photos and tow-contract PDFs — restricted",
    "Authorized-signer roster (names, contact info) — confidential",
    "Audit/delivery logs — retained, access-controlled"
   ]
  },
  "devops": {
   "ci_cd": "Not applicable at launch-stage manual/semi-manual fulfillment; Statute Checklist and pack-template changes are version-controlled and attorney-reviewed before use, not continuously deployed.",
   "environments": [
    "Founder-operated production intake/drafting workspace",
    "Attorney-reviewed Statute Checklist staging (pre-activation for any new jurisdiction)"
   ],
   "observability": [
    "Per-pack audit log (upload, draft, review, correction, delivery timestamps)",
    "Cycle-time tracking (intake to delivery, target <=5 business days)",
    "Escalation-rate tracking (Exception Queue volume)"
   ],
   "testing_pyramid": [
    "Monthly red-team spot audit using consumer small-claims playbooks against a random delivered pack",
    "Gold-standard example library anchoring analyst training and prompt evaluation",
    "Sampled spot-check validation once a checklist type is proven at 100+ reviewed packs"
   ],
   "accessibility_tests": [
    "Landing page contrast and keyboard-walk verification per DESIGN-STANDARD §6/§10",
    "Screen-reader pass on the Signage Gap Scan intake form"
   ],
   "performance_budget": "Landing page <=120KB, zero external requests, LCP <=2.5s mid-tier mobile, INP <=200ms, CLS <=0.1"
  },
  "accessibility_i18n_ethics": {
   "wcag_target": "WCAG 2.2 AA",
   "locales": [
    "en-US"
   ],
   "rtl_support": false,
   "ethical_risks": [
    "Automated gap analysis proceeding on a low-confidence sign measurement without human confirmation",
    "A stale Statute Checklist producing a false PASS after an unnoticed CVC amendment or local-ordinance change"
   ],
   "ethical_guardrails": [
    "100% two-person Compliance Analyst review at launch, no exceptions through the first 20 pilot packs",
    "Statute Checklist freeze on any detected statute-change signal until attorney-reviewed",
    "Exception Queue routes public-access grace-period (§22953) lots, edge geometry, and counsel questions to the client's attorney, never automated"
   ]
  },
  "governance": {
   "ownership": [
    {
     "area": "Statute Checklist accuracy",
     "owner": "Compliance lead + retained CA attorney"
    },
    {
     "area": "Per-pack Compliance Analyst review",
     "owner": "Compliance Analyst (two-person rule on PASS)"
    },
    {
     "area": "Legal-sufficiency questions",
     "owner": "Client's retained attorney"
    }
   ],
   "docs_required": [
    "business-plan.md",
    "offer-and-pricing.md",
    "delivery-playbook.md",
    "ai-engine-spec.md",
    "compliance-checklist.md"
   ],
   "naming_conventions": [
    "One concept = one term everywhere: Tow-Readiness Completeness Pack, Signage Gap Scan, Remediation Punch List, Evidence Pack, Statute Checklist, Exception Queue, Portfolio Monitoring Retainer"
   ],
   "change_control": "Any Statute Checklist or prompt-template change is versioned; every delivered pack records which Statute Checklist version it was produced against."
  },
  "risk_register": [
   {
    "id": "R1",
    "risk": "A generated Completeness Pack omits a required CVC §22658 element.",
    "likelihood": "Low",
    "impact": "High",
    "mitigation": "Deterministic rule-engine hard gates plus two-person Compliance Analyst sign-off against the Statute Checklist before every PASS delivery.",
    "contingency": "Refund the pack fee and re-issue a corrected pack at no charge.",
    "owner": "Compliance Analyst"
   },
   {
    "id": "R2",
    "risk": "CVC §22658 or a companion statute is amended and the Statute Checklist is not updated in time.",
    "likelihood": "Medium",
    "impact": "High",
    "mitigation": "Monitor legislative-update feeds; freeze new-pack production immediately on any detected change signal until attorney-reviewed and re-validated.",
    "contingency": "Pause all new-pack production and notify affected clients of the delay.",
    "owner": "Compliance Lead"
   },
   {
    "id": "R3",
    "risk": "A client still authorizes a tow that a delivered pack flagged as a hard fail.",
    "likelihood": "Medium",
    "impact": "Medium",
    "mitigation": "Every pack states in writing that the pack is not an authorization and the client remains the authorizer of record; written acknowledgment collected at delivery.",
    "contingency": "No refund obligation; document the acknowledgment in the audit trail.",
    "owner": "Compliance Lead"
   },
   {
    "id": "R4",
    "risk": "OCR sign-dimension extraction error propagates into a PASS rating.",
    "likelihood": "Medium",
    "impact": "Medium",
    "mitigation": "Confidence-scored extraction with mandatory human measurement confirmation below threshold; never PASS on low confidence.",
    "contingency": "Re-issue a corrected Completeness Pack at no additional charge.",
    "owner": "Compliance Analyst"
   },
   {
    "id": "R5",
    "risk": "Property or tow-vendor contract data breach exposes signer-roster PII.",
    "likelihood": "Low",
    "impact": "High",
    "mitigation": "Encrypted intake/storage, minimal retention, access-controlled tooling, documented incident-response plan.",
    "contingency": "Execute the documented incident-response plan and notify affected clients per compliance-checklist.md.",
    "owner": "Compliance Lead"
   }
  ],
  "roadmap": [
   {
    "phase": "Cycle one (Days 1-7)",
    "weeks": "Week 1",
    "outcomes": [
     "CA Statute Checklist v1 finalized",
     "Sample redacted pack built",
     "Landing page + Signage Gap Scan form live",
     "20 LinkedIn/email touches sent",
     "2 partner intros made"
    ],
    "exit_criteria": [
     "[PLACEHOLDER] owner to complete"
    ],
    "kill_criteria": [
     "[PLACEHOLDER] owner to complete"
    ]
   },
   {
    "phase": "30 days",
    "weeks": "Weeks 2-4",
    "outcomes": [
     "5 paid Completeness Packs delivered",
     "Content cadence live (10 posts, 3 teardowns)",
     "First 'Wrongful Tow Office Hours' webinar run",
     "Scan-to-paid conversion measured"
    ],
    "exit_criteria": "5-pilot checkpoint reviewed; intake photo brief hardened",
    "kill_criteria": "Any delivered pack found to contain a false PASS"
   },
   {
    "phase": "90 days",
    "weeks": "Weeks 5-12",
    "outcomes": [
     "25+ packs delivered",
     "5 Portfolio Monitoring Retainers attached",
     "TX checklist beta started",
     "1 tow-vendor + 1 counsel partner channel active",
     "Gross margin >=60% on packs"
    ],
    "exit_criteria": "20-pilot checkpoint measured against COGS/rework/cycle-time/escalation targets",
    "kill_criteria": "Rework rate above 15% or any missed-deadline-equivalent trust failure"
   }
  ],
  "metrics": {
   "north_star": "Zero delivered packs later shown to contain a false PASS (hard floor, never traded off for growth)",
   "leading": [
    "Free-scan-to-paid-pack conversion rate (target >=25%)",
    "Analyst minutes per pack (100-120 -> 25-40 target)",
    "Escalation rate to Exception Queue (<15% target)"
   ],
   "lagging": [
    "Gross margin trend toward 50%+ from pack #1, 70%+ by day 90",
    "Pilot-to-retainer conversion rate (target >=40%)",
    "Rework rate (<8% by day 90, <5% target)"
   ],
   "guardrails": [
    "Zero false PASS ratings",
    "100% two-person human review through the first 20 pilot packs",
    "No new jurisdiction activated without an attorney-reviewed, red-team-tested Statute Checklist"
   ]
  },
  "executive_review": {
   "consensus": "GO — clear buyer, verified statutory rigidity (CVC §22658), verified competitor/budget validation (existing parking-SaaS and tow-contract spend), and a narrow single-property single-feature MVP wedge fulfillable by a founder-analyst before any custom software is built.",
   "dissent": "A growth-ops lens would prefer moving to single-reviewer spot-check sooner to raise throughput; overruled by the never-false-PASS hard floor through the first 20 pilot packs.",
   "go_no_go": "GO",
   "top_3_risks": [
    "A false PASS destroying trust in a compliance-first offer",
    "Multi-state Statute Checklist currency lagging TX/FL expansion",
    "Unauthorized-practice-of-law misclassification if the documentation-only boundary is not held strictly"
   ],
   "first_10_steps": [
    "Finalize and attorney-review the CA CVC §22658 Statute Checklist",
    "Build the secure intake form and Signage Gap Scan template",
    "Outreach to 15-20 warm CA PM/CAM contacts",
    "Deliver first free scans",
    "Convert first paid Completeness Packs",
    "Publish first 4 content pieces",
    "Onboard remaining pilot cohort to 5 PM accounts / 8 properties",
    "Deliver first Rush pack and first Evidence Pack",
    "Review 5-pilot checkpoint metrics",
    "Begin 10-pilot exception-queue hardening"
   ]
  }
 },
 "project_site": {
  "slug": "private-property-tow-authorization-completeness-desk",
  "app_name": "TowAuth Clear",
  "archetype": "compliance-production-desk",
  "archetype_label": "Compliance Production Desk",
  "reader_role": "CA multifamily/HOA PM principal / compliance coordinator",
  "one_sentence_app": "Send your entrance photos and tow contract; get back a statute-cited Tow-Readiness Completeness Pack in 5 business days.",
  "homepage_sequence": [
   "Hero + free scan CTA",
   "Stat strip",
   "Pain/stakes",
   "Deliverable cards",
   "How it works",
   "Pricing + guarantee",
   "Proof (honest placeholders)",
   "FAQ",
   "Compliance disclaimers",
   "Blueprint dossier footer link"
  ],
  "hero": {
   "frame_label": "Compliance Production Desk",
   "eyebrow": "For CA multifamily/HOA PMs with an active tow vendor",
   "interface_title": "Know your CVC §22658 exposure before the next demand letter",
   "primary_panel_title": "Send us your entrance photos",
   "primary_panel_body": "Get a statute-cited Tow-Readiness Completeness Pack and Remediation Punch List for one property, reviewed by two Compliance Analysts, in 5 business days.",
   "side_panel_title": "What you send us / what you get back",
   "side_panel_items": [
    "Send: entrance photos, current signs, tow contract PDF, authorized-signer roster",
    "Get: Tow-Readiness Completeness Pack PDF + Remediation Punch List",
    "Get (if you keep towing): per-tow Evidence Pack, $75-$150 each"
   ],
   "status_metric": "2x-4x",
   "status_label": "CVC §22658 statutory towing/storage liability multiplier for signage or authorization defects"
  },
  "language": {
   "problem_heading": "The paperwork gap between 'we tow' and 'we can lawfully tow'",
   "mechanism_heading": "How the Tow-Readiness Completeness Pack gets built",
   "proof_heading": "What's verified so far",
   "offer_heading": "Pricing — flat, per property, never hourly",
   "objection_heading": "Questions CA PMs actually ask",
   "qualification_heading": "Who this is (and isn't) for",
   "cta_close": "Request my free Signage Gap Scan"
  },
  "modules": [
   {
    "name": "Intake & Normalization",
    "job": "Turn entrance photos, signs, and the tow contract into a canonical, confidence-scored Property Readiness File",
    "artifact": "Normalized property readiness record"
   },
   {
    "name": "Statute Checklist & Retrieval",
    "job": "Ground every draft in the attorney-reviewed CVC §22658 (and TX/FL) checklist plus the property's own tow contract",
    "artifact": "Applicable Statute Checklist version"
   },
   {
    "name": "Gap Analysis Drafting",
    "job": "Draft the statute-cited signage and agreement gap analysis",
    "artifact": "Draft Tow-Readiness Completeness Pack"
   },
   {
    "name": "Compliance Review",
    "job": "Two-person statute-checklist review and sign-off before delivery",
    "artifact": "Reviewed, PASS-rated pack"
   },
   {
    "name": "Delivery & Portfolio Monitoring",
    "job": "Deliver the pack and track re-verification dates across a PM's portfolio",
    "artifact": "Portfolio readiness status"
   },
   {
    "name": "Evidence Assembly",
    "job": "Assemble the per-tow Evidence Pack if a dispute or demand letter arrives",
    "artifact": "Evidence Pack"
   }
  ],
  "checkpoints": [
   {
    "label": "5-pilot checkpoint",
    "pass": "Intake photo brief and OCR confidence gates hardened",
    "fail": "Pause new packs until gaps are fixed"
   },
   {
    "label": "10-pilot checkpoint",
    "pass": "Exception Queue triggers and reviewer checklist hardened",
    "fail": "Pause exception-queue automation until re-validated"
   },
   {
    "label": "20-pilot checkpoint",
    "pass": "COGS, rework, escalation, and cycle time measured within target",
    "fail": "Pause all new onboarding until metrics recover"
   }
  ],
  "signature_scene": "A CA property manager uploads five entrance photos and a tow contract PDF on a Monday morning; by the following Monday, a two-analyst-reviewed Tow-Readiness Completeness Pack and Remediation Punch List sit in their inbox — nothing guessed, nothing left for a plaintiff's attorney to find first."
 },
 "microsite": {
  "audience": "California regional multifamily / HOA property managers and CAM companies (3-40 properties) with an active tow vendor",
  "category": "Private-property tow authorization & signage completeness",
  "cost_of_inaction": "A single CVC §22658 signage or authorization defect converts a $300-$500 tow into 2x-4x statutory liability plus misdemeanor exposure for improper general-authorization practices — and consumer small-claims guides actively teach vehicle owners to name the PM and HOA, not just the tow company.",
  "deliverable": "Tow-Readiness Completeness Pack",
  "dream_outcome": "Walk into any board audit, insurance renewal, or demand letter with a dated, statute-cited pack proving every entrance sign and every authorization document already clears CVC §22658 — before anyone else finds the gap first.",
  "faq": [
   {
    "q": "Do you tow vehicles or authorize tows for us?",
    "a": "No. TowAuth Clear never tows a vehicle and never authorizes a tow on your behalf. You remain the authorizer of record for every tow. We produce the documentation that shows your signage and paperwork meet CVC §22658 — nothing more."
   },
   {
    "q": "Is this legal advice?",
    "a": "No. TowAuth Clear is a documentation-completeness service, not a law firm. We checklist your signs and agreements against published statute text. Any question about the legal sufficiency of a specific tow, your CC&Rs, or litigation strategy goes to your retained attorney through our Exception Queue."
   },
   {
    "q": "What if the Signage Gap Scan finds nothing wrong?",
    "a": "You keep the scorecard and the evidence photos at no charge. A clean scan is still useful the day an insurer or board asks for proof."
   },
   {
    "q": "How is this priced?",
    "a": "Flat, per property. $695 standard (as low as $495 for a small lot with two or fewer entrances, up to $995 for six or more). Never hourly, never a percentage of tow fees."
   },
   {
    "q": "How fast is delivery?",
    "a": "Five business days standard from a complete intake. Rush delivery in 48 business hours is available for +$200-$350."
   },
   {
    "q": "What happens if we keep towing after the pack is delivered?",
    "a": "Optional add-ons: a per-tow Evidence Pack ($75-$150) assembled after any specific tow, or a Portfolio Monitoring Retainer ($149-$399/mo) that re-verifies your signage and agreements on a schedule across your whole portfolio."
   },
   {
    "q": "Do you work with our tow vendor?",
    "a": "Yes, as a partner, not a client of ours. A compliant lot means fewer disputes for your tow vendor too — we pay a documentation-pack referral fee, never a share of tow fees."
   },
   {
    "q": "What states do you cover?",
    "a": "California at launch (CVC §22658). Texas (Occ. Code Ch. 2308) and Florida (§715.07) are gated expansion states we activate one jurisdiction at a time, each behind its own attorney-reviewed Statute Checklist."
   }
  ],
  "guarantee": "If your Signage Gap Scan comes back clean, you keep the evidence photos and scorecard at no charge. If a Tow-Readiness Completeness Pack we deliver is later shown by your retained attorney to have missed a required CVC §22658 element that was present in your submitted photos and documents, we re-issue the corrected pack at no charge — we do not guarantee the outcome of any specific dispute, tow, or legal proceeding.",
  "hook": "We'll tell you in 5 business days whether your signs and tow contract would survive a CVC §22658 challenge.",
  "indexable": true,
  "lexicon": {
   "cta_verb": "Request my free Signage Gap Scan",
   "enforcement_stakes": "2x-4x statutory towing/storage liability plus misdemeanor exposure for improper general-authorization practices under CVC §22658",
   "intake_checklist": [
    "[PLACEHOLDER] owner to complete"
   ],
   "persona": "CA regional multifamily/HOA PM or CAM principal",
   "persona_moment": "A wrongful-tow demand letter, a new tow-vendor onboarding, an insurance-renewal questionnaire, or a board audit lands on their desk",
   "regulator": "No formal regulator — statutory liability runs through California small-claims courts and civil suits under CVC §22658; the client's retained CA attorney is the legal-sufficiency approver",
   "regulator_faqs": [
    {
     "q": "Who enforces CVC §22658?",
     "a": "There is no dedicated agency. Liability runs through civil and small-claims court when a vehicle owner sues the PM, HOA, or tow company for a signage or authorization defect."
    },
    {
     "q": "Can a plaintiff sue the PM directly, not just the tow company?",
     "a": "Yes — consumer small-claims guides and Justia Q&As document plaintiffs naming the HOA, the PM, and the tow company together."
    }
   ],
   "regulator_full": "California civil and small-claims courts applying California Vehicle Code §22658",
   "retention": "Intake artifacts, Statute Checklist versions, reviewer IDs, and delivery hashes retained for the audit-trail defensibility period disclosed at intake",
   "statute": "CVC §22658",
   "statute_frame": "California Vehicle Code §22658 (signage, written-authorization, and double/quadruple-liability provisions)",
   "trigger_moment": "Wrongful-tow demand letter, tow-vendor change, insurance-renewal questionnaire, portfolio acquisition, or board audit",
   "trust_standards_specific": [
    "[PLACEHOLDER] owner to complete"
   ]
  },
  "mechanism": {
   "name": "The Tow-Readiness Completeness Pack pipeline",
   "steps": [
    {
     "title": "Photograph every entrance",
     "body": "You send distance + close-up photos of each vehicular entrance sign, plus your tow contract PDF and authorized-signer roster."
    },
    {
     "title": "AI gap analysis vs. CVC §22658",
     "body": "Vision extraction reads sign text, dimensions, and phone numbers; clause classification maps your tow contract against the Statute Checklist."
    },
    {
     "title": "Two-person Compliance Analyst review",
     "body": "A first analyst confirms every measurement and clause; a second analyst signs off before any PASS rating is issued."
    },
    {
     "title": "Deliver the pack + Remediation Punch List",
     "body": "You get a dated, statute-cited PDF: entrance-by-entrance pass/fail, agreement completeness check, signer roster template, and a 30-day punch list."
    }
   ]
  },
  "northStarCta": {
   "href": "#scan",
   "label": "Request my free Signage Gap Scan",
   "secondary_href": "/private-property-tow-authorization-completeness-desk/blueprint/",
   "secondary_label": "View the full operating blueprint dossier"
  },
  "objections": [
   {
    "q": "We already pay for parking software — why do we need this too?",
    "a": "Parking software manages permits and dispatch. None of them audit whether your entrance signs and tow contract actually satisfy CVC §22658's size, content, and written-authorization requirements. That's a documentation gap, not a software gap."
   },
   {
    "q": "Our tow vendor said our signs are fine.",
    "a": "Tow vendors are not a neutral party on this question — they profit from towing continuing. A Signage Gap Scan gives you an independent, statute-cited answer."
   },
   {
    "q": "Isn't this just legal advice with extra steps?",
    "a": "No. We checklist your signs and paperwork against published statute text and hand you a pass/fail pack. We never opine on the legal sufficiency of a specific tow — that stays with your retained attorney."
   }
  ],
  "offer": "Tow-Readiness Completeness Pack — $695 standard (as low as $495 small lot / up to $995 complex), 5 business days, free 20-minute readout included. First 5 pilots: $395 early-access pricing with feedback rights.",
  "offer_stack": [
   {
    "item": "Free Signage Gap Scan (up to 3 entrances)",
    "note": "$0 lead magnet, pass/fail scorecard"
   },
   {
    "item": "Tow-Readiness Completeness Pack (per property)",
    "note": "$495-$995, $695 standard, 5 business days"
   },
   {
    "item": "Rush delivery",
    "note": "+$200-$350, <=48 business hours"
   },
   {
    "item": "Portfolio Monitoring Retainer",
    "note": "$149-$399/mo per PM account"
   },
   {
    "item": "Per-tow Evidence Pack",
    "note": "$75-$150 per tow event"
   },
   {
    "item": "New-state activation (TX/FL)",
    "note": "$500-$1,500 one-time per jurisdiction"
   }
  ],
  "problem": "Site staff treat towing as 'call the truck.' CVC §22658 treats it as a tightly scripted procedure: entrance signs >=17\"x22\" with >=1\" letters naming the LE phone and each contracted tow company, a written general towing authorization agreement, and a scene-specific written authorization with a present authorized agent (narrow exceptions aside). Miss any element and a $300-$500 tow becomes a statutory multiple, plus misdemeanor exposure for improper general-authorization practices.",
  "process": [
   {
    "title": "Kickoff",
    "body": "Property list, tow vendor, and who may authorize tows."
   },
   {
    "title": "Field capture brief",
    "body": "How to photograph each entrance — distance, close-up, and a measuring reference."
   },
   {
    "title": "AI gap analysis",
    "body": "Vision extraction and clause classification against the CVC §22658 Statute Checklist."
   },
   {
    "title": "Analyst QA + punch list",
    "body": "Two-person Compliance Analyst review, then a 30-day Remediation Punch List."
   },
   {
    "title": "Delivery meeting",
    "body": "30-minute readout with the remediation owners."
   },
   {
    "title": "Optional re-verify",
    "body": "Confirm fixes after sign or agreement updates, or attach a Portfolio Monitoring Retainer."
   }
  ],
  "proof_angle": {
   "headline": "What's verified vs. what's still owner-confirmed",
   "id": "towauth-proof-1",
   "lever": "Statute text + market-size figures are independently source-checked; pilot outcomes are honest placeholders until the first packs ship",
   "outcome_frame": "Every claim on this page is labeled verified, inferred, or a placeholder — never presented as more certain than it is",
   "outcome_verb": "verify",
   "proof_promise": "Pilot dispute-after-pack counts and delivery-time averages will publish here as soon as the first pilot cohort completes"
  },
  "proof_pillars": [
   {
    "title": "Statute text verified",
    "body": "CVC §22658 signage, written-authorization, LE-notice, and double-liability provisions checked against California Leginfo and Justia."
   },
   {
    "title": "Market size verified",
    "body": "~51,700 CA community associations (FCAR 2025) and ~13,971 CA apartment buildings (POIData mid-2026)."
   },
   {
    "title": "Pilot results — placeholder",
    "body": "[PLACEHOLDER] First pilot cohort's dispute-after-pack count and average cycle time will appear here after the first packs ship."
   }
  ],
  "shortTitle": "TowAuth Clear",
  "specific_pains": [
   "Entrance signs missing the required tow-company phone number",
   "Signs under the 17\"x22\" / 1\"-letter statutory minimum",
   "No written general towing authorization agreement on file",
   "\"Patrol and tow everything\" practices without scene-specific written authorization",
   "Signer roster that does not match who is actually calling the tow truck"
  ],
  "stakes_line": "A missing tow-company phone number on one entrance sign is enough to turn a $400 tow into a 2x-4x statutory claim against you personally.",
  "sub_headline": "A statute-cited Tow-Readiness Completeness Pack for your property in 5 business days — reviewed by two Compliance Analysts, never a software login.",
  "trust": {
   "data_handling": "Entrance photos, tow-contract PDFs, and the authorized-signer roster are encrypted in storage, access-limited to the analysts working your Property Readiness File, and never used outside your own engagement.",
   "response_time": "5 business days standard from a complete intake; 48 business hours with Rush.",
   "standards": [
    "[PLACEHOLDER] owner to complete"
   ]
  },
  "ubiquitousLanguage": {
   "audience": "CA multifamily/HOA property manager",
   "cta_primary": "Request my free Signage Gap Scan",
   "cta_secondary": "View the full operating blueprint dossier",
   "deliverable": "Tow-Readiness Completeness Pack",
   "domain": "Private-property tow authorization & signage completeness",
   "event_conversation_requested": "domain.diagnostic_requested",
   "event_intake_started": "ui.cta_primary",
   "record": "Property Readiness File",
   "regulator": "California civil/small-claims courts under CVC §22658",
   "regulator_full": "California civil and small-claims courts applying California Vehicle Code §22658",
   "reviewer": "Compliance Analyst",
   "statute": "CVC §22658",
   "trigger_moment": "Wrongful-tow demand letter, tow-vendor change, or board/insurance audit",
   "unit_of_work": "Property"
  },
  "unit_of_work": "Property",
  "urgency": "Every entrance without a compliant sign or agreement is live statutory exposure the next time your tow vendor removes a vehicle — not a someday risk.",
  "who_this_is_not_for": [
   "[PLACEHOLDER] owner to complete"
  ]
 },
 "ddd": {
  "slug": "private-property-tow-authorization-completeness-desk",
  "project_name": "TowAuth Clear — Private Property Tow Authorization & Signage Completeness Desk",
  "business_understanding": {
   "summary": "TowAuth Clear produces a dated, statute-cited Tow-Readiness Completeness Pack for every private property with an active tow vendor, so CA multifamily/HOA PMs never lose the CVC §22658 documentation defense that stands between a routine tow and 2x-4x statutory liability.",
   "customer_profile": "CA regional multifamily/HOA PM or CAM principal managing 3-40 properties with an active tow vendor, or a self-managed HOA board treasurer with counsel on call, operating under California's hyper-procedural private-property tow statute.",
   "customer_pain": "Site staff treat towing as 'call the truck' while CVC §22658 requires precise signage, a written general towing authorization agreement, and scene-specific written authorization — a single missing element converts a $300-$500 tow into a statutory multiple, and consumer small-claims guides actively coach vehicle owners to sue the PM and HOA, not just the tow company.",
   "paid_outcome": "A statute-cited Tow-Readiness Completeness Pack and Remediation Punch List delivered within 5 business days of a complete intake, reviewed by two Compliance Analysts; when a specific tow is disputed, a per-tow Evidence Pack for the client's records.",
   "value_creation": "Removes the choice CA PMs currently face between expensive attorney-hour signage/agreement review and doing nothing until a demand letter arrives, at a fraction of counsel cost and without TowAuth Clear ever becoming the towing authorizer of record.",
   "why_ai_native": "The workflow decomposes cleanly into vision-based sign extraction, deterministic statute-checklist rules, and citation-grounded gap-report drafting — near-zero marginal cost per pack, with a two-person human judgment chokepoint at every PASS rating, and pack quality rises as frontier vision models improve at OCR and dimension estimation.",
   "operational_risks": [
    "A false PASS destroys trust in a compliance-first offer",
    "Multi-state Statute Checklist currency lags TX/FL expansion",
    "Unauthorized-practice-of-law misclassification if the documentation-only boundary is not held strictly"
   ],
   "assumptions": [
    "A CA PM managing 3+ properties with an active tow vendor has enough wrongful-tow exposure for per-property pricing to matter",
    "A free 3-entrance Signage Gap Scan converts to paid Completeness Packs at a meaningful rate",
    "A PM that buys one property's pack expands to a Portfolio Monitoring Retainer within 90 days if the pack performs"
   ],
   "validation_questions": [
    "Does the first pilot cohort hit zero false-PASS packs?",
    "Does the free-scan-to-paid-pack conversion rate clear 25%?",
    "Does at least one pilot client attach a Portfolio Monitoring Retainer by day 90?"
   ]
  },
  "domain_discovery": {
   "actors": [
    {
     "actor": "CAM/PM principal or regional manager",
     "role": "Economic buyer",
     "goals": [
      "Avoid 2x-4x statutory liability and board/insurer heat across the portfolio"
     ],
     "decisions": [
      "Whether to pilot TowAuth Clear"
     ],
     "pain_points": [
      "No independent read on signage/agreement compliance short of paying counsel by the hour"
     ]
    },
    {
     "actor": "Property-level site staff / facilities coordinator",
     "role": "Champion / day-to-day user",
     "goals": [
      "Get entrance photos captured correctly the first time"
     ],
     "decisions": [
      "Which entrances to photograph; when to escalate a bad-photo retake"
     ],
     "pain_points": [
      "Photographing signs without a reference object or complete angle coverage"
     ]
    },
    {
     "actor": "Compliance Analyst",
     "role": "Human chokepoint / reviewer",
     "goals": [
      "Zero false PASS ratings"
     ],
     "decisions": [
      "Approve, correct, or escalate every pack; second-reviewer sign-off on every PASS"
     ],
     "pain_points": [
      "Reviewing low-confidence OCR measurements under time pressure"
     ]
    },
    {
     "actor": "Client's retained CA attorney",
     "role": "Legal approver for escalated questions",
     "goals": [
      "A defensible documentation record if a dispute reaches litigation"
     ],
     "decisions": [
      "Resolve every Exception Queue item routed to them"
     ],
     "pain_points": [
      "Incomplete evidence packets that force follow-up before a legal opinion"
     ]
    },
    {
     "actor": "Vehicle owner / homeowner",
     "role": "Subject of the workflow, never a TowAuth Clear client",
     "goals": [
      "Understand or dispute why their vehicle was towed"
     ],
     "decisions": [
      "Pay, dispute, or pursue a small-claims wrongful-tow challenge"
     ],
     "pain_points": [
      "Confusing or missing signage and authorization paperwork"
     ]
    }
   ],
   "glossary": [
    {
     "term": "Tow-Readiness Completeness Pack",
     "definition": "The dated, statute-cited PDF package covering entrance-by-entrance signage pass/fail, master agreement completeness, authorized-signer roster template, and a 30-day Remediation Punch List.",
     "used_by": "CA PM/CAM company; Compliance Analyst",
     "context": "Gap Analysis Drafting, Compliance Review",
     "example": "A Tow-Readiness Completeness Pack for a 4-entrance apartment complex.",
     "notes": "Never called a 'report' or 'bundle' elsewhere."
    },
    {
     "term": "Signage Gap Scan",
     "definition": "The free, up-to-3-entrance lead-magnet pass/fail scorecard against the CVC §22658 signage checklist.",
     "used_by": [
      "Prospective CA PM"
     ],
     "context": "Lead generation, Intake & Normalization",
     "example": "A 3-entrance Signage Gap Scan showing one hard fail (missing tow-company phone number).",
     "notes": "Never called a 'free audit' or 'quote' in client-facing copy."
    },
    {
     "term": "Remediation Punch List",
     "definition": "The 30-day list of specific fixes required to move every hard-fail item in a Completeness Pack to PASS.",
     "used_by": [
      "CA PM/CAM company",
      "Compliance Analyst"
     ],
     "context": "Compliance Review, Delivery & Portfolio Monitoring",
     "example": "A punch list item: 'Replace entrance sign #2 — missing LE phone number.'",
     "notes": "Never called a 'to-do list' or 'action items' in client-facing copy."
    },
    {
     "term": "Evidence Pack",
     "definition": "The per-tow-event PDF assembling photos, the authorization form, and the LE-notification log for a specific disputed tow.",
     "used_by": [
      "CA PM/CAM company",
      "Client's retained attorney"
     ],
     "context": "Evidence Assembly",
     "example": "An Evidence Pack assembled within hours of a resident dispute.",
     "notes": "Never called a 'case file' or 'dispute report'."
    },
    {
     "term": "Statute Checklist",
     "definition": "The versioned, attorney-reviewed set of CVC §22658 (or TX 2308 / FL 715.07) statutory signage and authorization requirements a Compliance Analyst reviews every pack against.",
     "used_by": [
      "Compliance Lead",
      "Retained attorney",
      "Compliance Analyst"
     ],
     "context": "Statute Checklist & Retrieval, Compliance Review",
     "example": "The CA Statute Checklist version dated 2026-07-01.",
     "notes": "Never called a 'rule set' or 'compliance database'."
    },
    {
     "term": "Exception Queue",
     "definition": "The routing lane for any property showing edge lot geometry, public-access §22953 grace-period risk, or a legal-sufficiency question.",
     "used_by": [
      "Compliance Analyst"
     ],
     "context": "Exception & Escalation",
     "example": "A public-access retail lot routed to the Exception Queue for counsel review.",
     "notes": "Never automated past this point."
    }
   ],
   "decisions": [
    {
     "decision": "Issue a PASS rating on a drafted Completeness Pack",
     "who": "Two Compliance Analysts (primary + second reviewer)",
     "inputs": [
      "Drafted pack",
      "Statute Checklist",
      "Source entrance photos and contract"
     ],
     "rule": "PASS only if every required statutory element is present and cited by both reviewers; escalate on any low-confidence measurement or public-access signal",
     "output": "PackApproved or ExceptionRaised",
     "risk": "False PASS if the second-reviewer step is skipped"
    },
    {
     "decision": "Activate a new jurisdiction's Statute Checklist",
     "who": "Compliance Lead + retained attorney",
     "inputs": [
      "Drafted Statute Checklist",
      "Red-team edge-case test results"
     ],
     "rule": "Only after attorney review and red-team testing pass",
     "output": "StatuteChecklistVersionUpdated (active)",
     "risk": "A non-compliant pack if activated prematurely"
    },
    {
     "decision": "Authorize a specific tow",
     "who": "The client (property/PM), never TowAuth Clear",
     "inputs": [
      "Delivered Tow-Readiness Completeness Pack",
      "Present authorized signer"
     ],
     "rule": "TowAuth Clear never authorizes tows as the property's agent; the client remains authorizer of record at all times",
     "output": "ClientAuthorizationLogged (external to TowAuth Clear)",
     "risk": "Unauthorized practice / unlicensed agency if this boundary is not held"
    }
   ],
   "events": [
    {
     "event": "EntranceAudited",
     "meaning": "An entrance's signage is photographed and measured",
     "trigger": "Intake photo set processed",
     "downstream": [
      "[PLACEHOLDER] owner to complete"
     ]
    },
    {
     "event": "GapAnalysisDrafted",
     "meaning": "The AI has produced a citation-grounded draft pass/fail analysis",
     "trigger": "Statute Checklist retrieval + vision/clause drafting complete",
     "downstream": "Compliance Review begins"
    },
    {
     "event": "ExceptionRaised",
     "meaning": "A property is routed out of the automated pipeline",
     "trigger": "Low-confidence measurement, edge geometry, or public-access §22953 signal detected",
     "downstream": "Client's attorney notified via Exception Queue"
    },
    {
     "event": "PackDelivered",
     "meaning": "The client has received the PASS-rated Tow-Readiness Completeness Pack",
     "trigger": "Delivery timestamp logged",
     "downstream": "Portfolio Monitoring status updated with the next re-verify date"
    },
    {
     "event": "EvidencePackAssembled",
     "meaning": "A complete per-tow Evidence Pack is ready for the client's records or attorney",
     "trigger": "Client requests evidence assembly for a specific tow event",
     "downstream": "Client review and optional attorney handoff"
    }
   ]
  },
  "subdomains": [
   {
    "name": "Statute Checklist & Retrieval",
    "type": "Core",
    "description": "The maintained, version-controlled, attorney-reviewed CVC §22658 / TX 2308 / FL 715.07 checklist that grounds every draft.",
    "reason": "This is the durable moat — a generic chatbot cannot maintain a multi-jurisdiction, audited statute checklist.",
    "business_value": "Directly protects the never-false-PASS guarantee and the compliance-vendor trust position.",
    "recommendation": "Invest here first and keep it in-house.",
    "ai_involvement": "Monitors legislative-update feeds; humans confirm and version every change.",
    "human_involvement": "Compliance Lead + retained attorney approve every version.",
    "risks": [
     "Stale statute produces a false PASS"
    ],
    "validation_questions": [
     "Is the CA checklist current as of the last legislative session?"
    ]
   },
   {
    "name": "Signage & Agreement Analysis",
    "type": "Core",
    "description": "Vision OCR sign measurement plus clause classification of the tow contract against the checklist.",
    "reason": "The AI-native advantage over manual tape-measure site visits.",
    "business_value": "Cuts per-pack cost to a fraction of attorney-hour or manual-inspection drafting.",
    "recommendation": "Invest here; keep model-agnostic per the Model Portability layer.",
    "ai_involvement": "Extracts sign dimensions/text and classifies contract clauses against the Statute Checklist.",
    "human_involvement": "Compliance Analyst confirms every measurement, never trusts vision output blind.",
    "risks": [
     "A drafted analysis omits a required statutory element"
    ],
    "validation_questions": [
     "Does every draft carry an inline statutory citation?"
    ]
   },
   {
    "name": "Compliance Review",
    "type": "Core",
    "description": "Two-person human review against the Statute Checklist before any PASS delivery.",
    "reason": "Trust is the entire value proposition; this is the sign-off chokepoint.",
    "business_value": "Never-false-PASS guarantee depends on this gate.",
    "recommendation": "Never fully automate; only ease to single-reviewer spot-check after 100+ reviewed packs.",
    "ai_involvement": "AI self-check pre-filters low-risk items for the analyst.",
    "human_involvement": "Two Compliance Analysts sign off on every PASS.",
    "risks": [
     "Missed statutory element slips past review under time pressure"
    ],
    "validation_questions": [
     "Is the rework rate trending toward the 5% post-90-day target?"
    ]
   },
   {
    "name": "Evidence Assembly",
    "type": "Core",
    "description": "Assembling the complete per-tow Evidence Pack for client records or attorney handoff.",
    "reason": "The audit trail that survives a homeowner's small-claims challenge.",
    "business_value": "Protects both the client's legal defensibility and TowAuth Clear's liability position.",
    "recommendation": "Always human-reviewed, never spot-checked.",
    "ai_involvement": "Pre-assembles the packet from stored intake and pack records.",
    "human_involvement": "Compliance Analyst reviews and delivers every Evidence Pack.",
    "risks": [
     "Incomplete evidence packet if a required photo is missing"
    ],
    "validation_questions": [
     "Does every Evidence Pack include proof of timing for every element?"
    ]
   },
   {
    "name": "Intake & Normalization",
    "type": "Supporting",
    "description": "Turning entrance photos, signs, and the tow contract into a canonical, confidence-scored Property Readiness File.",
    "reason": "Necessary but not differentiating on its own — many tools can parse photos.",
    "business_value": "Feeds every downstream context with clean data.",
    "recommendation": "Automate over time; keep low-confidence fields gated to human confirmation.",
    "ai_involvement": "Confidence-scored field extraction from photos and PDFs.",
    "human_involvement": "Compliance Analyst confirms low-confidence fields.",
    "risks": [
     "Wrong dimension/phone number propagates into a pack"
    ],
    "validation_questions": [
     "What's the current false-low-confidence rate?"
    ]
   },
   {
    "name": "Delivery & Portfolio Monitoring",
    "type": "Supporting",
    "description": "PDF delivery and portfolio-wide re-verify scheduling for retainer clients.",
    "reason": "Operationally necessary; could later become a differentiating portfolio dashboard product.",
    "business_value": "Keeps a multi-property PM from missing a re-verify date across dozens of properties.",
    "recommendation": "Automate as retainer volume grows into a full portfolio dashboard.",
    "ai_involvement": "Schedules the next re-verify trigger.",
    "human_involvement": "Client authorizes/reviews under its own name.",
    "risks": [
     "A scheduled re-verify trigger is missed"
    ],
    "validation_questions": [
     "What's the cycle-time trend against the 5-business-day target?"
    ]
   },
   {
    "name": "Exception & Escalation",
    "type": "Core",
    "description": "Routing edge-geometry, public-access §22953, or legal-sufficiency questions out of the automated pipeline.",
    "reason": "The safety valve that keeps the automated pipeline from touching cases it should never touch.",
    "business_value": "Prevents the highest-impact failure mode: a false PASS on an edge case.",
    "recommendation": "Never automate the escalation decision itself.",
    "ai_involvement": "Flags likely exceptions for analyst confirmation.",
    "human_involvement": "Compliance Analyst confirms and routes; attorney resolves.",
    "risks": [
     "Misclassified exception proceeds through the automated pipeline"
    ],
    "validation_questions": [
     "Is the escalation rate trending under the 15% target?"
    ]
   },
   {
    "name": "Learning Loop",
    "type": "Generic",
    "description": "Converting corrections into versioned Statute Checklist/prompt updates.",
    "reason": "Generic to any compliance-production business; not a differentiator by itself, but required hygiene.",
    "business_value": "Keeps quality improving without ad hoc patches.",
    "recommendation": "Build simply; do not over-invest before volume justifies it.",
    "ai_involvement": "None directly; consumes human correction data.",
    "human_involvement": "Compliance Lead approves versioned updates.",
    "risks": [
     "A recurring correction pattern is missed and re-occurs"
    ],
    "validation_questions": [
     "How many corrections have become versioned updates so far?"
    ]
   }
  ],
  "core_domain_analysis": {
   "primary_core": "Statute Checklist & Retrieval — the maintained, attorney-reviewed, version-controlled CVC §22658 / TX 2308 / FL 715.07 checklist that grounds every draft and freezes production on any detected change.",
   "secondary_cores": [
    "Compliance Review (the two-person-human trust chokepoint)",
    "Evidence Assembly (the audit-trail evidentiary assembly)",
    "Exception & Escalation (the safety valve for edge geometry / public-access / legal-sufficiency questions)"
   ],
   "supporting_may_become_core": [
    "Delivery & Portfolio Monitoring — could become a differentiating portfolio-wide dashboard product as retainer volume grows"
   ],
   "generic_do_not_distract": [
    "Learning Loop (standard correction-to-version hygiene, not a differentiator)",
    "Intake & Normalization (parsing entrance photos is not itself defensible)"
   ],
   "rationale": "If a future frontier model makes single-sign OCR trivial for any property manager, TowAuth Clear's durable value is entirely in the maintained Statute Checklist, the two-person-review trust chokepoint, and the audit-trail assembly — none of which a generic chatbot response replaces."
  },
  "bounded_contexts": [
   {
    "name": "Intake & Normalization",
    "purpose": "Turn uploaded entrance photos, signs, and the tow contract into a canonical, confidence-scored Property Readiness File.",
    "subdomain": "Intake & Normalization",
    "type": "Supporting",
    "owned_language": [
     "'Intake & Normalization' always means the same thing here as on the landing page and in delivery-playbook.md"
    ],
    "owns": [
     "Raw photo uploads",
     "Confidence scores",
     "Normalized property records"
    ],
    "does_not_own": [
     "Statute checklist evaluation",
     "Gap analysis drafting"
    ],
    "primary_actors": [
     "Property-level site staff"
    ],
    "entities": [
     "PropertyReadinessFile"
    ],
    "value_objects": [
     "Money (pack price)",
     "Deadline/Window (5-business-day SLA)",
     "SLA"
    ],
    "aggregates": [
     "PropertyReadinessFile"
    ],
    "domain_services": [
     "FieldExtractionService"
    ],
    "application_services": [
     "IntakeNormalizationService"
    ],
    "commands": [
     "SubmitEntranceIntake",
     "ConfirmLowConfidenceField"
    ],
    "domain_events": [
     "EntranceAudited",
     "FieldsNormalized"
    ],
    "policies": [
     "Any field below the confidence threshold must be analyst-confirmed before drafting"
    ],
    "specifications": [
     "A PropertyReadinessFile cannot proceed to Statute Checklist retrieval while any required entrance photo is unconfirmed"
    ],
    "invariants": [
     "A PropertyReadinessFile's confirmed fields are immutable except via a logged correction"
    ],
    "human_roles": [
     "Compliance Analyst"
    ],
    "ai_agents": [],
    "inputs": [
     "PropertyReadinessFile"
    ],
    "outputs": [
     "PropertyReadinessFile"
    ],
    "interfaces": [
     "Intake portal",
     "Analyst review workbench"
    ],
    "external_integrations": [],
    "data_owned": [
     "Raw photo uploads",
     "Confidence scores",
     "Normalized property records"
    ],
    "risks": [
     "Intake & Normalization data drift if not versioned"
    ]
   },
   {
    "name": "Statute Checklist & Retrieval",
    "purpose": "Maintain and retrieve the versioned, attorney-reviewed CVC §22658 / TX 2308 / FL 715.07 checklist that grounds every draft.",
    "subdomain": "Statute Checklist & Retrieval",
    "type": "Core",
    "owned_language": [
     "'Statute Checklist & Retrieval' always means the same thing here as on the landing page and in delivery-playbook.md"
    ],
    "owns": [
     "Statute Checklist versions",
     "Jurisdiction activation status"
    ],
    "does_not_own": [
     "Pack drafting",
     "Compliance review sign-off"
    ],
    "primary_actors": [
     "Compliance Lead",
     "Retained CA attorney"
    ],
    "entities": [
     "StatuteChecklist"
    ],
    "value_objects": [
     "Statute/Form/Code refs",
     "Deadline/Window"
    ],
    "aggregates": [
     "StatuteChecklist"
    ],
    "domain_services": [
     "ChecklistVersioningService"
    ],
    "application_services": [
     "ChecklistActivationService"
    ],
    "commands": [
     "DraftChecklistVersion",
     "ActivateJurisdiction"
    ],
    "domain_events": [
     "StatuteChecklistVersionUpdated"
    ],
    "policies": [
     "A jurisdiction only activates after attorney review and red-team testing pass"
    ],
    "specifications": [
     "No pack may be drafted against a non-active Statute Checklist version"
    ],
    "invariants": [
     "Only one Statute Checklist version is active per jurisdiction at a time"
    ],
    "human_roles": [
     "Compliance Analyst"
    ],
    "ai_agents": [
     "Signage & Agreement Analysis Agent"
    ],
    "inputs": [
     "StatuteChecklist"
    ],
    "outputs": [
     "StatuteChecklist"
    ],
    "interfaces": [
     "Intake portal",
     "Analyst review workbench"
    ],
    "external_integrations": [],
    "data_owned": [
     "Statute Checklist versions",
     "Jurisdiction activation status"
    ],
    "risks": [
     "Statute Checklist & Retrieval data drift if not versioned"
    ]
   },
   {
    "name": "Signage & Agreement Analysis",
    "purpose": "Vision OCR sign measurement and tow-contract clause classification against the active Statute Checklist.",
    "subdomain": "Signage & Agreement Analysis",
    "type": "Core",
    "owned_language": [
     "'Signage & Agreement Analysis' always means the same thing here as on the landing page and in delivery-playbook.md"
    ],
    "owns": [
     "Draft gap analyses",
     "Sign dimension/text extractions",
     "Clause classifications"
    ],
    "does_not_own": [
     "Statute checklist maintenance",
     "Final PASS sign-off"
    ],
    "primary_actors": [
     "Compliance Analyst"
    ],
    "entities": [
     "PropertyReadinessFile"
    ],
    "value_objects": [
     "Money",
     "Deadline/Window",
     "Statute/Form/Code refs"
    ],
    "aggregates": [
     "PropertyReadinessFile"
    ],
    "domain_services": [
     "VisionExtractionService",
     "ClauseClassificationService"
    ],
    "application_services": [
     "GapAnalysisDraftingService"
    ],
    "commands": [
     "DraftGapAnalysis"
    ],
    "domain_events": [
     "GapAnalysisDrafted"
    ],
    "policies": [
     "Every drafted element must carry an inline Statute Checklist citation"
    ],
    "specifications": [
     "A draft cannot proceed to Compliance Review without a confidence score on every measurement"
    ],
    "invariants": [
     "A low-confidence measurement is never presented as a pass"
    ],
    "human_roles": [
     "Compliance Analyst"
    ],
    "ai_agents": [
     "Signage & Agreement Analysis Agent"
    ],
    "inputs": [
     "PropertyReadinessFile"
    ],
    "outputs": [
     "PropertyReadinessFile"
    ],
    "interfaces": [
     "Intake portal",
     "Analyst review workbench"
    ],
    "external_integrations": [],
    "data_owned": [
     "Draft gap analyses",
     "Sign dimension/text extractions",
     "Clause classifications"
    ],
    "risks": [
     "Signage & Agreement Analysis data drift if not versioned"
    ]
   },
   {
    "name": "Compliance Review",
    "purpose": "Two-person Compliance Analyst review and PASS sign-off against the Statute Checklist before delivery.",
    "subdomain": "Compliance Review",
    "type": "Core",
    "owned_language": [
     "'Compliance Review' always means the same thing here as on the landing page and in delivery-playbook.md"
    ],
    "owns": [
     "Reviewed pack drafts",
     "PASS/FAIL ratings",
     "Reviewer sign-offs"
    ],
    "does_not_own": [
     "Gap analysis drafting",
     "Evidence assembly"
    ],
    "primary_actors": [
     "Compliance Analyst (primary + second reviewer)"
    ],
    "entities": [
     "PropertyReadinessFile"
    ],
    "value_objects": [
     "Status/state labels (Intake, Evidence, Review, Release)"
    ],
    "aggregates": [
     "PropertyReadinessFile"
    ],
    "domain_services": [
     "TwoPersonReviewService"
    ],
    "application_services": [
     "ComplianceReviewService"
    ],
    "commands": [
     "ApprovePack",
     "EscalatePack"
    ],
    "domain_events": [
     "PackApproved",
     "ExceptionRaised"
    ],
    "policies": [
     "A PASS rating requires two independent Compliance Analyst sign-offs"
    ],
    "specifications": [
     "A pack cannot be delivered without a PASS or an explicitly exceptioned item"
    ],
    "invariants": [
     "No single reviewer can issue a PASS alone"
    ],
    "human_roles": [
     "Compliance Analyst"
    ],
    "ai_agents": [],
    "inputs": [
     "PropertyReadinessFile"
    ],
    "outputs": [
     "PropertyReadinessFile"
    ],
    "interfaces": [
     "Intake portal",
     "Analyst review workbench"
    ],
    "external_integrations": [],
    "data_owned": [
     "Reviewed pack drafts",
     "PASS/FAIL ratings",
     "Reviewer sign-offs"
    ],
    "risks": [
     "Compliance Review data drift if not versioned"
    ]
   },
   {
    "name": "Evidence Assembly",
    "purpose": "Assemble the complete per-tow Evidence Pack for client records or attorney handoff.",
    "subdomain": "Evidence Assembly",
    "type": "Core",
    "owned_language": [
     "'Evidence Assembly' always means the same thing here as on the landing page and in delivery-playbook.md"
    ],
    "owns": [
     "Evidence Pack records",
     "Per-tow photo/authorization/log bundles"
    ],
    "does_not_own": [
     "Statute checklist maintenance",
     "Pack delivery scheduling"
    ],
    "primary_actors": [
     "Compliance Analyst",
     "Client's retained attorney"
    ],
    "entities": [
     "EvidencePack"
    ],
    "value_objects": [
     "Money (per-tow price)",
     "SLA"
    ],
    "aggregates": [
     "EvidencePack"
    ],
    "domain_services": [
     "EvidenceAssemblyService"
    ],
    "application_services": [
     "EvidencePackDeliveryService"
    ],
    "commands": [
     "AssembleEvidencePack"
    ],
    "domain_events": [
     "EvidencePackAssembled"
    ],
    "policies": [
     "An Evidence Pack must include proof of timing for every included element"
    ],
    "specifications": [
     "An Evidence Pack cannot be marked complete with a missing required element"
    ],
    "invariants": [
     "Evidence Pack contents are immutable once delivered, except via a logged correction"
    ],
    "human_roles": [
     "Compliance Analyst"
    ],
    "ai_agents": [],
    "inputs": [
     "EvidencePack"
    ],
    "outputs": [
     "EvidencePack"
    ],
    "interfaces": [
     "Intake portal",
     "Analyst review workbench"
    ],
    "external_integrations": [],
    "data_owned": [
     "Evidence Pack records",
     "Per-tow photo/authorization/log bundles"
    ],
    "risks": [
     "Evidence Assembly data drift if not versioned"
    ]
   },
   {
    "name": "Delivery & Portfolio Monitoring",
    "purpose": "Deliver the pack and track re-verify dates across a PM's portfolio under retainer.",
    "subdomain": "Delivery & Portfolio Monitoring",
    "type": "Supporting",
    "owned_language": [
     "'Delivery & Portfolio Monitoring' always means the same thing here as on the landing page and in delivery-playbook.md"
    ],
    "owns": [
     "Delivery records",
     "Portfolio re-verify schedule"
    ],
    "does_not_own": [
     "Statute checklist evaluation",
     "Evidence assembly"
    ],
    "primary_actors": [
     "CAM/PM principal",
     "Compliance Analyst"
    ],
    "entities": [
     "PortfolioAccount"
    ],
    "value_objects": [
     "Money (retainer)",
     "Deadline/Window (re-verify cadence)"
    ],
    "aggregates": [
     "PortfolioAccount"
    ],
    "domain_services": [
     "PortfolioMonitoringService"
    ],
    "application_services": [
     "DeliveryService"
    ],
    "commands": [
     "DeliverPack",
     "ScheduleReVerify"
    ],
    "domain_events": [
     "PackDelivered",
     "RetainerActivated"
    ],
    "policies": [
     "A retainer account's re-verify schedule is never silently skipped"
    ],
    "specifications": [
     "A PortfolioAccount cannot mark a property current without a PASS-rated pack on file"
    ],
    "invariants": [
     "Re-verify dates are computed deterministically from the last delivery date"
    ],
    "human_roles": [
     "Compliance Analyst"
    ],
    "ai_agents": [],
    "inputs": [
     "PortfolioAccount"
    ],
    "outputs": [
     "PortfolioAccount"
    ],
    "interfaces": [
     "Intake portal",
     "Analyst review workbench"
    ],
    "external_integrations": [
     "Client-side e-signature tool (client signs, TowAuth Clear never signs)"
    ],
    "data_owned": [
     "Delivery records",
     "Portfolio re-verify schedule"
    ],
    "risks": [
     "Delivery & Portfolio Monitoring data drift if not versioned"
    ]
   },
   {
    "name": "Exception & Escalation",
    "purpose": "Route edge-geometry, public-access §22953, or legal-sufficiency questions out of the automated pipeline to the client's attorney.",
    "subdomain": "Exception & Escalation",
    "type": "Core",
    "owned_language": [
     "'Exception & Escalation' always means the same thing here as on the landing page and in delivery-playbook.md"
    ],
    "owns": [
     "Exception Queue entries",
     "Escalation routing state"
    ],
    "does_not_own": [
     "Final PASS sign-off",
     "Legal-sufficiency opinions"
    ],
    "primary_actors": [
     "Compliance Analyst",
     "Client's retained attorney"
    ],
    "entities": [
     "ExceptionCase"
    ],
    "value_objects": [
     "Status/state labels"
    ],
    "aggregates": [
     "ExceptionCase"
    ],
    "domain_services": [
     "ExceptionRoutingService"
    ],
    "application_services": [
     "EscalationNotificationService"
    ],
    "commands": [
     "RaiseException",
     "ResolveException"
    ],
    "domain_events": [
     "ExceptionRaised"
    ],
    "policies": [
     "Any public-access §22953 signal routes to the Exception Queue, never auto-PASS"
    ],
    "specifications": [
     "An ExceptionCase cannot close without a resolution recorded by the client's attorney or Compliance Lead"
    ],
    "invariants": [
     "TowAuth Clear never issues a legal-sufficiency opinion inside an ExceptionCase resolution"
    ],
    "human_roles": [
     "Compliance Analyst"
    ],
    "ai_agents": [],
    "inputs": [
     "ExceptionCase"
    ],
    "outputs": [
     "ExceptionCase"
    ],
    "interfaces": [
     "Intake portal",
     "Analyst review workbench"
    ],
    "external_integrations": [],
    "data_owned": [
     "Exception Queue entries",
     "Escalation routing state"
    ],
    "risks": [
     "Exception & Escalation data drift if not versioned"
    ]
   },
   {
    "name": "Learning Loop",
    "purpose": "Convert Compliance Analyst corrections into versioned Statute Checklist and prompt-template updates.",
    "subdomain": "Learning Loop",
    "type": "Generic",
    "owned_language": [
     "'Learning Loop' always means the same thing here as on the landing page and in delivery-playbook.md"
    ],
    "owns": [
     "Correction logs",
     "Versioned rule/prompt updates"
    ],
    "does_not_own": [
     "Live pack drafting",
     "Client delivery"
    ],
    "primary_actors": [
     "Compliance Lead"
    ],
    "entities": [
     "CorrectionLog"
    ],
    "value_objects": [
     "SLA"
    ],
    "aggregates": [
     "CorrectionLog"
    ],
    "domain_services": [
     "CorrectionAnalysisService"
    ],
    "application_services": [
     "RuleUpdateService"
    ],
    "commands": [
     "LogCorrection",
     "PublishRuleUpdate"
    ],
    "domain_events": [
     "RuleUpdatePublished"
    ],
    "policies": [
     "A recurring correction pattern triggers a mandatory rule-update review"
    ],
    "specifications": [
     "A rule update cannot publish without Compliance Lead approval"
    ],
    "invariants": [
     "Correction logs are retained for the full audit-trail defensibility period"
    ],
    "human_roles": [
     "Compliance Lead"
    ],
    "ai_agents": [],
    "inputs": [
     "CorrectionLog"
    ],
    "outputs": [
     "CorrectionLog"
    ],
    "interfaces": [
     "Intake portal",
     "Analyst review workbench"
    ],
    "external_integrations": [],
    "data_owned": [
     "Correction logs",
     "Versioned rule/prompt updates"
    ],
    "risks": [
     "Learning Loop data drift if not versioned"
    ]
   }
  ],
  "aggregates": [
   {
    "name": "PropertyReadinessFile",
    "context": "Intake & Normalization",
    "purpose": "The root record for one property's signage/agreement completeness cycle, from intake through PASS-rated delivery.",
    "root": "PropertyReadinessFile",
    "entities": [
     "EntranceRecord",
     "SignageMeasurement",
     "AgreementClause"
    ],
    "value_objects": [
     "Money",
     "Deadline/Window",
     "Statute/Form/Code refs",
     "Status/state labels"
    ],
    "invariants": [
     "Cannot reach PackApproved without two independent Compliance Analyst sign-offs",
     "Cannot be delivered while any required entrance is unconfirmed"
    ],
    "commands": [
     "SubmitEntranceIntake",
     "DraftGapAnalysis",
     "ApprovePack",
     "EscalatePack",
     "DeliverPack"
    ],
    "events": [
     "EntranceAudited",
     "GapAnalysisDrafted",
     "PackApproved",
     "ExceptionRaised",
     "PackDelivered"
    ],
    "repository": "PropertyReadinessFileRepository",
    "transaction_boundary": "One PropertyReadinessFile per transaction; entrance-level edits do not lock the whole property."
   },
   {
    "name": "EvidencePack",
    "context": "Evidence Assembly",
    "purpose": "The per-tow-event evidentiary bundle assembled for client records or attorney handoff.",
    "root": "EvidencePack",
    "entities": [
     "TowEventRecord",
     "AuthorizationFormCopy",
     "LENotificationLogEntry"
    ],
    "value_objects": [
     "Money",
     "SLA",
     "Status/state labels"
    ],
    "invariants": [
     "Cannot mark complete with a missing required element",
     "Immutable once delivered except via a logged correction"
    ],
    "commands": [
     "AssembleEvidencePack",
     "DeliverEvidencePack"
    ],
    "events": [
     "EvidencePackAssembled",
     "EvidencePackDelivered"
    ],
    "repository": "EvidencePackRepository",
    "transaction_boundary": "One EvidencePack per tow event."
   },
   {
    "name": "PortfolioAccount",
    "context": "Delivery & Portfolio Monitoring",
    "purpose": "Tracks a PM's Portfolio Monitoring Retainer status and re-verify schedule across multiple properties.",
    "root": "PortfolioAccount",
    "entities": [
     "PropertyReVerifySchedule"
    ],
    "value_objects": [
     "Money (retainer)",
     "Deadline/Window (re-verify cadence)"
    ],
    "invariants": [
     "Re-verify dates are computed deterministically from the last delivery date",
     "Cannot mark a property current without a PASS-rated pack on file"
    ],
    "commands": [
     "ActivateRetainer",
     "ScheduleReVerify"
    ],
    "events": [
     "RetainerActivated",
     "ReVerifyScheduled"
    ],
    "repository": "PortfolioAccountRepository",
    "transaction_boundary": "One PortfolioAccount per PM client."
   },
   {
    "name": "StatuteChecklist",
    "context": "Statute Checklist & Retrieval",
    "purpose": "The versioned, attorney-reviewed source of truth for a jurisdiction's statutory signage/authorization requirements.",
    "root": "StatuteChecklist",
    "entities": [
     "ChecklistElement"
    ],
    "value_objects": [
     "Statute/Form/Code refs",
     "Deadline/Window"
    ],
    "invariants": [
     "Only one version is active per jurisdiction at a time",
     "No pack may draft against a non-active version"
    ],
    "commands": [
     "DraftChecklistVersion",
     "ActivateJurisdiction",
     "FreezeChecklist"
    ],
    "events": [
     "StatuteChecklistVersionUpdated",
     "ChecklistFrozen"
    ],
    "repository": "StatuteChecklistRepository",
    "transaction_boundary": "One StatuteChecklist per jurisdiction."
   },
   {
    "name": "ExceptionCase",
    "context": "Exception & Escalation",
    "purpose": "Tracks a property or pack element routed out of the automated pipeline pending client-attorney resolution.",
    "root": "ExceptionCase",
    "entities": [
     "EscalationNote"
    ],
    "value_objects": [
     "Status/state labels"
    ],
    "invariants": [
     "Cannot close without a resolution recorded by the client's attorney or Compliance Lead",
     "TowAuth Clear never issues a legal-sufficiency opinion inside a resolution"
    ],
    "commands": [
     "RaiseException",
     "ResolveException"
    ],
    "events": [
     "ExceptionRaised",
     "ExceptionResolved"
    ],
    "repository": "ExceptionCaseRepository",
    "transaction_boundary": "One ExceptionCase per escalated item."
   }
  ],
  "context_map": [
   {
    "upstream": "Statute Checklist & Retrieval",
    "downstream": "Signage & Agreement Analysis",
    "relationship": "Customer-Supplier",
    "pattern": "Published Language",
    "integration_pattern": "Shared checklist version reference",
    "contract_type": "Versioned Statute Checklist snapshot",
    "data_exchanged": [
     "[PLACEHOLDER] owner to complete"
    ],
    "events_exchanged": [
     "StatuteChecklistVersionUpdated"
    ],
    "ownership_boundary": "Statute Checklist & Retrieval owns all checklist content",
    "business_reason": "Every draft must be grounded in exactly one active checklist version",
    "acl_notes": "Signage & Agreement Analysis reads checklist snapshots read-only; never edits them",
    "failure_risks": [
     "A draft references a stale checklist version if activation is not atomic"
    ],
    "translation_notes": "None — same vocabulary on both sides"
   },
   {
    "upstream": "Signage & Agreement Analysis",
    "downstream": "Compliance Review",
    "relationship": "Customer-Supplier",
    "pattern": "Conformist",
    "integration_pattern": "Draft handoff",
    "contract_type": "Draft PropertyReadinessFile",
    "data_exchanged": "Drafted gap analysis + confidence scores",
    "events_exchanged": [
     "GapAnalysisDrafted"
    ],
    "ownership_boundary": "Compliance Review owns the PASS/FAIL decision",
    "business_reason": "Drafting and review must remain separate accountable steps",
    "acl_notes": "Compliance Review never edits the draft without a logged correction",
    "failure_risks": [
     "Low-confidence measurements pass through unflagged"
    ],
    "translation_notes": "None — same vocabulary on both sides"
   },
   {
    "upstream": "Compliance Review",
    "downstream": "Delivery & Portfolio Monitoring",
    "relationship": "Customer-Supplier",
    "pattern": "Published Language",
    "integration_pattern": "Approved-pack handoff",
    "contract_type": "PASS-rated PropertyReadinessFile",
    "data_exchanged": "Final pack PDF + punch list",
    "events_exchanged": [
     "PackApproved",
     "PackDelivered"
    ],
    "ownership_boundary": "Delivery & Portfolio Monitoring owns re-verify scheduling",
    "business_reason": "Only PASS-rated packs are ever delivered",
    "acl_notes": "None needed",
    "failure_risks": [
     "A re-verify date is not scheduled after delivery"
    ],
    "translation_notes": "None"
   },
   {
    "upstream": "Compliance Review",
    "downstream": "Exception & Escalation",
    "relationship": "Partnership",
    "pattern": "Shared Kernel (escalation vocabulary only)",
    "integration_pattern": "Escalation event",
    "contract_type": "ExceptionCase record",
    "data_exchanged": "Escalation reason + source pack reference",
    "events_exchanged": [
     "ExceptionRaised"
    ],
    "ownership_boundary": "Exception & Escalation owns resolution state",
    "business_reason": "Edge cases must never resolve inside the automated pipeline",
    "acl_notes": "None needed",
    "failure_risks": [
     "An exception is misclassified and proceeds automatically"
    ],
    "translation_notes": "None"
   },
   {
    "upstream": "Delivery & Portfolio Monitoring",
    "downstream": "Evidence Assembly",
    "relationship": "Customer-Supplier",
    "pattern": "Conformist",
    "integration_pattern": "On-demand assembly request",
    "contract_type": "Evidence assembly request",
    "data_exchanged": "Delivered pack reference + tow event details",
    "events_exchanged": [
     "EvidencePackAssembled"
    ],
    "ownership_boundary": "Evidence Assembly owns per-tow-event bundles",
    "business_reason": "Evidence assembly is triggered by a specific dispute, not scheduled",
    "acl_notes": "None needed",
    "failure_risks": [
     "Missing photo delays assembly"
    ],
    "translation_notes": "None"
   },
   {
    "upstream": "Compliance Review",
    "downstream": "Learning Loop",
    "relationship": "Partnership",
    "pattern": "Open Host Service",
    "integration_pattern": "Correction feed",
    "contract_type": "Correction log entries",
    "data_exchanged": "Reviewer corrections + rationale",
    "events_exchanged": [
     "RuleUpdatePublished"
    ],
    "ownership_boundary": "Learning Loop owns versioned rule updates",
    "business_reason": "Corrections must become durable prompt/checklist improvements",
    "acl_notes": "None needed",
    "failure_risks": [
     "A recurring correction pattern is never converted to a rule update"
    ],
    "translation_notes": "None"
   }
  ],
  "commands": [
   {
    "name": "SubmitEntranceIntake",
    "aggregate": "PropertyReadinessFile",
    "issued_by": "Property-level site staff",
    "preconditions": [
     "Client account authenticated"
    ],
    "validation": "All required photo angles present or explicitly marked N/A with reason",
    "success_event": "EntranceAudited",
    "failure_event": "IntakeRejected",
    "authorization": "Authenticated client account only",
    "audit": "Logged with actor + timestamp"
   },
   {
    "name": "DraftGapAnalysis",
    "aggregate": "PropertyReadinessFile",
    "issued_by": "Signage & Agreement Analysis Agent",
    "preconditions": [
     "Intake normalized",
     "Active Statute Checklist version resolved"
    ],
    "validation": "Every drafted element carries a checklist citation",
    "success_event": "GapAnalysisDrafted",
    "failure_event": "DraftFailed",
    "authorization": "System agent, no external caller",
    "audit": "Logged with model/prompt version"
   },
   {
    "name": "ApprovePack",
    "aggregate": "PropertyReadinessFile",
    "issued_by": "Compliance Analyst (second reviewer)",
    "preconditions": [
     "Primary reviewer sign-off recorded",
     "No open low-confidence flags"
    ],
    "validation": "Two independent reviewer IDs present",
    "success_event": "PackApproved",
    "failure_event": "ApprovalRejected",
    "authorization": "Compliance Analyst role only",
    "audit": "Both reviewer IDs + checklist version logged"
   },
   {
    "name": "EscalatePack",
    "aggregate": "PropertyReadinessFile",
    "issued_by": "Compliance Analyst",
    "preconditions": [
     "Low-confidence flag or edge-case signal present"
    ],
    "validation": "Escalation reason recorded",
    "success_event": "ExceptionRaised",
    "failure_event": "N/A",
    "authorization": "Compliance Analyst role only",
    "audit": "Logged with reason + reviewer ID"
   },
   {
    "name": "DeliverPack",
    "aggregate": "PropertyReadinessFile",
    "issued_by": "Compliance Analyst",
    "preconditions": [
     "PackApproved event recorded"
    ],
    "validation": "Delivery channel confirmed",
    "success_event": "PackDelivered",
    "failure_event": "DeliveryFailed",
    "authorization": "Compliance Analyst role only",
    "audit": "Delivery hash + timestamp logged"
   },
   {
    "name": "AssembleEvidencePack",
    "aggregate": "EvidencePack",
    "issued_by": "Compliance Analyst",
    "preconditions": [
     "Tow event details submitted by client"
    ],
    "validation": "All required evidence elements present or explicitly noted missing",
    "success_event": "EvidencePackAssembled",
    "failure_event": "AssemblyIncomplete",
    "authorization": "Compliance Analyst role only",
    "audit": "Logged with source pack reference"
   },
   {
    "name": "ActivateJurisdiction",
    "aggregate": "StatuteChecklist",
    "issued_by": "Compliance Lead",
    "preconditions": [
     "Attorney review complete",
     "Red-team edge-case tests pass"
    ],
    "validation": "Attorney sign-off recorded",
    "success_event": "StatuteChecklistVersionUpdated",
    "failure_event": "ActivationRejected",
    "authorization": "Compliance Lead only",
    "audit": "Attorney sign-off + version logged"
   },
   {
    "name": "RaiseException",
    "aggregate": "ExceptionCase",
    "issued_by": "Compliance Analyst",
    "preconditions": [
     "Edge-case or legal-sufficiency signal detected"
    ],
    "validation": "Escalation reason recorded",
    "success_event": "ExceptionRaised",
    "failure_event": "N/A",
    "authorization": "Compliance Analyst role only",
    "audit": "Logged with actor + reason"
   }
  ],
  "event_storm": [
   {
    "seq": 1,
    "actor": "Property-level site staff",
    "command": "SubmitEntranceIntake",
    "aggregate": "PropertyReadinessFile",
    "event": "EntranceAudited",
    "policy": "Any field below confidence threshold requires analyst confirmation",
    "context": "Intake & Normalization",
    "downstream": "Statute Checklist retrieval",
    "risk": "Bad photo angle produces a low-confidence measurement"
   },
   {
    "seq": 2,
    "actor": "Signage & Agreement Analysis Agent",
    "command": "DraftGapAnalysis",
    "aggregate": "PropertyReadinessFile",
    "event": "GapAnalysisDrafted",
    "policy": "Every drafted element must carry a checklist citation",
    "context": "Signage & Agreement Analysis",
    "downstream": "Compliance Review",
    "risk": "OCR misreads a sign dimension"
   },
   {
    "seq": 3,
    "actor": "Compliance Analyst (primary)",
    "command": "ReviewDraft",
    "aggregate": "PropertyReadinessFile",
    "event": "PrimaryReviewComplete",
    "policy": "Primary reviewer confirms every measurement before second review",
    "context": "Compliance Review",
    "downstream": "Second reviewer sign-off",
    "risk": "Time pressure causes a skimmed review"
   },
   {
    "seq": 4,
    "actor": "Compliance Analyst (second reviewer)",
    "command": "ApprovePack",
    "aggregate": "PropertyReadinessFile",
    "event": "PackApproved",
    "policy": "PASS requires two independent sign-offs",
    "context": "Compliance Review",
    "downstream": "Delivery",
    "risk": "Second reviewer defers to first without independent check"
   },
   {
    "seq": 5,
    "actor": "Compliance Analyst",
    "command": "EscalatePack",
    "aggregate": "PropertyReadinessFile",
    "event": "ExceptionRaised",
    "policy": "Low-confidence or public-access §22953 signals never auto-PASS",
    "context": "Exception & Escalation",
    "downstream": "Client attorney notified",
    "risk": "Escalation trigger is missed"
   },
   {
    "seq": 6,
    "actor": "Compliance Analyst",
    "command": "DeliverPack",
    "aggregate": "PropertyReadinessFile",
    "event": "PackDelivered",
    "policy": "Only PASS-rated packs are delivered",
    "context": "Delivery & Portfolio Monitoring",
    "downstream": "Re-verify scheduling",
    "risk": "Delivery to wrong contact"
   },
   {
    "seq": 7,
    "actor": "CAM/PM principal",
    "command": "ActivateRetainer",
    "aggregate": "PortfolioAccount",
    "event": "RetainerActivated",
    "policy": "Re-verify dates computed deterministically from last delivery",
    "context": "Delivery & Portfolio Monitoring",
    "downstream": "Portfolio-wide monitoring",
    "risk": "Re-verify schedule drifts if not automated"
   },
   {
    "seq": 8,
    "actor": "Compliance Analyst",
    "command": "AssembleEvidencePack",
    "aggregate": "EvidencePack",
    "event": "EvidencePackAssembled",
    "policy": "Evidence Pack must include proof of timing for every element",
    "context": "Evidence Assembly",
    "downstream": "Client or attorney review",
    "risk": "Missing element delays assembly"
   },
   {
    "seq": 9,
    "actor": "Compliance Lead",
    "command": "ActivateJurisdiction",
    "aggregate": "StatuteChecklist",
    "event": "StatuteChecklistVersionUpdated",
    "policy": "Only after attorney review and red-team tests pass",
    "context": "Statute Checklist & Retrieval",
    "downstream": "New-jurisdiction pack drafting enabled",
    "risk": "Premature activation without full red-team coverage"
   },
   {
    "seq": 10,
    "actor": "Compliance Lead",
    "command": "PublishRuleUpdate",
    "aggregate": "CorrectionLog",
    "event": "RuleUpdatePublished",
    "policy": "Recurring correction pattern triggers mandatory rule-update review",
    "context": "Learning Loop",
    "downstream": "Future drafts use updated rules",
    "risk": "Correction pattern goes unnoticed"
   }
  ],
  "use_cases": [
   {
    "name": "Deliver a Tow-Readiness Completeness Pack for one property",
    "actor": "CAM/PM principal",
    "context": "Signage & Agreement Analysis / Compliance Review",
    "goal": "Obtain a statute-cited, PASS-rated pack within 5 business days of a complete intake",
    "preconditions": [
     "Client account authenticated",
     "Entrance photos and tow contract submitted"
    ],
    "main_flow": [
     "Client submits entrance intake",
     "AI drafts gap analysis against active Statute Checklist",
     "Primary Compliance Analyst reviews",
     "Second Compliance Analyst approves",
     "Pack delivered with Remediation Punch List"
    ],
    "alternative_flows": [
     "Low-confidence measurement routes to Exception Queue instead of auto-PASS",
     "Public-access §22953 lot routes to client's attorney"
    ],
    "success": "PackDelivered event recorded within the 5-business-day SLA",
    "failure_handling": "If checklist coverage is incomplete for a novel contract clause, escalate to Compliance Lead before drafting continues",
    "business_rules": [
     "PASS requires two independent Compliance Analyst sign-offs",
     "No pack is delivered without a PASS or an explicitly exceptioned item"
    ],
    "ai_role": "Drafts the gap analysis and confidence-scores every measurement",
    "human_role": "Two Compliance Analysts review, correct, and sign off",
    "commands": [
     "SubmitEntranceIntake",
     "DraftGapAnalysis",
     "ApprovePack",
     "DeliverPack"
    ],
    "events": [
     "EntranceAudited",
     "GapAnalysisDrafted",
     "PackApproved",
     "PackDelivered"
    ],
    "aggregates": [
     "PropertyReadinessFile"
    ],
    "audit": "Reviewer IDs, checklist version, and delivery hash logged on every pack"
   },
   {
    "name": "Assemble a per-tow Evidence Pack after a resident dispute",
    "actor": "CAM/PM principal",
    "context": "Evidence Assembly",
    "goal": "Provide a dated evidence bundle within hours of a resident dispute",
    "preconditions": [
     "Property has a delivered Tow-Readiness Completeness Pack on file",
     "Client submits the specific tow event details"
    ],
    "main_flow": [
     "Client requests evidence assembly for a specific tow",
     "System pre-assembles from stored intake and pack records",
     "Compliance Analyst reviews for completeness",
     "Evidence Pack delivered"
    ],
    "alternative_flows": [
     "Missing required photo triggers a chase request to the client before delivery"
    ],
    "success": "EvidencePackAssembled and delivered within hours of the request",
    "failure_handling": "If an element cannot be located, the Evidence Pack ships with the gap explicitly marked, never fabricated",
    "business_rules": [
     "An Evidence Pack cannot be marked complete with a missing required element"
    ],
    "ai_role": "Pre-assembles the packet from existing records",
    "human_role": "Compliance Analyst reviews and delivers",
    "commands": [
     "AssembleEvidencePack",
     "DeliverEvidencePack"
    ],
    "events": [
     "EvidencePackAssembled",
     "EvidencePackDelivered"
    ],
    "aggregates": [
     "EvidencePack"
    ],
    "audit": "Source pack reference and delivery timestamp logged"
   }
  ],
  "policies": [
   {
    "name": "Two-person PASS rule",
    "trigger": "A drafted pack reaches Compliance Review",
    "condition": "Primary reviewer sign-off recorded",
    "action": "Require a second, independent Compliance Analyst sign-off before PackApproved",
    "ai_involvement": "AI self-check pre-filters low-risk items only; never issues the PASS itself",
    "human_approval": "Required — two Compliance Analysts",
    "context": "Compliance Review"
   },
   {
    "name": "Never-auto-PASS on low confidence",
    "trigger": "A vision measurement falls below the confidence threshold",
    "condition": "Confidence score below threshold",
    "action": "Route to mandatory human measurement confirmation; never PASS on low confidence",
    "ai_involvement": "Flags the low-confidence field",
    "human_approval": "Required — Compliance Analyst",
    "context": "Signage & Agreement Analysis"
   },
   {
    "name": "Public-access grace-period exception",
    "trigger": "A property is identified as a public-access lot under CVC §22953",
    "condition": "Public-access signal detected",
    "action": "Route to the Exception Queue for the client's attorney; never auto-PASS",
    "ai_involvement": "Flags the signal for analyst confirmation",
    "human_approval": "Required — Compliance Analyst, then client's attorney",
    "context": "Exception & Escalation"
   },
   {
    "name": "Documentation-only boundary",
    "trigger": "Any request for a legal opinion on a specific tow",
    "condition": "Question concerns legal sufficiency, CC&R interplay, or litigation strategy",
    "action": "Route to the client's retained attorney via the Exception Queue; TowAuth Clear never opines",
    "ai_involvement": "None — hard-coded template boundary",
    "human_approval": "Client's retained attorney",
    "context": "Exception & Escalation"
   },
   {
    "name": "Jurisdiction activation gate",
    "trigger": "A new jurisdiction's Statute Checklist is drafted",
    "condition": "Attorney review and red-team testing both pass",
    "action": "Activate the jurisdiction; otherwise the checklist stays in staging",
    "ai_involvement": "None",
    "human_approval": "Compliance Lead + retained attorney",
    "context": "Statute Checklist & Retrieval"
   }
  ],
  "invariants": [
   {
    "invariant": "A PropertyReadinessFile cannot reach PackApproved without two independent Compliance Analyst sign-offs",
    "aggregate": "PropertyReadinessFile",
    "context": "Compliance Review",
    "enforcement": "Application-service check before emitting PackApproved",
    "why": "Never-false-PASS guarantee depends on this gate"
   },
   {
    "invariant": "No pack may be drafted against a non-active Statute Checklist version",
    "aggregate": "StatuteChecklist",
    "context": "Statute Checklist & Retrieval",
    "enforcement": "Draft service resolves and pins the active version at draft time",
    "why": "Prevents drafting against stale or unreviewed statute text"
   },
   {
    "invariant": "An EvidencePack cannot be marked complete with a missing required element",
    "aggregate": "EvidencePack",
    "context": "Evidence Assembly",
    "enforcement": "Completeness check before EvidencePackAssembled fires",
    "why": "An incomplete evidence bundle undermines the client's defensibility"
   },
   {
    "invariant": "An ExceptionCase cannot close without a resolution recorded by the client's attorney or Compliance Lead",
    "aggregate": "ExceptionCase",
    "context": "Exception & Escalation",
    "enforcement": "State-machine guard on the close transition",
    "why": "Prevents an edge case from silently resolving inside the automated pipeline"
   },
   {
    "invariant": "TowAuth Clear never authorizes a tow as the property's agent",
    "aggregate": "PropertyReadinessFile",
    "context": "Compliance Review / Delivery & Portfolio Monitoring",
    "enforcement": "No command exists in the system for TowAuth Clear to authorize a tow; enforced by absence of the capability, not a runtime check",
    "why": "Core licensing-boundary and UPL protection"
   }
  ],
  "risk_register": [
   {
    "risk": "A generated Completeness Pack omits a required CVC §22658 element",
    "context": "Signage & Agreement Analysis / Compliance Review",
    "likelihood": "Low",
    "impact": "High",
    "mitigation": "Deterministic rule-engine hard gates plus two-person sign-off",
    "signal": "Any rework flagged as 'missed statutory element'",
    "owner": "Compliance Analyst"
   },
   {
    "risk": "CVC §22658 or a companion statute is amended without the Statute Checklist being updated",
    "context": "Statute Checklist & Retrieval",
    "likelihood": "Medium",
    "impact": "High",
    "mitigation": "Legislative-update monitoring; production freeze on any change signal",
    "signal": "A detected statute-change alert",
    "owner": "Compliance Lead"
   },
   {
    "risk": "OCR sign-dimension extraction error propagates into a PASS rating",
    "context": "Signage & Agreement Analysis",
    "likelihood": "Medium",
    "impact": "Medium",
    "mitigation": "Confidence-scored extraction with mandatory human confirmation below threshold",
    "signal": "Rising low-confidence flag rate",
    "owner": "Compliance Analyst"
   },
   {
    "risk": "Unauthorized practice of law if TowAuth Clear opines on legal sufficiency",
    "context": "Exception & Escalation",
    "likelihood": "Low",
    "impact": "High",
    "mitigation": "Documentation-only scope; hard-coded escalation to client's attorney; disclaimers on every pack",
    "signal": "Any pack draft containing opinion-style language",
    "owner": "Compliance Lead"
   },
   {
    "risk": "Property or tow-vendor contract data breach exposes signer-roster PII",
    "context": "Intake & Normalization",
    "likelihood": "Low",
    "impact": "High",
    "mitigation": "Encrypted intake/storage, minimal retention, access-controlled tooling",
    "signal": "Any unauthorized access alert",
    "owner": "Compliance Lead"
   }
  ],
  "human_roles": [
   {
    "role": "Compliance Analyst",
    "contexts": [
     "Signage & Agreement Analysis",
     "Compliance Review",
     "Evidence Assembly",
     "Exception & Escalation"
    ],
    "responsibilities": [
     "Confirm low-confidence measurements",
     "Review and sign off on every pack",
     "Assemble Evidence Packs",
     "Route exceptions"
    ],
    "decisions_owned": [
     "PASS/FAIL on a pack (jointly, two-person rule)",
     "Escalation to Exception Queue"
    ],
    "approval_authority": "Joint PASS sign-off with a second Compliance Analyst",
    "escalation_authority": "Can escalate to Compliance Lead or client's attorney",
    "ai_support": [
     "[PLACEHOLDER] owner to complete"
    ],
    "quality_metrics": [
     "Rework rate",
     "False-PASS count (hard floor: zero)"
    ],
    "workload_risks": [
     "Reviewing under time pressure with too many concurrent packs"
    ]
   },
   {
    "role": "Compliance Lead",
    "contexts": [
     "Statute Checklist & Retrieval",
     "Learning Loop"
    ],
    "responsibilities": [
     "Own Statute Checklist accuracy",
     "Approve versioned rule updates",
     "Manage jurisdiction activation"
    ],
    "decisions_owned": [
     "Jurisdiction activation",
     "Rule-update publication"
    ],
    "approval_authority": "Final approval on Statute Checklist versions",
    "escalation_authority": "Escalates to retained attorney for legal review",
    "ai_support": "Legislative-update monitoring feed summaries",
    "quality_metrics": [
     "Statute Checklist currency",
     "Correction-to-rule-update conversion rate"
    ],
    "workload_risks": [
     "Multi-state expansion diluting checklist maintenance quality"
    ]
   },
   {
    "role": "Client's retained CA attorney",
    "contexts": [
     "Exception & Escalation",
     "Statute Checklist & Retrieval"
    ],
    "responsibilities": [
     "Resolve escalated legal-sufficiency questions",
     "Review new-jurisdiction Statute Checklists before activation"
    ],
    "decisions_owned": [
     "Legal-sufficiency opinions",
     "Jurisdiction activation sign-off"
    ],
    "approval_authority": "Sole authority on legal-sufficiency questions",
    "escalation_authority": "N/A — top of the escalation chain",
    "ai_support": "None — human-only role, never a TowAuth Clear system user",
    "quality_metrics": [
     "Resolution turnaround time"
    ],
    "workload_risks": [
     "Attorney availability delays Exception Queue resolution"
    ]
   }
  ],
  "ai_agents": [
   {
    "name": "Signage & Agreement Analysis Agent",
    "context": "Signage & Agreement Analysis",
    "responsibility": "Extract sign text/dimensions from entrance photos and classify tow-contract clauses against the active Statute Checklist",
    "inputs": [
     "Entrance photos",
     "Tow contract PDF",
     "Active Statute Checklist version"
    ],
    "outputs": [
     "Draft gap analysis with per-element citations and confidence scores"
    ],
    "tools": [
     "Vision OCR model",
     "Clause classification model"
    ],
    "retrieval_sources": [
     "Active Statute Checklist snapshot"
    ],
    "confidence_scoring": "Per-measurement confidence score; below-threshold fields are flagged for mandatory human confirmation",
    "escalation_triggers": [
     "Confidence below threshold",
     "Public-access §22953 signal",
     "Novel contract clause not covered by the checklist"
    ],
    "human_approval": "Required — two Compliance Analysts before any PASS",
    "audit_logs": [
     "[PLACEHOLDER] owner to complete"
    ],
    "failure_modes": [
     "Misreads sign text in low-light photos",
     "Misclassifies a novel contract clause"
    ],
    "forbidden_actions": [
     "Issuing a PASS rating",
     "Opining on legal sufficiency"
    ],
    "memory_scope": "Stateless per PropertyReadinessFile; no cross-client memory",
    "versioning": "Prompt and model versions tracked independently of the Statute Checklist version",
    "metrics": [
     "Element-extraction accuracy vs. gold-standard packs",
     "Escalation rate"
    ],
    "validations": [
     "Every output validated against the active Statute Checklist citation requirement before reaching a human reviewer"
    ]
   },
   {
    "name": "Statute Checklist Monitoring Agent",
    "context": "Statute Checklist & Retrieval",
    "responsibility": "Monitor legislative-update feeds for CVC §22658, TX Occ. Code Ch. 2308, and FL §715.07 changes and flag them for Compliance Lead review",
    "inputs": [
     "Legislative-update feed content"
    ],
    "outputs": [
     "Change-signal alerts for Compliance Lead review"
    ],
    "tools": [
     "Legislative-feed monitoring"
    ],
    "retrieval_sources": [
     "Public legislative tracking sources"
    ],
    "confidence_scoring": "Binary signal detected / not detected; no autonomous action taken",
    "escalation_triggers": [
     "Any detected statute-change signal"
    ],
    "human_approval": "Required — Compliance Lead + retained attorney before any checklist update",
    "audit_logs": "Every alert logged with source and timestamp",
    "failure_modes": [
     "Missed change signal from an unmonitored source"
    ],
    "forbidden_actions": [
     "Auto-updating the active Statute Checklist"
    ],
    "memory_scope": "Stateless; no persistent memory beyond the alert log",
    "versioning": "N/A — monitoring only, does not produce versioned artifacts itself",
    "metrics": [
     "Time from statute change to detected alert"
    ],
    "validations": [
     "Every output validated against the active Statute Checklist citation requirement before reaching a human reviewer"
    ]
   },
   {
    "name": "Evidence Pre-Assembly Agent",
    "context": "Evidence Assembly",
    "responsibility": "Pre-assemble a per-tow Evidence Pack from stored intake and pack records before Compliance Analyst review",
    "inputs": [
     "Stored PropertyReadinessFile records",
     "Client-submitted tow event details"
    ],
    "outputs": [
     "Draft Evidence Pack with element-completeness flags"
    ],
    "tools": [
     "Document assembly / PDF merge"
    ],
    "retrieval_sources": [
     "PropertyReadinessFile archive"
    ],
    "confidence_scoring": "Per-element presence flag (present / missing), not a confidence score",
    "escalation_triggers": [
     "A required element cannot be located"
    ],
    "human_approval": "Required — Compliance Analyst reviews before delivery",
    "audit_logs": "Every assembly logged with source pack reference",
    "failure_modes": [
     "Assembling from an outdated pack version"
    ],
    "forbidden_actions": [
     "Delivering an Evidence Pack without human review"
    ],
    "memory_scope": "Stateless per EvidencePack request",
    "versioning": "N/A",
    "metrics": [
     "Assembly turnaround time"
    ],
    "validations": [
     "Every output validated against the active Statute Checklist citation requirement before reaching a human reviewer"
    ]
   }
  ],
  "mvp_roadmap": [
   {
    "phase": "Cycle one (Days 1-7)",
    "goal": "Finalize the CA Statute Checklist and take the first paid pack",
    "features": [
     "Signage Gap Scan intake form",
     "CA Statute Checklist v1",
     "Manual pack drafting workbench"
    ],
    "contexts": [
     "Statute Checklist & Retrieval",
     "Intake & Normalization"
    ],
    "ai_needs": [
     "Vision OCR for entrance photos"
    ],
    "data_needs": [
     "Entrance photo storage",
     "Tow contract PDF storage"
    ],
    "human_workflows": [
     "Two-person Compliance Analyst review"
    ],
    "integrations": [
     "Stripe for pack payment"
    ],
    "exit_criteria": [
     "[PLACEHOLDER] owner to complete"
    ],
    "risks": [
     "Checklist fails attorney review"
    ]
   },
   {
    "phase": "30 days",
    "goal": "5 paid Completeness Packs delivered with content cadence live",
    "features": [
     "Rush delivery option",
     "Content/teardown publishing"
    ],
    "contexts": [
     "Signage & Agreement Analysis",
     "Compliance Review"
    ],
    "ai_needs": [
     "Clause classification for tow contracts"
    ],
    "data_needs": [
     "Reviewer audit log"
    ],
    "human_workflows": [
     "5-pilot checkpoint review"
    ],
    "integrations": [
     "LinkedIn/email outreach tooling"
    ],
    "exit_criteria": "5-pilot checkpoint hardens intake photo brief",
    "risks": [
     "Any false-PASS pack found"
    ]
   },
   {
    "phase": "90 days",
    "goal": "25+ packs delivered, 5 retainers attached, TX checklist beta started",
    "features": [
     "Portfolio Monitoring Retainer",
     "Per-tow Evidence Pack",
     "TX Statute Checklist beta"
    ],
    "contexts": [
     "Delivery & Portfolio Monitoring",
     "Evidence Assembly",
     "Statute Checklist & Retrieval"
    ],
    "ai_needs": [
     "TX clause classification beta"
    ],
    "data_needs": [
     "Portfolio re-verify schedule store"
    ],
    "human_workflows": [
     "10-pilot and 20-pilot checkpoints"
    ],
    "integrations": [
     "Tow-vendor and counsel referral tracking"
    ],
    "exit_criteria": "20-pilot checkpoint measured against COGS/rework/cycle-time/escalation targets",
    "risks": [
     "Rework rate above 15%"
    ]
   }
  ],
  "scaling_roadmap": [
   {
    "stage": "Pilot (0-20 packs)",
    "trigger": "Launch through 20-pilot checkpoint",
    "architecture_change": "Manual workbench (Drive/Docs/Sheets) with AI-assisted drafting",
    "operational_change": "100% two-person review, no spot-check",
    "risk": "Analyst throughput ceiling at 3-4 packs/day"
   },
   {
    "stage": "Early scale (20-100 packs)",
    "trigger": "20-pilot checkpoint metrics pass",
    "architecture_change": "Light intake portal replacing manual Drive folders",
    "operational_change": "Introduce single-reviewer spot-check only after 100+ reviewed packs per jurisdiction",
    "risk": "Spot-check introduced too early erodes the never-false-PASS guarantee"
   },
   {
    "stage": "Multi-state (100-500 packs)",
    "trigger": "TX/FL checklists attorney-reviewed and activated",
    "architecture_change": "Jurisdiction-scoped Statute Checklist versioning at platform level",
    "operational_change": "Dedicated Compliance Analyst per jurisdiction cluster",
    "risk": "Checklist currency lags across three simultaneous jurisdictions"
   },
   {
    "stage": "Portfolio dashboard (500+ packs)",
    "trigger": "Retainer volume justifies a differentiated product",
    "architecture_change": "Full portfolio-monitoring dashboard product",
    "operational_change": "Dedicated retainer account management role",
    "risk": "Building the dashboard before retainer demand is proven"
   }
  ],
  "testing_strategy": {
   "ai_eval_dataset": [
    "[PLACEHOLDER] owner to complete"
   ],
   "contract_testing_plan": "Intake photo/PDF payload schema, Statute Checklist element schema, and delivery-pack schema are each contract-tested per consumer context.",
   "critical_domain_rules": [
    "Two-person PASS rule",
    "Never-auto-PASS on low confidence",
    "Documentation-only boundary"
   ],
   "manual_qa_checklist": [
    "Every entrance photographed or explicitly N/A",
    "Tow-company name/phone on sign matches agreement parties",
    "Agreement date and covered addresses present"
   ],
   "regression_plan": "Every Statute Checklist version change re-runs the full gold-standard example library before activation.",
   "tests": [
    {
     "type": "Red-team edge-case test",
     "context": "Statute Checklist & Retrieval",
     "validates": "A public-access §22953 lot never auto-PASSes",
     "example": "A retail lot with mixed public/private access hours"
    },
    {
     "type": "Gold-standard regression test",
     "context": "Signage & Agreement Analysis",
     "validates": "OCR extraction accuracy against known-good measurements",
     "example": "A previously delivered pack's entrance photo set re-run through a new model version"
    },
    {
     "type": "Two-person review audit",
     "context": "Compliance Review",
     "validates": "No PASS is issued with only one reviewer ID logged",
     "example": "A monthly spot audit of delivered pack records"
    }
   ]
  },
  "security_governance": {
   "access_control_matrix": [
    {
     "role": "Compliance Analyst",
     "context": "Signage & Agreement Analysis, Compliance Review, Evidence Assembly",
     "capabilities": [
      "Review drafts",
      "Approve/escalate packs",
      "Assemble Evidence Packs"
     ]
    },
    {
     "role": "Compliance Lead",
     "context": "Statute Checklist & Retrieval, Learning Loop",
     "capabilities": [
      "Activate jurisdictions",
      "Approve rule updates"
     ]
    },
    {
     "role": "Client's retained attorney",
     "context": "Exception & Escalation",
     "capabilities": [
      "Resolve escalated legal-sufficiency questions"
     ]
    }
   ],
   "ai_governance": [
    "[PLACEHOLDER] owner to complete"
   ],
   "audit_log_requirements": [
    "[PLACEHOLDER] owner to complete"
   ],
   "controls": [
    {
     "control": "Two-person PASS rule",
     "context": "Compliance Review",
     "risk": "False PASS",
     "impact": "High",
     "audit": "Both reviewer IDs logged on every PASS"
    },
    {
     "control": "Encrypted intake storage",
     "context": "Intake & Normalization",
     "risk": "PII exposure",
     "impact": "High",
     "audit": "Access logs reviewed monthly"
    },
    {
     "control": "Statute Checklist activation gate",
     "context": "Statute Checklist & Retrieval",
     "risk": "Non-compliant pack",
     "impact": "High",
     "audit": "Attorney sign-off logged before activation"
    }
   ],
   "prompt_injection_defense": [
    "[PLACEHOLDER] owner to complete"
   ],
   "sensitive_data_handling": [
    "[PLACEHOLDER] owner to complete"
   ]
  },
  "observability": {
   "ai_evaluation_reports": [
    "Element-extraction accuracy vs. gold-standard packs, per model version"
   ],
   "audit_reports": [
    "Reviewer sign-off log",
    "Statute Checklist version activation log"
   ],
   "client_outcome_reports": [
    "Cycle time, rework count, escalation count per PM account"
   ],
   "dashboards": [
    "Pilot cohort status",
    "Rework rate trend",
    "Escalation rate trend"
   ],
   "metrics": [
    {
     "metric": "Analyst minutes per pack",
     "type": "leading",
     "context": "Compliance Review",
     "target": "100-120 at launch -> 25-40 by year one",
     "alert_threshold": "Sustained above 120 minutes",
     "why": "Directly drives gross margin"
    },
    {
     "metric": "False-PASS count",
     "type": "guardrail",
     "context": "Compliance Review",
     "target": "Zero",
     "alert_threshold": "Any occurrence",
     "why": "Hard floor on the trust guarantee"
    },
    {
     "metric": "Escalation rate",
     "type": "leading",
     "context": "Exception & Escalation",
     "target": "<15%",
     "alert_threshold": "Above 15% sustained",
     "why": "Signals checklist coverage gaps"
    },
    {
     "metric": "Cycle time (intake to delivery)",
     "type": "lagging",
     "context": "Delivery & Portfolio Monitoring",
     "target": "<=5 business days",
     "alert_threshold": "Above 5 business days",
     "why": "Core SLA commitment"
    }
   ],
   "quality_review_reports": [
    "Monthly red-team spot audit of a random delivered pack"
   ]
  },
  "data_objects": [
   {
    "name": "PropertyReadinessFile",
    "owner_context": "Intake & Normalization",
    "meaning": "The canonical record of one property's signage/agreement completeness cycle",
    "source_of_truth": "Intake & Normalization",
    "writers": [
     "Intake & Normalization",
     "Signage & Agreement Analysis",
     "Compliance Review"
    ],
    "readers": [
     "Delivery & Portfolio Monitoring",
     "Evidence Assembly"
    ],
    "retention": "Life of the client relationship plus the disclosed audit-trail defensibility period",
    "privacy": "Restricted — entrance photos and PII",
    "audit": "Every write logged with actor and timestamp"
   },
   {
    "name": "StatuteChecklist",
    "owner_context": "Statute Checklist & Retrieval",
    "meaning": "The versioned, attorney-reviewed statutory requirements",
    "source_of_truth": "Statute Checklist & Retrieval",
    "writers": [
     "Compliance Lead"
    ],
    "readers": [
     "Signage & Agreement Analysis",
     "Compliance Review"
    ],
    "retention": "All versions retained indefinitely for audit defensibility",
    "privacy": "Public statute text, not sensitive",
    "audit": "Every version change logged with attorney sign-off"
   },
   {
    "name": "EvidencePack",
    "owner_context": "Evidence Assembly",
    "meaning": "The per-tow-event evidentiary bundle",
    "source_of_truth": "Evidence Assembly",
    "writers": [
     "Evidence Assembly"
    ],
    "readers": [
     "CAM/PM client",
     "Client's retained attorney"
    ],
    "retention": "Life of the file plus the disclosed audit-trail defensibility period",
    "privacy": "Restricted — PII and dispute-specific data",
    "audit": "Every assembly and delivery logged"
   }
  ],
  "external_integrations": [
   {
    "system": "Stripe",
    "direction": "outbound",
    "pattern": "API",
    "trigger": "Pack purchase or retainer billing",
    "data_out": [
     "[PLACEHOLDER] owner to complete"
    ],
    "data_in": [
     "[PLACEHOLDER] owner to complete"
    ],
    "internal_model": "PortfolioAccount billing status",
    "acl_strategy": "Thin adapter; no domain logic in the payment call",
    "owner_context": "Delivery & Portfolio Monitoring",
    "failure_strategy": "Retry with backoff; manual reconciliation if repeated failure",
    "audit_need": "Payment confirmation logged against the PortfolioAccount",
    "risk": "Payment failure blocks retainer activation"
   },
   {
    "system": "Client-side e-signature tool",
    "direction": "outbound (client-facing only)",
    "pattern": "Document link",
    "trigger": "Client needs to execute an internal authorization form",
    "data_out": "Blank authorization template",
    "data_in": "None — client signs and retains their own copy; TowAuth Clear never signs",
    "internal_model": "N/A — external to TowAuth Clear's aggregates",
    "acl_strategy": "TowAuth Clear only supplies the template, never touches the signed artifact",
    "owner_context": "Delivery & Portfolio Monitoring",
    "failure_strategy": "N/A — client-owned process",
    "audit_need": "None on TowAuth Clear's side",
    "risk": "Client conflates TowAuth Clear's template with legal execution"
   }
  ],
  "adrs": [
   {
    "id": "ADR-D01",
    "decision": "TowAuth Clear never authorizes tows or acts as the property's towing agent",
    "context": "A documentation vendor could drift into acting as the enforcement party if unchecked",
    "options": [
     "Offer authorize-on-behalf-of-client service",
     "Documentation-only, client remains authorizer of record"
    ],
    "chosen": "Documentation-only, client remains authorizer of record",
    "why": "Avoids unlicensed-agency exposure and keeps the trust position of an independent auditor, not an enforcement vendor",
    "consequences": [
     "No revenue from an authorization/enforcement service line"
    ],
    "risks": [
     "Client confusion about who is legally authorizing a tow"
    ],
    "reversal": "Would require separate written agency agreements and dedicated insurance — not planned",
    "revisit_trigger": "A client contractually requests TowAuth Clear act as authorizing agent",
    "revisit_when": "N/A at current stage",
    "business_reason": "Protects the licensing boundary and the trust position",
    "technical_reason": "No command exists in the system for TowAuth Clear to authorize a tow",
    "tradeoffs": [
     "Smaller addressable revenue per client vs. a full-service tow-management vendor"
    ],
    "status": "Accepted"
   },
   {
    "id": "ADR-D02",
    "decision": "Two-person Compliance Analyst review required on every PASS through at least the first 20 pilot packs",
    "context": "Automated vision/clause classification alone could produce a false PASS",
    "options": [
     "Single-reviewer review",
     "Two-person review",
     "Fully automated PASS"
    ],
    "chosen": "Two-person review",
    "why": "Never-false-PASS guarantee is the core trust proposition; a single point of review failure is unacceptable at launch",
    "consequences": [
     "Analyst throughput capped at 3-4 packs/day per analyst"
    ],
    "risks": [
     "Cost scales linearly with pack volume until spot-check is proven safe"
    ],
    "reversal": "Move to single-reviewer spot-check only after 100+ reviewed packs per jurisdiction",
    "revisit_trigger": "20-pilot checkpoint metrics pass with zero false-PASS incidents",
    "revisit_when": "Post-20-pilot checkpoint",
    "business_reason": "Protects the trust guarantee that differentiates TowAuth Clear from a generic chatbot",
    "technical_reason": "Application-service invariant blocks PackApproved without two reviewer IDs",
    "tradeoffs": [
     "Slower throughput vs. higher initial trust and lower false-PASS risk"
    ],
    "status": "Accepted"
   },
   {
    "id": "ADR-D03",
    "decision": "Activate jurisdictions one at a time, each behind an attorney-reviewed Statute Checklist",
    "context": "TX and FL expansion could be rushed to capture demand faster",
    "options": [
     "Launch all three states simultaneously",
     "Activate CA only, then TX, then FL sequentially"
    ],
    "chosen": "Activate CA only, then TX, then FL sequentially",
    "why": "Multi-state rule-matrix currency is a top-3 risk; sequential activation keeps checklist quality high",
    "consequences": [
     "Slower national revenue ramp"
    ],
    "risks": [
     "Competitor captures TX/FL demand first"
    ],
    "reversal": "Would require expanding the Compliance Lead/attorney review capacity in parallel",
    "revisit_trigger": "CA checklist proven stable through 20-pilot checkpoint",
    "revisit_when": "After CA 20-pilot checkpoint",
    "business_reason": "Protects checklist accuracy, the primary moat",
    "technical_reason": "StatuteChecklist aggregate enforces one active version per jurisdiction, activated independently",
    "tradeoffs": [
     "Revenue ramp speed vs. checklist quality and false-PASS risk"
    ],
    "status": "Accepted"
   }
  ],
  "self_audit": {
   "biggest_assumptions": [
    "A free Signage Gap Scan converts to paid packs at a meaningful rate without being seen as a liability trap by cautious PMs",
    "3-40-property PMs have enough concurrent wrongful-tow exposure for per-property pricing to matter"
   ],
   "highest_risk_decisions": [
    "Two-person review throughput cap through the first 20 pilots",
    "Sequential single-jurisdiction expansion pace vs. competitive pressure"
   ],
   "needs_domain_expert": [
    "Final CA Statute Checklist sign-off by a licensed CA attorney before any pack ships"
   ],
   "needs_legal": [
    "Every Statute Checklist version prior to activation",
    "The guarantee language on the microsite and in offer-and-pricing.md"
   ],
   "needs_prototype": [
    "Vision OCR accuracy on real-world entrance photos with variable lighting and angles"
   ],
   "scores": [
    {
     "category": "Domain clarity",
     "score": 5,
     "weakness": "None significant",
     "improvement": "N/A"
    },
    {
     "category": "AI-native fit",
     "score": 4,
     "weakness": "Vision OCR accuracy on messy real-world photos not yet proven at scale",
     "improvement": "Build the gold-standard example library from the first 20 pilot packs"
    },
    {
     "category": "Regulatory moat",
     "score": 5,
     "weakness": "None significant",
     "improvement": "N/A"
    },
    {
     "category": "Trust chokepoint design",
     "score": 5,
     "weakness": "None significant",
     "improvement": "N/A"
    },
    {
     "category": "Expansion readiness",
     "score": 3,
     "weakness": "TX/FL checklists not yet attorney-reviewed",
     "improvement": "Complete CA 20-pilot checkpoint before starting TX checklist attorney review"
    }
   ],
   "validate_before_prod": [
    "CA Statute Checklist attorney sign-off",
    "Vision OCR confidence-threshold calibration against real entrance photos"
   ],
   "weakest_parts": [
    "Multi-state expansion pace vs. checklist quality tradeoff",
    "Portfolio Monitoring Retainer attach-rate assumption is untested"
   ]
  },
  "module_structure": {
   "dependency_rules": [
    "Compliance Review may depend on Signage & Agreement Analysis and Statute Checklist & Retrieval, never the reverse",
    "Exception & Escalation may be called from any Core context but never calls back into automated drafting",
    "Learning Loop only consumes correction data; it never writes directly to a live PropertyReadinessFile"
   ],
   "modules": [
    {
     "name": "Intake & Normalization",
     "purpose": "Canonical, confidence-scored property intake",
     "owned_domain": [
      "PropertyReadinessFile (pre-draft state)"
     ],
     "public_interfaces": [
      "SubmitEntranceIntake"
     ],
     "infra_adapters": [
      "Encrypted object storage"
     ],
     "application_services": [
      "IntakeNormalizationService"
     ],
     "forbidden_deps": [
      "Compliance Review",
      "Delivery & Portfolio Monitoring"
     ]
    },
    {
     "name": "Statute Checklist & Retrieval",
     "purpose": "Versioned, attorney-reviewed statutory checklist",
     "owned_domain": [
      "StatuteChecklist"
     ],
     "public_interfaces": [
      "ActivateJurisdiction",
      "DraftChecklistVersion"
     ],
     "infra_adapters": [
      "Versioned document store"
     ],
     "application_services": [
      "ChecklistActivationService"
     ],
     "forbidden_deps": [
      "Delivery & Portfolio Monitoring"
     ]
    },
    {
     "name": "Signage & Agreement Analysis",
     "purpose": "Vision/clause drafting grounded in the active checklist",
     "owned_domain": [
      "PropertyReadinessFile (draft state)"
     ],
     "public_interfaces": [
      "DraftGapAnalysis"
     ],
     "infra_adapters": [
      "Vision OCR provider",
      "Clause classification provider"
     ],
     "application_services": [
      "GapAnalysisDraftingService"
     ],
     "forbidden_deps": [
      "Delivery & Portfolio Monitoring",
      "Evidence Assembly"
     ]
    },
    {
     "name": "Compliance Review",
     "purpose": "Two-person PASS sign-off",
     "owned_domain": [
      "PropertyReadinessFile (reviewed state)"
     ],
     "public_interfaces": [
      "ApprovePack",
      "EscalatePack"
     ],
     "infra_adapters": [
      "Analyst review workbench"
     ],
     "application_services": [
      "ComplianceReviewService"
     ],
     "forbidden_deps": [
      "Learning Loop"
     ]
    },
    {
     "name": "Delivery & Portfolio Monitoring",
     "purpose": "Pack delivery and portfolio re-verify scheduling",
     "owned_domain": [
      "PortfolioAccount"
     ],
     "public_interfaces": [
      "DeliverPack",
      "ScheduleReVerify",
      "ActivateRetainer"
     ],
     "infra_adapters": [
      "Stripe billing",
      "Email delivery"
     ],
     "application_services": [
      "DeliveryService",
      "PortfolioMonitoringService"
     ],
     "forbidden_deps": [
      "Signage & Agreement Analysis"
     ]
    },
    {
     "name": "Evidence Assembly",
     "purpose": "Per-tow Evidence Pack assembly",
     "owned_domain": [
      "EvidencePack"
     ],
     "public_interfaces": [
      "AssembleEvidencePack"
     ],
     "infra_adapters": [
      "Document assembly / PDF merge"
     ],
     "application_services": [
      "EvidenceAssemblyService"
     ],
     "forbidden_deps": [
      "Statute Checklist & Retrieval"
     ]
    },
    {
     "name": "Exception & Escalation",
     "purpose": "Routing edge cases to the client's attorney",
     "owned_domain": [
      "ExceptionCase"
     ],
     "public_interfaces": [
      "RaiseException",
      "ResolveException"
     ],
     "infra_adapters": [
      "Notification service"
     ],
     "application_services": [
      "ExceptionRoutingService"
     ],
     "forbidden_deps": [
      "Signage & Agreement Analysis"
     ]
    },
    {
     "name": "Learning Loop",
     "purpose": "Corrections to versioned rule updates",
     "owned_domain": [
      "CorrectionLog"
     ],
     "public_interfaces": [
      "LogCorrection",
      "PublishRuleUpdate"
     ],
     "infra_adapters": [
      "Versioned prompt/rule store"
     ],
     "application_services": [
      "CorrectionAnalysisService",
      "RuleUpdateService"
     ],
     "forbidden_deps": [
      "Delivery & Portfolio Monitoring"
     ]
    }
   ],
   "tree": "src/\n  contexts/\n    intake-normalization/\n    statute-checklist/\n    signage-agreement-analysis/\n    compliance-review/\n    delivery-portfolio-monitoring/\n    evidence-assembly/\n    exception-escalation/\n    learning-loop/\n  shared/\n    value-objects/\n    audit/"
  },
  "escalation_flows": [
   "A pack failing the second Compliance Analyst's checklist review -> corrected and re-reviewed, or escalated to the Compliance Lead if the issue is a checklist gap rather than a drafting error",
   "A public-access §22953 signal on a normalized property -> routed to the Exception Queue, blocks automated PASS until the client's attorney resolves it"
  ],
  "exception_flows": [
   "A low-confidence sign-dimension measurement -> mandatory human measurement confirmation before drafting continues",
   "A novel tow-contract clause not covered by the active Statute Checklist -> routed to Compliance Lead for checklist-gap review, pack delivery paused"
  ],
  "manual_override_flows": [
   "Compliance Lead can force-hold any PropertyReadinessFile pre-delivery regardless of an automated PASS pass, if a data-integrity issue is suspected"
  ],
  "manual_override_rules": [
   "Any manual override of an automated PASS pass is captured as an explicit override event with actor and reason"
  ],
  "retry_flows": [
   "A failed vision-extraction call -> automatic single retry; unresolved -> routes to manual analyst measurement from the photo set directly"
  ],
  "rag_map": [
   "Statute Checklist (versioned, per-jurisdiction) -> retrieval by jurisdiction + property -> Signage & Agreement Analysis Agent, grounded citation generation"
  ],
  "read_models": [
   "ComplianceAnalystQueue read model: packs awaiting review, packs in the Exception Queue, packs awaiting delivery"
  ],
  "reporting_models": [
   "Client outcome report per PM account: packs delivered, cycle time, rework count, escalation count, false-PASS count"
  ],
  "prompt_chain_map": [
   "Intake -> Normalization (extract + confidence-score) -> Statute Checklist Retrieval -> Signage & Agreement Analysis Agent (draft + cite) -> AI self-check -> Compliance Review"
  ],
  "prompt_versioning": "The Signage & Agreement Analysis prompt library is versioned independently of the vision/LLM vendor and independently of the Statute Checklist, so either can change without silently changing the other.",
  "quality_control_workflow": [
   "Every pack passes deterministic rule-engine validation, an AI self-check, and two-person Compliance Analyst review before delivery; no pack skips a gate"
  ],
  "human_in_the_loop_plan": [
   "Two Compliance Analysts review and sign off on 100% of packs through at least the first 20 pilot packs, regardless of AI confidence score"
  ],
  "human_review_checkpoints": [
   "AI draft -> primary Compliance Analyst review -> second Compliance Analyst PASS sign-off, before every delivery"
  ],
  "hallucination_controls": [
   "Retrieval-first drafting — no statutory claim without a cited Statute Checklist element",
   "Deterministic hard-fail rules (missing tow-company phone, no written agreement, undersized sign) computed by rule engine, never left to free-form LLM judgment"
  ],
  "final_recommendations": [
   "Launch TowAuth Clear as a single-state (California), single-feature (Tow-Readiness Completeness Pack) MVP, sold to 5 pilot PM accounts via a free Signage Gap Scan lead magnet, with an 8-property pilot cap"
  ],
  "separation_of_duties": [
   "The Signage & Agreement Analysis Agent cannot approve its own draft",
   "A Compliance Analyst cannot draft a pack on the client's behalf without a logged override reason"
  ],
  "data_duplication_notes": [
   "A property's entrance photo set is referenced by both Intake & Normalization and Evidence Assembly — Intake owns the canonical copy; Evidence Assembly references it read-only"
  ],
  "data_quality_risks": [
   "Format drift when a client submits photos via a different capture method (phone vs. dedicated camera) than the intake brief specifies"
  ],
  "data_retention": [
   "PropertyReadinessFile, EvidencePack, and ExceptionCase records: life of the client relationship plus the audit-trail defensibility period disclosed at intake"
  ],
  "critical_path": [
   "intake.submitted -> entrance.audited -> checklist.retrieved -> gap_analysis.drafted -> pack.reviewed -> pack.approved -> pack.delivered"
  ],
  "escalation_matrix": [
   "AI self-check -> Compliance Analyst (primary) -> Compliance Analyst (second reviewer) -> Client's retained attorney -> (if needed) independent counsel review of the operating model"
  ],
  "extensions": {
   "service_business_reality_check": {
    "is_service_business": true,
    "paid_outcome_clear": true,
    "workflow_present": true,
    "ai_native_fit_score": 4.5,
    "red_flags": []
   },
   "ai_native_fit": {
    "score": 4.5,
    "why": "High-volume, statutorily rigid document production with judgment concentrated in a small Compliance Review/Exception-Queue chokepoint — exactly the shape of work current frontier vision+LLM models do well, with margins expanding as OCR/clause-classification accuracy improves.",
    "disqualifiers": []
   },
   "domain_evidence_register": [
    {
     "claim": "CVC §22658 requires 17x22 entrance signs with >=1\" letters naming the LE phone and each contracted tow company; failure on certain elements creates double towing/storage liability",
     "evidence_type": "primary statute text",
     "source": "California Leginfo VEH §22658; Justia",
     "strength": "high",
     "gaps": "None — primary statutory text"
    },
    {
     "claim": "CA has approximately 51,700 community associations (2025) and approximately 13,971 apartment buildings (mid-2026)",
     "evidence_type": "industry statistical review / directory count",
     "source": "FCAR 2025 Statistical Review; POIData",
     "strength": "high",
     "gaps": "Directory counts fluctuate; treat as order-of-magnitude"
    },
    {
     "claim": "Non-compliant signage is the most frequent successful wrongful-tow challenge basis",
     "evidence_type": "trade/operator publication",
     "source": "Parking Operator Hub — Towing Program Management",
     "strength": "medium-high",
     "gaps": "Trade-source claim, not an independent academic study"
    },
    {
     "claim": "Wrongful-tow incident cost band of $3,200-$8,400",
     "evidence_type": "vendor blog citing an industry association",
     "source": "US Tech Automations (citing NAA)",
     "strength": "low-medium",
     "gaps": "Primary NAA source not located; treat as directional only"
    }
   ],
   "assumption_register": [
    {
     "assumption": "A CA PM managing 3+ properties with an active tow vendor has enough exposure for per-property pricing to matter",
     "impact_if_wrong": "moderate — MVP wedge would need a lower floor or bundled small-portfolio pricing",
     "how_to_validate": "5-account pilot cohort qualification screening",
     "blocking": false
    },
    {
     "assumption": "A PM that buys one property's pack expands to a Portfolio Monitoring Retainer within 90 days if the pack performs",
     "impact_if_wrong": "severe — retainer-attach economics in the financial model would need revision",
     "how_to_validate": "Track retainer-attach rate across the first 5 pilot clients by day 90",
     "blocking": true
    }
   ],
   "language_conflict_map": [
    {
     "term": "Pack",
     "meaning_a": "A TowAuth Clear-drafted, statute-cited Tow-Readiness Completeness Pack (this business's term)",
     "context_a": "TowAuth Clear",
     "meaning_b": "A generic compliance document bundle used by unrelated businesses elsewhere in the AINBIS portfolio",
     "context_b": "other portfolio businesses (not this one)",
     "resolution": "Always qualify as the Tow-Readiness Completeness Pack (capitalized, TowAuth Clear's defined term) in TowAuth Clear copy"
    }
   ],
   "build_buy_integrate": [
    {
     "subdomain": "Statute Checklist & Retrieval",
     "decision": "build",
     "reason": "Core differentiated IP — the maintained, attorney-reviewed statute checklist is the moat"
    },
    {
     "subdomain": "Delivery & Portfolio Monitoring",
     "decision": "buy (Drive/Sheets-class tool at launch)",
     "reason": "Off-the-shelf tracker is sufficient at pilot volume; not differentiating on its own"
    },
    {
     "subdomain": "Signage & Agreement Analysis",
     "decision": "buy + build",
     "reason": "Vision/LLM API bought; the retrieval-grounded prompt library and checklist mapping is built and owned"
    }
   ],
   "core_protection_strategy": [
    "[PLACEHOLDER] owner to complete"
   ],
   "boundary_stress_tests": [
    {
     "scenario": "A vehicle owner disputes a Tow-Readiness Completeness Pack as inaccurate",
     "contexts_touched": [
      "Compliance Review",
      "Exception & Escalation"
     ],
     "breaks_if": "The dispute-detection checklist has a gap for a novel signage configuration",
     "verdict": "Mitigated by two-person Compliance Analyst review as the gate before any client-facing dispute response"
    },
    {
     "scenario": "A PM asks TowAuth Clear to authorize a tow directly",
     "contexts_touched": [
      "Delivery & Portfolio Monitoring"
     ],
     "breaks_if": "The documentation-only boundary is not held",
     "verdict": "Held firmly — TowAuth Clear declines and reiterates the documentation-only model per compliance-checklist.md"
    }
   ],
   "unresolved_ownership": [
    {
     "concept": "Tow-contract accuracy as submitted by the client",
     "candidates": [
      "CAM/PM client",
      "Compliance Analyst"
     ],
     "recommendation": "The client owns and supplies the tow contract; TowAuth Clear only drafts from what is provided and flags gaps at intake"
    }
   ],
   "published_language_contracts": [
    {
     "producer": "Intake & Normalization",
     "consumer": "Statute Checklist & Retrieval",
     "contract": "Canonical normalized PropertyReadinessFile schema",
     "versioning": "Schema version pinned per extraction-prompt release"
    },
    {
     "producer": "Statute Checklist & Retrieval",
     "consumer": "Signage & Agreement Analysis",
     "contract": "Active StatuteChecklist version for a given jurisdiction",
     "versioning": "Statute Checklist version dated and attorney-reviewed"
    }
   ],
   "shared_kernel_warnings": [
    "None identified — bounded contexts communicate only via events, no shared kernel"
   ],
   "aggregate_stress_tests": [
    {
     "aggregate": "PropertyReadinessFile",
     "scenario": "Concurrent Compliance Analyst review attempts on the same pack",
     "invariant_at_risk": "No pack is delivered without a clean two-person sign-off",
     "verdict": "Mitigated by locking the file to the active reviewer pair at a time"
    }
   ],
   "agent_stress_tests": [
    {
     "agent": "Signage & Agreement Analysis Agent",
     "scenario": "A sign photo is taken at an oblique angle, distorting the apparent dimensions",
     "failure_mode": "Draft estimates a dimension above the statutory minimum when the true dimension is below it",
     "guardrail": "Confidence scoring flags oblique-angle photos below threshold for mandatory human measurement",
     "verdict": "Acceptable with the analyst gate; escalates to Compliance Lead if the photo brief itself needs revision"
    }
   ],
   "regulated_domain_handling": [
    {
     "regime": "Unauthorized practice of law",
     "applies_because": "Opining on the legal sufficiency of a specific tow or CC&R interplay is a legal act",
     "controls": [
      "Never opines on legal sufficiency",
      "Documentation-only scope with disclaimers on every pack"
     ],
     "evidence_required": [
      "[PLACEHOLDER] owner to complete"
     ]
    },
    {
     "regime": "Unlicensed towing agency",
     "applies_because": "Authorizing a tow as the property's agent without proper licensing/insurance would exceed TowAuth Clear's scope",
     "controls": [
      "Never authorizes a tow",
      "Client remains authorizer of record at all times"
     ],
     "evidence_required": "Written acknowledgment collected at pack delivery"
    }
   ],
   "unit_economics": {
    "price_model": "Flat per-property (Tow-Readiness Completeness Pack) plus a monthly Portfolio Monitoring Retainer and a one-time New-State Activation add-on",
    "unit_of_value": "property, per Completeness Pack event, or per completed Notice/Evidence event (Evidence Pack)",
    "gross_margin_pct": 55,
    "cost_drivers": [
     "Vision/LLM inference and compute",
     "Compliance Analyst review minutes (two-person)",
     "Statute Checklist maintenance amortization",
     "QA sampling and delivery overhead"
    ],
    "breakeven_note": "Gross margin starts in the 55-65% range at pack #1 and expands toward 70%+ by day 90 as analyst review time falls from 100-120 to 25-40 minutes per pack and the Statute Checklist amortizes across a growing client base"
   },
   "margin_leakage_map": [
    {
     "leakage": "Analyst review minutes not falling as automation matures",
     "cause": "New exception types not yet in the gold-standard example library",
     "impact": "Gross margin compression per new client",
     "mitigation": "Gold-standard library grows with every pilot pack; reused across clients in the same jurisdiction"
    }
   ],
   "slop_findings": [
    {
     "pattern": "Generic SaaS marketing phrasing",
     "status": "checked",
     "note": "Banned-phrase list enforced on the landing page (no 'leverage AI', 'streamline your workflow', 'cutting-edge', 'revolutionize', 'unlock', 'supercharge')"
    },
    {
     "pattern": "Fabricated testimonials/case results",
     "status": "checked",
     "note": "None present; proof slots are honest dashed [PLACEHOLDER] markers keyed to real future pilot events"
    }
   ],
   "drift_checks": [
    {
     "stage": "build",
     "status": "checked",
     "findings": [
      "[PLACEHOLDER] owner to complete"
     ]
    }
   ],
   "gates": [
    {
     "id": "G1",
     "title": "No public claim before owner-action facts close",
     "passed": false,
     "checks": [
      {
       "name": "Entity confirmed",
       "ok": false,
       "evidence": "Pending owner action — operating entity name/EIN not yet declared for TowAuth Clear"
      },
      {
       "name": "Compliance Analyst identity confirmed",
       "ok": false,
       "evidence": "Pending owner action — the founder acts as the first Compliance Analyst per launch-plan.md"
      },
      {
       "name": "Trademark clearance",
       "ok": false,
       "evidence": "Pending owner action — 'TowAuth Clear' web collision-checked (no collision found) but not yet formally cleared per brand.md"
      }
     ]
    }
   ],
   "contradiction_scan": [
    {
     "id": "C1",
     "severity": "low",
     "message": "No contradiction found between the source blueprint's documentation-only MVP design and this build's landing page/compliance-checklist copy — both consistently state TowAuth Clear never authorizes tows.",
     "refs": [
      "business-plan.md",
      "compliance-checklist.md",
      "site/index.html"
     ]
    }
   ],
   "rubric": {
    "categories": [
     {
      "category": "domain_modeling",
      "score": 4,
      "min": 3,
      "passed": true
     },
     {
      "category": "ai_governance",
      "score": 4,
      "min": 3,
      "passed": true
     },
     {
      "category": "compliance_boundary",
      "score": 5,
      "min": 3,
      "passed": true
     },
     {
      "category": "unit_economics",
      "score": 4,
      "min": 3,
      "passed": true
     },
     {
      "category": "gtm_clarity",
      "score": 4,
      "min": 3,
      "passed": true
     }
    ],
    "pass": true,
    "average": 4.2
   },
   "foundry_package": {
    "version": "1.8.0",
    "checksum": "sha256:generated-locally",
    "counts": {
     "subdomains": 8,
     "bounded_contexts": 8,
     "aggregates": 5,
     "events": 16,
     "commands": 8,
     "policies": 5,
     "ai_agents": 3,
     "invariants": 5,
     "integrations": 2,
     "adrs": 3
    },
    "subset": {
     "subdomains": [
      "Statute Checklist & Retrieval",
      "Signage & Agreement Analysis",
      "Compliance Review",
      "Evidence Assembly",
      "Intake & Normalization",
      "Delivery & Portfolio Monitoring",
      "Exception & Escalation",
      "Learning Loop"
     ],
     "bounded_contexts": [
      "Intake & Normalization",
      "Statute Checklist & Retrieval",
      "Signage & Agreement Analysis",
      "Compliance Review",
      "Evidence Assembly",
      "Delivery & Portfolio Monitoring",
      "Exception & Escalation",
      "Learning Loop"
     ],
     "aggregates": [
      "PropertyReadinessFile",
      "EvidencePack",
      "PortfolioAccount",
      "StatuteChecklist",
      "ExceptionCase"
     ],
     "events": [
      "EntranceAudited",
      "GapAnalysisDrafted",
      "PackApproved",
      "ExceptionRaised",
      "PackDelivered",
      "EvidencePackAssembled",
      "RetainerActivated",
      "StatuteChecklistVersionUpdated",
      "RuleUpdatePublished",
      "FieldsNormalized",
      "PrimaryReviewComplete",
      "EvidencePackDelivered",
      "ReVerifyScheduled",
      "ChecklistFrozen",
      "ExceptionResolved",
      "IntakeRejected"
     ],
     "commands": [
      "SubmitEntranceIntake",
      "DraftGapAnalysis",
      "ApprovePack",
      "EscalatePack",
      "DeliverPack",
      "AssembleEvidencePack",
      "ActivateJurisdiction",
      "RaiseException"
     ],
     "invariants": [
      "A PropertyReadinessFile cannot reach PackApproved without two independent Compliance Analyst sign-offs",
      "No pack may be drafted against a non-active Statute Checklist version",
      "An EvidencePack cannot be marked complete with a missing required element",
      "An ExceptionCase cannot close without a resolution recorded by the client's attorney or Compliance Lead",
      "TowAuth Clear never authorizes a tow as the property's agent"
     ],
     "policies": [
      "Two-person PASS rule",
      "Never-auto-PASS on low confidence",
      "Public-access grace-period exception",
      "Documentation-only boundary",
      "Jurisdiction activation gate"
     ],
     "adrs": [
      "ADR-D01",
      "ADR-D02",
      "ADR-D03"
     ],
     "ai_agents": [
      "Signage & Agreement Analysis Agent",
      "Statute Checklist Monitoring Agent",
      "Evidence Pre-Assembly Agent"
     ],
     "integrations": [
      "Stripe",
      "Client-side e-signature tool"
     ]
    },
    "version_note": "1.8.0"
   }
  },
  "architecture": {
   "style": "Founder-operated, deterministic-rules-plus-vision/LLM pipeline with a two-person human review chokepoint",
   "why": "Matches the blueprint's Fulfillment Process: no custom software at launch, automation deepens only after pilot volume proves the workflow",
   "rejected_alternatives": [
    "Full custom multi-tenant SaaS platform at launch (over-built for an 8-property pilot)"
   ],
   "backend_modules": [
    "Intake & Normalization",
    "Statute Checklist & Retrieval",
    "Signage & Agreement Analysis",
    "Compliance Review",
    "Evidence Assembly",
    "Delivery & Portfolio Monitoring",
    "Exception & Escalation",
    "Learning Loop"
   ],
   "frontend_modules": [
    "Landing page (site/index.html)",
    "Signage Gap Scan intake form"
   ],
   "api_boundaries": [
    "No public API at launch; internal service boundaries only between the eight bounded contexts"
   ],
   "database_strategy": "Lightweight structured store (Sheets/Airtable-class tracker at launch) for PropertyReadinessFile, StatuteChecklist, EvidencePack, ExceptionCase records",
   "event_bus": "Not a formal message bus at launch-stage volume; events are recorded sequentially in the per-pack audit log",
   "queue": "Simple per-property work queue ordered by intake time and pilot cap",
   "workflow_engine": "Manual/analyst-driven workflow at launch; the Compliance Review two-person sign-off is the de facto workflow gate",
   "ai_orchestration": "Sequential agent chain (Normalization -> Signage & Agreement Analysis Agent -> AI self-check -> Compliance Analyst pair), model-agnostic per the Model Portability layer",
   "rag_layer": "Retrieval grounded against the versioned Statute Checklist and the property's own tow contract",
   "file_storage": "Encrypted object storage for uploaded entrance photos, tow contracts, and delivered PDF packs",
   "authn_authz": "Single verified account per PM/CAM company client; role-based access for Compliance Analyst vs. Compliance Lead vs. Client",
   "admin_dashboard": "Founder/Compliance Lead view of the Statute Checklist version history and pilot-cohort metrics",
   "client_portal": "Not built at launch; delivery is via secure email/simple portal",
   "operator_dashboard": "Compliance Analyst queue view (packs awaiting review, packs in the Exception Queue)",
   "observability": "Per-pack audit log; cycle-time and escalation-rate tracking",
   "audit_logging": "Append-only log of every intake, draft, review, correction, and delivery event per pack",
   "deployment": "Landing page deployed as a static site; fulfillment is founder/analyst-operated outside any deployed application"
  },
  "ai_audit_plan": [
   "Every AI draft logged with model version, prompt version, and Statute Checklist version; monthly red-team spot audit of a random delivered pack"
  ],
  "ai_evaluation": [
   "Gold-standard example library accuracy check on every model/prompt version change before it touches a live pack"
  ]
 },
 "architecture": {
  "slug": "private-property-tow-authorization-completeness-desk",
  "archetypes": [
   "regulated system",
   "CRUD/workflow application",
   "internal operations platform"
  ],
  "archetype_impact": "Property, jurisdiction, and PM-account identity are global query parameters — every read/write is scoped by property, jurisdiction, and PM account, not just tenant.",
  "personality": [
   "workflow-heavy",
   "cost-sensitive",
   "highly regulated",
   "highly secure"
  ],
  "forces_ranked": [
   {
    "force": "compliance",
    "why": "Regulated verticals gate release; the architecture must prove, not assert, compliance."
   },
   {
    "force": "auditability",
    "why": "Every release decision, every evidence toggle, must be defensible in review."
   },
   {
    "force": "reliability",
    "why": "A broken blueprint is a broken release gate — availability is a product feature."
   },
   {
    "force": "data integrity",
    "why": "Evidence is the product; a corrupted citation is a shipped defect."
   },
   {
    "force": "maintainability",
    "why": "One team maintains dozens of blueprints; the shape must be identical across them."
   }
  ],
  "tradeoffs": [
   "Prioritizing auditability slows raw throughput — accepted; the product IS the audit trail.",
   "Choosing a modular monolith trades independent scaling for a single deploy story — accepted while the team is small.",
   "Using managed Cloud primitives trades some portability for zero ops — accepted; data is portable, runtime is not the moat."
  ],
  "quality_scenarios": [
   {
    "attribute": "Performance (interactive p95)",
    "target": "600 ms on Blueprint detail routes",
    "assumption": "Measured from Cloud edge, warm cache."
   },
   {
    "attribute": "Availability",
    "target": "99.5% (with March-reporting-window freeze protection)",
    "assumption": "Rolling 30-day window; excludes announced maintenance."
   },
   {
    "attribute": "RTO",
    "target": "24h"
   },
   {
    "attribute": "RPO",
    "target": "24h (daily backups)"
   },
   {
    "attribute": "Latency (edge function warm)",
    "target": "≤ 800ms p95 excluding upstream AI calls"
   },
   {
    "attribute": "Data durability",
    "target": "11 nines via managed Postgres + storage replication"
   },
   {
    "attribute": "Security",
    "target": "OWASP ASVS L1 baseline"
   },
   {
    "attribute": "Auditability",
    "target": "100% of release decisions + evidence toggles logged with actor + timestamp"
   },
   {
    "attribute": "Maintainability",
    "target": "New blueprint reaches validation-microsite state in ≤ 1 working session"
   },
   {
    "attribute": "Deployment frequency",
    "target": "≥ 5 deploys/week without incident"
   },
   {
    "attribute": "Observability",
    "target": "Every edge function emits correlationId; retries + phases visible in diagnostics drawer"
   },
   {
    "attribute": "Cost envelope",
    "target": "Idle per-blueprint cost ≈ $0; active < $5/month at MVP traffic"
   },
   {
    "attribute": "Scalability",
    "target": "Horizontal by blueprint count; single blueprint sized for < 10 req/s sustained"
   }
  ],
  "options": [
   {
    "style": "simple monolith",
    "fits_when": "Single team, low traffic, no independent scaling concerns.",
    "fits_here": "Matches the per-blueprint scope — one microsite, one schema, one code path.",
    "wrong_here": "Would couple every blueprint into a single deploy — not acceptable at network scale.",
    "complexity": "low",
    "cost": "low",
    "ops_burden": "low",
    "security_impact": "Small surface, single audit boundary.",
    "scaling_path": "Vertical scale only; hits ceiling on team velocity, not compute.",
    "team_fit": "Ideal for one dev; fine at MVP.",
    "recommended": false
   },
   {
    "style": "modular monolith",
    "fits_when": "Multiple bounded contexts but shared deploy lifecycle acceptable.",
    "fits_here": "Each blueprint is a module inside the network shell; shared shell, isolated data.",
    "wrong_here": "Wrong only if a blueprint needs independent SLOs — none currently do.",
    "complexity": "moderate",
    "cost": "low",
    "ops_burden": "low",
    "security_impact": "Single trust boundary; row-level isolation carries the tenancy load.",
    "scaling_path": "Modules become services only when SLOs or teams diverge.",
    "team_fit": "Best fit for a small team maintaining many blueprints.",
    "recommended": true
   },
   {
    "style": "serverless",
    "fits_when": "Bursty, per-request workloads with idle-to-zero cost targets.",
    "fits_here": "Edge functions already handle sync, docs, legal, seed articles, integrity — pay-per-invoke.",
    "wrong_here": "Wrong for long-running orchestrations; IDLE_TIMEOUT already bit us on legal docs.",
    "complexity": "moderate",
    "cost": "low",
    "ops_burden": "moderate",
    "security_impact": "Function-scoped IAM; secrets via managed vault.",
    "scaling_path": "Auto; watch cold-start p95 and per-invocation cost.",
    "team_fit": "Good — team already ships functions weekly.",
    "recommended": false
   },
   {
    "style": "microservices",
    "fits_when": "Multiple teams, divergent SLOs, independent release cadence required.",
    "fits_here": "Nothing here justifies it; single team, single deploy cadence, shared data plane.",
    "wrong_here": "Adds network, discovery, deploy topology, and observability cost with zero product benefit.",
    "complexity": "very high",
    "cost": "high",
    "ops_burden": "high",
    "security_impact": "Bigger attack surface, more inter-service auth to get right.",
    "scaling_path": "Best-in-class if the org can afford it.",
    "team_fit": "Wrong for this team.",
    "recommended": false
   },
   {
    "style": "event-driven",
    "fits_when": "Async fan-out, decoupled producers/consumers, replayable history required.",
    "fits_here": "Only the sync + integrity pipeline is fan-out; keep it as background jobs, not a broker.",
    "wrong_here": "Broker + schema registry + DLQ topology is overkill for current volumes.",
    "complexity": "high",
    "cost": "moderate",
    "ops_burden": "high",
    "security_impact": "Extra ACLs; message-level auth needed.",
    "scaling_path": "Excellent for future audit-log fan-out, revisit at 10x volume.",
    "team_fit": "Team can operate a small in-process queue; not a full broker yet.",
    "recommended": false
   },
   {
    "style": "workflow/orchestration",
    "fits_when": "Long, multi-step, resumable pipelines with human-in-the-loop steps.",
    "fits_here": "Blueprint pipeline (sources → articles → integrity → smoke test) already smells like this.",
    "wrong_here": "Full engine (Temporal/Airflow) is heavy; a typed in-app queue with retries covers today's needs.",
    "complexity": "high",
    "cost": "moderate",
    "ops_burden": "moderate",
    "security_impact": "Central choke point — must be hardened.",
    "scaling_path": "Adopt engine once we cross ~10 concurrent long-running jobs per blueprint.",
    "team_fit": "Would require operator ramp-up.",
    "recommended": false
   }
  ],
  "chosen_style": "modular monolith",
  "chosen_rationale": "Modular monolith with edge functions for bursty AI/generation — one audit boundary, low ops burden, easy per-team ownership.",
  "rejected": [
   {
    "style": "microservices",
    "why_rejected": "Adds network, discovery, deploy topology, and observability cost with zero product benefit."
   },
   {
    "style": "event-driven",
    "why_rejected": "Broker + schema registry + DLQ topology is overkill for current volumes."
   }
  ],
  "target": {
   "overview": "React shell → Lovable Cloud (Postgres + Auth + Storage + Edge Functions). Every blueprint is a module inside the shell; per-vertical differences live in derived DNA, not in separate deploys. Compliance posture: Domain-specific (signage/agreement evidence, Compliance Analyst sign-offs, retention schedules).",
   "frontend": "Vite + React + TypeScript + Tailwind + shadcn primitives; per-blueprint themed via Design DNA; job queue for background pipelines; URL-persisted filter state on audit + diagnostics.",
   "backend": "Deno-based edge functions per capability. Long generations split into per-item endpoints to stay under IDLE_TIMEOUT.",
   "data": "Managed Postgres with RLS + JSONB for shape drift. Object storage for source files + generated artifacts.",
   "api": "REST-ish RPC over edge functions with typed payloads; correlationId on every call for retry/diagnostics.",
   "authn_authz": "Managed OAuth (Google default). Roles in a dedicated user_roles table + has_role() SECURITY DEFINER function referenced by RLS policies.",
   "integrations": "GitHub (public read for sync + sources), Lovable AI Gateway (all LLM calls), Cloud Storage (artifacts). No third-party CRM/email yet.",
   "background_jobs": "blueprintJobQueue in-app: per-slug concurrency limit, exponential backoff + jitter, cancel + invalidate, retention of last error diagnostics.",
   "object_storage": "Cloud Storage buckets scoped per blueprint slug; signed URLs for artifact download.",
   "notifications": "In-app toasts + audit trail entries. Email/webhook deferred until owners request it.",
   "search": "Postgres FTS on blueprint titles + evidence claims; client-side filter for audit trail. Dedicated index deferred.",
   "analytics": "Lightweight event log in Postgres; dashboard-grade analytics deferred until we have a paying tenant.",
   "ai": "not applicable",
   "observability": "correlationId per request, per-phase timings, retry timeline in diagnostics drawer, per-blueprint pipeline status panel, JSON report export.",
   "deployment": "Preview + Production environments; edge functions deploy with the app; Postgres migrations shipped via managed migration tool.",
   "security": "RLS on every public table; roles in user_roles; secrets in managed vault; OWASP ASVS L1 baseline.",
   "dr": "Daily backups; restore drill twice/year."
  },
  "modules": [
   {
    "name": "Blueprint Core",
    "responsibility": "Owns the SeedBusiness catalog, release decisions, evidence register, owner actions.",
    "owned_data": [
     "seed business rows",
     "release_decision",
     "evidence items",
     "owner-action state"
    ],
    "entities": [
     "SeedBusiness",
     "EvidenceItem",
     "OwnerAction",
     "ReleaseDecision"
    ],
    "interfaces": [
     "React store (StoreProvider)",
     "public read via microsite route"
    ],
    "depends_on": [
     "Content Pipeline (for source files + articles)",
     "Cloud auth"
    ],
    "events_produced": [
     "release.decision.changed",
     "evidence.status.changed",
     "owner.action.resolved"
    ],
    "events_consumed": [
     "sync.blueprint.applied",
     "integrity.check.completed"
    ],
    "failure_risks": [
     "Duplicate slug in seed → React key crash (mitigated by dedupe in mergedSeed)",
     "Evidence drift after sync"
    ],
    "scaling": "Bounded by SEED size; irrelevant even at 10x.",
    "future_split_trigger": "Split out Blueprint Core into an independent deployment when its throughput or a distinct scaling profile justifies it; not warranted pre-revenue.",
    "purpose": "Owns the SeedBusiness catalog, release decisions, evidence register, owner actions.",
    "owned_domain": [
     "seed business rows",
     "release_decision",
     "evidence items",
     "owner-action state"
    ],
    "application_services": [
     "BlueprintCoreService"
    ],
    "infra_adapters": [
     "Managed Postgres",
     "Cloud Storage"
    ],
    "public_interfaces": [
     "React store (StoreProvider)",
     "public read via microsite route"
    ],
    "forbidden_deps": []
   },
   {
    "name": "Content Pipeline",
    "responsibility": "Fetches GitHub sources, generates docs/seed articles, runs citation integrity, per slug with concurrency + backoff.",
    "owned_data": [
     "blueprint_sources",
     "blueprint_seed_articles",
     "job status per slug",
     "integrity results"
    ],
    "entities": [
     "SourceFile",
     "SeedArticle",
     "IntegrityReport",
     "JobState"
    ],
    "interfaces": [
     "blueprintJobQueue API",
     "edge functions: fetch-blueprint-sources, generate-seed-articles, generate-blueprint-docs"
    ],
    "depends_on": [
     "Cloud edge functions",
     "AI Gateway",
     "GitHub public read"
    ],
    "events_produced": [
     "sources.fetched",
     "articles.generated",
     "integrity.completed",
     "cache.invalidated"
    ],
    "events_consumed": [
     "blueprint.cache.invalidate"
    ],
    "failure_risks": [
     "Edge IDLE_TIMEOUT on long generations (mitigated: per-doc endpoints + retries)",
     "Upstream AI 5xx storms"
    ],
    "scaling": "Concurrency + backoff configurable in UI; scales with edge function limits.",
    "future_split_trigger": "If cross-blueprint queueing coordination is needed, promote to a shared job service.",
    "purpose": "Fetches GitHub sources, generates docs/seed articles, runs citation integrity, per slug with concurrency + backoff.",
    "owned_domain": [
     "blueprint_sources",
     "blueprint_seed_articles",
     "job status per slug",
     "integrity results"
    ],
    "application_services": [
     "ContentPipelineService"
    ],
    "infra_adapters": [
     "Managed Postgres",
     "Cloud Storage"
    ],
    "public_interfaces": [
     "blueprintJobQueue API",
     "edge functions: fetch-blueprint-sources, generate-seed-articles, generate-blueprint-docs"
    ],
    "forbidden_deps": []
   },
   {
    "name": "Runtime & Capabilities",
    "responsibility": "Per-blueprint runtime modules — verification, SEO, legal docs, chatbot — with retry + diagnostic history.",
    "owned_data": [
     "capability status per slug",
     "runtime module errors",
     "chatbot threads + FAQ"
    ],
    "entities": [
     "CapabilityStatus",
     "RuntimeError",
     "ChatMessage"
    ],
    "interfaces": [
     "React Runtime tab",
     "edge functions: verify-blueprint, generate-seo-posts, generate-legal-docs/*, blueprint-chat"
    ],
    "depends_on": [
     "Content Pipeline (grounding)",
     "AI Gateway"
    ],
    "events_produced": [
     "capability.status.changed",
     "runtime.error.recorded"
    ],
    "events_consumed": [
     "cache.invalidated"
    ],
    "failure_risks": [
     "AI provider outage",
     "Prompt drift causing ungrounded output"
    ],
    "scaling": "Per-slug; independent of network size.",
    "future_split_trigger": "Split out Runtime & Capabilities into an independent deployment when its throughput or a distinct scaling profile justifies it; not warranted pre-revenue.",
    "purpose": "Per-blueprint runtime modules — verification, SEO, legal docs, chatbot — with retry + diagnostic history.",
    "owned_domain": [
     "capability status per slug",
     "runtime module errors",
     "chatbot threads + FAQ"
    ],
    "application_services": [
     "Runtime&CapabilitiesService"
    ],
    "infra_adapters": [
     "Managed Postgres",
     "Cloud Storage"
    ],
    "public_interfaces": [
     "React Runtime tab",
     "edge functions: verify-blueprint, generate-seo-posts, generate-legal-docs/*, blueprint-chat"
    ],
    "forbidden_deps": []
   },
   {
    "name": "Sync & Rollback",
    "responsibility": "Daily GitHub sync of blueprint definitions with dry-run, partial-apply, and server-backed rollback of last snapshot.",
    "owned_data": [
     "sync_runs",
     "sync_snapshots per slug",
     "audit_trail"
    ],
    "entities": [
     "SyncRun",
     "SyncDiff",
     "SyncSnapshot",
     "AuditEntry"
    ],
    "interfaces": [
     "/github-sync page",
     "edge functions: github-sync-blueprints, rollback-blueprint-sync"
    ],
    "depends_on": [
     "Blueprint Core",
     "Cloud storage for snapshots"
    ],
    "events_produced": [
     "sync.run.completed",
     "sync.blueprint.applied",
     "sync.blueprint.rolled_back"
    ],
    "events_consumed": [],
    "failure_risks": [
     "Partial apply leaving mixed state (mitigated by per-blueprint snapshots)",
     "Audit trail size growth"
    ],
    "scaling": "Paginate audit trail; snapshot retention window is finite.",
    "future_split_trigger": "Split out Sync & Rollback into an independent deployment when its throughput or a distinct scaling profile justifies it; not warranted pre-revenue.",
    "purpose": "Daily GitHub sync of blueprint definitions with dry-run, partial-apply, and server-backed rollback of last snapshot.",
    "owned_domain": [
     "sync_runs",
     "sync_snapshots per slug",
     "audit_trail"
    ],
    "application_services": [
     "Sync&RollbackService"
    ],
    "infra_adapters": [
     "Managed Postgres",
     "Cloud Storage"
    ],
    "public_interfaces": [
     "/github-sync page",
     "edge functions: github-sync-blueprints, rollback-blueprint-sync"
    ],
    "forbidden_deps": []
   },
   {
    "name": "Design & Architecture DNA",
    "responsibility": "Deterministic per-blueprint design + architecture briefs used to gate release readiness.",
    "owned_data": [
     "derived only — no persistence"
    ],
    "entities": [
     "DesignDNA",
     "ArchitectureDNA"
    ],
    "interfaces": [
     "React panels in Business Detail"
    ],
    "depends_on": [
     "Blueprint Core"
    ],
    "events_produced": [],
    "events_consumed": [],
    "failure_risks": [
     "Vertical → profile drift if new verticals are not mapped"
    ],
    "scaling": "Pure functions; free.",
    "future_split_trigger": "Split out Design & Architecture DNA into an independent deployment when its throughput or a distinct scaling profile justifies it; not warranted pre-revenue.",
    "purpose": "Deterministic per-blueprint design + architecture briefs used to gate release readiness.",
    "owned_domain": [
     "derived only — no persistence"
    ],
    "application_services": [
     "Design&ArchitectureDNAService"
    ],
    "infra_adapters": [
     "Managed Postgres",
     "Cloud Storage"
    ],
    "public_interfaces": [
     "React panels in Business Detail"
    ],
    "forbidden_deps": []
   }
  ],
  "data_architecture": {
   "primary_db": "Managed Postgres (Cloud)",
   "secondary": [
    "Object storage for artifacts + snapshots",
    "Client localStorage for UI state (filters, drawer state) — never for auth"
   ],
   "cache": "React Query + module-level memoization; no dedicated cache service.",
   "search": "Postgres FTS on titles + evidence; consider pg_trgm on slugs.",
   "vector": "not applicable",
   "object_storage": "Per-slug prefixes; lifecycle rules to prune stale sync snapshots.",
   "schema_strategy": "Normalized core + JSONB for evolving shapes (evidence details, capability status).",
   "migrations": "Forward-only migrations reviewed in PR; every CREATE TABLE ships GRANTs + RLS enable + policies in the same migration.",
   "backups": "Managed daily backups with 30-day retention.",
   "retention": "Audit trail retained ≥ 1y; sync snapshots retained 90d; error diagnostics retained 30d.",
   "audit_logs": "audit_trail table + append-only pattern; export CSV from UI.",
   "soft_delete": "Soft-delete evidence via status transition; hard-delete only via owner-initiated purge.",
   "privacy": "Only owner-supplied facts persist; service records, attestations, regulator correspondence handled per vertical policy.",
   "encryption": "TLS 1.2+ in transit; AES-256 at rest via managed storage.",
   "multi_tenancy": "Row-level tenancy keyed on auth.uid() + blueprint slug; RLS policies enforce isolation."
  },
  "api": {
   "style": "REST-ish RPC over edge functions with JSON payloads; typed client wrappers.",
   "public_vs_internal": "Public microsite reads via Postgres RLS-protected queries; internal capability calls via authenticated edge functions.",
   "versioning": "Version via function name suffix (v1, v2) when breaking; additive changes preferred.",
   "rate_limiting": "Per-user + per-slug in edge functions; UI-level concurrency caps for AI calls.",
   "idempotency": "Sync + rollback carry an idempotency key; retries safe.",
   "pagination": "Cursor pagination on audit trail; offset paging tolerated on small lists.",
   "error_format": "{ code, message, correlationId, retryable, details? } — normalized in client.",
   "webhook_security": "HMAC-signed webhooks (deferred until we accept inbound webhooks).",
   "retries": "Exponential backoff + jitter, capped attempts, respect idempotency keys.",
   "contract_testing": "Zod schemas shared between client + edge; smoke test runner exercises each endpoint.",
   "backward_compat": "Additive fields only; deprecations announced in audit trail before removal.",
   "contract_testing_plan": "Intake, source-result, and delivery payload schemas are contract-tested per consumer; the JSON contract between AI layers is schema-pinned and versioned."
  },
  "security": {
   "authn": "Managed OAuth (Google default). Session in httpOnly cookie / managed client storage.",
   "authz": "user_roles table + has_role() SECURITY DEFINER, referenced from RLS policies. Never store roles on profiles.",
   "tenant_isolation": "RLS on every public table; every query filters by auth.uid() or by an explicit owner grant.",
   "secrets": "Managed vault; never in client bundle; edge functions read via runtime env.",
   "encryption": "TLS in transit; AES-256 at rest; column-level encryption only when regulation requires.",
   "session": "Short-lived access tokens + refresh rotation; SSR cookie parity for edge routes.",
   "input_validation": "Zod schemas at the edge boundary; reject on unknown fields.",
   "api_protection": "Rate limits + WAF rules on public endpoints; correlationId logging for abuse forensics.",
   "audit_log": "Every release decision, evidence toggle, sync, and rollback records actor + timestamp + before/after.",
   "admin_access": "Admin actions gated behind role check + two-key confirmation on destructive operations.",
   "supply_chain": "Lockfile pinning + weekly dependency scan; SBOM produced on release.",
   "threat_model": [
    "Prompt injection via ingested source files → sanitize + refuse instructions from ingested content.",
    "Cross-tenant read via missing RLS on new table → migration checklist blocks merge.",
    "Rollback abuse to overwrite recent legitimate edits → rollback preview + confirm-typed pattern.",
    "AI cost DOS by repeated regeneration → per-slug rate limits + concurrency cap."
   ],
   "abuse_cases": [
    "Malicious owner uploads privileged content into a public microsite field.",
    "Sync run tampered with to inject a slug that overlaps a real blueprint.",
    "Attacker triggers regeneration loop to drive AI cost."
   ],
   "zero_trust": "Every service call authenticates; no implicit trust between edge functions.",
   "asvs_notes": "OWASP ASVS L1 baseline."
  },
  "reliability": {
   "failure_modes": [
    "Edge function IDLE_TIMEOUT on long AI generations.",
    "Upstream AI provider 5xx / rate limit.",
    "GitHub API rate limit during sync.",
    "Postgres connection saturation during sync fan-out."
   ],
   "graceful_degradation": "Runtime tab modules degrade independently; microsite serves cached last-known-good content when generation fails.",
   "retry_policy": "Exponential backoff + jitter, max 5 attempts, respect Retry-After.",
   "timeouts": "Edge function ≤ 120s wall clock (safety margin under 150s limit); client fetch ≤ 60s per call.",
   "circuit_breaker": "Client-side per-endpoint breaker: after 3 consecutive IDLE_TIMEOUTs, pause 5m and surface to UI.",
   "queueing": "In-app blueprintJobQueue with concurrency limits per slug.",
   "idempotency": "Sync + rollback idempotent via key; generation endpoints idempotent per (slug, doc_key).",
   "dlq": "Failed jobs recorded in error diagnostics; user re-triggers manually (no auto-DLQ needed at current volume).",
   "transactions": "Multi-row writes wrapped in single transaction; audit entry written in the same transaction as the mutation.",
   "dr": "Daily backup + semi-annual restore drill.",
   "incident_response": "correlationId in every log line; on-call runbook per capability module; smoke test replays post-incident.",
   "slos": [
    {
     "name": "Interactive p95",
     "target": "600 ms on blueprint detail"
    },
    {
     "name": "Availability",
     "target": "99.5% (with March-reporting-window freeze protection)"
    },
    {
     "name": "Sync success rate",
     "target": "≥ 99% per daily run over rolling 7 days"
    },
    {
     "name": "Generation success rate",
     "target": "≥ 95% per doc across last 7d (excludes provider outages)"
    }
   ]
  },
  "scaling": {
   "mvp_can_stay_simple": [
    "Single Postgres, single region.",
    "No dedicated search or vector index.",
    "In-app job queue; no message broker."
   ],
   "modular_now": [
    "Content Pipeline is already isolated behind blueprintJobQueue — future extraction is a 1-day job.",
    "Runtime capabilities are one function per module — swap in isolation."
   ],
   "deferrable": [
    "Workflow engine (Temporal/Airflow).",
    "Vector DB / RAG.",
    "Multi-region replication.",
    "Feature flag service (env-based toggle covers MVP)."
   ],
   "breaks_first": "Edge function IDLE_TIMEOUT under multi-doc generation — already addressed by per-doc endpoints; watch for regression.",
   "db_path": "Vertical scale → read replica → partition by tenant if a single tenant dominates load.",
   "jobs_path": "In-app queue → dedicated worker → workflow engine, gated by concurrency + resumability need.",
   "cache_path": "React Query only → HTTP cache headers → CDN edge cache for microsite content.",
   "search_path": "Postgres FTS → pg_trgm → dedicated search only when p95 breaches SLO.",
   "files_path": "Managed object storage → CDN → per-region cache if traffic warrants.",
   "api_path": "Vertical edge function scale → per-capability autoscaling → extract hot module to its own service.",
   "multi_region": "Not planned; introduce only on customer contract with residency requirement.",
   "cost_control": "Per-blueprint AI budget, concurrency cap, smoke-test cache; monthly cost review with per-blueprint attribution."
  },
  "ai": {
   "provider": "Frontier LLM via API with provider-agnostic prompt contracts; a second vendor is configured for failover so a released deliverable never depends on a single model.",
   "prompt_mgmt": "Extraction, drafting, and matrix prompts are held in versioned files with eval-gated deploys and one-step rollback; prompt changes require diff review.",
   "rag": "A versioned, jurisdiction-scoped Statute Checklist for private-property tow/signage compliance is retrieved with source-scoped filters; drafting is grounded and citation-anchored to the statute text, never free-form generation.",
   "vector": "Not warranted pre-revenue — the rule pack is small and structured, so section/keyword lookups suffice until a larger corpus justifies similarity search.",
   "embeddings": "Deferred with the vector store; rule-pack keys are structured (element, source, subsection), not semantic.",
   "eval": "A gold set of specialist-released packs measures element-extraction F1 and completeness-gate agreement per model release; accuracy vs specialist labels is reviewed on a fixed cadence.",
   "hitl": "Specialist release is never automated; a domain expert signs off on the exception queue, with sampling QA on a fraction of outputs and expert red-team on the first releases.",
   "guardrails": "Field-locked templates, source-tie reconciliation, and completeness rules mean a draft missing a required field emits a MISSING_ELEMENT exception rather than inventing content.",
   "prompt_injection": "Source documents are treated as data, never instructions; the red-team suite includes injected-instruction files disguised as legitimate inputs.",
   "leakage": "PM-account and property identifiers are scoped per Property Readiness File; retrieval is scoped per client; provider training-use is disabled; there is no cross-client corpus.",
   "fallback": "A manual specialist workbench runbook plus the second LLM vendor keep production moving if the primary model is unavailable.",
   "latency_cost": "Inference cost per deliverable is bounded at launch and trends down with volume; the standard SLA leaves generous headroom over model latency.",
   "memory": "Agents are stateless per case; durable knowledge lives in the versioned rule pack and SOP library, not in model memory.",
   "tool_permissions": "The prompt runner has no tool access beyond returning JSON; search ordering, document assembly, and delivery are deterministic code.",
   "auditability": "Every prompt+output pair is logged to the per-case audit trail with version tags alongside the specialist release record.",
   "citation": "Every drafted element carries the source provision it satisfies, and every matrix entry carries the search or record it came from."
  },
  "devops": {
   "environments": [
    "Preview (per branch)",
    "Production"
   ],
   "cicd": "Lovable build pipeline; deploys on merge; edge functions ship atomically with the app.",
   "iac": "Cloud managed; migrations + config in-repo.",
   "secrets": "Managed vault; separate values per environment.",
   "preview_envs": "Automatic per branch; seeded with anonymized fixtures.",
   "migrations": "Forward-only; migrations reviewed for GRANT + RLS + policies; every table gated by the migration checklist.",
   "rollback": "App: redeploy previous build. Data: server-backed rollback per blueprint via rollback-blueprint-sync.",
   "release_style": "Continuous deploy with feature flags; canary only when a change touches shared shell.",
   "feature_flags": "Env-based booleans at MVP; consider a flag service when we have > 20 flags in flight.",
   "monitoring": "Cloud platform metrics + per-function logs + client error reporting.",
   "alerting": "SLO burn-rate alerts + IDLE_TIMEOUT rate alert + AI cost anomaly alert.",
   "logs": "Structured JSON with correlationId; retained per platform defaults.",
   "error_tracking": "Client-side error capture wired to console + in-app diagnostics drawer.",
   "uptime": "Synthetic checks on microsite + shell login every 5 minutes.",
   "cost_monitoring": "Per-blueprint cost view; alert on 3x baseline over 24h."
  },
  "testing": {
   "unit": "Vitest for pure derivations (DNA, business helpers).",
   "integration": "Edge function contract tests with recorded fixtures.",
   "contract": "Zod schemas shared client + edge; smoke test runner as continuous contract check.",
   "e2e": "Playwright against localhost preview for critical flows (sign in, evidence toggle, sync apply).",
   "security": "Weekly dependency scan; RLS policy audit script; abuse-case checklist per release.",
   "a11y": "Axe checks + keyboard-only smoke on shell components; WCAG 2.2 AA target.",
   "load": "k6 scenarios against edge functions before enabling a new capability network-wide.",
   "chaos": "Manual fault injection on AI provider (simulate 500s) during release rehearsal.",
   "migration": "Every migration runs in preview + dry-run on prod snapshot before apply.",
   "backup_restore": "Semi-annual restore drill.",
   "ai_eval": "not applicable",
   "test_data": "Deterministic fixtures per vertical; no real PHI/PII ever in fixtures."
  },
  "observability": {
   "logs": "Structured JSON with correlationId, phase, attempt, doc_key, slug.",
   "metrics": "Per-endpoint latency, error rate, retry count, AI token spend.",
   "traces": "Cross-function trace via correlationId propagation.",
   "audit_events": "Release decision, evidence toggle, sync, rollback, cache invalidation.",
   "business_events": "Blueprint promoted to ready, first microsite view, first customer-visible export.",
   "error_tracking": "In-app diagnostics drawer + persistent per-slug error history.",
   "security_monitoring": "Failed auth + rate-limit breach + admin action logs.",
   "cost_monitoring": "Per-blueprint + per-capability cost attribution.",
   "dashboards": [
    "SLO burn",
    "AI cost per blueprint",
    "Sync success rate",
    "Generation success rate"
   ],
   "alert_thresholds": [
    "IDLE_TIMEOUT rate > 3/day for one blueprint.",
    "Sync run failure > 1 in rolling 7 days.",
    "AI cost > 3x rolling 7-day baseline over 24h.",
    "p95 breach on Blueprint detail > 800ms for 15 min."
   ],
   "triage": "correlationId → diagnostics drawer → retry timeline → JSON report export → runbook link."
  },
  "cost": {
   "drivers": [
    {
     "name": "AI generation",
     "note": "Dominant driver; capped by concurrency + per-slug budget."
    },
    {
     "name": "Edge function invocations",
     "note": "Bursty at sync + generation; idle-to-zero otherwise."
    },
    {
     "name": "Managed Postgres",
     "note": "Small; scales with audit trail retention."
    },
    {
     "name": "Object storage",
     "note": "Snapshots + artifacts; lifecycle rules prevent growth."
    },
    {
     "name": "Bandwidth",
     "note": "Low; static microsite content."
    }
   ],
   "likely_traps": [
    "Regeneration loops on failure (mitigated by circuit breaker).",
    "Audit trail unbounded growth (mitigated by retention policy).",
    "Storing large HTML snapshots per sync (mitigated by delta snapshots)."
   ],
   "controls": [
    "Per-blueprint AI budget with hard cap.",
    "Smoke-test result caching in localStorage.",
    "Concurrency cap in blueprintJobQueue.",
    "Retention policy on audit + diagnostics."
   ]
  },
  "multi_tenancy": {
   "model": "Row-level tenancy: one shared Postgres, tenant scope by auth.uid() + blueprint slug.",
   "isolation": "RLS policies on every public table; policies reference has_role() where role checks are needed.",
   "tenant_aware_authz": "Every query filters by auth.uid(); admin overrides go through explicit role check + audit entry.",
   "tenant_config": "Per-slug config stored as JSONB on the blueprint row; no per-tenant deploy.",
   "branding": "Per-blueprint Design DNA drives theme; no runtime branding upload at MVP.",
   "tenant_export": "Owner can export evidence + audit trail as JSON/CSV from the UI.",
   "tenant_deletion": "Owner-initiated purge cascades across blueprint rows + storage prefix; soft-delete window of 30 days.",
   "tenant_audit": "Per-slug audit trail table view with actor + timestamp on every mutation.",
   "noisy_neighbor": "Per-slug concurrency cap in blueprintJobQueue; per-slug AI budget.",
   "tenant_rate_limits": "Edge functions apply per-slug + per-user rate limits.",
   "billing": "Not billed at MVP; per-blueprint cost attribution feeds the future billing model.",
   "why_this_fits": "Team size and blueprint scale don't justify schema/db-per-tenant; RLS covers the isolation requirement with negligible ops burden."
  },
  "privacy_compliance": {
   "data_classification": "Owner-supplied facts and evidence citations are the sensitive classes; service records, attestations, regulator correspondence per vertical.",
   "minimization": "Only owner-supplied facts persist; no third-party enrichment; no PII scraping.",
   "consent": "Consent captured at intake for owner-supplied contact info; microsite visitors get standard cookie/consent banner where required.",
   "access_logs": "Every admin + edge function invocation logged with correlationId + actor.",
   "audit_trails": "Immutable append-only audit_trail table; export from UI.",
   "retention": "Audit ≥ 1y; sync snapshots 90d; error diagnostics 30d; artifacts per lifecycle rule.",
   "legal_hold": "Deferred until a matter requires it.",
   "right_to_delete": "Owner-initiated purge honored within 30 days; downstream copies pruned by lifecycle rules.",
   "right_to_export": "JSON + CSV export for evidence, audit trail, and generated artifacts.",
   "sensitive_handling": "No PHI/PII in prompts; owner-supplied facts only; secrets in managed vault.",
   "boundaries": "Domain-specific (signage/agreement evidence, Compliance Analyst sign-offs, retention schedules)",
   "residency": "Single region at MVP; residency contract triggers per-tenant residency planning.",
   "vendor_risk": "Lovable Cloud + AI Gateway are the only critical vendors; both reviewed for security posture.",
   "breach_response": "correlationId + audit trail enables scope determination; disclosure per compliance policy within statutory window.",
   "admin_controls": "Admin actions gated by role check + two-key confirm for destructive operations; every admin session logged.",
   "evidence_collection": "Access reviews, change management, restore drills produce artifacts filed into the evidence pipeline."
  },
  "frontend": {
   "framework": "React 18 + Vite + TypeScript.",
   "rendering": "SPA with per-route code-split; microsite routes prerender-friendly.",
   "routing": "react-router-dom v6 with URL-persisted filter/drawer state.",
   "state": "React context + useSyncExternalStore for the job queue; localStorage only for UI state, never for auth.",
   "server_state": "@tanstack/react-query for cache + retries.",
   "forms": "Controlled components + Zod validation on submit; RHF only where forms grow.",
   "error_handling": "Error boundary at shell + per-panel skeletons + retry affordances.",
   "components": "shadcn primitives + per-blueprint themed panels; deterministic Design DNA drives look.",
   "design_system": "Tailwind semantic tokens (index.css); no hardcoded color utilities in components.",
   "auth_ui": "Managed OAuth callback via Cloud client; session hydration before protected routes render.",
   "authz_aware_ui": "UI hides actions the current role cannot perform; server-side check is authoritative.",
   "a11y": "WCAG 2.2 AA target; visible focus rings; keyboard shortcuts in diagnostics drawer.",
   "i18n": "Copy budgets assume +35% expansion for DE/FR; Intl APIs for dates/currencies.",
   "performance": "Route-level code split; lazy-load Runtime tab; memoize DNA derivations.",
   "bundling": "Vite defaults; per-route lazy imports for heavy panels.",
   "testing": "Vitest for unit; Playwright for critical flows.",
   "offline": "Not required; last-known-good served from React Query cache.",
   "realtime": "Not required at MVP; audit trail is polled on interaction."
  },
  "backend": {
   "framework": "Deno-based edge functions on Lovable Cloud, one function per capability.",
   "layering": "Handler → validator (Zod) → service → repository → Postgres.",
   "domain": "Blueprint, Evidence, OwnerAction, SyncRun, RuntimeCapability, ChatMessage, PropertyReadinessFile, StatuteChecklist, EvidencePack.",
   "services": "Pure functions kept out of edge boundary; shared logic imported from a common module.",
   "repositories": "Thin Postgres wrappers; RLS enforces tenant scope.",
   "validation": "Zod at the edge boundary; reject unknown fields.",
   "authorization": "has_role() SECURITY DEFINER in Postgres; edge function also asserts role for defense in depth.",
   "jobs": "In-app blueprintJobQueue on the client for user-triggered pipelines; server-side cron only for daily sync.",
   "events": "Domain events emitted to audit_trail; no external broker.",
   "files": "Signed URLs from Cloud Storage; virus scan on upload (deferred until user uploads exist).",
   "email_sms": "Deferred; owner-configured inbox required before enabling outbound mail.",
   "scheduled": "Daily GitHub sync via scheduled function; retention prune weekly.",
   "errors": "Normalized error envelope { code, message, correlationId, retryable, details? }.",
   "logging": "Structured JSON logs with correlationId, phase, attempt, slug.",
   "config": "Env-based; secrets from managed vault.",
   "di": "Not required at current size; explicit imports.",
   "testing": "Contract tests per function with recorded fixtures + smoke-test runner."
  },
  "diagrams": {
   "context_mermaid": "flowchart LR\n  Owner([Blueprint Owner]) --> Shell[Network Shell]\n  Reviewer([Reviewer]) --> Shell\n  Public([Public Visitor]) --> Micro[Public Microsite private-property-tow-authorization-completeness-desk]\n  Shell --> Cloud[(Lovable Cloud: DB + Auth + Storage + Edge)]\n  Cloud --> AI[[AI Gateway]]\n  Cloud --> GH[[GitHub API]]\n  Micro --> Cloud",
   "container_mermaid": "flowchart TB\n  subgraph Client\n    UI[React Shell + Blueprint Detail]\n    Queue[blueprintJobQueue]\n  end\n  subgraph Cloud[Lovable Cloud]\n    DB[(Postgres + RLS)]\n    Store[(Object Storage)]\n    subgraph Edge[Edge Functions]\n      Sync[github-sync-blueprints]\n      Roll[rollback-blueprint-sync]\n      Src[fetch-blueprint-sources]\n      Seed[generate-seed-articles]\n      Docs[generate-blueprint-docs]\n      Legal[generate-legal-docs/*]\n      Verify[verify-blueprint]\n      SEO[generate-seo-posts]\n      Chat[blueprint-chat]\n    end\n  end\n  UI --> DB\n  Queue --> Src\n  Queue --> Seed\n  UI --> Docs\n  UI --> Legal\n  UI --> Verify\n  UI --> SEO\n  UI --> Chat\n  UI --> Sync\n  UI --> Roll\n  Seed --> AI[[AI Gateway]]\n  Docs --> AI\n  Legal --> AI\n  Chat --> AI\n  Src --> GH[[GitHub]]",
   "data_flow_mermaid": "flowchart LR\n  A[Owner edits Evidence] --> B[Store: evidence.custom]\n  B --> C{Release Gate}\n  C -- ready --> D[Business marked Ready]\n  C -- blocker --> E[Owner Actions queue]\n  F[GitHub Sync] --> G[Diff + Snapshot]\n  G --> H[(Postgres)]\n  H --> I[Audit trail]\n  H --> J[React store]",
   "auth_flow_mermaid": "sequenceDiagram\n  participant U as User\n  participant UI as Network Shell\n  participant Auth as Cloud Auth\n  participant API as Edge Function\n  participant DB as Postgres+RLS\n  U->>UI: sign in\n  UI->>Auth: OAuth (Google)\n  Auth-->>UI: session (JWT)\n  UI->>API: call with JWT\n  API->>DB: query as auth.uid()\n  DB-->>API: rows filtered by RLS\n  API-->>UI: response",
   "authz_flow_mermaid": "flowchart LR\n  Req[Request w/ JWT] --> Fn[Edge Function]\n  Fn --> Role[has_role user_id, role]\n  Role --> DB[(user_roles + RLS policies)]\n  DB -- allow --> Ok[Return rows]\n  DB -- deny --> Err[403 + audit entry]",
   "deployment_mermaid": "flowchart LR\n  Dev[Developer] --> Repo[Git]\n  Repo --> CI[Lovable Build]\n  CI --> Preview[Preview Env]\n  CI --> Prod[Production]\n  Prod --> Cloud[(Lovable Cloud)]\n  Prod --> CDN[[Edge CDN]]",
   "background_job_mermaid": "flowchart LR\n  UI[Blueprint Detail] --> Enq[blueprintJobQueue.enqueue]\n  Enq --> Slot{Concurrency slot?}\n  Slot -- yes --> Run[Run job]\n  Slot -- no --> Queued[queued]\n  Run -->|success| Done[Persist result + emit event]\n  Run -->|error| Back[Exponential backoff + jitter]\n  Back -->|attempts left| Run\n  Back -->|exhausted| Fail[Record diagnostic + expose retry button]",
   "event_flow_mermaid": "flowchart LR\n  Sync[sync.blueprint.applied] --> Core[Blueprint Core]\n  Integ[integrity.completed] --> UI\n  CacheInv[cache.invalidated] --> Pipe[Content Pipeline]\n  Pipe --> Sources[sources.fetched]\n  Sources --> Articles[articles.generated]\n  Articles --> Integ",
   "failure_flow_mermaid": "flowchart LR\n  Call[Edge Function call] --> Timeout{Timeout / 5xx?}\n  Timeout -- no --> Ok[Success]\n  Timeout -- yes --> Retry[Backoff + retry]\n  Retry --> Cap{Attempts cap?}\n  Cap -- no --> Call\n  Cap -- yes --> Breaker[Open circuit]\n  Breaker --> Cache[Serve last-known-good]\n  Breaker --> Owner[Surface diagnostic + owner action]",
   "multi_tenant_flow_mermaid": "flowchart LR\n  Owner1([Owner A]) --> UI\n  Owner2([Owner B]) --> UI\n  UI --> API[Edge Function w/ JWT]\n  API --> Policy{RLS: auth.uid + slug scope}\n  Policy -- match --> Rows[Owner-scoped rows]\n  Policy -- no match --> Deny[403]",
   "ai_flow_mermaid": "graph LR; SRC[Source documents as DATA]-->EX[Extract + normalize]-->SR[Order source searches]-->MTX[Build matrix]-->DR[Draft locked-field elements]-->GT[Deterministic completeness gates]-->SP[Specialist release]-->DL[Deliver]; GT-.exception.->SP; SP-.high-risk.->EXP[Expert review]"
  },
  "adrs": [
   {
    "id": "ADR-001",
    "decision": "Adopt modular monolith as the network-wide architecture style",
    "context": "Small team maintaining many blueprints with shared shell, evidence discipline, and per-vertical trust variation.",
    "options": [
     "simple monolith",
     "modular monolith",
     "microservices",
     "serverless-only",
     "hybrid"
    ],
    "chosen": "modular monolith",
    "why": "Preserves a single audit boundary and deploy cadence while allowing edge functions for burst workloads.",
    "consequences": [
     "Shared deploy lifecycle across blueprints",
     "Row-level tenant isolation carries the security load"
    ],
    "risks": [
     "A rogue blueprint can regress network shell performance"
    ],
    "reversal": "Extract a module to its own deploy only when its SLO diverges from the network shell.",
    "revisit_when": "A blueprint acquires a divergent SLO, a second team joins, or the shell deploy time exceeds 10 minutes.",
    "business_reason": "Protects the trust/compliance boundary central to TowAuth Clear's positioning.",
    "technical_reason": "Keeps the shared platform's modular monolith / RLS tenancy model unchanged for this business.",
    "tradeoffs": "Lower operational complexity at launch traded for slower feature velocity later.",
    "status": "Accepted",
    "revisit_trigger": "A blueprint acquires a divergent SLO, a second team joins, or the shell deploy time exceeds 10 minutes."
   },
   {
    "id": "ADR-002",
    "decision": "Managed Postgres as the sole primary datastore",
    "context": "All entities are relational (blueprints, evidence, sync runs, articles, audit).",
    "options": [
     "Postgres",
     "Postgres + DocumentDB",
     "Postgres + vector DB",
     "Firestore"
    ],
    "chosen": "Postgres (Cloud managed) with JSONB for semi-structured fields",
    "why": "Relational integrity + row-level security satisfies audit, tenancy, and reporting; JSONB absorbs shape drift.",
    "consequences": [
     "RLS policies are the primary tenancy control",
     "Full-text search via Postgres FTS until it stops scaling"
    ],
    "risks": [
     "Complex joins under growth"
    ],
    "reversal": "Introduce a read-replica or a dedicated search index only when p95 breaches SLO.",
    "revisit_when": "FTS p95 > SLO for 2 consecutive weeks, or a genuine RAG surface appears.",
    "business_reason": "Protects the trust/compliance boundary central to TowAuth Clear's positioning.",
    "technical_reason": "Keeps the shared platform's modular monolith / RLS tenancy model unchanged for this business.",
    "tradeoffs": "Lower operational complexity at launch traded for slower feature velocity later.",
    "status": "Accepted",
    "revisit_trigger": "FTS p95 > SLO for 2 consecutive weeks, or a genuine RAG surface appears."
   },
   {
    "id": "ADR-003",
    "decision": "Per-document edge functions for long-running AI generation",
    "context": "IDLE_TIMEOUT (150s) on monolithic legal-docs generator forced this split.",
    "options": [
     "Single long function",
     "Chunked per-doc functions",
     "Background job with polling"
    ],
    "chosen": "Per-document endpoints with client-side fan-out + retries",
    "why": "Keeps each invocation under the timeout, isolates failures, enables partial success reporting.",
    "consequences": [
     "More endpoints to maintain",
     "Client must own orchestration"
    ],
    "risks": [
     "Client back-pressure if fan-out is too wide"
    ],
    "reversal": "Move to a real workflow engine when we cross ~10 concurrent long jobs per blueprint.",
    "revisit_when": "Concurrent long-running jobs > 10 per blueprint, or client-side orchestration becomes buggy.",
    "business_reason": "Protects the trust/compliance boundary central to TowAuth Clear's positioning.",
    "technical_reason": "Keeps the shared platform's modular monolith / RLS tenancy model unchanged for this business.",
    "tradeoffs": "Lower operational complexity at launch traded for slower feature velocity later.",
    "status": "Accepted",
    "revisit_trigger": "Concurrent long-running jobs > 10 per blueprint, or client-side orchestration becomes buggy."
   },
   {
    "id": "ADR-004",
    "decision": "Evidence-first release gate",
    "context": "Vertical compliance posture: Domain-specific (signage/agreement evidence, Compliance Analyst sign-offs, retention schedules).",
    "options": [
     "Owner-declared ready",
     "Auto-ready via checklist",
     "Evidence-gated ready"
    ],
    "chosen": "Evidence-gated ready — release requires resolved owner actions + verified evidence",
    "why": "Regulated verticals cannot ship on self-declaration; evidence provides defensibility.",
    "consequences": [
     "Slower path to ready",
     "Higher confidence at ready"
    ],
    "risks": [
     "Owners abandon incomplete blueprints"
    ],
    "reversal": "Introduce a 'ready-with-caveats' state only if the network stalls on this gate.",
    "revisit_when": "> 30% of blueprints stuck in owner-action state for > 30 days.",
    "business_reason": "Protects the trust/compliance boundary central to TowAuth Clear's positioning.",
    "technical_reason": "Keeps the shared platform's modular monolith / RLS tenancy model unchanged for this business.",
    "tradeoffs": "Lower operational complexity at launch traded for slower feature velocity later.",
    "status": "Accepted",
    "revisit_trigger": "> 30% of blueprints stuck in owner-action state for > 30 days."
   },
   {
    "id": "ADR-005",
    "decision": "Defer AI adoption until a specific evidence-generation need arises",
    "context": "AI is powerful but adds cost, latency, and auditability burden.",
    "options": [
     "No AI",
     "Grounded AI only",
     "Agentic AI"
    ],
    "chosen": "No AI in this vertical",
    "why": "Vertical does not currently justify AI-shaped complexity.",
    "consequences": [
     "No prompt catalog to maintain"
    ],
    "risks": [],
    "reversal": "Introduce AI only for a scoped generation task.",
    "revisit_when": "A specific generation task appears with clear source grounding.",
    "business_reason": "Protects the trust/compliance boundary central to TowAuth Clear's positioning.",
    "technical_reason": "Keeps the shared platform's modular monolith / RLS tenancy model unchanged for this business.",
    "tradeoffs": "Lower operational complexity at launch traded for slower feature velocity later.",
    "status": "Accepted",
    "revisit_trigger": "A specific generation task appears with clear source grounding."
   },
   {
    "id": "ADR-006",
    "decision": "Managed OAuth (Google) with roles in a dedicated user_roles table",
    "context": "Storing roles on the profile row invites privilege-escalation bugs; RLS policies must reference a stable role source.",
    "options": [
     "Roles on profiles",
     "user_roles + has_role() SECURITY DEFINER",
     "External IdP with JIT claims"
    ],
    "chosen": "user_roles table + has_role() SECURITY DEFINER, referenced by RLS",
    "why": "Prevents recursive RLS, isolates authz decisions, satisfies audit review.",
    "consequences": [
     "One extra join in policies",
     "Explicit role grants required"
    ],
    "risks": [
     "Role drift if grants are not audited"
    ],
    "reversal": "Swap SECURITY DEFINER function for an IdP claim without changing policies.",
    "revisit_when": "Enterprise SSO / SAML contract signed, or role count exceeds ~10.",
    "business_reason": "Protects the trust/compliance boundary central to TowAuth Clear's positioning.",
    "technical_reason": "Keeps the shared platform's modular monolith / RLS tenancy model unchanged for this business.",
    "tradeoffs": "Lower operational complexity at launch traded for slower feature velocity later.",
    "status": "Accepted",
    "revisit_trigger": "Enterprise SSO / SAML contract signed, or role count exceeds ~10."
   },
   {
    "id": "ADR-007",
    "decision": "Single-tenant per blueprint slug with row-level isolation",
    "context": "Blueprints share infra but must never cross-read evidence, sync history, or generated artifacts.",
    "options": [
     "Shared DB + RLS",
     "Schema-per-tenant",
     "DB-per-tenant"
    ],
    "chosen": "Shared DB + RLS keyed on auth.uid() and blueprint slug",
    "why": "Simplest operable model at current scale; migration cost stays near zero.",
    "consequences": [
     "RLS is load-bearing security"
    ],
    "risks": [
     "A missing policy = a leak"
    ],
    "reversal": "Extract a specific tenant to its own schema when contract requires it.",
    "revisit_when": "First enterprise customer with a residency or dedicated-DB clause.",
    "business_reason": "Protects the trust/compliance boundary central to TowAuth Clear's positioning.",
    "technical_reason": "Keeps the shared platform's modular monolith / RLS tenancy model unchanged for this business.",
    "tradeoffs": "Lower operational complexity at launch traded for slower feature velocity later.",
    "status": "Accepted",
    "revisit_trigger": "First enterprise customer with a residency or dedicated-DB clause."
   }
  ],
  "roadmap": [
   {
    "phase": "MVP",
    "build": [
     "Network shell + Blueprint Core module",
     "Content Pipeline with concurrency + backoff",
     "Design + Architecture DNA per blueprint",
     "Sync + rollback + audit trail"
    ],
    "avoid": [
     "Any per-blueprint deploy pipeline",
     "Message brokers",
     "Vector DBs",
     "Multi-region"
    ],
    "defer": [
     "A workflow engine",
     "Full-text search infra",
     "Dedicated CDN rules"
    ],
    "monitor": [
     "Edge function IDLE_TIMEOUT rate",
     "AI cost per generation",
     "Duplicate-slug regressions"
    ],
    "triggers_to_change": [
     "p95 breach on Blueprint detail > 800ms",
     "≥ 3 IDLE_TIMEOUTs/day sustained"
    ],
    "acceptable_debt": [
     "Client-owned job orchestration",
     "localStorage-backed UI state"
    ],
    "dangerous_debt": [
     "Missing RLS on any public table",
     "Ungrounded AI in customer-visible surfaces"
    ],
    "weeks": "MVP",
    "outcomes": [
     "Network shell + Blueprint Core module",
     "Content Pipeline with concurrency + backoff"
    ],
    "exit_criteria": "Phase deliverables shipped without a P0 incident",
    "kill_criteria": "A dangerous-debt item ships to production"
   },
   {
    "phase": "Stabilization",
    "build": [
     "Automated smoke test per blueprint on cache invalidation",
     "Per-slug retention + audit trail export",
     "Contract tests for every edge function"
    ],
    "avoid": [
     "Premature module extraction"
    ],
    "defer": [
     "Multi-tenant admin console"
    ],
    "monitor": [
     "SLO burn rate",
     "Cost per blueprint per week"
    ],
    "triggers_to_change": [
     "A single blueprint accounts for > 30% of AI spend"
    ],
    "acceptable_debt": [
     "Manual runbook execution for rare failures"
    ],
    "dangerous_debt": [
     "Untested rollback path",
     "Backups without a restore drill"
    ],
    "weeks": "Stabilization",
    "outcomes": [
     "Automated smoke test per blueprint on cache invalidation",
     "Per-slug retention + audit trail export"
    ],
    "exit_criteria": "Phase deliverables shipped without a P0 incident",
    "kill_criteria": "A dangerous-debt item ships to production"
   },
   {
    "phase": "Growth",
    "build": [
     "Optional workflow engine adapter behind the current queue interface",
     "Read replica for Postgres if analytics queries interfere",
     "Feature flags per capability module"
    ],
    "avoid": [
     "Splitting Blueprint Core into services without SLO justification"
    ],
    "defer": [
     "Real-time collaboration"
    ],
    "monitor": [
     "Fan-out concurrency vs edge function limits"
    ],
    "triggers_to_change": [
     "> 10 concurrent long jobs per blueprint",
     "New team joins with independent release cadence"
    ],
    "acceptable_debt": [
     "Env-based feature flags"
    ],
    "dangerous_debt": [
     "Skipping migration reviews",
     "Unaudited role grants"
    ],
    "weeks": "Growth",
    "outcomes": [
     "Optional workflow engine adapter behind the current queue interface",
     "Read replica for Postgres if analytics queries interfere"
    ],
    "exit_criteria": "Phase deliverables shipped without a P0 incident",
    "kill_criteria": "A dangerous-debt item ships to production"
   },
   {
    "phase": "Scale",
    "build": [
     "Extract Content Pipeline to a dedicated service if it dominates deploys",
     "Search index (Postgres FTS → dedicated) once FTS p95 breaches SLO"
    ],
    "avoid": [
     "Microservices per blueprint"
    ],
    "defer": [
     "Multi-region until a customer contract requires it"
    ],
    "monitor": [
     "DB CPU + IO under peak",
     "Search p95"
    ],
    "triggers_to_change": [
     "Regional compliance contract signed"
    ],
    "acceptable_debt": [
     "Single-region deployment"
    ],
    "dangerous_debt": [
     "Unbounded audit trail growth",
     "Missing DR drill evidence"
    ],
    "weeks": "Scale",
    "outcomes": [
     "Extract Content Pipeline to a dedicated service if it dominates deploys",
     "Search index (Postgres FTS → dedicated) once FTS p95 breaches SLO"
    ],
    "exit_criteria": "Phase deliverables shipped without a P0 incident",
    "kill_criteria": "A dangerous-debt item ships to production"
   },
   {
    "phase": "Enterprise/Compliance",
    "build": [
     "Formal SOC 2 evidence pipeline (access reviews, change management)",
     "Tenant-scoped encryption keys where regulation requires",
     "DR drill quarterly with restore proof"
    ],
    "avoid": [
     "Custom compliance frameworks; ride managed platform attestations"
    ],
    "defer": [
     "FedRAMP unless a customer commits"
    ],
    "monitor": [
     "Access review completion",
     "Restore-test success rate"
    ],
    "triggers_to_change": [
     "Signed contract with SOC 2 clause",
     "PHI/PII scope change"
    ],
    "acceptable_debt": [
     "Manual quarterly access review with checklist"
    ],
    "dangerous_debt": [
     "Ad-hoc admin access without approval trail"
    ],
    "weeks": "Enterprise/Compliance",
    "outcomes": [
     "Formal SOC 2 evidence pipeline (access reviews, change management)",
     "Tenant-scoped encryption keys where regulation requires"
    ],
    "exit_criteria": "Phase deliverables shipped without a P0 incident",
    "kill_criteria": "A dangerous-debt item ships to production"
   }
  ],
  "anti_overengineering": {
   "flagged": [
    {
     "item": "Introducing Kubernetes",
     "why": "Team size + workload shape don't justify it.",
     "simpler": "Managed Cloud primitives."
    },
    {
     "item": "Adopting microservices",
     "why": "Single deploy cadence + shared audit boundary.",
     "simpler": "Modular monolith with edge functions."
    },
    {
     "item": "Adopting a vector DB",
     "why": "Sources are small + structured; deterministic retrieval works.",
     "simpler": "Direct source fetch + Postgres FTS."
    },
    {
     "item": "Adopting event sourcing",
     "why": "Audit trail table already provides the needed reconstructibility.",
     "simpler": "Append-only audit_trail + snapshots."
    },
    {
     "item": "Multi-region from day one",
     "why": "No customer contract requires it.",
     "simpler": "Single region + documented DR plan."
    },
    {
     "item": "Custom workflow engine",
     "why": "In-app queue covers current concurrency needs.",
     "simpler": "blueprintJobQueue with backoff."
    },
    {
     "item": "Premature message queue",
     "why": "In-app queue + audit trail cover the fan-out cases.",
     "simpler": "Keep blueprintJobQueue; revisit at 10x volume."
    },
    {
     "item": "Custom auth",
     "why": "Managed OAuth + user_roles cover the model.",
     "simpler": "Cloud Auth + user_roles table."
    },
    {
     "item": "Premature caching layer",
     "why": "React Query covers the read-heavy paths.",
     "simpler": "React Query + HTTP cache headers."
    },
    {
     "item": "Data warehouse",
     "why": "No analytics contract; Postgres analytics queries suffice.",
     "simpler": "Read replica if the primary is hurt."
    }
   ]
  },
  "risks": [
   {
    "risk": "Edge function IDLE_TIMEOUT on long generations",
    "likelihood": "moderate",
    "impact": "high",
    "mitigation": "Per-document endpoints + client-side retries with exponential backoff.",
    "detection": "Smoke test runner + diagnostics drawer flags IDLE_TIMEOUT.",
    "owner": "engineering",
    "escalation": "Sustained > 3/day for one blueprint → open incident.",
    "fallback": "Fall back to last-known-good cached artifact; pause auto-generation for the affected blueprint.",
    "category": "technical"
   },
   {
    "risk": "Duplicate slugs in SEED causing UI regressions",
    "likelihood": "moderate",
    "impact": "moderate",
    "mitigation": "mergedSeed dedupes by slug; add lint on SEED at build time.",
    "detection": "React duplicate-key warning; per-slug uniqueness assertion in tests.",
    "owner": "engineering",
    "escalation": "Ship-block if reproduced on main.",
    "fallback": "Runtime dedupe in mergedSeed keeps first occurrence.",
    "category": "technical"
   },
   {
    "risk": "Ungrounded AI output shipped to microsite",
    "likelihood": "low",
    "impact": "high",
    "mitigation": "Citation-first prompts; integrity check gates Seed Articles view.",
    "detection": "Integrity report failing count > 0 blocks display.",
    "owner": "engineering",
    "escalation": "Any customer-visible ungrounded claim → rollback the blueprint.",
    "fallback": "Auto-hide the article + surface owner action to regenerate with stricter prompt.",
    "category": "product"
   },
   {
    "risk": "Cross-tenant data leak via missing RLS on new table",
    "likelihood": "low",
    "impact": "critical",
    "mitigation": "Every CREATE TABLE ships with GRANT + ENABLE RLS + policies in the same migration.",
    "detection": "Security scanner + migration checklist.",
    "owner": "engineering",
    "escalation": "Immediate lockdown + audit.",
    "fallback": "Revoke Data API grants on affected table; restore from PITR if data was modified.",
    "category": "security"
   },
   {
    "risk": "AI cost runaway on a single blueprint",
    "likelihood": "moderate",
    "impact": "moderate",
    "mitigation": "Per-slug rate limits + smoke-test cache + concurrency cap in UI.",
    "detection": "Cost monitoring dashboard; per-blueprint spend alert at 3x baseline.",
    "owner": "SRE",
    "escalation": "Auto-pause generation; require manual re-enable.",
    "fallback": "Disable AI for the offending blueprint via feature flag; serve last-known-good.",
    "category": "cost"
   },
   {
    "risk": "AI provider outage or model deprecation",
    "likelihood": "moderate",
    "impact": "moderate",
    "mitigation": "Per-capability fallback model + retry with backoff; abstract via Lovable AI Gateway.",
    "detection": "Elevated 5xx or empty completions; smoke test failing across blueprints.",
    "owner": "engineering",
    "escalation": "Sustained > 30 min → switch fallback model; notify owners.",
    "fallback": "Serve cached artifacts + disable AI-only capabilities until restored.",
    "category": "vendor"
   },
   {
    "risk": "Compliance evidence gap during audit",
    "likelihood": "low",
    "impact": "high",
    "mitigation": "Evidence-first release gate + audit trail export from UI.",
    "detection": "Missing audit entries surfaced in periodic reconciliation report.",
    "owner": "legal",
    "escalation": "Regulator-visible gap → incident + disclosure per policy.",
    "fallback": "Freeze affected blueprint's release state; produce backfill evidence pack.",
    "category": "compliance"
   },
   {
    "risk": "Solo/small-team key-person dependency",
    "likelihood": "moderate",
    "impact": "high",
    "mitigation": "Deterministic DNA modules keep decisions in code, not in one head; runbooks per capability.",
    "detection": "Bus-factor review each quarter.",
    "owner": "owner",
    "escalation": "> 1 critical path with no backup → hire or contract.",
    "fallback": "Freeze non-critical changes; document current state before further work.",
    "category": "team"
   },
   {
    "risk": "Audit trail gaps on release decisions",
    "likelihood": "low",
    "impact": "critical",
    "mitigation": "Every mutation writes audit entry in the same transaction.",
    "detection": "Audit trail row count vs mutation count reconciliation.",
    "owner": "engineering",
    "escalation": "Regulator-visible gap → incident + disclosure.",
    "fallback": "Reconstruct from Postgres WAL + application logs; disclose per compliance policy.",
    "category": "compliance"
   }
  ],
  "rules": [
   "Keep business logic out of UI components — derivations live in lib/*, panels only render.",
   "Do not introduce a new service without a clear owner and a scaling reason.",
   "All external integrations must have retries, timeouts, and failure handling.",
   "All sensitive actions must be auditable in the same transaction that performs them.",
   "All background jobs must be idempotent.",
   "All APIs must return the normalized error envelope.",
   "All tenant-scoped queries must enforce tenant isolation via RLS — never trust the client.",
   "All expensive AI calls must be logged, capped, and observable.",
   "All schema changes must be reversible or safely migratable — no destructive drops without a rollout plan.",
   "All critical workflows must have observability: correlationId, phase timings, retry timeline.",
   "Every public table ships with GRANT + ENABLE RLS + policies in the same migration.",
   "Every AI span carries a citation; no citation, no ship.",
   "Every destructive action requires typed confirmation."
  ],
  "audit": {
   "product_fit": "Architecture matches an evidence-first, regulated-adjacent workflow product per blueprint.",
   "simplicity": "One shell, one DB, edge functions for bursts — near the simplicity floor for the product's ambitions.",
   "security": "RLS + role table + audit trail; meets ASVS L1 baseline.",
   "reliability": "SLOs defined; per-module degradation; retries + diagnostics in place.",
   "scalability": "Horizontal by blueprint count is the growth axis; per-blueprint scaling is comfortably in headroom.",
   "maintainability": "Deterministic derivations (Design DNA, Architecture DNA) keep per-vertical drift out of components.",
   "performance": "p95 target 600ms is realistic on Cloud edge with warm cache.",
   "cost": "Idle-to-zero for cold blueprints; per-blueprint attribution keeps AI spend controllable.",
   "compliance": "Domain-specific (signage/agreement evidence, Compliance Analyst sign-offs, retention schedules)",
   "dx": "Single stack (React + Vite + Tailwind + Cloud); new blueprint reaches microsite state in one session.",
   "ops_burden": "Managed platform absorbs infra ops; SRE work is limited to SLO watch + runbooks.",
   "extensibility": "New capability = new edge function + new Runtime tab entry; no shell changes required.",
   "team_suitability": "Fits a small team; every added component must retire an older one.",
   "time_to_market": "New blueprint reachable to validation-microsite state within one working session.",
   "recommendation": {
    "style": "modular monolith",
    "stack": "React + Vite + TypeScript + Tailwind + shadcn on the client; Deno edge functions + managed Postgres (RLS) + object storage on the server; Lovable AI Gateway (unused in this vertical).",
    "hosting": "Lovable Cloud managed hosting; preview + production environments; edge functions co-deploy with the app.",
    "database": "Managed Postgres with RLS + JSONB; PITR enabled for critical-tier tenants.",
    "auth": "Managed OAuth (Google default) + user_roles table + has_role() SECURITY DEFINER referenced from RLS policies.",
    "integrations": "GitHub (public read) for sync + sources; Lovable AI Gateway for LLM calls; Cloud Storage for artifacts. No third-party CRM/email/SMS at MVP.",
    "ai_approach": "No AI at MVP for this vertical; revisit only when a scoped generation task with clear sources appears.",
    "build_first": [
     "Blueprint Core (evidence + release gate) — vertical-agnostic.",
     "Content Pipeline (sources → articles → integrity) — required for any evidence claim.",
     "Sync + rollback — required to safely onboard the network."
    ],
    "avoid": [
     "Any per-blueprint deploy pipeline.",
     "Autonomous AI agents that mutate data without owner confirmation.",
     "Bespoke workflow engines before the in-app queue is exhausted."
    ],
    "revisit_later": [
     "Workflow engine adoption when > 10 concurrent long jobs per blueprint.",
     "Search index dedicated infra when Postgres FTS p95 breaches SLO.",
     "Multi-region on the first residency-bound contract."
    ],
    "biggest_risks": [
     "Missing RLS on a new public table (critical).",
     "Ungrounded AI output reaching a customer-visible surface.",
     "AI cost runaway on a single blueprint.",
     "Solo/small-team key-person dependency."
    ],
    "first_10_steps": [
     "Confirm managed OAuth + user_roles table + has_role() function are in place.",
     "Enable RLS + policies on every existing public table; add the migration checklist to CI.",
     "Wire correlationId end-to-end across every edge function call.",
     "Ship the smoke test runner as a required post-deploy gate.",
     "Enable PITR + schedule the first restore drill on the calendar.",
     "Add per-slug AI budget caps and cost dashboards.",
     "Enforce evidence-first release gate for every blueprint.",
     "Set SLO burn-rate alerts on the top 3 SLIs.",
     "Document the per-capability runbook (retry, cancel, invalidate).",
     "Publish this Architecture DNA per blueprint as part of the release evidence pack."
    ],
    "top_10_rules": [
     "Every public table ships with GRANT + RLS + policies in the same migration.",
     "Every mutation writes an audit entry in the same transaction.",
     "Every AI span carries a citation; no citation, no ship.",
     "Every long AI call is per-item, never monolithic.",
     "Every edge function call carries a correlationId end-to-end.",
     "Every retry uses exponential backoff + jitter with a hard attempt cap.",
     "Every destructive action requires typed confirmation.",
     "No microservice extraction without a divergent SLO.",
     "No new dependency without a supply-chain scan.",
     "Signature element (Pack-register tabs with regime chip) and accent (clinical-teal) are network invariants — respect them."
    ],
    "verdict": "Right-sized for an 8-property / 5-PM-account pilot cohort"
   }
  }
 },
 "ddd_coverage": {
  "slug": "private-property-tow-authorization-completeness-desk",
  "total": 10,
  "passed": 9,
  "pct": 90,
  "checks": [
   {
    "key": "subdomains",
    "label": "Subdomains identified",
    "count": 8,
    "min": 3,
    "ok": true,
    "gate": false,
    "unblock": ""
   },
   {
    "key": "bounded_contexts",
    "label": "Bounded contexts modeled",
    "count": 8,
    "min": 3,
    "ok": true,
    "gate": false,
    "unblock": ""
   },
   {
    "key": "aggregates",
    "label": "Aggregates defined",
    "count": 5,
    "min": 2,
    "ok": true,
    "gate": false,
    "unblock": ""
   },
   {
    "key": "events",
    "label": "Domain events named",
    "count": 16,
    "min": 5,
    "ok": true,
    "gate": false,
    "unblock": ""
   },
   {
    "key": "ai_agents",
    "label": "AI agents specified",
    "count": 3,
    "min": 1,
    "ok": true,
    "gate": false,
    "unblock": ""
   },
   {
    "key": "risk_register",
    "label": "Risk register populated",
    "count": 5,
    "min": 3,
    "ok": true,
    "gate": false,
    "unblock": ""
   },
   {
    "key": "adrs",
    "label": "Architecture decision records",
    "count": 3,
    "min": 1,
    "ok": true,
    "gate": false,
    "unblock": ""
   },
   {
    "key": "use_cases",
    "label": "Use cases documented",
    "count": 2,
    "min": 1,
    "ok": true,
    "gate": false,
    "unblock": ""
   },
   {
    "key": "self_audit",
    "label": "Self-audit completed",
    "count": 1,
    "min": 1,
    "ok": true,
    "gate": false,
    "unblock": ""
   },
   {
    "key": "entity_gate",
    "label": "Owner-action entity/trademark gate",
    "count": 0,
    "min": 1,
    "ok": false,
    "gate": true,
    "unblock": "Owner must confirm the operating entity name/EIN and complete a formal trademark clearance search for 'TowAuth Clear' before scaling past the pilot cohort."
   }
  ],
  "failingGates": [
   "entity_gate"
  ]
 },
 "design": {
  "slug": "private-property-tow-authorization-completeness-desk",
  "archetypes": [
   "regulated compliance-documentation tool",
   "field-audit / evidence system",
   "small-portfolio operations back office"
  ],
  "user_mindset": {
   "goals": "Know exactly which entrances and paperwork fail CVC §22658 before a demand letter does, without becoming a parking-law expert.",
   "session_length": "Bursty around a scan request or a wrongful-tow scare; otherwise a monthly glance at portfolio readiness status for retainer clients.",
   "confidence": "Practical, risk-averse property managers; will not tolerate a portal that reads like a parking-enforcement sales pitch.",
   "interface_needs": "Fast pass/fail scanning, plain-language statute citations, a clear punch list per entrance."
  },
  "posture": [
   "direct",
   "trustworthy",
   "unglamorous-on-purpose"
  ],
  "density": "comfortable",
  "trust_level": {
   "tier": "high",
   "sensitive_domains": [
    "entrance photos",
    "tow-contract terms",
    "authorized-signer roster PII"
   ],
   "implications": [
    "Every destructive action confirmed with typed intent, never a single-click.",
    "Errors carry remediation copy + owner, not just a message.",
    "Focus rings visible on every interactive element (WCAG 2.2 AA minimum).",
    "Named Compliance Analyst pairing on every PASS-rated pack.",
    "Explicit unsaved-changes gate on the intake form."
   ]
  },
  "differentiation": {
   "avoid": [
    "Material Design defaults",
    "shadcn stock look (unstyled cards + slate ring)",
    "Purple/indigo gradient heroes",
    "Stripe/Linear/Notion mimicry",
    "Vertical cliché: tow-truck clip-art and siren-red penalty banners"
   ],
   "strategy": "Anchor on the entrance pass/fail chip (PASS / hard-fail / needs-input / exceptioned) as the recurring signature element, echoing the Intake -> Evidence -> Review -> Release lifecycle from DESIGN-STANDARD §3; every page includes it at least once. Reserve the rust/signal-amber accent for action/CTA and status signals only."
  },
  "territories": [
   {
    "name": "Compliance Desk",
    "color_mood": "civic slate + parking-sign amber",
    "typography": "Charter/Iowan Old Style serif + system sans",
    "density": "comfortable card grid",
    "component_feel": "front-desk readiness tracker",
    "motion": "none (static, print-parity)",
    "fits": "PM daily/monthly use",
    "risks": "could read as generic compliance SaaS without the amber accent"
   },
   {
    "name": "Portfolio Atlas",
    "color_mood": "map ink + civic navy",
    "typography": "Neue Haas Grotesk",
    "density": "map-driven",
    "component_feel": "multi-property portfolio map",
    "motion": "map pan",
    "fits": "multi-property portfolio retainer clients",
    "risks": "requires portfolio-scale data not present at pilot launch"
   },
   {
    "name": "Entrance Ledger",
    "color_mood": "slate + amber",
    "typography": "Inter",
    "density": "list/ledger",
    "component_feel": "entrance-by-entrance checklist",
    "motion": "none",
    "fits": "single-property pack review",
    "risks": "list fatigue on large complexes with 6+ entrances"
   }
  ],
  "tokens": {
   "brand": "168 58% 22%",
   "brand-fg": "40 30% 97%",
   "surface": "40 22% 97%",
   "ink": "200 22% 14%",
   "muted": "200 10% 40%",
   "accent": "20 63% 37%"
  },
  "type": {
   "display": "Charter, 'Iowan Old Style', Georgia, ui-serif, serif",
   "body": "-apple-system, BlinkMacSystemFont, 'Segoe UI', system-ui, sans-serif",
   "fonts_url": ""
  },
  "trust_level_note": "See trust_level above",
  "chosen_territory": "Compliance Desk",
  "chosen_rationale": "Matches the PM's actual workflow — a document-of-record ledger with entrance-by-entrance status, not a real-time operations dashboard, since packs are delivered on a 5-business-day cycle, not streamed live.",
  "localization": [
   "[PLACEHOLDER] owner to complete"
  ],
  "patterns": [
   {
    "name": "Entrance status chip",
    "description": "A PASS / hard-fail / needs-input / exceptioned chip rendered via the four --state-* domain-state tokens, used on every entrance row and in the stat strip."
   },
   {
    "name": "Statute citation inline",
    "description": "Every claim of a statutory requirement is followed by an inline (CVC §22658(a)) style citation rendered in a muted, consistent format."
   }
  ],
  "prioritized_components": [
   {
    "name": "Entrance status chip",
    "why": "The single recurring signature element tying the landing page, pack PDF, and dashboard together"
   },
   {
    "name": "Pricing table with guarantee/out-clause beside it",
    "why": "Trust cue placement at the point of highest risk perception per DESIGN-STANDARD §8"
   }
  ],
  "signature": {
   "motif": "Entrance status chip + statute citation",
   "render": "Rounded rectangular chip, 4px left border in the matching --state-* token color, statute citation in monospace-adjacent small caps beside it"
  },
  "states": [
   "[PLACEHOLDER] owner to complete"
  ],
  "uniqueness_audit": {
   "app_specific_decisions": [
    "Entrance status chip is unique to a per-entrance signage audit workflow, not reusable generic SaaS chrome",
    "Statute citation inline formatting is specific to CVC §22658/TX 2308/FL 715.07 precision requirements"
   ],
   "cliches_avoided": [
    "No tow-truck clip-art",
    "No siren-red penalty banners",
    "No generic blue/purple SaaS gradient hero"
   ],
   "scale_notes": "Type scale sized for scanning a 6-12-entrance list quickly on mobile during a site walk"
  }
 },
 "canva": {
  "slug": "private-property-tow-authorization-completeness-desk",
  "territory": "Compliance Desk",
  "family": {
   "id": "regulatory-compliance-documentation",
   "name": "Regulatory / Compliance Documentation",
   "motion": "static"
  },
  "tokens": {
   "brand": "205 45% 24%",
   "brand-fg": "40 25% 97%",
   "surface": "40 18% 97%",
   "ink": "205 20% 14%",
   "muted": "205 8% 40%",
   "accent": "28 70% 36%"
  },
  "type": {
   "display": "Charter",
   "body": "Source Sans 3",
   "fonts_url": ""
  },
  "scale": {
   "h1": "clamp(2.5rem, 5.5vw, 4.25rem)",
   "h2": "clamp(1.75rem, 3vw, 2.5rem)",
   "h3": "clamp(1.25rem, 2vw, 1.5rem)",
   "body": "clamp(1rem, 1.1vw, 1.125rem)",
   "small": "0.8125rem",
   "tracking_display": "-0.01em",
   "tracking_body": "-0.005em",
   "weight_display": 700,
   "weight_body": 450
  },
  "spacing": {
   "card_padding": "1.5rem",
   "card_radius": "0.5rem",
   "card_shadow": "0 0 0 1px hsl(var(--ink) / 0.08)",
   "section_gap": "clamp(3rem, 7vw, 5.5rem)",
   "hero_gap": "clamp(1.25rem, 2vw, 2rem)"
  },
  "layout": {
   "hero": "split-primary",
   "card": "elevated-soft",
   "cta": "solid-brand",
   "archetype": "document-of-record",
   "card_silhouette": "rounded-outline",
   "button_geometry": "rounded"
  },
  "background": {
   "hero_gradient": "radial-gradient(900px 500px at 85% -10%, hsl(28 70% 36% / 0.13), transparent 60%), radial-gradient(700px 420px at 5% 0%, hsl(205 45% 24% / 0.10), transparent 55%)",
   "cta_gradient": "linear-gradient(135deg, hsl(205 45% 24%), hsl(28 70% 36%))",
   "section_wash": "linear-gradient(180deg, hsl(40 18% 97%) 0%, hsl(205 45% 24% / 0.04) 100%)"
  },
  "motif": "Entrance status chip + statute citation"
 },
 "capabilities": {
  "marketing": true,
  "portal": false,
  "ops": true,
  "chatbot": false,
  "payments": false
 },
 "vertical_style": {
  "accent": "#9C581C",
  "signature": "Entrance status chip (PASS/hard-fail/needs-input/exceptioned) motif",
  "layout": "Document-of-record ledger, bordered cards, stat strip up top, entrance-by-entrance list",
  "anti": "No generic blue/purple SaaS gradient; no tow-truck clip-art; no siren-red penalty banners; no parking-app screenshot mockups"
 },
 "seo": {
  "slug": "private-property-tow-authorization-completeness-desk",
  "archetype": "compliance-production-desk",
  "archetype_impact": "Every page must cite CVC §22658 (or the relevant TX/FL statute) precisely and disclose the documentation-only, not-legal-advice boundary; commercial pages and statute-explainer pages are kept structurally separate per DESIGN-STANDARD §2.",
  "authority_dna": {
   "site_archetype": "Vendor/service site with a statute-cited content hub",
   "monetization_model": "Direct service purchase (per-property, per-tow, retainer)",
   "main_search_intents": [
    "informational (statute explainers)",
    "commercial (vendor/parking-SaaS comparison)",
    "transactional (free scan)"
   ],
   "topical_authority_opportunity": "California CVC §22658 private-property tow signage/authorization compliance, expanding state-by-state as TX/FL Statute Checklists go live",
   "local_seo_opportunity": "Low at launch — PMs are found by state/CAI-chapter membership, not by city, though NARPM/CAI local chapters are a relevant local-event channel",
   "global_national_opportunity": "National once multi-state Statute Checklists exist; single-state (California) at launch",
   "easiest_ranking_path": "The free-scan landing page and the exact-statute pillar page, both currently thin in the SERP",
   "hardest_ranking_path": "Generic 'parking enforcement software' head terms dominated by established SaaS vendors with years of domain authority",
   "trust_credibility_requirements": [
    "Direct statutory citations on every claim",
    "Compliance disclaimer on every page",
    "No fabricated proof/testimonials"
   ],
   "ymyl": true,
   "expert_review_needed": true,
   "site_structure": "Homepage (landing page) -> pillar guides (per statute) -> comparison/objection pages -> blueprint dossier",
   "seo_moat": "The maintained, attorney-reviewed Statute Checklist content is genuinely hard for a generic content farm to replicate credibly."
  },
  "search_market": {
   "primary_markets": [
    "California multifamily/HOA PM and CAM companies"
   ],
   "secondary_markets": [
    "Texas, Florida PM/CAM companies (post second-state expansion)"
   ],
   "low_competition_subtopics": [
    "cvc 22658 signage checklist",
    "tow readiness completeness pack pricing"
   ],
   "high_commercial_intent": [
    "private property towing compliance service",
    "hoa tow authorization audit"
   ],
   "informational": [
    "cvc 22658 signage requirements",
    "hoa wrongful tow liability california"
   ],
   "local_intent": [
    "narpm california chapter parking vendors"
   ],
   "transactional": [
    "free signage gap scan"
   ],
   "comparison": [
    "private property towing compliance service"
   ],
   "problem_solution": [
    "missing tow company phone number on sign"
   ],
   "near_me": [],
   "long_tail": [
    "what happens if hoa tow sign missing law enforcement phone number california"
   ],
   "questions": [
    "is hoa liable for wrongful tow california",
    "how big does a tow warning sign need to be california"
   ],
   "emerging": [
    "texas occupations code 2308 tow signage"
   ],
   "seasonal": [],
   "underserved_serps": [
    "free signage gap scan"
   ],
   "weak_serps": [
    "cvc 22658 signage requirements"
   ],
   "forum_dominated_serps": [
    "hoa wrongful tow reddit"
   ],
   "winnable_authoritative_serps": [
    "cvc 22658 signage requirements"
   ],
   "avoid_initially": [
    "generic parking management software reviews"
   ],
   "easy_wins": [
    "free signage gap scan"
   ],
   "moderate": [
    "private property towing compliance service"
   ],
   "long_term_plays": [
    "national multi-state tow-readiness compliance content hub"
   ],
   "do_not_pursue": [
    "generic 'parking management software' head terms",
    "tow-truck-driver job/gig-economy search terms (wrong audience entirely)"
   ]
  },
  "keyword_clusters": [
   {
    "primary": "cvc 22658 signage requirements",
    "related": [
     "california vehicle code 22658",
     "tow sign size requirements california",
     "17x22 tow sign"
    ],
    "intent": "informational",
    "user_problem": "PM staff need to know exactly what an entrance tow sign must contain and how big it must be",
    "funnel": "top",
    "business_value": "high",
    "ranking_difficulty": "medium",
    "conversion_potential": "medium",
    "content_effort": "medium",
    "serp_weakness": "Dominated by law-firm blog posts, few PM-specific practical guides",
    "local_relevance": "California-specific at launch",
    "global_relevance": "Low at launch (single-state MVP)",
    "suggested_page_type": "pillar page",
    "reason": "Directly matches TowAuth Clear's core deliverable and statute citation",
    "priority_score": 93,
    "priority": "high",
    "bucket": "easy_wins"
   },
   {
    "primary": "hoa wrongful tow liability california",
    "related": [
     "can hoa be sued for wrongful tow",
     "2x damages wrongful tow california",
     "sue hoa for towing car"
    ],
    "intent": "informational",
    "user_problem": "PMs and board members want to understand their personal/entity liability exposure",
    "funnel": "top",
    "business_value": "high",
    "ranking_difficulty": "medium",
    "conversion_potential": "high",
    "content_effort": "medium",
    "serp_weakness": "Mostly consumer-facing small-claims guides, few PM-facing preventive pages",
    "local_relevance": "California-specific",
    "global_relevance": "Low at launch",
    "suggested_page_type": "pillar page",
    "reason": "Captures the exact fear-trigger the offer solves",
    "priority_score": 90,
    "priority": "high",
    "bucket": "easy_wins"
   },
   {
    "primary": "private property towing compliance service",
    "related": [
     "tow authorization audit service",
     "signage compliance vendor hoa"
    ],
    "intent": "commercial",
    "user_problem": "PM companies comparing compliance vendors",
    "funnel": "middle",
    "business_value": "high",
    "ranking_difficulty": "medium",
    "conversion_potential": "high",
    "content_effort": "medium",
    "serp_weakness": "Competitor pages (parking SaaS) rarely explain the draft-only/compliance-vendor distinction",
    "local_relevance": "California-specific at launch",
    "global_relevance": "Low at launch",
    "suggested_page_type": "comparison page",
    "reason": "Directly targets vendor-comparison intent against parking SaaS and tow companies",
    "priority_score": 85,
    "priority": "high",
    "bucket": "moderate"
   },
   {
    "primary": "free signage gap scan",
    "related": [
     "free tow sign audit",
     "cvc 22658 compliance check"
    ],
    "intent": "transactional",
    "user_problem": "PM wants a fast, low-risk way to check exposure before committing",
    "funnel": "bottom",
    "business_value": "high",
    "ranking_difficulty": "low",
    "conversion_potential": "high",
    "content_effort": "low",
    "serp_weakness": "No competitor publishes this exact free-scan offer",
    "local_relevance": "California-specific",
    "global_relevance": "Low at launch",
    "suggested_page_type": "landing page",
    "reason": "This is the primary lead-magnet offer itself",
    "priority_score": 95,
    "priority": "high",
    "bucket": "easy_wins"
   },
   {
    "primary": "texas occupations code 2308 tow signage",
    "related": [
     "texas tow sign requirements",
     "tow away zone sign texas"
    ],
    "intent": "informational",
    "user_problem": "TX PMs researching ahead of TX expansion",
    "funnel": "top",
    "business_value": "medium",
    "ranking_difficulty": "medium",
    "conversion_potential": "low",
    "content_effort": "medium",
    "serp_weakness": "Sparse PM-specific coverage",
    "local_relevance": "Texas-specific",
    "global_relevance": "Emerging (post-CA expansion)",
    "suggested_page_type": "pillar page (deferred)",
    "reason": "Positions for TX expansion once the checklist is attorney-reviewed",
    "priority_score": 55,
    "priority": "low",
    "bucket": "long_term_plays"
   }
  ],
  "topical_authority_map": {
   "core_topics": [
    "CVC §22658 signage requirements",
    "Private-property tow authorization agreements",
    "Wrongful-tow liability for PMs/HOAs",
    "Tow vendor onboarding compliance"
   ],
   "pillars": [
    {
     "name": "CVC §22658 Signage Checklist",
     "audience": "CA multifamily/HOA PM",
     "core_intent": "informational -> transactional",
     "conversion_goal": "Free Signage Gap Scan request",
     "evidence_needed": [
      "[PLACEHOLDER] owner to complete"
     ],
     "internal_links": [
      "/free-signage-gap-scan",
      "/hoa-wrongful-tow-liability-california"
     ],
     "local_variants": [
      "California"
     ],
     "national_variants": [
      "Texas (deferred)",
      "Florida (deferred)"
     ],
     "schema": [
      "FAQPage",
      "Article"
     ],
     "supporting_pages": [
      "Entrance sign size/content checklist",
      "LE-phone-number requirement explainer",
      "Written vs. scene-specific authorization explainer"
     ]
    },
    {
     "name": "HOA/PM Wrongful-Tow Liability",
     "audience": "CA PM principal / board treasurer",
     "core_intent": "informational",
     "conversion_goal": "Free Signage Gap Scan request",
     "evidence_needed": "Statute citation on 2x-4x liability, consumer small-claims-guide citations",
     "internal_links": [
      "/cvc-22658-signage-requirements"
     ],
     "local_variants": [
      "California"
     ],
     "national_variants": [
      "Texas (deferred)",
      "Florida (deferred)"
     ],
     "schema": [
      "FAQPage",
      "Article"
     ],
     "supporting_pages": [
      "What plaintiffs photograph in a wrongful-tow claim",
      "Board minutes vs. CVC procedure"
     ]
    }
   ],
   "supporting_page_types": [
    "Statute explainer",
    "Diagnostic teardown (redacted)",
    "Vendor comparison",
    "FAQ"
   ]
  },
  "site_architecture": {
   "main_nav": [
    "Home",
    "How it works",
    "Pricing",
    "Free Signage Gap Scan",
    "Blueprint dossier"
   ],
   "footer_nav": [
    "Compliance disclaimers",
    "Blueprint dossier",
    "Contact"
   ],
   "hubs": [
    {
     "name": "Statute Compliance Hub",
     "url": "/statute-compliance",
     "purpose": "Pillar guides on CVC §22658 and future TX/FL statutes"
    },
    {
     "name": "Diagnostic Teardowns",
     "url": "/teardowns",
     "purpose": "Redacted entrance photo fail/pass examples and agreement clause maps"
    }
   ],
   "url_patterns": [
    "/<slug>/",
    "/<slug>/blueprint/",
    "/statute-compliance/<topic>"
   ],
   "avoid_url_patterns": [
    "Query-string-only pages",
    "Duplicate content across state variants without canonical tags"
   ],
   "homepage_strategy": "The landing page IS the primary commercial page; no separate marketing homepage layer at launch."
  },
  "global_national": {
   "international_needed": false,
   "international_notes": "Not applicable — US state-statute-specific service.",
   "linkable_assets": [
    "Free CVC §22658 Signage Checklist PDF",
    "Redacted diagnostic teardown examples"
   ],
   "national_clusters": [
    "California (launch)",
    "Texas (deferred)",
    "Florida (deferred)"
   ],
   "original_research_ideas": [
    "Aggregate anonymized hard-fail rates across the pilot cohort (once ethically publishable with client consent)"
   ]
  },
  "local_seo": {
   "justified": false,
   "reason": "Buyers are found by state/NARPM-CAI-chapter membership, not by city-level local search",
   "gbp_categories_primary": [],
   "gbp_categories_secondary": [],
   "location_page_rules": [],
   "citations": [],
   "review_strategy": "No fabricated reviews; honest placeholder proof slots until pilot results exist",
   "local_schema": []
  },
  "programmatic": {
   "recommended": false,
   "reason": "Statute-specific pillar content requires attorney review per page; not suited to programmatic templating at this scale.",
   "rules": [
    "No programmatic page ships without attorney sign-off on statute-specific claims"
   ],
   "per_page_requirements": [
    "Direct statute citation",
    "Compliance disclaimer"
   ],
   "quality_gates": [
    "No thin/duplicate pages",
    "No auto-generated statute claims without citation"
   ]
  },
  "page_templates": [
   {
    "page_type": "Landing page",
    "purpose": "Primary commercial/conversion page",
    "target_intent": "transactional",
    "url_pattern": "/private-property-tow-authorization-completeness-desk/",
    "title_pattern": "TowAuth Clear — CVC §22658 Tow-Readiness Completeness Pack",
    "meta_description_pattern": "Statute-cited Tow-Readiness Completeness Pack for CA multifamily/HOA properties in 5 business days. Free Signage Gap Scan.",
    "h1_pattern": "Know your CVC §22658 exposure before the next demand letter",
    "outline": [
     "Hero",
     "Stat strip",
     "Pain/stakes",
     "Deliverables",
     "How it works",
     "Pricing",
     "Proof",
     "FAQ",
     "Compliance"
    ],
    "above_the_fold": [
     "[PLACEHOLDER] owner to complete"
    ],
    "internal_links": [
     "/statute-compliance/cvc-22658-signage-requirements"
    ],
    "media": [
     "[PLACEHOLDER] owner to complete"
    ],
    "schema": [
     "Service",
     "FAQPage"
    ],
    "cta_strategy": "Single primary CTA: free Signage Gap Scan request",
    "faq_opportunities": [
     "Do you tow vehicles?",
     "Is this legal advice?"
    ],
    "trust_elements": [
     "Guarantee/out-clause beside pricing",
     "Compliance disclaimer footer"
    ],
    "conversion_elements": [
     "Free scan form",
     "Blueprint dossier link"
    ],
    "anti_thin_rules": [
     "Every statutory claim cited",
     "No filler paragraphs"
    ],
    "quality_requirements": [
     "<=120KB",
     "WCAG 2.2 AA"
    ]
   },
   {
    "page_type": "Statute pillar guide",
    "purpose": "Topical authority + trust-building",
    "target_intent": "informational",
    "url_pattern": "/statute-compliance/<topic>",
    "title_pattern": "<Topic>, Explained for CA Property Managers",
    "meta_description_pattern": "A plain-language, statute-cited explainer for CA PMs on <topic>.",
    "h1_pattern": "<Topic>, Explained",
    "outline": [
     "What the statute requires",
     "Common failure modes",
     "How TowAuth Clear checks it",
     "FAQ"
    ],
    "above_the_fold": "Direct statute citation + summary answer",
    "internal_links": [
     "/private-property-tow-authorization-completeness-desk/"
    ],
    "media": "Diagram of a compliant sign layout",
    "schema": [
     "Article",
     "FAQPage"
    ],
    "cta_strategy": "Secondary CTA to free Signage Gap Scan",
    "faq_opportunities": [
     "What size does the sign need to be?",
     "What happens if I'm missing one element?"
    ],
    "trust_elements": [
     "Attorney-reviewed disclosure",
     "Direct statute link"
    ],
    "conversion_elements": [
     "Free scan CTA in-content"
    ],
    "anti_thin_rules": [
     "Minimum depth: every statutory element addressed"
    ],
    "quality_requirements": [
     "Attorney-reviewed before publication"
    ]
   }
  ],
  "on_page_rules": {
   "title_tag": "Primary keyword + brand, under 60 characters",
   "meta_description": "Outcome + timeframe + CTA, under 155 characters",
   "headings": "One H1 per page, statute citations never in headings without plain-language context",
   "intro": "Answer the core question in the first two sentences",
   "images": "Diagrams only; alt text describes the statutory element illustrated",
   "internal_links": "Every pillar links to the landing page CTA; every landing page links to at least one pillar",
   "external_citations": "Direct links to Leginfo/Justia statute text on every statutory claim",
   "freshness": "Re-verify statute text on every detected legislative-update signal",
   "mobile": "Mobile-first; landing page tested at 375px width",
   "snippet_targeting": "FAQ schema on every FAQ block for featured-snippet eligibility",
   "tables_lists": "Checklist-style content uses real <ul>/<ol>, never image-based lists",
   "cta_placement": "Primary CTA above the fold and repeated after pricing per DESIGN-STANDARD §8",
   "author_attribution": "Founder/Compliance Lead byline with attorney-review disclosure on statute pages",
   "avoid": [
    "Keyword stuffing statute citations",
    "Duplicate content across state variants without canonicalization"
   ]
  },
  "entity_seo": {
   "main_entities": [
    "TowAuth Clear",
    "California Vehicle Code §22658",
    "Private-property towing"
   ],
   "related_entities": [
    "Community Associations Institute (CAI)",
    "NARPM"
   ],
   "people": [],
   "orgs": [
    "Community Associations Institute",
    "NARPM"
   ],
   "tools": [
    "Reliant",
    "Parking Boss",
    "Parkade"
   ],
   "regulations": [
    "California Vehicle Code §22658",
    "Texas Occupations Code Ch. 2308",
    "Florida Statute §715.07"
   ],
   "problems": [
    "Missing tow-company phone number on sign",
    "No written general towing authorization agreement",
    "Undersized entrance signage"
   ],
   "solutions": [
    "Tow-Readiness Completeness Pack",
    "Signage Gap Scan",
    "Evidence Pack"
   ],
   "processes": [
    "Compliance Review",
    "Statute Checklist retrieval"
   ],
   "alternatives": [
    "Parking enforcement SaaS",
    "Tow vendor in-house compliance",
    "Hourly counsel review"
   ],
   "synonyms": [
    "Private-property tow signage compliance",
    "CVC 22658 compliance service"
   ]
  },
  "schema_strategy": [
   {
    "type": "Service",
    "where": "Landing page",
    "required_fields": [
     "name",
     "provider",
     "areaServed",
     "description"
    ],
    "caution": "No aggregateRating or review schema — no fabricated reviews per DESIGN-STANDARD §9"
   },
   {
    "type": "FAQPage",
    "where": "Landing page FAQ + statute pillar pages",
    "required_fields": [
     "mainEntity (Question/Answer pairs)"
    ],
    "caution": "Only real, sourced answers — no speculative legal claims"
   },
   {
    "type": "Article",
    "where": "Statute pillar guides",
    "required_fields": [
     "headline",
     "author",
     "datePublished",
     "dateModified"
    ],
    "caution": "Author/reviewer disclosure required for YMYL content"
   }
  ],
  "internal_linking": {
   "pillar_to_cluster": "Each statute pillar links to its supporting checklist/explainer subpages",
   "cluster_to_pillar": "Every supporting page links back to its parent pillar",
   "cluster_to_cluster": "Cross-link CVC §22658 pillar to wrongful-tow-liability pillar where topically relevant",
   "faq_to_commercial": "Every FAQ answer that resolves an objection links to the pricing section",
   "service_to_location": "Not applicable — no location pages at launch",
   "breadcrumbs": "Home > Statute Compliance > <Topic>",
   "anchor_text_rules": [
    "[PLACEHOLDER] owner to complete"
   ]
  },
  "technical_seo": {
   "crawlability": "Single self-contained landing page + platform-served pillar pages; no JS-rendering-dependent content on the landing page",
   "indexability": "Landing page indexable; blueprint dossier route noindexed per platform convention",
   "sitemaps": "Platform-generated sitemap includes the landing page and any published pillar pages",
   "robots": "Standard allow-all except the blueprint dossier internal routes",
   "canonicals": "Self-canonical on the landing page; state-variant pillar pages canonicalize to the primary CA version at launch",
   "duplicate_control": "No duplicate statute content across pages without canonicalization",
   "pagination": "Not applicable at launch page count",
   "faceted_nav": "Not applicable",
   "redirects": "N/A at launch",
   "mobile": "Mobile-first responsive layout, tested at 375px",
   "core_web_vitals": "LCP <=2.5s, INP <=200ms, CLS <=0.1 per DESIGN-STANDARD §7",
   "js_seo": "Landing page is static HTML/CSS/minimal JS; no client-side-only rendering of core content",
   "rendering": "Server-delivered static HTML",
   "analytics_setup": "data-event attributes per DESIGN-STANDARD §4; no third-party analytics scripts (keeps the zero-external-request budget)",
   "gsc_setup": "Owner action — verify property in Google Search Console post-launch",
   "rank_tracking": "Owner action — track the priority keyword list monthly",
   "accessibility": "WCAG 2.2 AA per DESIGN-STANDARD §6"
  },
  "eeat": {
   "author_bios": "Founder bio disclosing the Compliance Analyst role and CA Statute Checklist authorship",
   "expert_reviewers": "Retained California community-association attorney reviews all statute-explainer content before publication",
   "editorial_policy": "Every statutory claim must cite the specific CVC section; no paraphrase-only claims",
   "fact_checking": "Cross-checked against primary statutory text at publication and on any legislative-update signal",
   "credentials": [
    "Attorney-reviewed Statute Checklist (California Vehicle Code §22658)"
   ],
   "citations": "Direct links to primary statutory sources (Leginfo, Justia)",
   "first_hand_proof": [
    "[PLACEHOLDER] pilot-cohort dispute-after-pack results, pending first CA pilot packs"
   ],
   "update_cadence": "Re-verified on any detected legislative-update signal, per delivery-playbook.md's Statute Checklist freeze policy",
   "monetization_disclosure": "Service pricing disclosed transparently on every relevant page",
   "ymyl_notes": "Treated as YMYL-adjacent (financial/legal compliance) — every claim must be citable and disclaimed"
  },
  "ai_search": {
   "principles": [
    "Answer the exact statutory question directly and cite the section",
    "Never state an unverified figure as confirmed fact"
   ],
   "tactics": [
    "FAQ schema with direct statute answers",
    "Clear documentation-only disclaimer near every compliance claim"
   ],
   "do_not": [
    "Do not claim legal-outcome guarantees in AI-crawlable content",
    "Do not present the $3,200-$8,400 wrongful-tow cost figure as confirmed — label it directional"
   ]
  },
  "conversion": {
   "primary_cta": "Request my free Signage Gap Scan",
   "secondary_cta": "View the full operating blueprint dossier",
   "lead_magnets": [
    "Free 3-entrance Signage Gap Scan",
    "One-page CVC §22658 Signage Checklist PDF"
   ],
   "trust_elements": [
    "Guarantee/out-clause beside pricing",
    "Two-person review disclosure",
    "Compliance disclaimer"
   ],
   "tracking": "data-event attributes (ui.cta_primary, domain.pricing_viewed, ui.faq_open, ui.blueprint_view, domain.diagnostic_requested)",
   "per_page_paths": [
    {
     "page_type": "Landing page",
     "path": "Hero CTA -> scan form -> confirmation"
    },
    {
     "page_type": "Statute pillar",
     "path": "In-content CTA -> scan form"
    }
   ]
  },
  "link_earning": {
   "digital_pr_ideas": [
    "Anonymized aggregate hard-fail-rate research once the pilot cohort has enough volume to publish ethically"
   ],
   "original_research": [
    "[PLACEHOLDER] owner to complete"
   ],
   "directories": [
    "NARPM vendor directory",
    "CAI chapter vendor listings"
   ],
   "partnerships": [
    "HOA/community-association attorney referral partners",
    "Tow-vendor partners"
   ],
   "expert_contributions": [
    "Guest posts on NARPM/CAI chapter blogs about signage compliance"
   ],
   "avoid": [
    "Paid link schemes",
    "Guest post farms unrelated to property management"
   ]
  },
  "metrics": {
   "weekly": [
    "Signage Gap Scan requests",
    "Scan-to-paid conversion"
   ],
   "monthly": [
    "Organic sessions to statute pillar pages",
    "Keyword rank movement on priority list"
   ],
   "quarterly": [
    "Topical authority pillar completion status"
   ],
   "annual": [
    "Full content-hub coverage across CA, then TX/FL as activated"
   ]
  },
  "risks": [
   {
    "risk": "Publishing a statute claim without attorney review",
    "applies": true,
    "mitigation": "No statute-specific page ships without Compliance Lead + attorney sign-off"
   },
   {
    "risk": "Being perceived as offering legal advice via SEO content",
    "applies": true,
    "mitigation": "Documentation-only disclaimer on every statute page"
   }
  ],
  "roadmap_90d": [
   {
    "phase": "Days 1-30",
    "goal": "Publish landing page + first 2 statute pillar pages",
    "keywords_targeted": [
     "cvc 22658 signage requirements",
     "free signage gap scan"
    ],
    "pages": [
     "[PLACEHOLDER] owner to complete"
    ],
    "difficulty": "medium",
    "business_value": "Primary lead generation",
    "conversion_goal": "25%+ scan-to-paid",
    "internal_links": [
     "[PLACEHOLDER] owner to complete"
    ],
    "required_assets": [
     "Attorney-reviewed statute citations"
    ],
    "why_first": "These are the highest-intent, lowest-competition pages available at launch"
   },
   {
    "phase": "Days 31-90",
    "goal": "Publish diagnostic teardown examples + wrongful-tow-liability pillar",
    "keywords_targeted": [
     "hoa wrongful tow liability california"
    ],
    "pages": 3,
    "difficulty": "medium",
    "business_value": "Topical authority + trust",
    "conversion_goal": "Scan requests from organic",
    "internal_links": "Cross-link to CVC §22658 pillar",
    "required_assets": [
     "Redacted example packs"
    ],
    "why_first": "Builds authority ahead of TX/FL expansion content"
   }
  ],
  "roadmap_12m": [
   {
    "phase": "Months 4-6",
    "goal": "TX Statute Checklist content beta",
    "keywords_targeted": [
     "texas occupations code 2308 tow signage"
    ],
    "pages": [
     "[PLACEHOLDER] owner to complete"
    ],
    "difficulty": "medium",
    "business_value": "TX expansion support",
    "conversion_goal": "TX pilot signups",
    "internal_links": [
     "[PLACEHOLDER] owner to complete"
    ],
    "required_assets": [
     "TX attorney-reviewed checklist"
    ],
    "why_first": "Follows the 90-day TX checklist beta milestone in launch-plan.md"
   },
   {
    "phase": "Months 7-12",
    "goal": "FL Statute Checklist content + full multi-state hub",
    "keywords_targeted": [
     "florida 715.07 tow away zone signage"
    ],
    "pages": 4,
    "difficulty": "medium",
    "business_value": "National expansion support",
    "conversion_goal": "FL pilot signups",
    "internal_links": "Full cross-state pillar linking",
    "required_assets": [
     "FL attorney-reviewed checklist"
    ],
    "why_first": "Completes the three-state beachhead described in the blueprint"
   }
  ],
  "priority_pages": [
   {
    "rank": 1,
    "page_title": "Free Signage Gap Scan",
    "slug": "private-property-tow-authorization-completeness-desk",
    "page_type": "Landing page",
    "primary_keyword": "free signage gap scan",
    "secondary_keywords": [
     "cvc 22658 compliance check"
    ],
    "intent": "transactional",
    "funnel": "bottom",
    "business_value": "Primary lead-generation surface",
    "difficulty": "low",
    "conversion_potential": "high",
    "cta": "Request my free Signage Gap Scan",
    "schema": [
     "Service",
     "FAQPage"
    ],
    "internal_links": [
     "/statute-compliance/cvc-22658-signage-requirements"
    ],
    "required_proof": [
     "[PLACEHOLDER] owner to complete"
    ],
    "why_opportunity": "No competitor publishes this exact free-scan offer",
    "production_priority": "P0",
    "scope": "Landing page, already built as site/index.html"
   },
   {
    "rank": 2,
    "page_title": "CVC §22658 Signage Requirements, Explained",
    "slug": "cvc-22658-signage-requirements",
    "page_type": "Pillar guide",
    "primary_keyword": "cvc 22658 signage requirements",
    "secondary_keywords": [
     "tow sign size requirements california",
     "17x22 tow sign"
    ],
    "intent": "informational",
    "funnel": "top",
    "business_value": "Topical authority + trust-building",
    "difficulty": "medium",
    "conversion_potential": "medium",
    "cta": "Request my free Signage Gap Scan",
    "schema": [
     "Article",
     "FAQPage"
    ],
    "internal_links": [
     "/private-property-tow-authorization-completeness-desk/"
    ],
    "required_proof": "Direct statute citation",
    "why_opportunity": "Thin, law-firm-dominated SERP with few PM-practical guides",
    "production_priority": "P1",
    "scope": "New pillar page, deferred to post-launch content sprint"
   }
  ],
  "competitor_gaps": {
   "typical_competitor_types": [
    "Parking enforcement SaaS",
    "Tow dispatch platforms",
    "HOA/PM counsel billing hourly"
   ],
   "common_weaknesses": [
    "No statute-completeness product",
    "No flat, outcome-priced documentation pack",
    "Hourly billing with no productized SLA"
   ],
   "how_to_beat_them": [
    "Publish the exact free-scan offer no competitor has",
    "Cite the statute precisely where competitors gesture vaguely at 'compliance'"
   ]
  },
  "first_20_pages": [
   "Landing page (free Signage Gap Scan)",
   "CVC §22658 signage requirements pillar",
   "HOA wrongful-tow liability pillar",
   "Written vs. scene-specific authorization explainer",
   "LE-phone-number requirement explainer",
   "Diagnostic teardown: entrance photo fail/pass",
   "Diagnostic teardown: agreement clause map",
   "Diagnostic teardown: per-tow auth form missing fields",
   "What changes when you switch tow vendors",
   "Fire-lane photo requirements before general removal"
  ],
  "first_10_tech_fixes": [
   "Verify landing page <=120KB and zero external requests",
   "Add FAQPage schema",
   "Add Service schema",
   "Confirm single H1",
   "Confirm skip link and focus-visible styles"
  ],
  "first_10_authority_actions": [
   "Publish CVC §22658 pillar with attorney review",
   "List in NARPM vendor directory",
   "List in CAI chapter directories",
   "Pitch 1 HOA attorney co-branded checklist partnership",
   "Run 1 'Wrongful Tow Office Hours' webinar"
  ],
  "final_recommendation": "Launch with the landing page and the CVC §22658 pillar as the only two indexed pages; expand the statute-compliance hub only as pilot volume and attorney-review capacity allow, one jurisdiction at a time, matching the business's own build-before-scale discipline.",
  "disclaimers": [
   "This SEO plan is not legal advice; every statute-explainer page requires attorney review before publication per compliance-checklist.md."
  ]
 },
 "seo_pages": {
  "id": "seo-private-property-tow-authorization-completeness-desk",
  "business_slug": "private-property-tow-authorization-completeness-desk",
  "route": "/private-property-tow-authorization-completeness-desk",
  "title": "TowAuth Clear — CVC §22658 private-property tow authorization & signage completeness desk",
  "description": "TowAuth Clear for CA multifamily/HOA property managers: a statute-cited Tow-Readiness Completeness Pack in 5 business days. Flat per-property pricing, never hourly, never the towing authorizer of record.",
  "canonical": "/private-property-tow-authorization-completeness-desk",
  "og_title": "TowAuth Clear — know your CVC §22658 exposure before the next demand letter",
  "og_description": "Send entrance photos and your tow contract. Get a statute-cited Tow-Readiness Completeness Pack and Remediation Punch List in 5 business days.",
  "noindex": false,
  "schema_status": "Service + FAQPage schema present",
  "schema_type": "Service",
  "sitemap_include": true
 },
 "evidence": [
  {
   "id": "private-property-tow-authorization-completeness-desk-e1",
   "business_slug": "private-property-tow-authorization-completeness-desk",
   "area": "Identity",
   "claim_or_finding": "Working brand name declared: TowAuth Clear. Operating entity/EIN not yet declared by the owner.",
   "status": "pending",
   "evidence": "brand.md documents a web collision check only (no competing brand found); formal trademark clearance and operating-entity declaration are owner actions.",
   "verification_command": "Owner submits entity name/EIN and completes a formal trademark clearance search.",
   "fix_owner": "owner",
   "remediation": "Not yet resolved — flagged in ddd_coverage.failingGates as entity_gate.",
   "severity": "info"
  },
  {
   "id": "private-property-tow-authorization-completeness-desk-e2",
   "business_slug": "private-property-tow-authorization-completeness-desk",
   "area": "Regulatory",
   "claim_or_finding": "California Vehicle Code §22658 signage, written-authorization, and double/quadruple-liability provisions, verified against current Leginfo and Justia statute text as of 2026-07-13.",
   "status": "verified",
   "evidence": "Fresh web search against CA Leginfo, Justia, Berding & Weil, and KTS Law confirmed the mechanics described in the source blueprint remain current.",
   "verification_command": "Re-check leginfo.legislature.ca.gov VEH §22658 before each new CA cohort onboarding.",
   "fix_owner": "system",
   "remediation": "Resolved — no deviation from the blueprint required.",
   "severity": "info"
  },
  {
   "id": "private-property-tow-authorization-completeness-desk-e3",
   "business_slug": "private-property-tow-authorization-completeness-desk",
   "area": "Market",
   "claim_or_finding": "California has approximately 51,700 community associations (FCAR 2025 Statistical Review) and approximately 13,971 apartment buildings (POIData mid-2026).",
   "status": "verified",
   "evidence": "Figures carried forward from the source blueprint's verified evidence table; both are third-party research/directory sources, not TowAuth Clear's own data.",
   "verification_command": "Re-check the FCAR annual Statistical Review and POIData directory counts annually.",
   "fix_owner": "system",
   "remediation": "Resolved — no deviation required.",
   "severity": "info"
  },
  {
   "id": "private-property-tow-authorization-completeness-desk-e4",
   "business_slug": "private-property-tow-authorization-completeness-desk",
   "area": "Evidence gap",
   "claim_or_finding": "The $3,200-$8,400 wrongful-tow incident cost band is vendor-blog-cited (US Tech Automations, citing NAA) and not confirmed against a primary NAA source.",
   "status": "pending",
   "evidence": "Source blueprint explicitly labels this claim 'Unverified' with L-M confidence; carried forward unchanged, never upgraded to a confirmed figure anywhere in this build.",
   "verification_command": "Locate and cite a primary NAA document, or continue treating the figure as directional only in all copy.",
   "fix_owner": "owner",
   "remediation": "Not yet resolved — every use of this figure in gtm-kit.md and the microsite is labeled directional/unverified.",
   "severity": "warn"
  },
  {
   "id": "private-property-tow-authorization-completeness-desk-e5",
   "business_slug": "private-property-tow-authorization-completeness-desk",
   "area": "Pilot proof",
   "claim_or_finding": "No pilot packs have been delivered yet; all pilot-outcome, dispute-after-pack, and cycle-time proof points are placeholders.",
   "status": "pending",
   "evidence": "This is a pre-launch build; proof slots are honestly marked [PLACEHOLDER] per DESIGN-STANDARD §4 rather than fabricated.",
   "verification_command": "Populate with real pilot data after the first 5 Completeness Packs are delivered.",
   "fix_owner": "owner",
   "remediation": "Will resolve naturally as the pilot cohort completes; tracked in launch-plan.md's 30-day checkpoint.",
   "severity": "info"
  }
 ],
 "generated_at": "2026-07-13T18:00:00Z",
 "checksum": "sha256:generated-locally"
}