{
  "sourceWebsiteRevision": "2f63e581b9951b0f5bf72e604c925794aa1c6f02",
  "sourcePlatformRevision": "38d5a876fefefada3289b09c8f12df421d69fe73",
  "sourceCoverage": {
    "revisions": 794,
    "distinctSourceSnapshots": 544
  },
  "notice": "Historical scope is retained as build intent. Source support and local tests do not certify deployment, account access or every action in a statement. Historical prices and guarantees do not replace current terms.",
  "offers": [
    {
      "id": "edge.security-headers",
      "title": "Hardened response security",
      "scope": "Every response carries a strict content-security policy, HSTS, and locked-down browser permissions.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "edge.public-lead-capture",
      "title": "Public lead capture",
      "scope": "A public endpoint validates a website inquiry and blocks bots and automated flooding before accepting it. It does not yet store or forward the submission anywhere, and no page in the product currently links to it.",
      "kind": "capability",
      "status": "Implementation needs reconciliation",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Parts of this work are supported, but earlier descriptions conflict. Confirm the exact tools available for your account. The audit records the evidence and remaining work.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "identity.sessions-login",
      "title": "Account login & sessions",
      "scope": "Users sign in with sessions verified on our servers and scoped to their own business — nothing in the browser can widen what an account is allowed to see. When enabled, sign-in attempts are checked to block automated bots before they can reach an account.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "identity.tenant-provisioning-invites",
      "title": "Workspace setup & team invites",
      "scope": "Account owners invite teammates by email; new users set their own password through a single-use invite link.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "identity.mfa-totp",
      "title": "Two-factor authentication (authenticator app)",
      "scope": "Users can enroll an authenticator app as a second login factor, with single-use recovery codes if they lose their device.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "identity.webauthn-passkeys",
      "title": "Passkey / security-key sign-in",
      "scope": "Users can register a passkey or hardware security key as a second login factor instead of a one-time code.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "identity.rbac-policy",
      "title": "Role-based access control",
      "scope": "Every action is checked server-side against the user's role — hiding a menu item is never the only safeguard.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "observability.audit-log",
      "title": "Append-only audit trail",
      "scope": "Sensitive changes are recorded in an audit trail that cannot be edited or deleted after the fact.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "observability.product-telemetry",
      "title": "Product-usage telemetry",
      "scope": "The platform records pseudonymous, business- and user-scoped in-product usage metadata to guide what gets built next — never the content a user types.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "observability.analytics-overview",
      "title": "Command Center analytics overview",
      "scope": "An API rolls up finance, records, and pipeline data into one read-only overview of the business.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "observability.metric-provenance",
      "title": "Metric provenance (formula, sources, freshness, scope, owner)",
      "scope": "Every analytics overview metric can be explained on request: the formula behind it, the real tables it was queried from, when it was computed, how complete the scan was, which business's data it covers, and the role responsible for it.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "observability.finance-anomaly-watch",
      "title": "Finance anomaly watch",
      "scope": "The platform watches every entity's finances for aging exceptions, expense spikes, revenue drops, and overdue-invoice concentration, and alerts Owner/Finance the moment a fixed, deterministic threshold is crossed — every alert shows the exact comparison behind it: the formula, the real numbers on both sides, and the threshold that was crossed, never an opaque AI judgment call.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.records-crm",
      "title": "Business records (CRM)",
      "scope": "Teams track customers, deals, and other business records stored so only their own business can see them, with per-field access controls.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 129,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.entities",
      "title": "Legal entity registry",
      "scope": "On every plan, a business can see the legal entity or entities it owns — that is what fills the business switcher, and what takes a single-business account straight to its workspace at sign-in. When there is more than one entity, each one's records are stored and exported separately; the figures are never combined behind the scenes. On the Operations plan, owners and operations leads can also open a combined, read-only view across the entities they own.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.leads",
      "title": "Vendor lead ingestion & pipeline",
      "scope": "Any outbound lead source — including your own — can push prospects into their own pipeline, kept separate from every other business, through a single intake that is not tied to any one vendor.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.workflow-automation",
      "title": "Workflow automation engine",
      "scope": "Trigger -> condition -> action workflows run automatically against real platform events (new leads, job status changes, accepted estimates, overdue invoices, tags added to a record, pipeline stage changes, paid invoices, and construction compliance documents nearing expiration) — up to your plan's workflow limit (1 on Start, 10 on Core, 30 on Pro, 100 on Operations), with full run history. Beyond simple trigger-condition-action, a workflow can branch into if/else paths and add a wait/delay step that resumes automatically, even across a restart.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.vertical-packs",
      "title": "Industry starter packs",
      "scope": "Industry starter packs seed ready-made automations matched to how your industry runs — applied within your plan's workflow allowance, fully editable after.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.snapshots",
      "title": "Onboarding snapshot bundles",
      "scope": "Named onboarding-accelerator bundles apply an industry starter pack plus starter communication templates and intake forms in one step — through the same create paths and plan limits as building each piece by hand, fully editable after and safe to re-apply.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "operations",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.blueprint-library",
      "title": "Industry blueprint library",
      "scope": "Every shipped industry blueprint — operating areas, recommended workflows, connectors, roles, and a launch outline — is browsable inside your own workspace, cross-linked to the real starter pack where one exists for that industry.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.equipment-allocation",
      "title": "Company equipment allocated to jobs",
      "scope": "Company trucks, trailers and tools can be allocated to a job for a time window. A piece of equipment cannot be booked to two overlapping jobs. Equipment can be marked out of service with a reason: it cannot be allocated while out of service, and a booking already on it is flagged for dispatch rather than cancelled. and its cost comes from an hourly or daily rate recorded when it was allocated, counted once in the job's economics.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 10,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.crew-double-booking",
      "title": "Crew double-booking refused at job assignment",
      "scope": "A crew member cannot be assigned to two open jobs whose scheduled windows overlap, and a subcontractor cannot be booked onto two overlapping windows. The assignment is refused and names the conflicting job or project, and nothing is written.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.emergency-triage",
      "title": "Emergency triage queue and displaced-job rescheduling",
      "scope": "Emergency jobs wait in a triage queue. Crews are ranked by how few booked jobs an emergency would displace, with ineligible crews listed and the reason shown. Accepting an emergency flags each displaced job for rescheduling and creates a call-the-customer task for each one, all in one write. Cancelling the displacement reverses both. No message is sent to the customer automatically.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.native-jobs",
      "title": "Native jobs & work orders",
      "scope": "Jobs and work orders live natively in The Forge from day one — no external scheduling or dispatch tool required to track a job's status, assignment, or schedule.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 69,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.native-estimates",
      "title": "Native estimates & quotes",
      "scope": "Quotes and estimates are tracked natively, tied to a job or lead, with their own status lifecycle — no separate quoting tool required.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 36,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.customer-portal",
      "title": "Customer portal (magic-link, self-serve)",
      "scope": "Your own customers get a login-free, emailed link to their own portal — where they can see every estimate and invoice from you, accept or decline a quote, pay a bill, and check a job's schedule status — scoped to exactly their own records and nothing else. Included on every plan, not gated to a higher tier, because it makes every other native tool (jobs, estimates, invoicing) more useful the moment your business turns it on.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.native-invoicing",
      "title": "Native job/customer invoicing",
      "scope": "Customer invoices tied to a job live in the same native record — distinct from Forge's own subscription billing — with a draft/issued/paid status lifecycle. A branded PDF download and a payment link on your own connected processor are both available now — see business-api.document-rendering and business-api.payment-processor-integration.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 31,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.payment-reminders",
      "title": "Automatic invoice payment reminders",
      "scope": "Unpaid invoices past due can get a reminder email on a schedule you set. Each reminder is logged, and no reminder goes out once the invoice is paid.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 17,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.job-auto-invoice",
      "title": "Automatic draft invoice on job completion",
      "scope": "When an owner turns it on, completing a job creates a draft invoice from the job's price or its accepted estimate. Nothing is sent automatically, and each job gets at most one invoice, even when it is reopened and completed again.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 17,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.lifecycle-workflow-triggers",
      "title": "Lifecycle workflow triggers: customer inactivity, enrollment status, renewal due",
      "scope": "Workflows can start when a customer has gone a set number of days without a completed job, when an admissions application or program enrollment changes status, and when a renewal reaches its lead time. Each one fires once per lapse or once per status change. Its actions are tasks, notifications and alerts, plus customer messages once the owner turns sending on for that workflow; a marketing message needs the customer's explicit opt-in on record, and a message that falls in quiet hours is held for the next window rather than dropped.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.renewal-calendar",
      "title": "Renewal calendar across policies, leases and agreements",
      "scope": "See every insurance policy, lease, service agreement, contractor licence or bond, and employee certification or driver credential end date in one calendar, grouped by business, ordered by how soon action is needed. Owners assign an owner and a 30, 60, 90 or 120 day lead time to each insurance policy, lease and service agreement, and the Forge opens one renewal task for that owner when the lead time is reached, moving the task if the end date changes. Licence, bond and certification dates are shown with their window and next step, and are tracked on their own records. Each person sees only the businesses they are granted. Renewal tasks stay inside the Forge; nothing is sent to customers.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.customer-churn-risk",
      "title": "Customer churn-risk flags from explicit rules",
      "scope": "Flags customers whose own records break a rule you can read: no job activity for a set number of days, repeated skipped visits, an invoice past due with a balance still open, an old open complaint, or an active agreement nearing renewal. Each flag names the rule and the records behind it, clears itself once the rule stops holding, and the Owner sets the thresholds. These are plain rules, not a prediction score, and nothing is sent to the customer.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.renewal-retention",
      "title": "Renewal outcomes and retention reporting",
      "scope": "Record each renewal as renewed, lost or pending, with the contract value. The Forge reports the renewal rate for each month and service line, showing the renewed and due counts behind it, along with the revenue retained and lost. Renewing an agreement, policy or lease also starts the next renewal cycle.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.consolidated-invoicing",
      "title": "Consolidated and per-property draft invoices",
      "scope": "Bill one customer's completed jobs across their properties on one draft invoice that names each job and property, or on one draft per property. Each job goes on one invoice only, nothing is sent automatically, and cancelling an invoice frees its jobs.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.native-time-tracking",
      "title": "Native time entries & labor-cost visibility",
      "scope": "Clock in/out and per-job labor cost are visible natively before any payroll run. This is wage-summary visibility only — The Forge does not process payroll, withhold tax, or move money.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 20,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.time-entry-approval",
      "title": "Time-entry approval queue",
      "scope": "Closed time entries wait in an approval queue ranked by labor cost, flagged for early clock-ins, late clock-outs and missing rates. An Owner, General Manager, Operations lead or the worker's own manager approves or rejects them. Nobody approves their own hours, and every decision is recorded in the audit log.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.live-clock-in",
      "title": "Live clock-in view for managers",
      "scope": "Owners, General Managers and Operations leads see who is clocked in right now: each person, their job, their unit, how long they have been running and their week's hours with an overtime warning. The list refreshes on its own every 30 seconds while the page is open and shows how old it is. Employees cannot see it, and a unit-limited manager sees only its own units.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.labor-categories",
      "title": "Labor categories and callback/rework cost",
      "scope": "Each time entry is categorized as production, drive, setup, callback or non-billable, and each job shows its labor hours and cost by category. A callback names the prior job it revisits and its cost is shown there as rework, by crew member. Callbacks must fall within 30 days of that job unless an office user records an override.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.certified-payroll",
      "title": "Certified-payroll report draft by project and week",
      "scope": "A certified-payroll report draft for review, by project and week. For each worker it lists classification, daily and weekly straight and overtime hours from your own time entries, and the rate paid compared with the prevailing rate you entered for that classification and locality. Rows are flagged when the rate paid is below the required rate, or when a classification or wage rate is missing. Hours that are not yet approved are flagged, and each correction to an entry is shown with its audited before and after values. Export as CSV, or as a printable page, in WH-347 column order: name, last four digits of the SSN, work classification, hours for each day, total hours, rate, and gross pay. Deductions and net are left blank for your payroll administrator. It is a draft for your review: not a certified payroll report or a WH-347 form, not checked against any agency's rules, and not accepted by any agency.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.native-provisioning",
      "title": "Native Mode onboarding provisioning",
      "scope": "A new customer's onboarding answers determine which native operating modules are enabled from day one, with Forge itself declared as the system of record — not left ambiguous until a connector is set up.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.overview",
      "title": "Business overview & wins",
      "scope": "Income, outstanding invoices, labor cost, sales pipeline, and a simple 3-month run-rate projection are pulled into one daily overview from your own native records — real wins (a paid invoice, an accepted estimate, a completed job, a new customer) surface as they happen, and the single most useful next action is called out. The projection only appears once at least two months of paid-invoice history exist, and every figure here is computed from records you already have — nothing is estimated or fabricated when the data isn't there yet.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 10,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.kpi-overview",
      "title": "Live KPI overview with drill-down",
      "scope": "The business overview shows job volume, estimate conversion, lead-to-job conversion and automated messages queued. Each figure carries its value, the period in your business's time zone, when it was read, whether it is automated or entered, and a list of the records behind it, so every number can be checked. Figures are computed when you open the overview, not pushed in real time, and a figure with nothing to measure yet says so instead of showing zero. Automated messages are counted as records queued by the platform, not as confirmed deliveries.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.kpi-report-delivery",
      "title": "Scheduled KPI report delivery (daily, weekly, monthly)",
      "scope": "An Owner can schedule a KPI report daily, weekly or monthly. Each run stores one snapshot of the chosen overview figures, with the formula and the time each was read, and tells members in the app. Email is sent by default; your business can switch it off, and the snapshot says when an email was not sent.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.portfolio-summary",
      "title": "Consolidated executive portfolio dashboard",
      "scope": "Businesses running more than one legal entity get one consolidated, read-only view across every entity they own, with one row per business: revenue, gross profit and job cost (the same figures as each business's job-cost roll-up), outstanding receivables and the 90-plus-day share, the open estimate pipeline, labor cost this period, and risk flags (open stalled-work escalations and stale estimates). Every figure is tagged with the entity it belongs to, and the consolidated totals are the sum of those rows. The records are never combined or written, and only owners, operations leads and finance staff can open it, read-only; a user with entity grants sees only the businesses they were granted. Leads and pending approvals are shown across all your businesses. For consolidated trial balance, profit and loss, and balance sheet across native-ledger entities, see business-api.consolidated-financials.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "operations",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.finance-accounts-transactions",
      "title": "Financial accounts & transactions",
      "scope": "Financial accounts and transactions are tracked per legal entity with exception flags for anything needing review.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.close-periods",
      "title": "Close periods",
      "scope": "Accounting periods move through a controlled close checklist and lock state, so a closed period can't be silently edited.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "operations",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.tax-readiness",
      "title": "Tax readiness",
      "scope": "The platform scores how ready a business's records are for a tax professional to work with — it never claims to prepare or file taxes.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "operations",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.credits-ledger",
      "title": "Forge Credits ledger",
      "scope": "Earned credits are tracked in an immutable ledger and can be redeemed toward eligible services, never silently spent on ordinary usage.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 8,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.launch-lifecycle",
      "title": "Launch (implementation) lifecycle",
      "scope": "A guided or managed launch advances through phases only when its gating tasks, blockers, and approvals are actually clear.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.data-migration",
      "title": "Data migration workflow",
      "scope": "Migrating existing data always runs a test import and requires the client's explicit sign-off before anything moves to production.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "operations",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.bulk-import",
      "title": "Bulk customer & lead import",
      "scope": "A JSON or CSV batch of customers and active real-estate leads can be imported directly into a migration job, with a row-by-row imported/updated/matched/failed report. Customers converge onto the same Customers list a phone call, web form, or social inquiry would produce, rather than ever creating a duplicate or landing somewhere the Customers screen doesn't show.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "operations",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.validation-gates",
      "title": "Go-live validation gates",
      "scope": "A failing critical test blocks go-live automatically — it cannot be waved through by mistake.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.data-ownership",
      "title": "Data ownership & sync direction",
      "scope": "You can declare one system of record per data category, and two-way sync always requires a documented conflict rule.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.software-inventory",
      "title": "Software inventory & consolidation analysis",
      "scope": "The tools a business already runs are inventoried with retain/replace/consolidate guidance and estimated savings, not guesswork.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.prospect-reports",
      "title": "Prospecting audit reports",
      "scope": "A shareable business-health snapshot for local-business outreach, built from a single bounded, robots-respecting read of the prospect's own public homepage — every finding is a direct, evidence-backed observation, never a fabricated score, and an undetected signal is reported as not detected rather than as a manufactured deficiency.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.web-presence-audit",
      "title": "Web Presence audit",
      "scope": "A bounded, robots-respecting read of up to 25 pages of a site you name — every finding is an evidence-backed observation with plain-language fix guidance, scored with a deterministic published formula; an undetected signal is reported as not detected, never as a manufactured deficiency, and no AI is involved.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 15,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.site-health",
      "title": "Site Health",
      "scope": "Link the website your business owns and request a Site Health audit — an SEO pass and a passive security and trust pass (security headers, TLS certificate, cookie flags, email authentication, mixed content, exposed artifacts) run by a connected service provider, returned as evidence-backed findings in plain language. The audit is strictly passive and GET-only; a small number of extra benign requests run only against a hostname you have proven you control. Nothing is scored, graded, or reported that the site did not literally show.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 28,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.inbound-email",
      "title": "Inbound email",
      "scope": "A dedicated inbound email address per workspace. Received mail is recorded as a communication with its attachments, matched to a lead or customer by sender address when possible, and the Owner and General Manager are notified. Nothing here sends or auto-replies to anything.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.watchers",
      "title": "Watchers",
      "scope": "Checks a page you name on a schedule you set (15-minute minimum), bounded and robots-respecting, and alerts you in-app and by email only on a real change or a threshold you set — every alert shows before, after, and the rule that fired. Counts per plan: 1 (Start), 5 (Core), 25 (Pro), 100 (Operations). Never bypasses a site's robots rules or a login.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.outbound-webhooks",
      "title": "Outbound webhooks",
      "scope": "Register an HTTPS endpoint and choose which platform events it receives. Every delivery is signed with a standard HMAC scheme, retried on a published fixed schedule (5 seconds, 30 seconds, 2 minutes, 10 minutes, 30 minutes, 2 hours, 6 hours, 24 hours) if your endpoint is unreachable, and every attempt is visible in the deliveries list. An endpoint that fails ten deliveries in a row is disabled automatically and you are notified in-app. Deliveries never go to private or internal addresses or to non-HTTPS URLs.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.employees",
      "title": "Employee records",
      "scope": "Employee records are visible only within the business that owns them, with sensitive fields like SSN and bank details redacted for roles that shouldn't see them.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 7,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.leave",
      "title": "Leave requests & approvals",
      "scope": "Time-off requests are recorded against the business that owns them, and only designated approver roles can approve or reject one. Every employee can file and track their own requests from the Employee Hub; a request for paid time off is checked against the employee's accrued balance.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.pto-accrual",
      "title": "PTO accrual & balances",
      "scope": "Paid time off accrues per hour worked, per pay period, or annually, with caps, carryover limits and waiting periods. Every employee sees their own accrued balance, and approving time off draws it down automatically.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.industry-positions",
      "title": "Industry positions & growth-stage staffing plan",
      "scope": "Each business chooses its industry blueprint and sees that industry's standard positions, what each one is responsible for, and which positions it will need at each stage of growth, with a recommended paid time off policy for the industry.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.recognition",
      "title": "Employee recognition",
      "scope": "Anyone on your team can give a teammate a public kudos tied to one of your company's values, and owners can hand out named awards and get reminded ahead of service anniversaries and birthdays — no gift-card economy, just visible appreciation.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.staff-library",
      "title": "Staff Library",
      "scope": "Owners publish policy and training documents to the roles or positions they choose, and staff sign off with a drawn signature, a typed name, and an explicit consent checkbox — the signed record captures the exact version, its content hash, the time, and the device it was signed from, and can never be edited afterward. Owners, general managers, and HR see a compliance grid of who has and hasn't signed, get a daily reminder digest for overdue items, and staff themselves get a nudge to re-sign when a policy changes. This never blocks clock-in or any other part of the product; it is visibility and a reminder, not a gate.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "notifications.in-app",
      "title": "In-app notifications & work queue",
      "scope": "Users see server-generated notifications and a personal work queue of tasks that need their attention.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "workflows.idempotency-keys",
      "title": "Idempotent write protection",
      "scope": "Retrying the same request never applies its effect twice — a repeated call safely returns the original outcome.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "workflows.evidence-store",
      "title": "Evidence store",
      "scope": "Supporting evidence (photos, documents, payloads) is stored so only the owning business can reach it, and cannot be tampered with after the fact.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "workflows.transactional-outbox",
      "title": "Transactional outbox",
      "scope": "Background follow-up work (like queue delivery) is guaranteed to happen after the triggering change is saved, never silently dropped.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "workflows.feature-flags",
      "title": "Capability-pack feature flags",
      "scope": "Account owners can turn optional capability packs on or off per workspace; disabled packs are invisible, not just hidden in the menu.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.connection-registry",
      "title": "Integration connections & access panel",
      "scope": "Clients can see every system connected during implementation, revoke access themselves without contacting support, and confirm a recurring access review — the credential is encrypted at rest and wiped immediately on revocation.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.connector-webhooks",
      "title": "Automatic updates from connected financial systems",
      "scope": "Updates arriving from your connected financial systems are verified as genuinely coming from that provider before anything is applied to your records.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.assist-capability-gap",
      "title": "Capability-gap assist guidance",
      "scope": "When a user hits a permission or feature boundary, the platform can offer contextual guidance from a configured assist provider.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "integration-dependent",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "office.stock-capability-discovery",
      "title": "Physical inventory capability discovery",
      "scope": "The platform can report which physical-inventory capability packs a workspace has available. Item tracking and a usage-based ordering estimator are now live under business-api.inventory-tracking (Pro) — see that capability for the real feature; this one remains pure pack-discovery metadata.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "configuration-only",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.inventory-tracking",
      "title": "Physical inventory tracking & usage-based ordering estimator",
      "scope": "Item-level physical inventory lives natively: a per-item ledger of receipts, usage, adjustments, and counts drives current stock (never a mutable counter), and a deterministic ordering estimator suggests what to reorder from trailing usage trends — every suggestion shows the exact usage rate, window, and math behind it, and never places an order automatically. Usage can be recorded manually or via the API today, and it can be attributed to a job: office issues and returns against a job, and field supply usage that names a job, post job-linked consumption at the item's cost at that moment, which feeds job economics materials. Purchase orders delivered direct to a job count once, when used; stocked goods count when they are used on the job. Stock can be moved between two warehouses of the same item as a transfer, named by warehouse or by company location (a location must map to exactly one warehouse; several are refused until one is named). Both sides of a transfer are recorded together and the item's total on hand does not change; a transfer the source cannot cover is refused with the quantity available. POS-derived automatic usage attribution is not yet wired (see docs/dev notes on src/inventory-estimator.js).",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 42,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.document-processing",
      "title": "Document upload & review queue",
      "scope": "Upload receipts, invoices, and statements to a review queue, then match them to a transaction yourself or create one from the document with a few manual fields. The platform will highlight an amount, date, or vendor it noticed in the filename as a starting hint. When extracted text is available for a document (via a connected OCR/read service), the platform can additionally match it against a vendor invoice template — your own saved templates or a built-in starter set for common vendor formats — to fill in more hints (invoice number, total, date, tax, and more), each shown with the exact text it was read from. These remain hints only: nothing here ever creates or matches a transaction automatically, and template matching never runs without extracted text already existing.",
      "kind": "capability",
      "status": "Implementation needs reconciliation",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Parts of this work are supported, but earlier descriptions conflict. Confirm the exact tools available for your account. The audit records the evidence and remaining work.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.esignature",
      "title": "E-signature documents",
      "scope": "An estimate, an uploaded document, or a document composed directly in the platform can be sent out for electronic signature — one or more signers, in a set order, each captured with a typed name, a drawn signature, and the time and IP address the signature was made from. Once every signer has signed, a single tamper-evident completion record is saved into the same secure vault used for other supporting evidence, and — when the document came from an estimate — that estimate is automatically marked accepted through the normal acceptance flow. Included at every plan level, since sending an estimate out for signature is a natural next step after creating it. Today's version captures intent, explicit consent, and a tamper-evident record of who signed what and when; it is not legal advice, does not verify a signer's identity beyond their access to the emailed link, and does not claim compliance with any specific jurisdiction's e-signature law beyond the basic elements of the U.S. federal ESIGN Act.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.billing-entitlements",
      "title": "Billing & plan entitlements",
      "scope": "Every plan tier's own subscription, usage, and unlocked capabilities are visible from one place. Where the platform's payment processor is configured, an Owner upgrades through hosted Checkout; where it is not, plan changes are handled directly with the account team.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.wallets",
      "title": "Wallets",
      "scope": "Lead and campaign wallets track funded and spent balances in an append-only ledger, and fund the marketplace add-on programmes you activate. A wallet is never credited by asserting an amount — that is refused outright. Balance arrives only from a card payment the platform's payment processor has confirmed settled, or from an audited operator credit, and every entry carries a per-transaction ceiling and a $0 floor enforced inside the write itself.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.usage-metering",
      "title": "Usage metering & statement detail",
      "scope": "Every metered add-on (starting with AI Receptionist call minutes) is recorded as it happens and priced on a monthly statement alongside the subscription line, credits applied, and provider cost shown separately. The statement is informational: no usage line is ever automatically charged, whether or not a payment processor is connected.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.subscription-lifecycle",
      "title": "Subscription downgrade & cancellation",
      "scope": "An Owner can request a plan downgrade or cancellation from within the account; a two-step confirmation is required and the change only takes effect at the end of the current billing period, never mid-period.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.payment-processor-integration",
      "title": "Payment processor integration",
      "scope": "Once a business connects its own payment processor under Integrations, a native invoice can get a real hosted checkout payment link an Owner/GM generates and sends themselves — the customer pays with a card and the invoice flips to paid automatically once the processor confirms. Payment always runs on your business's OWN connected processor account, never the platform's. Stripe is the first supported processor. This does not cover Forge's own subscription/usage billing (see business-api.subscription-lifecycle / usage-metering), which is still not automatically charged.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.invoice-pay-now",
      "title": "Pay now on an invoice (flagged checkout)",
      "scope": "When pay-now is turned on for a business, a native invoice's open balance can be paid through a hosted checkout on that business's own connected processor, and the payment is recorded against the invoice once the processor confirms it, once only however many times the confirmation is delivered. On by default; the business can switch pay-now off. It needs a connected processor.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.blueprint-engine",
      "title": "Blueprint engine",
      "scope": "Structured Blueprint intake that generates a customer-specific Forge Plan grounded in platform capability status.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.tenant-grounded-assistant",
      "title": "Assistant grounded in your own data",
      "scope": "Ask a question and get answers grounded in your own workspace data — structured search across your records, communications, tasks, launches, finance, integrations, and org setup, filtered to exactly what your role can already see, every result tied to a real record. Plain-language summaries appear only when an assist provider is configured; otherwise you see the matching records directly, never a guess.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.marketplace-activation-preview",
      "title": "Marketplace activation preview",
      "scope": "Before enabling a marketplace add-on, its business/entity, billing account, immediate charge, recurring effect, usage basis, approval requirement, and provider are shown up front. Activating one is a separate, deliberate step: the price is the one your account team actually agreed — the catalogue's own figures are indicative and are never used as a quote — and it takes a second Owner or Finance approver, never the person who requested it, unless you are the only such user on the account. An active add-on appears on your monthly statement at that agreed price. Activation itself never charges a card: the statement stays informational, as every line on it is.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.org-structure",
      "title": "Organization structure",
      "scope": "Define locations, departments, business hours, billing accounts, and retention settings for each business.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.geofencing",
      "title": "Location check-ins (geofencing)",
      "scope": "A location a business already defined can be given a check-in circle, and a person that business serves can opt in to have their own phone report when they arrive and leave it, landing in a plain, timestamped log the business reads. The platform records transitions only — it does not flag violations or notify anyone; staff read the ledger and decide.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.property-care-instructions",
      "title": "Property care instructions (versioned)",
      "scope": "Each customer property can carry structured care instructions. Every edit is kept as a new version, and the crew assigned to a job at that property sees the current version on that job.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.customer-export",
      "title": "Full account data export",
      "scope": "Account owners can export a complete copy of their workspace's data at any time — this is included on every plan, never a paid add-on.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.tenant-offboarding",
      "title": "Account offboarding (retention + deletion)",
      "scope": "Account owners can close their workspace themselves: a confirmed request starts a 7-day grace period (fully functional, cancel any time) before their data is permanently deleted.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.sync-runs",
      "title": "Integration test-sync check battery",
      "scope": "Running a test sync on a connection checks what's genuinely verifiable today — the connection record, that its stored credential decrypts, that an inbound webhook secret is configured, and how fresh its last telemetry is — every connection gets this check. QuickBooks, Gusto, Square, Stripe, Vapi, SendGrid, Twilio, and OAuth-connected Google Workspace or Microsoft 365 connections additionally get a real outbound call to the provider's own API.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.draw-export",
      "title": "Draw export to pay-application systems (Procore)",
      "scope": "The Owner connects their own Procore company with an access token, and Finance or the Owner can send an approved, submitted or paid draw, with its schedule of values, to Procore as a pay application. A second send of the same draw updates the same Procore record instead of creating another one, and the draw shows whether it is synced, pending or failed. Nothing is sent until a Procore connection is active, and a revoked connection stops the send.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.error-queue",
      "title": "Integration error queue",
      "scope": "Webhook deliveries that fail after signature verification — a malformed payload, a business it cannot be matched to, or an unexpected processing error — are queued visibly instead of only logged, and can be acknowledged, resolved, or discarded from one place.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.access-review",
      "title": "Recurring integration access review",
      "scope": "Every connection records when it was last reviewed and when its next review is due — ninety days after each confirmation — so access nobody has looked at recently doesn't go unnoticed.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.connector-google-workspace",
      "title": "Google Workspace connector",
      "scope": "A full OAuth 2.0 authorization-code flow with PKCE for Google Workspace (read-only Gmail and Drive scopes, plus Calendar read access and, as of lane F3, Calendar event-creation access used by the receptionist add-on's appointment booking) is implemented and tested against Google's own OAuth specification, using your own Google Cloud OAuth client — no Forge-owned Google app exists yet, so you register your own client id and secret. The flow has not yet been validated against a live Google account; that validation happens during your first connection. A connection made before the Calendar event-creation scope was added must be reconnected before appointment booking can create a real calendar event.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.connector-microsoft-365",
      "title": "Microsoft 365 connector",
      "scope": "A full OAuth 2.0 authorization-code flow with PKCE for Microsoft 365 (read-only Mail, Calendars, and Files scopes via the Microsoft identity platform v2) is implemented and tested against Microsoft's own OAuth specification, using your own Entra ID app registration — no Forge-owned Microsoft app exists yet, so you register your own client id and secret. The flow has not yet been validated against a live Microsoft 365 account; that validation happens during your first connection.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.quickbooks-connector",
      "title": "QuickBooks Online connector",
      "scope": "Connect your own QuickBooks Online company via OAuth and import your customers and invoices. The platform encrypts your credentials at rest, refreshes access automatically, can verify the connection against your real QuickBooks company data, and lets you revoke access (including at Intuit) at any time. All imports are read-only to Intuit (no data is written back). Importing is idempotent — re-importing with no changes creates no duplicates. Each import run can be rolled back via integration history. This has been built and tested against QuickBooks' documented API, not yet against a live customer account.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.accounting-push",
      "title": "Accounting push sync (QuickBooks Online, staged)",
      "scope": "For a QuickBooks Online company you connect, invoices and customers can be pushed from The Forge. Push is on by default and needs QuickBooks connected with sync direction set to push or both; your business can switch it off. Each send carries a request key, so a retry after a timeout does not create a duplicate. If a record changed on both sides since the last sync, it is held for Owner review rather than overwritten. Other systems are import-only today.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.stripe-connector",
      "title": "Stripe connector",
      "scope": "Connect your own Stripe account with a restricted API key you control — the platform encrypts it at rest, verifies it against your real Stripe account before saving it, and lets you revoke it locally at any time (Stripe restricted keys are rolled from your own Stripe dashboard, not through a third party). Inbound Stripe webhook signatures are verified per Stripe's own signing scheme. This has been built and tested against Stripe's documented API, not yet against a live customer account.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.vapi-connector",
      "title": "Vapi voice connector",
      "scope": "Connect your own Vapi account with your own API key — the platform encrypts it at rest, verifies it against your real Vapi account before saving it, and gives you a unique webhook URL to paste into your Vapi assistant so call events (outcome, transcript, recording, and per-call cost) flow into your receptionist queue automatically, verified against Vapi's own signature schemes. Outbound calls can also be placed through the same connection. This has been built and tested against Vapi's documented API and webhook schemes, not yet against a live Vapi account — that validation happens at your first connection.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.email-connectors",
      "title": "Customer email sending connectors",
      "scope": "Send customer email from your own SendGrid, Mailgun, Postmark or Amazon SES account. The Owner enters the credentials once; the platform encrypts them at rest, checks them against the provider with a live call before saving, and sends a test message to the Owner. Each provider's bounce and spam-complaint reports are accepted at an unguessable per-connection URL, with the provider's own signature checked where it offers one (SendGrid and Mailgun), and a bounced or complained address stops receiving sends from your business. Built and tested against each provider's documented API and webhook schemes, not yet against a live customer account. Amazon SES notifications are not yet checked against the AWS SNS signature.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.sendgrid-connector",
      "title": "SendGrid email connector",
      "scope": "Connect your own SendGrid account with an API key you control — the platform encrypts it at rest, verifies it against your real SendGrid account with a live /v3/scopes call before saving it, and every outbound email is checked against a fail-closed content-safety gate before it ever reaches SendGrid. Revoking removes the key locally at any time (SendGrid keys are rolled or deleted from your own SendGrid dashboard, since a pasted key carries no id this platform can revoke by itself). Wired dispatch paths today are the receptionist add-on's urgent-escalation alert email, survey requests, and review requests. This has been built and tested against SendGrid's documented API, not yet against a live customer account.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.google-calendar-events",
      "title": "Google Calendar event creation",
      "scope": "When the receptionist add-on books an appointment and your Google Workspace connection includes Calendar event-creation access, a real Google Calendar event is created on the connected account's calendar, reusing the same OAuth connection and stored, auto-refreshing access token you already set up — no separate connection to configure. If no Google connection exists, or an existing connection predates this write scope, a follow-up task is still created and the response says plainly that no calendar event was created, never a fabricated confirmation. This has been built and tested against Google's documented Calendar API, not yet against a live Google account.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.content-safety-gate",
      "title": "Outbound content-safety gate",
      "scope": "Every outbound email (SendGrid), calendar event (Google Calendar), and social post this platform genuinely sends passes through a fail-closed banned-phrase content-safety check first — discriminatory steering language, deceptive guarantee claims, credential-phishing patterns, and high-pressure scam phrasing are blocked before any provider call goes out, and an internal check failure blocks the message rather than letting it through.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.communications",
      "title": "Customer communications & templates",
      "scope": "Every email, SMS, call, and internal note tied to a customer is logged with assignment and follow-up tracking, alongside reusable message templates that support merge fields ({{business.name}}, {{customer.name}}, {{customer.first_name}}, {{customer.email}}) — this module itself connects to no email or SMS provider, so outbound messages recorded here stay drafts or queued log entries, never actually sent. A separate, customer-configured SendGrid connector exists for the receptionist add-on's own urgent-escalation alert email — see the \"integrations.sendgrid-connector\" entry.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 35,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.outbound-messaging",
      "title": "Outbound messaging layer (shared send path)",
      "scope": "Every outbound text and email now goes through one send path. Before anything is sent it is checked against the customer's opt-out, consent and quiet hours, and each send carries an idempotency key so a retry after a timeout never delivers the same message twice. Every attempt, including a blocked one, is recorded in the customer's communications history. Email goes from your own connected Gmail or Microsoft 365 mailbox when one is connected, and from the platform provider otherwise; your business can switch that routing off. Text messages stay queued with the reason shown while no SMS provider is connected.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.stage-messages",
      "title": "Stage-based job messages and customer status link",
      "scope": "Automatic messages can follow a job through its stages: a booking confirmation, a reminder a set number of hours before the visit, an on-the-way notice when the crew starts, and a completion notice. Stage messages are off until the Owner switches them on, each stage also needs its rule on, and each message goes through the same opt-out, consent and quiet-hours checks as any other message, and each stage sends at most one message per visit. Customers get a read-only status link that shows only their job's stage and appointment window.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.outreach-cadences",
      "title": "Review, referral and renewal outreach cadences",
      "scope": "After a completed job the Owner chooses whether the customer gets a review request or a referral request, and how many days after completion it is sent. Before a service agreement renews, the customer gets a renewal reminder, and a review invitation on the renewal date. Each request goes out at most once. Every one is sent through the same send path as other messages, so opt-outs, consent and the workspace quiet hours are checked first. Cadences are off until the Owner switches them on; while they are off nothing is queued or sent.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.communication-timeline",
      "title": "One communication timeline per customer",
      "scope": "Texts, emails and calls the platform itself sends or receives for a customer, plus booking confirmations, show in one newest-first timeline on that customer's record. A call or text appears there when the number on it matches that customer's phone number. Texts and calls from numbers that match no customer are kept in an Unmatched conversations queue on the Customers page. Someone with customer access can link them to an existing customer, create a new lead from the number, or dismiss them as spam; nothing is created until they choose. Nothing is read from your own phone or mailbox provider, and automatic missed-call replies are not on the customer timeline yet.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.consent-suppression",
      "title": "Communication consent & suppression",
      "scope": "Before an outbound email or text can be queued or logged as sent, the platform checks the customer's latest consent state and blocks it automatically if they've revoked or been suppressed — consent history is append-only and is never overwritten.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.email-campaigns",
      "title": "Email marketing campaigns",
      "scope": "Build a real audience from your own customers and prospects, honestly excluding anyone who has revoked consent or been suppressed, then send and track an email campaign through this platform — every send re-checks consent immediately beforehand, and every message carries a working one-click unsubscribe that stops future sends for that person everywhere, not just in this campaign. Available on Pro and Operations plans, up to your plan's active-campaign limit.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.tracked-links",
      "title": "Tracked links",
      "scope": "Create a reusable short link for anything — a campaign, a text message, a printed flyer — and see how many times it's been clicked. Every link's destination is checked to be a real http(s) address both when you create it and again every time someone clicks it, so it can never be turned into a blind redirect to somewhere else.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "office.tasks",
      "title": "Tasks",
      "scope": "Assign a task to yourself or a teammate, track it to done, and reassign it if priorities change — everyone sees their own work, and designated roles can assign and reassign across the team.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "office.my-work",
      "title": "My Work",
      "scope": "One daily view rolls up a user's own tasks, approvals waiting on them, open exceptions, and account alerts — each section only ever shows what that person's role can already access elsewhere in the platform.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.forge-plans",
      "title": "Forge Plan generation & approval",
      "scope": "Once a Blueprint intake is submitted, a customer-specific Forge Plan is assembled deterministically from that intake and platform capability status, then approved by an account Owner — no model or AI call drafts the plan itself.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "workflows.launch-workspace",
      "title": "Launch workspace aggregate",
      "scope": "One view shows a launch's phase, milestones, owners, customer vs HustleForge tasks, risks, blockers, and pending approvals - each section only shows what the viewer's role can already access in its own module.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "workflows.change-control",
      "title": "Launch change control",
      "scope": "A scope change during a launch always records who requested it, why, the original and proposed scope, its cost and timeline effect, and who is required to approve it - a different Owner or General Manager than the requester must decide it.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.credit-opportunities",
      "title": "Forge Credit earning opportunities",
      "scope": "An earning activity can be claimed with evidence, verified by a different person than the claimer, and awarded - the award always posts through the same ledger and per-transaction ceiling as every other credit award, never a side channel.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.real-estate-core",
      "title": "Real Estate & Brokerage lane",
      "scope": "Contacts, properties, listings, deals, contingency milestones, and lead routing live in one workspace that integrates with - and never replaces - your MLS and transaction-management platform, which stay the systems of record for listing syndication and contract execution.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 17,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.commission-visibility",
      "title": "Commission forecasting & approval visibility",
      "scope": "A commission can be forecast, approved by a different Owner or General Manager than whoever forecast it, and reconciled against what was actually received - a visibility and approval layer only, never a replacement for your accounting system's own books.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.construction-core",
      "title": "Construction (T2 vertical) lane",
      "scope": "A project's schedule of values, subcontractor compliance documents, change orders, and draw/retainage math live in one workspace: a change order only affects a project's billed total once it is acknowledged, and a draw's retainage is computed from the project's own retainage rate and frozen on that draw. Each required compliance document shows whether it is expired or falls within 30, 60 or 90 days, and a workflow alert fires once as a document enters each window. Contractor licence and bond records carry a jurisdiction and expiry date on the business record, with expiry alerts through a schedule workflow. A submitted, approved or paid draw can be exported for Owner, General Manager or Finance as a G702/G703-style application: an application summary and a schedule-of-values continuation sheet, as CSV or printable HTML. Its figures come from the draw record and the project schedule of values, and a change order counts only once acknowledged. The export uses the common column order; it does not reproduce the AIA form or send anything to a pay-application system. The Forge does not perform estimating, takeoff, or independently certify licensing, insurance, or safety compliance, and does not verify a licence or bond with any authority, which stay the contractor's own responsibility.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.fleet-core",
      "title": "Fleet vehicles and meter readings",
      "scope": "Vehicles are tracked as assets with make, model, VIN, plate and cost fields, and odometer or engine-hour readings are recorded as an append-only history: a reading below the current one is refused unless it is explicitly marked a correction with a reason, and the reason is kept in the audit trail.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.construction-plans-estimating",
      "title": "Construction plans, takeoffs, assemblies and cost plans",
      "scope": "Plan sets and their revisions, manual takeoffs with review, assembly templates, material lists and per-project cost plans are kept in the project workspace for the owning business only; the Forge does not measure quantities from drawings automatically and does not replace estimating software.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.job-change-orders",
      "title": "Change orders on native jobs",
      "scope": "A change order can be raised against a job directly, without a construction project: it carries priced lines, is acknowledged by staff, and its approved amount is invoiced exactly once. An employee assigned to a job can request a change order from the job screen: it is saved as a draft with priced lines, a retried submission does not create a second one, and the office reviews it before it goes anywhere. A change order flagged as affecting permitted work raises a warning on acknowledgment when the job has open permits; it never blocks the acknowledgment.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.change-order-external-ack",
      "title": "Owner and architect acknowledgment of change orders",
      "scope": "A sent change order can be routed to its owner or architect for acknowledgment. The office copies a one-time link, or emails it to the owner or architect from the same screen (an email goes out only when someone clicks Send by email); it opens on a page that shows only that change order, and the owner or architect can acknowledge or decline it once. An acknowledged change order is billed through the change-order automation, and a declined one is never billed. Links expire after 14 days and can be revoked.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.job-change-order-esign",
      "title": "Customer e-signature approval of change orders",
      "scope": "Planned: a customer will approve a change order by e-signature through the existing signature flow, and the signed approval will acknowledge the change order automatically. Until this ships, change orders are acknowledged by staff.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-ae-job-change-order-esign"
      ],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.construction-bid-intelligence",
      "title": "Construction bid intelligence (Level 1: trustworthy bid history)",
      "scope": "Every bid keeps its own history: which estimate it was priced from, the reviewed risk register and economic policy behind its floor, what was actually submitted and by whom, and what happened afterwards with a structured reason - so a contractor can look back at real outcomes instead of guesses. The Forge never invents a competitor's price or a win probability, and bid strategy (cost lines, risk register, margin, floor, market evidence) is visible only to Owner, General Manager and Finance roles, never to sales or field roles. Open bids are listed by stage with their value, and win rate can be broken down by estimator, client or project type once there is enough reviewed history. A submitted bid can carry a follow-up that queues one message after a set delay if it has no decision; that message is queued only and is never represented as delivered. An awarded bid opens its contract with the schedule of values and subcontractor plan supplied at award, and a bid converts to one project only.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 7,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.construction-procurement",
      "title": "Construction procurement action rules",
      "scope": "Construction procurement has defined role rules: who may request quotes, select a supplier, issue a purchase order, post a receipt and match an invoice. Supplier prices and unit costs are visible only to Owner, General Manager and Finance roles, never to sales or field roles. The Forge does not yet publish a supplier comparison.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.receptionist-operations",
      "title": "AI Voice Receptionist operating surface",
      "scope": "Every call the receptionist add-on handles - live, missed, or voicemail - lands in one queue with caller identity matched to your contacts and leads, a transcript, qualification notes, routing decisions, and per-call cost, so nothing arrives and disappears. Booking an appointment creates a real Google Calendar event when a qualifying Google connection exists, and creates a follow-up task either way, never a fabricated calendar confirmation. A slot that overlaps an open job for that technician is refused with a conflict, and nothing is booked and the call stays open. A missed call's follow-up task is due now during your business hours, or at the next business morning after hours (location hours when set, otherwise Monday to Friday 08:00-17:00 in your timezone). A default intake script and qualification framework is available via the API — see the \"business-api.receptionist-persona\" entry.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 15,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.receptionist-persona",
      "title": "Receptionist default intake script & qualification framework",
      "scope": "The receptionist add-on ships a Forge-owned default intake script and qualification framework — greeting, identity capture, intent/urgency classification, a strict spelling-confirmation protocol for email and phone numbers, appointment handoff, and escalation triggers — available at any time through the API as a versioned, reviewable asset your team can train against or adapt.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.telephony-connector",
      "title": "Telephony provider webhook adapter",
      "scope": "Call events from your configured telephony provider are verified and normalized into the receptionist queue automatically - this platform's own code path is real, but whether calls actually arrive depends on your provider being connected and configured to send them here.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "integration-dependent",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 17,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-content-operations",
      "title": "Social content intake, templates & compliance review",
      "scope": "Brand-approved content templates, listing-linked captions and assets, and a compliance review step live in one workspace, tied to the same channels and listings the rest of your workspace already tracks.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 22,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-scheduled-publishing",
      "title": "Content calendar, broker approval & scheduled publishing",
      "scope": "A post moves through broker approval before it can ever be scheduled, and every attempt to publish is tracked with an honest status - published, or a specific reason it could not be, never a false confirmation. OAuth orchestration and the Facebook/Instagram/LinkedIn/X provider adapters are built and tested against each provider's own documented API; a business can connect a channel today with their own app credentials, and Facebook/LinkedIn additionally support HustleForge's own platform-default OAuth app once the operator provisions the required secrets and Meta/LinkedIn app review clears - no live-account validation has happened yet either way.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "integration-dependent",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 21,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-inquiry-lead-convergence",
      "title": "Social inquiry intake & lead convergence",
      "scope": "A comment, DM, or form response is matched by email or phone to the same contact and lead record a phone call would produce, or a new lead is created - never a separate, disconnected list.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 21,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-campaign-wallet",
      "title": "Campaign Wallet budget approval & spend controls",
      "scope": "A paid campaign's budget is never active until a different Owner, General Manager, Finance, HR, or Operations user than the requester approves it, spend can never exceed the approved amount, and provider/media cost is always recorded separately from Forge's own management fee.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 20,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-provider-facebook",
      "title": "Facebook publishing connector",
      "scope": "A real Facebook Page publishing connection (Meta Graph API, Facebook Login for Business OAuth) is implemented and tested against Facebook's own documented API, including the dedicated Video Reels Publishing flow for a video post. You can register your own Facebook app client id and secret, or use HustleForge's own platform-default app once the operator provisions it and Meta completes app review - either way you connect your own Page. The flow has not yet been validated against a live Facebook account; that validation happens when you connect your first Page.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-provider-instagram",
      "title": "Instagram publishing connector",
      "scope": "A real Instagram publishing connection (Meta Graph API two-step media container flow - photo, carousel, and Reels) is implemented and tested against Instagram's own documented API, discovered through your connected Facebook Page - the same Facebook app config (your own, or HustleForge's platform-default once the operator provisions it) that Page connection used. The flow has not yet been validated against a live Instagram business account; that validation happens when you connect one.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-provider-linkedin",
      "title": "LinkedIn publishing connector",
      "scope": "A real LinkedIn publishing connection (Share on LinkedIn API, Sign In with LinkedIn OAuth) is implemented and tested against LinkedIn's own documented API. You can register your own LinkedIn app client id and secret, or use HustleForge's own platform-default app once the operator provisions it and LinkedIn completes app review. The flow has not yet been validated against a live LinkedIn account; that validation happens when you connect it, and depends on posting access being approved for whichever app (yours or the platform's) is in use.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-provider-tiktok",
      "title": "TikTok publishing connector",
      "scope": "A real TikTok publishing connection (Content Posting API v2 direct post, TikTok Login) is implemented and tested against TikTok's own documented API. You register your own TikTok app and connect it, so posts go out from your account, never a shared one. Two TikTok-side limits apply and the platform reports each one plainly rather than failing vaguely: TikTok has no text-only post, so a scheduled item needs a video; and TikTok only permits a PUBLIC post from an app that has passed its content-posting audit — until yours has, TikTok restricts posts to ones only your own account can see, and the platform refuses to publish rather than quietly posting something nobody can see. Not yet exercised against a live audited TikTok app.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-provider-x",
      "title": "X (Twitter) publishing connector",
      "scope": "A real X publishing connection (X API v2) is implemented and tested against X's own documented API. You paste your own bearer token, which is validated with a real API call before the channel is ever marked connected - no Forge-owned X app exists yet.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-provider-google-business",
      "title": "Google Business Profile publishing connector",
      "scope": "A real Google Business Profile publishing connection (Business Profile API v4 local posts) is implemented and tested against Google's own documented API, using your own Google Cloud project so posts appear on your own listing. Unlike the other networks here a text-only post is valid, and a photo is attached when the scheduled item has one. One Google-side limit applies and the platform reports it plainly rather than failing vaguely: Google grants Business Profile API access per project on application, so until your project is approved Google refuses every request and the platform surfaces that as the reason instead of retrying. Not yet exercised against a live approved project.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "platform.release-journey-evidence",
      "title": "Release-journey conformance evidence",
      "scope": "The core signup-to-revenue workflow — sign in with MFA, connect a provider, take a call, route a lead, schedule an appointment, track a listing to close, approve and publish marketing, forecast commission, export records, and prove one brokerage cannot see another's data — is exercised end to end by an automated test on every change, with a dated pass/gap scoreboard, not just claimed in a slide.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "platform.evidence-backup-integrity",
      "title": "Evidence backup manifest & integrity",
      "scope": "Every stored evidence object is continuously checksummed against its original hash and mirrored to a second, content-addressed copy in the same evidence bucket, so an accidental deletion, an accidental overwrite, or silent corruption of a single object is detected and can be restored by an account Owner. This does not protect against loss of the evidence bucket or the Cloudflare account itself — true off-bucket, off-account replication requires a separate, operator-provisioned second bucket that has not yet been provisioned.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "platform.control-registry",
      "title": "Evidence-linked control registry",
      "scope": "An internal, evidence-linked inventory of the platform's security, availability, and confidentiality controls, mapped to SOC 2 Trust Services Criteria for every entry, so a third-party pen test or audit can be scheduled against known-honest evidence instead of a from-scratch discovery process. This is an internal control inventory only, not a certification — no penetration test or formal audit has been performed.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "feedback.capture-and-status",
      "title": "Feedback capture & status tracking",
      "scope": "Submit feedback from anywhere in Forge — a bug, something missing, or a workflow that's just confusing — and track its status on a plain timeline from received to released. Vote on ideas that matter to you and browse the roadmap for items your Owner or General Manager has chosen to share with your whole team, organized under consideration / planned / building / shipped — votes affect display order only, never a decision made on your behalf. Clustering and prioritization behind the scenes are not part of this yet.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "roadmap.client-driven",
      "title": "Client-driven public roadmap",
      "scope": "See what other businesses on Forge are asking for, ranked by how many have raised it — not a hand-picked marketing list. Say an existing idea matters to you in one click and it counts toward the same ranking. An idea only appears once more than one business has raised it, or the same business has raised it a few times, so no single client's private complaint is ever shown as if it were a trend.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.native-shift-scheduling",
      "title": "Native shift scheduling",
      "scope": "Build and publish a weekly employee shift schedule natively, with a deterministic auto-fill assist that respects role requirements, availability, and hour-based fairness — no external scheduling tool required.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 56,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.cross-business-allocation",
      "title": "Cross-business staff allocation",
      "scope": "Staff who work across your businesses appear on one read-only list, and each booking and time entry is labelled with the business it belongs to. Time goes to the business of the job, not the worker's home business, and labor cost by business adds up to each worker's total. A worker cannot be double-booked across businesses, and you only see the businesses your access covers. Moving approved time to another business needs a reason and leaves a record. This is wage-summary visibility; The Forge does not run payroll. Limited release.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "operations",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.api-keys",
      "title": "API key management",
      "scope": "Pro and Operations workspaces can mint scoped API keys (read or read+write) to call The Forge business-data API programmatically, with a per-plan key ceiling and full audit trail on every mint and revoke.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.gusto-connector",
      "title": "Gusto connector",
      "scope": "Connect your own Gusto account via OAuth using your own Gusto Developer app. The platform encrypts your credentials at rest, can verify the connection against your real Gusto company, refreshes access automatically, and lets you revoke access (including at Gusto) at any time. It reads your Gusto employees, jobs and payroll wage summaries. Limited release: you can also submit approved payroll hours from Forge into your unprocessed Gusto payroll. Forge writes to Gusto only after an Owner or Finance user approves the exact changes in a dry-run preview, and reversals of hours already exported are listed in Forge as manual adjustments. Gusto still runs the payroll; The Forge never withholds tax or moves money. Built and tested against Gusto's documented API, not yet confirmed against a live Gusto company.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.payroll-visibility",
      "title": "Payroll wage-summary visibility",
      "scope": "Read-only wage-summary visibility pulled from the client's own connected Gusto account — per-employee gross pay, net pay, taxes, and employer cost, per pay period, alongside a variance check against native time-tracking labor cost. The Forge never runs payroll, withholds tax, or moves money; pay, payroll, and access decisions always require the client's own approval in Gusto.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.general-ledger",
      "title": "Native general ledger",
      "scope": "Businesses that don't use an external accounting platform can run double-entry bookkeeping natively — chart of accounts, journal entries, trial balance, profit and loss, and balance sheet per legal entity. Corrections are posted as reversing entries, never edits.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.consolidated-financials",
      "title": "Consolidated financial statements",
      "scope": "Businesses running more than one native-ledger legal entity get a consolidated trial balance, profit and loss, and balance sheet — each entity's statement is still computed independently, tagged with which entity it came from, and only summed at the moment you view it; nothing is ever merged in storage. Entities kept on an external accounting connector are listed as excluded, never guessed at. Intercompany transactions between two of your own entities can be manually marked as a linked pair so both sides are excluded from the consolidated totals and shown separately, rather than double-counted or silently dropped; this is manual marking, not automatic elimination.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "operations",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.square-connector",
      "title": "Square POS connector",
      "scope": "Connect your own Square account via OAuth using your own Square Application — the platform encrypts your credentials at rest, can verify the connection against your real Square merchant and locations, refreshes access automatically, and lets you revoke access (including at Square) at any time. This is read-only: The Forge never processes or refunds payments through this connector. Built and tested against Square's documented API, not yet against a live customer account.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.pos-visibility",
      "title": "POS sales visibility",
      "scope": "Read-only sales visibility pulled from the client's own connected Square account — per-transaction gross, tip, tax, fee, and net figures across every location, alongside a variance check against your bank/merchant deposit records. The Forge never processes or refunds a payment through this connector; it only makes visible what Square already reports happened.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.revenue-recognition",
      "title": "Revenue recognition",
      "scope": "Businesses running the native general ledger can defer and recognize revenue over time instead of booking it all on invoice issue — straight-line proration, percentage-of-completion you report period by period, or milestone recognition tied to a job's status. Each recognized period posts a real Deferred Revenue / Service Revenue journal entry, and profit-and-loss can be viewed on a cash or accrual basis.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "operations",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.team-chat",
      "title": "Internal team chat",
      "scope": "Owners, managers, and employees on the same account can chat with each other inside the app — a shared workspace channel, channels tied to a specific legal entity for those with access to it, and direct messages between any two teammates. Messages are polled on a short interval, not delivered over a live socket, in this first version; no file attachments yet. This is separate from customer communications — nothing here is sent to, or visible to, a customer.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.leadgen-requests",
      "title": "Lead-generation request pipeline",
      "scope": "Request lead generation from your connected provider — define the customers you want, track delivery against your request.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.provider-service-jobs",
      "title": "Provider service jobs",
      "scope": "A service provider you activate from the Marketplace can perform document reading, browser rendering, and site-data lookups on your behalf. Every job is metered per unit at the price you agreed, shown on your statement, and never charged beyond a funded wallet. With no provider activated these features honestly show as unavailable.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.client-branding",
      "title": "Client branding on public pages",
      "scope": "Upload your business logo and pick an accent color, and the public document-signing page and signing invitations your customers see carry your branding — with a clean neutral default until you set it up.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.installable-app",
      "title": "Installable app (home screen)",
      "scope": "The Forge installs to a phone or desktop home screen and opens like a native app. Screens load fast from a local cache and a clear offline page appears when there is no connection — business data itself is never cached and always comes live from the server.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-image-generation",
      "title": "In-house image generation for social posts",
      "scope": "Describe the image you want inside the social composer and a ready-to-attach image is generated for you, sized for the post. The generate control only appears when the image service is connected, and a service problem shows an honest unavailable state — never a false success.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "integration-dependent",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-video-generation",
      "title": "In-house Reel (video) generation for social posts",
      "scope": "Choose 1-4 images already generated or attached, add a caption for each scene, pick a duration, and a ready-to-publish vertical Reel (1080x1920, Facebook and Instagram) is composed for you. The generate control only appears when the video service is connected, and a service problem shows an honest unavailable state — never a false success. Generation is metered against the same monthly media allowance images use, at a higher per-second cost, never free-unlimited.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "integration-dependent",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.online-booking",
      "title": "Online self-booking",
      "scope": "Turn on a public booking page for your business, define the services and hours you offer, and let customers request an appointment online — requests land directly in your scheduling queue, and confirming one creates the job automatically. No separate booking tool needed.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 10,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.seasonal-demand",
      "title": "Seasonal demand history and pre-booking window",
      "scope": "Owners can see how many jobs were booked per week or per month, split by service line, counted from their own job records. An owner can also open a pre-booking window for a season, so customers can request times in that season before the normal booking horizon. Customers can book those times only once the window opens, and a time that is already taken is refused. History only: no demand forecast is shown, and no messages are sent to customers. API only; no screen yet.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.google-business-connector",
      "title": "Google Business Profile connector",
      "scope": "Connect your own Google Business Profile via OAuth using your own Google Cloud OAuth client — the platform encrypts your credentials at rest, verifies the connection against your real Business Profile account and location before saving it, refreshes access automatically, and lets you revoke access (including at Google) at any time. This connector is read-only: it never posts, edits, or replies to a review, and never changes anything about your Business Profile listing. This has been built and tested against Google's documented Business Profile API shapes, not yet against a live Google Business Profile account.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.reviews-reputation",
      "title": "Reviews & reputation loop",
      "scope": "Every review shown in your dashboard or on your embeddable review widget is sourced directly from your own connected Google Business Profile — The Forge never posts, edits, or replies to a review anywhere on your behalf. Review requests are sent by email to a specific customer, only after checking the same consent/suppression rules that govern every other outbound message on the platform, and automated flooding is blocked so the same customer is never asked twice in a short window. You choose exactly which reviews appear on your public widget; nothing is shown there without your explicit opt-in.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.forms-builder",
      "title": "Forms builder",
      "scope": "Build a public intake form for your website in minutes — share a link or embed it, and submissions with an email or phone field are matched to an existing lead or added to your lead pipeline.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 8,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.document-rendering",
      "title": "Branded PDF documents",
      "scope": "a branded PDF of any estimate or invoice, generated in-house from the same record that the web page shows, with a JPEG logo if you have one set, or your business name in your accent color if not, available to you and to the customer from their existing link; no third-party service sees the document",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.web-push",
      "title": "Push notifications (PWA)",
      "scope": "Push notifications go only to a device where you personally turned notifications on in Settings and your browser granted permission. Nothing is ever sent to a device that has not opted in, and you can turn it off for that device at any time. Delivery is best effort over the standard encrypted Web Push protocol; a device that is offline or revoked permission simply stops receiving.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.surveys",
      "title": "Post-visit surveys (NPS / CSAT)",
      "scope": "A one-question survey is sent by email after a job completes or an invoice is paid, only to contacts who may be emailed under the same consent and suppression rules as every other outbound message. A high score offers the customer your existing review link through its own consent check, flood protection, and de-duplication; nothing is posted anywhere automatically. A low score creates a follow-up task for the Owner or General Manager. NPS is shown with the formula it was computed from.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.conversations",
      "title": "Live website chat",
      "scope": "Website visitors can start a chat that lands in your inbox; replies refresh every few seconds. An embed snippet goes on your own site; you can restrict which sites it will run on and turn it off at any time.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.saved-replies",
      "title": "Saved replies in live chat",
      "scope": "Keep standard answers to common questions in one shared list and drop one into a live chat in two clicks, or type a slash shortcut. A saved reply is only inserted into the reply box; you review it and press Send yourself. Customer, business and agent names fill in automatically.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.help-center",
      "title": "Public help center",
      "scope": "A public help page for your customers with the articles you write and a search box that works entirely in the visitor's browser. Nothing is generated by AI; every word is what you typed.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.ical-feed-connector",
      "title": "Calendar feed (iCal) connector — Airbnb / VRBO",
      "scope": "Add your Airbnb or VRBO listing's calendar feed URL and see guest stays and turnover (checkout) days on your Ops calendar — the feed is fetched read-only and its secret link is encrypted at rest, never shown back to you. If you clean properties you do not own, you do not need that URL yourself: name the property and The Forge gives you a link to send the owner, who follows their own Airbnb or Vrbo export steps and pastes it in. The calendar arrives already labelled and attached to the right customer, and you are notified when it lands. The link you send expires after 30 days or the moment it is used, whichever comes first, and you can cancel it at any time.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.str-ical-turnovers",
      "title": "Short-term rental booking calendars drive turnover jobs",
      "scope": "Paste a property's Airbnb, VRBO or Booking.com calendar link and each booking becomes one turnover job, dated the checkout day at the property's turnover time in your business timezone. A checkout followed by a same-day check-in is flagged. If a guest moves a booking, the job moves until a crew starts it; a cancelled booking flags its job for review and is never deleted. Host blocks on the calendar are ignored. On by default for every workspace; the Owner can switch it off.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.google-calendar-connector",
      "title": "Google Calendar connector",
      "scope": "Connect your Google Calendar (a Forge-hosted OAuth app — no Google Cloud setup required on your end) and see upcoming events on your Ops Calendar tab, drag one to a different day, and (as of f-039) have scheduled jobs booked in The Forge appear on your Google Calendar automatically — a job creates a real Google event when it's scheduled, moves it when you reschedule, and removes it when you cancel or delete the job, so your phone calendar shows Forge work without you re-entering it anywhere. The Forge stays the record; Google is a mirror kept in the background, never on the request that saves your job, and never able to hold a save hostage. All of this needs calendar write access: a connection made before write access was added only has read access, and you'll be asked to reconnect before any move or job sync works — until then the calendar view stays read-only and jobs simply don't sync, recorded honestly on the job (never a silent or fabricated success) rather than left unexplained.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.saved-views",
      "title": "Saved views",
      "scope": "Save a named arrangement of a list — its sort, filters, grouping, and which columns are hidden — and reopen it later instead of rebuilding it every time. Keep a view private to you, or share it with your workspace read-only: only the person who made it can rename, change, or delete it. One view per list can be your default. Counts per plan: 10 (Start), 40 (Core), 150 (Pro), 500 (Operations).",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.design-tokens",
      "title": "Brand colors",
      "scope": "Set one brand color and a corner style, and the platform works out a matching set of colors from it — button and heading color, page background, text ink, and divider lines. Every text-on-background pair is checked against the WCAG AA contrast standard (4.5:1) and adjusted automatically if it falls short, so nothing it produces is unreadable. Available through the API at this stage: your generated documents, emails, and share cards do not read from it yet, and setting it changes nothing about how they look today. Your logo stays managed under Branding.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.my-shifts",
      "title": "My shifts and hours",
      "scope": "See your own upcoming shifts and the hours you have logged, drawn from the shift and time records your business already keeps in The Forge — not a separate copy. An open clock-in is shown on its own and is never counted into a weekly total, because there is no honest hours figure until you clock out. If your login is not yet linked to a staff record, the Hub says exactly that rather than showing an empty list. Weekly totals use ISO weeks in UTC. That link is no longer a dead end: accepting a team invite now links or creates your staff record automatically, and an Owner or General Manager can link, unlink, or create one by hand under Team at any time.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.field-execution",
      "title": "Field notes and checklists",
      "scope": "A crew working the same job can leave notes and tick off one shared checklist from their own accounts — everyone assigned to that job sees the same entries, so the checklist is the job's record rather than a private copy per person. Correcting an entry, including unticking an item, keeps the original as history instead of erasing it, and each entry shows who wrote it. Only the person who wrote an entry can correct or retract it. They can also attach photos to the job; each photo is kept for 5 business days, then removed to keep things fast, and the whole job's photos can be downloaded in one tap before they're gone. Not available yet: this is web-only with no offline mode.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.completion-evidence",
      "title": "Required completion evidence",
      "scope": "A job can require a set number of photos and finished checklist items before it can be marked complete; a completion that is missing them is refused and nothing changes. Crews can tag each photo before or after, and a job can require a before and an after photo. Owners can set the completion proof once as the default for new jobs. Photos on a completed job are also copied into the durable evidence store, so they remain as completion proof after the 5-day field-photo window.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.crew-lead-photo-walkthrough",
      "title": "Crew lead resolution & photo walkthrough gate",
      "scope": "Every job automatically has a crew lead — the scheduled owner if there is one, an Owner-chosen override, or otherwise the crew member with the most recorded training and skills — with the reason shown in plain language. An Owner can require a photo walkthrough on the jobs a specific person leads; when that’s on, marking that job complete requires at least one active field photo first, and the app explains exactly why if it’s missing.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.field-supply-usage",
      "title": "Field supply usage logging",
      "scope": "Field staff log the supplies they use against a job in whatever way is fastest to say — an exact amount, a fraction of a container, or one tap for finished the bottle — and can fix a mistake afterward without the original entry disappearing. Each entry updates your item's usage history automatically, feeding the same trailing-usage reorder suggestions your office already sees, with no extra data entry required from anyone. Field staff see and correct only their own entries; cost, current stock, reorder points, and supplier details are never shown to them. If a staff login isn't linked to a staff record yet, logging says so plainly instead of silently failing.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 11,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.data-subject-requests",
      "title": "Data subject rights requests (CCPA/CPRA)",
      "scope": "An outside individual — one of your customers or employees — can submit a CCPA/CPRA rights request (know, access, delete, or correct) through a public form, verify it by email, and have it routed straight to your business's Owner. The Owner reviews the request, fulfills it by export or delete, or refuses it with a recorded reason, inside a 45-day statutory clock with one permitted extension. A request naming no business The Forge recognizes, or about a Forge account itself, is fulfilled by Forge's own operators instead.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "office.dashboard-layout",
      "title": "Personal dashboard layout",
      "scope": "Hide, pin, and reorder your dashboard's widgets and the layout follows you to your next device — a local copy keeps the grid rendering instantly, and a failed save never blocks the dashboard from showing.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "office.guidance-progress",
      "title": "Guided workflow progress",
      "scope": "Your progress through an in-app guided workflow is saved to your account as you go, so dismissing a tour or finishing a setup step follows you to your next device instead of staying stuck in one browser's local storage.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.lead-conversion-reporting",
      "title": "Lead conversion by source",
      "scope": "For any date range in your workspace's timezone, see how leads convert by source and service line: how many were contacted, estimated and won, with the count behind every rate and the value of the estimates that were accepted. Also see the estimate value still awaiting a customer's reply, the open leads not yet contacted, and the value attached to aging open opportunities by age.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.lead-routing-rules",
      "title": "Lead routing rules",
      "scope": "An Owner can configure how incoming leads get assigned — round robin, by team, by territory, by service line, or to whoever is on a published shift — and can list, edit and disable those rules in priority order, against the same real assignment tables every actual assignment is made from, and every assignment records the rule that chose it.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.estimate-follow-up",
      "title": "Estimate follow-up policy",
      "scope": "An Owner can turn on an automatic follow-up for estimates that go quiet — set the delay, the channel, and the message — and a scheduled run queues that follow-up once an estimate has sat unanswered that long. This queues the message only; it does not itself call an email or SMS provider, and is never represented as delivered.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 23,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.stalled-item-escalation",
      "title": "Stalled item escalation rules",
      "scope": "An Owner sets rules for items that go quiet: an untouched lead, a quote sent with no reply, a renewal coming due with no owner action, a follow-up that is overdue, or a job stuck in one stage. When an item sits past the window you choose, the Forge opens a high-priority task and an in-app notification for the manager or owner role, once per stall. The escalation closes automatically when the item moves. Nothing is sent to customers by email or text.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.estimate-view-tracking",
      "title": "Estimate customer view history",
      "scope": "The Forge records when a customer opens an estimate's share link: first and last view and how many times, with staff and bots not counted. The estimate shows that history, and the open-estimate list flags estimates the customer has viewed but not accepted. When an estimate is emailed from the Forge, the email can include a small image that reports when it was opened, and the email says so. Opens are estimated, and some email apps load images automatically, so an open can be missed or reported when nobody read the email.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.estimate-email",
      "title": "Email an estimate to the customer",
      "scope": "A staff member with estimate access can email an estimate to the customer from the estimate screen. The email has a default message the Owner can edit, and it carries the customer's view-and-respond link. The customer's email consent and opt-out are checked before anything is sent, and the email appears on the customer's timeline. If no email provider is connected, the Forge says the estimate was not sent and keeps the email queued. Nothing is sent automatically; each email is sent by a person pressing Send.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.estimate-aging",
      "title": "Estimate aging and stale-estimate handling",
      "scope": "On the Estimates list, every open estimate shows its age, how long it has sat idle, its follow-up state and next follow-up date, and the total value waiting; the list can be filtered to estimates past their follow-up window or past a maximum age. An Owner can set a maximum age for open estimates: past it, the office gets a stale-estimate task, once per stall. Automatic closing of stale estimates is off unless the Owner turns it on, and a customer acceptance always wins. No email or text is sent by this feature.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.estimate-follow-up-coverage",
      "title": "Estimate follow-up coverage report",
      "scope": "An Owner can add a call task to the estimate follow-up: when an estimate has gone unanswered for the delay they set, one open call task is created for the salesperson who wrote it, once per due date. A call task that stays open past its due time by the escalation window is escalated to the owner and general manager once, and a finished one never is. An Owner can also see a follow-up coverage report on the Estimates page for any period in their business's time zone: how many estimate follow-ups came due, how many were acted on, how many were completed on time, late, or are still open, and the value of estimates that converted after a follow-up, by person and by lead source; and, for new leads, how many were contacted within 24 hours. Every rate sits beside the counts behind it. Nothing is sent by a call task, and a queued message is never counted as completed. Jobs are not in the report.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.estimate-win-loss",
      "title": "Estimate decline reasons and win/loss by salesperson",
      "scope": "Declining an estimate asks why, from a fixed list (price, a competitor, timing, scope, no decision, or other) with an optional note, whether the office records the decline or the customer does through their link or portal. Owners and general managers see won, lost and open estimates by salesperson, lead source and service line for any period in the business's own timezone, with the value of each, the win rate with the number of decided estimates behind it (no rate is shown until there are at least five), the average days to decide where the decision time is recorded, and why estimates were declined. Salespeople see their own estimates only. Drafts are not counted.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.universal-import",
      "title": "Universal spreadsheet import",
      "scope": "Bring your own spreadsheet — parse a CSV or pasted text, map its columns, preview the result, and commit it into customers, employees, inventory, or native invoicing, each governed by that target's own access rules and plan. Distinct from business-api.data-migration's guided launch-time migration; this is the everyday bring-your-own-spreadsheet path.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.job-economics",
      "title": "Per-job profitability rollup",
      "scope": "A job's real revenue, labor (scheduled vs. actual), materials, subcontractors, equipment, and overhead roll up into one per-job profitability figure — computed from records you already have, never estimated.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 23,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.job-cost-budgets",
      "title": "Job budgets by cost code (budget vs actual, variance)",
      "scope": "Each job can carry a budget broken down by cost code. Budget versus actual is calculated for each code on every read, with variance, percent used and an over-budget flag, and it shows unassigned cost on its own line. Budget changes are saved as numbered revisions, so earlier budgets are never overwritten.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 28,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.job-cost-rollups",
      "title": "Job cost roll-ups by service line, client, crew and location",
      "scope": "Job revenue, labor, materials, subcontractors, equipment and overhead roll up by service line, client, crew and location, with margin by client and cost per unit where a job defines its units. Each total is the sum of the same per-job figures shown on the job, and jobs with no service line, client, crew or location appear under Unassigned.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 14,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.revenue-pace",
      "title": "Forward revenue pace from booked revenue",
      "scope": "For the coming weeks and months, shows the revenue already booked (scheduled and in-progress jobs, recurring visits, fixed-fee billing schedules and acknowledged change orders) on top of what has been invoiced so far in each period, next to the same period last year. Every figure lists the rows it is built from, and accepted estimates with no scheduled job are shown as unscheduled, not added to a month.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.operational-resources",
      "title": "Operational resources (locations, assets, vendors)",
      "scope": "Track the locations, physical assets — with warranty and service-interval dates — and vendors — with insurance and certification expirations — your operations depend on, plus a three-way match between a purchase order, its receipts, and the vendor invoice.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 25,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "office.role-workspace",
      "title": "Role-based daily workspace",
      "scope": "One role-scoped rollup for today — the jobs and shifts on your schedule, plus your open finance exceptions and purchase requests — filtered to exactly what your role can already see in jobs, shifts, finance, and stock.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.portal-feedback",
      "title": "Customer portal feedback inbox",
      "scope": "Staff can read and reply to the feedback and support messages your customers send through their customer-portal link, and triage each one — the staff side of the same conversation the customer sees in their own portal.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.subcontractor-portal",
      "title": "Subcontractor portal (scoped sign-in)",
      "scope": "Your subcontractors sign in through a single-use invite link. Your office either copies the link to them or emails it to an address you name, and an email goes out only when someone clicks Send. They see only their own engagement, the project it is on (name and status), and their own compliance documents with the expiry window of each. They can submit a compliance certificate for your review; nothing counts toward compliance until you accept it. Revoking a subcontractor's access ends their session immediately. A required compliance document that enters the 30, 60 or 90 day window, or lapses, emails its subcontractor one notice per window at their contact address; with no email sender connected the notice stays queued and is not shown as sent. Not built yet: subcontractor schedule, and draw amounts.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.service-engagements",
      "title": "Job engagement tracking",
      "scope": "A customer engagement moves through its own stage pipeline, from inquiry through paid and renewed, with versioned estimate options and a recorded customer authorization for the option selected — separate from a job's own basic status lifecycle.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.hiring",
      "title": "Job postings and applicants",
      "scope": "Write up a job you are hiring for, open it, and track everyone who applies through a simple set of stages from new to hired. If you point one of your public forms at an open posting, anyone who fills it in becomes an applicant instead of a sales lead, and you are notified. Rejecting or withdrawing a candidate moves them to that stage rather than deleting them, so your record of who applied stays intact.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.interviews",
      "title": "Interview panels and scorecards",
      "scope": "Schedule an interview for a candidate, invite one or more of your team members as panelists, and let each panelist submit their own 1-5 score, a hire recommendation, and private notes once. Scheduling a panelist against a time window that overlaps one of their other interviews warns you before it books, but never blocks you from double-booking on purpose.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.offers",
      "title": "Offers, including hire conversion",
      "scope": "Extend a candidate a real offer — role, pay, start date, and an optional expiration — and move it to accepted, declined, or withdrawn. Accepting an offer is what actually turns the candidate into an employee record and starts their entity-scoped onboarding checklist; nothing before this capability did that.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.onboarding",
      "title": "Hire-scoped onboarding checklists",
      "scope": "Give a new hire a checklist grouped into documents, training, equipment, and first-week schedule, each item trackable as pending, done, or skipped with an optional due date. A General Manager sees exactly what's complete and what's blocking without ever receiving the private HR notes on an item — those stay Owner/HR-only, redacted server-side before the response is even built.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.insurance-policies",
      "title": "Insurance policy renewals",
      "scope": "Track each policy you manage — carrier, policy number, and its expiration date — and bind a scheduled workflow to that expiration so a renewal reminder fires the number of days before it you choose, commonly 90. The Forge is not an agency management system: it holds no premium, coverage-limit, commission, or claims detail, and does not bind or service coverage.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.insurance-claims",
      "title": "Insurance claims on jobs",
      "scope": "Record a customer's insurance claim against a job: the carrier, claim number, adjuster, deductible, the amount the carrier approved and the amount it has paid. Supplement scope requested from the carrier is tracked with the amount requested and the amount approved. Each approval or reduction is raised as a draft change order on the job, and a duplicate claim number for the same carrier is refused. The Forge does not contact the carrier, and nothing is sent or charged from a claim record.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.commitments",
      "title": "Customer commitments",
      "scope": "Record each promise the business makes to a customer: what was promised, who owns it, when it is due, and the job, estimate, invoice or message it relates to. Each commitment is marked kept, missed or cancelled once, and every change is kept in its history. Commitments that pass their due time without a close escalate in the app to an Owner or General Manager. Nothing is sent to the customer.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.admissions",
      "title": "Admissions applications",
      "scope": "Track each family's application — applicant, guardian contact, and three independently-set dates: the application deadline, the deposit due date, and the enrollment confirmation window — and bind a scheduled workflow to any of the three so a reminder fires the number of days before it you choose. The Forge is not a school information system or admissions CRM: it holds no test scores, transcripts, financial-aid detail, or document checklists.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.donations",
      "title": "Donations",
      "scope": "Record a gift with the donor's name, email, phone, amount, date, method, and fund. A donor email is matched, case-insensitively, against your existing customer records automatically — a gift does not have to be hand-matched to a person before it can be logged, and one that cannot be matched stays visibly unmatched rather than silently creating a new customer. Bind a scheduled workflow to donation.recorded so an acknowledgment is queued the moment a gift is entered, and to a gift's received date (with an offset, e.g. 365 days) for a stewardship-milestone reminder. The Forge is not a fund-accounting or donor-management system: this release holds no pledge object, no fund-level reconciliation, and no tax-receipt PDF, and it does not itself transmit the acknowledgment — a person confirms it went out.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.staffing-handoff",
      "title": "Employee offboarding handoff review",
      "scope": "When an employee is offboarded, Owner, General Manager, and HR roles can review and resolve the handoff items that still need reassigning — separate from the workspace-wide account-closure flow, which closes an entire business rather than one employee's departure.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "identity.team-roster",
      "title": "Team roster & seat management",
      "scope": "Owners and General Managers see who's on the team and how many seats are used against the plan. Owners and General Managers can resend a pending invite (a resend issues a new link, the old one stops working, and resends are spaced at least a minute apart), and inviting an address that is already pending resends it the same way. Owners can revoke a pending invite. Each login also shows whether it is tied to an HR record, with an owner/GM control to connect, disconnect, or create one.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "identity.role-grants",
      "title": "Workspace-wide role grants",
      "scope": "An Owner can grant a user a role that applies across the whole business rather than to one entity — for permissions like read-only auditor or executive viewer access — revocable at any time and fully audited.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "identity.account-team-access",
      "title": "Account team access",
      "scope": "Your account team can be given a time-limited seat in your workspace to set things up or check a launch. Every grant shows on your Team screen with when it ends and why, and you can end it yourself at any time.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.ai-consent-settings",
      "title": "AI processing consent",
      "scope": "Owners and General Managers control whether the platform's AI features — assist guidance, in-app answers, image generation, video generation — are allowed to process your business's data at all. Off by default, and every one of those calls checks this setting first and refuses outright when it is off.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.public-booking-page",
      "title": "Public self-booking page",
      "scope": "The public page a customer actually lands on to request an appointment — deliberately reachable without signing in, since the person requesting time is not a Forge user.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.public-job-status",
      "title": "Public job status page",
      "scope": "A customer can open their job's shared status link to see the schedule and confirm it or request a change — the same public, unauthenticated page family as an emailed estimate or invoice link.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.programs",
      "title": "Programs, class sessions & attendance hours",
      "scope": "Run a course or programme where many people attend the same scheduled session, which nothing else in the platform could do — bookings and jobs each hold one customer per slot. Define a programme with the number of hours it requires, schedule its sessions with a seat count, enrol participants against a referral and a case reference, and track how many minutes each person has actually completed against what they owe. Attendance is an append-only record: a correction is written as a new entry that supersedes the earlier one rather than overwriting it, and both stay readable, so a changed figure can never quietly replace the original. Every entry records where its number came from — pulled from a meeting provider's own report, entered by staff, or reported by the participant — and the totals show separately how many minutes came from a provider rather than from someone typing. An enrolment cannot be marked complete while the ledger still shows outstanding hours. The Programs screen lists each course and its sessions, shows the roster and every participant's hours with their source, and opens the session room.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.ministry-access",
      "title": "Church ministries and per-ministry access",
      "scope": "Limited release, through the API only. A church can set up its ministries (children, care, worship, guest welcome and general) and give each staff member access only to the ministries they lead, through per-ministry grants. A revoked grant stops working on the next request. The ministry screens are not yet built.",
      "kind": "capability",
      "status": "Listed capability — confirm account access",
      "registryStatus": "Limited release",
      "plan": "pro",
      "evidence": "Deployed registry evidence identifies an API-only limited release. Church screens are not built; verify tenant, role, plan and complete workflow evidence before presenting it as an available website demonstration.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Deployed platform capability registry synchronized 2026-10-19"
    },
    {
      "id": "business-api.support",
      "title": "Support tickets & issue tracking",
      "scope": "Track customer issues and support requests separately from leads and jobs — every issue gets a ticket number, status, priority, and an append-only event log of all changes and notes. Assign tickets to team members and filter by status to manage your queue. The native system has no provider dependency.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.incidents",
      "title": "Incident reporting & safety logs",
      "scope": "Record onsite incidents as they happen — injuries, property damage, customer complaints, near misses — with a dated record of what happened, who was involved, where, and what actions were taken. Incidents are written while fresh and immutable once created, with audit trails of any closure. Employees can report incidents that happened to them; management can view and close incidents.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.zoom-connector",
      "title": "Zoom connector",
      "scope": "Connect your own Zoom account using a Server-to-Server OAuth app you create inside it. The platform encrypts those credentials at rest and mints a fresh short-lived token for every call rather than storing one. Scheduling an online class session then creates the Zoom meeting and hands each session its own join link, and after the session has run the platform pulls Zoom's own per-participant join and leave report and writes it into the attendance ledger as provider-reported time, so the hours on a participant's record are the ones Zoom measured rather than ones somebody typed. The connection test tells you specifically if the credential is missing the scope needed to read that report, because a credential that can create meetings but not read attendance would otherwise produce sessions that run normally and attendance that is silently always empty. Built and tested against Zoom's documented API, not yet against a live Zoom account — that validation happens at your first connection.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.session-room",
      "title": "In-app class room",
      "scope": "Your class sessions get a room inside your own workspace, so a participant opens their portal and joins from there instead of being sent off to another company's website. The room decides who may enter on the server: an enrolled participant can join from fifteen minutes before the session until thirty minutes after it ends, a facilitator can open the room at any time to set it up, and a cancelled session or an ended enrollment is refused. Every entry AND every refusal is written to an access log with its reason, so if someone tells you they could not get into their class you can see exactly what happened and when. Live video is a separate switch that is not on yet: the room opens, checks the person in, and says so plainly rather than showing an empty screen. Nothing the room records counts as attendance hours — that ledger only accepts a measurement, and being admitted to a room is not one.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "observability.industry-demand",
      "title": "Industry demand signal",
      "scope": "The first-login workspace builder now offers every industry that has a vertical pack — the four that were missing (churches and non-profits, schools and private education, dental practices, real-estate brokerage) sit behind a More industries control — and records which industry each prospect or visitor taps and which one they commit to. An operator report totals those choices per industry over a chosen window, separates signed-in prospects from anonymous demo visitors, and states plainly how many people chose an industry that is not on the first screen, which is the signal for what to build out next.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "production",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.leases",
      "title": "Lease terms and renewals",
      "scope": "Track each lease you manage — property, unit, resident, owner, rent, and its end date — and bind a scheduled workflow to that end date so a renewal reminder fires the number of days before it you choose, commonly the weeks-in-advance notice period your lease requires. An on-demand owner statement totals expected rent for any period you choose from the same lease records, for the properties one owner holds. The Forge is not a property-management system of record: it holds no property/unit inventory, no application/screening pipeline, and no trust accounting, and it does not auto-generate rent invoices.",
      "kind": "capability",
      "status": "Implementation needs reconciliation",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Parts of this work are supported, but earlier descriptions conflict. Confirm the exact tools available for your account. The audit records the evidence and remaining work.",
      "backlogIds": [],
      "historyCount": 17,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.inspections",
      "title": "Lease-term inspections",
      "scope": "Schedule move-in, periodic, move-out, and maintenance inspections against a lease, and bind a scheduled workflow to the scheduled date so a reminder fires the number of days before it you choose. Every inspection stays linked to the lease it belongs to, so a lease's full inspection history — and its owner statement for any period — always includes them.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-posting-credits",
      "title": "Pay-per-post publishing with Forge Credits",
      "scope": "Forge Start and Forge Core workspaces can connect channels, compose, approve and publish social posts without upgrading: Forge Core includes 10 complimentary published posts, and after that each published post costs a small operator-set price (1 Forge Credit by default). A post sent to several networks at once counts as one post. Credits are used first, then the media wallet; funds are reserved when publishing starts, charged when the first network publishes, and returned if every network fails. A post the balance can't cover is not published and says so. Forge Pro and Forge Operations publish at no per-post charge. Built and tested; not yet exercised against a live customer account.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "billing.forge-credit-packs",
      "title": "Forge Credit packs",
      "scope": "Any plan can buy packs of Forge Credits (1 credit = $1) through the payment processor's hosted checkout. Credits are added only after the processor confirms the payment settled, exactly once per payment, and purchased credits never expire. They pay for published posts and extra content ideas where your plan charges for them. Requires the platform's payment processor to be configured; not yet validated with a live payment.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "integration-dependent",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.social-idea-deck",
      "title": "Daily idea deck & extra idea packs",
      "scope": "A deck of ready-to-post marketing ideas - an image, carousel or short video with a caption and per-network variants - that you approve or skip one card at a time. Approving turns an idea into an ordinary post that goes through your normal approval and publishing flow. Forge Pro includes 20 ideas a day and Forge Operations 40, resetting at local midnight in your workspace's time zone; on any plan you can buy extra packs of ideas, and a pack that can't be prepared is never charged. The deck, approvals, limits and purchase flow are built and tested; the ideas themselves are prepared by a separately operated content service, so a deck only fills when that service delivers.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "integration-dependent",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "office.data-retention",
      "title": "Data retention and archival",
      "scope": "Records are archived rather than lost, and permanent deletion is allowed only once the retention period your business sets for each kind of record has passed — with defaults you can change in Settings.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "notifications.tenant-owned-sender",
      "title": "Send from your own company email address",
      "scope": "When you link your own Google Workspace or Microsoft 365 mailbox, transactional correspondence such as e-signature invitations and signing notifications can be sent from your company address. Campaign email remains on the platform provider, and if the mailbox cannot be used the platform records the reason and falls back to platform delivery.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "customer-configured",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.admissions-document-checklists",
      "title": "Admissions document checklists and missing-item follow-up",
      "scope": "Each application lists the materials it requires and tracks each one as received or outstanding, so missing items are followed up automatically. Not yet built: admissions applications hold no per-item checklist.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-requirement-checklist"
      ],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.admissions-funnel-conversion",
      "title": "Enrollment funnel stage conversion",
      "scope": "Shows every prospective family by stage, from inquiry through tour, application, offer and enrollment, with conversion rates between stages. Not yet built: lead and application stage counts are separate and no conversion is calculated.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-conversion-by-stage-attribution"
      ],
      "historyCount": 8,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.tuition-and-aid-summary",
      "title": "Tuition, aid and net revenue summary",
      "scope": "Shows projected tuition revenue, committed aid and net revenue by grade level and enrollment status. Not yet built: invoices carry no grade or aid fields and no aid commitment record exists.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-private-ed-tuition-aid"
      ],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.volunteer-confirmations-and-fill-rate",
      "title": "Volunteer shift confirmations and need fill rate",
      "scope": "Sends confirmation requests to volunteers who are not on payroll, records their replies, and reports open versus confirmed needs by ministry and period. Not yet built: shift publishing notifies only linked employees and no fill-rate report exists.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-churches-volunteer-roster"
      ],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.visitor-retention-tracking",
      "title": "First-time visitor return tracking",
      "scope": "Records each visit against a person so first-time visitors who return for a second or third visit, or join a group, can be counted. Not yet built: check-ins and connection cards create leads but keep no visit history.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-retention-cohort-reporting"
      ],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.donor-stewardship-milestones",
      "title": "Donor stewardship milestones",
      "scope": "Flags first gifts, increased giving and lapsed donors so stewardship follow-up starts from the giving record. Not yet built: the only milestone is a date offset from a gift's received date.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-churches-donor-stewardship-milestones"
      ],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.engagement-scope-and-terms",
      "title": "Engagement scope, timeline and billing terms",
      "scope": "Holds the scope, timeline and billing terms on a signed engagement, and records scope changes with client acknowledgment before billing is adjusted. Not yet built: service engagements have stages and estimate options but no scope, timeline or billing-terms fields.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-prof-engagement-change-orders"
      ],
      "historyCount": 10,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.deliverable-client-approvals",
      "title": "Client deliverable approval requests",
      "scope": "Submits a deliverable for client review, sends a structured approval request, captures the response on the engagement, and escalates when approval stalls. Not yet built: no deliverable or approval-request record exists and engagements have no stall escalation.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-ae-deliverable-client-approvals",
        "industry-mkt-deliverables-revision-rounds"
      ],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.engagement-profitability-rollup",
      "title": "Engagement profitability rollup",
      "scope": "Rolls revenue, logged hours and cost up to each engagement while it is still open. Not yet built: job economics roll up per job and engagements are not linked to a rollup.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-prof-engagement-profitability-ga"
      ],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.engagement-renewal-forecast",
      "title": "Engagement renewal forecast",
      "scope": "Lists engagements approaching their end date with a renewal likelihood and the revenue at risk if they do not renew. Not yet built: renewal dates trigger workflows but no forecast or revenue-at-risk figure exists.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-engagement-term-dates-renewal-forecast"
      ],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.re-milestone-deadline-alerts",
      "title": "Transaction milestone deadline alerts",
      "scope": "Flags a transaction milestone that is approaching its due date or is at risk, and alerts the agent and transaction coordinator. Not yet built: milestone due dates are not a workflow schedule source, so milestones are not flagged automatically.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-re-1-transaction-deadline-alerts"
      ],
      "historyCount": 16,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.residence-bed-occupancy",
      "title": "Residence beds, stays and restricted period",
      "scope": "Tracks beds by house, assigns each resident to a bed with start and end dates, records the end date of the restricted early period, and shows open beds and length of stay by house. Not yet built: there are no house, bed or stay records, so occupancy cannot be counted.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "pro",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-sober-bed-stay-model"
      ],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.invoice-partial-payments",
      "title": "Partial invoice payments and balances",
      "scope": "Records partial payments against an invoice: each payment posts to the invoice's payment history, the remaining balance shows, and a payment can be voided. Overpayments are refused.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 9,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.weather-delay-rescheduling",
      "title": "Weather-delay rescheduling",
      "scope": "A dispatcher declares a weather day, optionally for one area. Scheduled jobs that day are flagged weather-delayed, and each gets the next open slot that fits its crew's published shifts, its crew's other jobs and its equipment. Later jobs for the same crew that day move with it. Nothing moves until the dispatcher applies it, and applying re-checks each slot. A cancelled weather day reverses the flags. Customer delay notices are queued for sending; nothing is sent automatically. There is no weather forecast feed: the weather day is entered by hand.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 21,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.delay-notices",
      "title": "Customer delay notices for weather days",
      "scope": "When a weather day is logged, each flagged job gets one customer delay notice, queued in the communications log. A notice is sent only when the business Owner has switched on customer delay notices (off by default; the switch is in the weather delay panel) and the customer has granted email consent; otherwise it stays queued, or is kept as a draft with the reason shown. A dispatcher sends a queued notice from the weather delay panel. A failed send can be retried, and a sent notice is never sent again. The owner edits the notice wording. No messaging provider is connected by default, so notices stay queued until one is.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 7,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.fleet-live-tracking",
      "title": "Fleet GPS tracking and weather-forecast connections",
      "scope": "An Owner can connect a GPS fleet provider and a weather-forecast provider with their own API keys, and disconnect either one. With no GPS provider connected, the vehicle view says live tracking is not connected and shows no position. Each vehicle is linked to its provider vehicle, and the latest reported position is shown with its time. A late-arriving location is kept in history but never moves a vehicle back in time, and a re-delivered provider event is stored once. Forecast days show the chance of precipitation and the temperature range by the business's local day. Both connections are in limited release: the adapters are built and tested against recorded payloads, and a live provider account must be connected before any live data appears.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.business-outcomes",
      "title": "Customer outcome report (Owner and General Manager)",
      "scope": "Owners and General Managers see six outcome figures from their own records for a chosen period: response time to new leads, lead conversion, estimate follow-up coverage, days from job completion to invoice, on-time job completion, and collected revenue. Each figure shows its sample size and shows not enough data instead of a number when the sample is too small.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.on-time-reporting",
      "title": "On-time completion and turnover timing",
      "scope": "Each completed job is marked on time or late against its scheduled end, with a 15 minute grace, and that flag is fixed at completion so later schedule edits do not change it. Weather-delayed jobs are reported in their own group. Completed and scheduled jobs are broken down by crew, service line and property, and turnover jobs show the time from request to crew assignment to completion, using the workspace time zone.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.live-location",
      "title": "Live crew location and ETA",
      "scope": "Crew members can share their location from the Forge app or a phone browser. Sharing starts only when they tap Share my location during an active shift or transport run, and a position is sent about every 30 seconds. It stops when the shift or run ends, when they tap Stop sharing, or after 14 hours. Positions are kept for 30 days. Managers see live crew positions and the estimated time to each crew member's next job on the dispatch board, as a list. Moving a job to another crew member or a new time sends that crew member a push notification right away. Guardian late notices use the live estimate when a crew position exists. Limited release.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.dispatch-board",
      "title": "Dispatch board: overdue visits and open crew slots",
      "scope": "The dispatch board lists recurring visits that are past their due date and still not completed, with the days overdue. It shows each crew member's open minutes for a day: published shift time minus booked job time. It can be narrowed to one service area. Viewing the board books nothing; a slot that was taken in the meantime is refused when you assign the job. Route ordering and customer delay notices are not part of it. Limited release.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 16,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.recurring-invoices",
      "title": "Recurring invoice schedules",
      "scope": "Set a customer's invoice to repeat weekly or monthly. The platform creates each period's invoice on schedule from its scheduled sweep, and you can pause or resume a schedule at any time.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.recurring-visit-billing",
      "title": "Recurring visit billing and skipped-visit exceptions",
      "scope": "Recurring service visits are billed once: each completed visit lands on one draft invoice in one billing period, and rerunning a period never creates a second invoice. Visits that were cancelled are listed as exceptions for office review and are never billed.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 13,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.seasonal-crew-planning",
      "title": "Seasonal crew planning",
      "scope": "Seasonal crew rotations can be previewed before anything changes. On the Jobs & Dispatch screen a dispatcher picks recurring visits and a new crew member, and sees each crew's shift minutes, booked minutes and open minutes per day before and after the move. Over-booked crews are flagged for review, not blocked. Only the owner confirms, and the confirm is all-or-nothing: a rotation whose visits or jobs changed after the preview is refused and nothing moves. Confirmed visits join each crew's route run for that day. Route history lists the moves and shows days late only for stops that were completed. Limited release; route-wide capacity by season and automatic rebalancing are not built yet.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 8,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.order-intake-fulfillment",
      "title": "Order intake to fulfillment",
      "scope": "Orders from reps, phone, email, or EDI are captured on the customer account, priced at the account's pricing tier, checked against credit status before confirmation, and routed to the warehouse for picking, packing, and shipping.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-inv-sales-order-intake"
      ],
      "historyCount": 10,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.backorders-fill-rate",
      "title": "Backorders and fill rate",
      "scope": "Short-shipped order lines are flagged as backorders with a customer notice, released for shipment when inventory arrives, and reported as fill rate and backorder aging.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-inv-backorder-lifecycle-fill-rate"
      ],
      "historyCount": 9,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.receivables-aging",
      "title": "Receivables aging by account",
      "scope": "Open invoice balances grouped by customer and by days past due, in current, 1-30, 31-60, 61-90 and 90+ day buckets, with totals.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.maintenance-requests",
      "title": "Maintenance requests and work orders",
      "scope": "Renter-submitted maintenance requests, from the portal or an inbound email, become work orders routed to a vendor or technician, track status to renter-confirmed completion, and escalate when they stall.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-pm-renter-maintenance-intake"
      ],
      "historyCount": 7,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.rental-applications",
      "title": "Rental applications and screening",
      "scope": "Rental applications are submitted, screened against the criteria you configure, and moved to lease preparation, with follow-up for missing documents.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-pm-rental-application-screen"
      ],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.rent-ledger-delinquency",
      "title": "Rent ledger and delinquency escalation",
      "scope": "Rent charges post on each lease's due date, and a missed payment moves through your configured notice, follow-up, and escalation steps, with delinquency aging by property and renter.",
      "kind": "capability",
      "status": "Implementation needs reconciliation",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Parts of this work are supported, but earlier descriptions conflict. Confirm the exact tools available for your account. The audit records the evidence and remaining work.",
      "backlogIds": [
        "industry-pm-rent-ledger-delinquency"
      ],
      "historyCount": 13,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.application-checklists",
      "title": "Application checklists and missing-item follow-up",
      "scope": "Each application carries a checklist of required information, and missing items trigger a follow-up before the quote is prepared.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-requirement-checklist"
      ],
      "historyCount": 12,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.insurance-servicing",
      "title": "Bind and policy servicing",
      "scope": "An accepted quote converts to a bound policy on the client record, and endorsement requests, certificates, and claims are tracked against that policy.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-insurance-quote-to-bind-servicing"
      ],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.insurance-book-analytics",
      "title": "Retention and book composition",
      "scope": "Renewal rate by producer, line, and client segment, and policies in force by line, carrier, and premium band.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-insurance-producer-dashboard"
      ],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.unit-scoped-operations",
      "title": "Unit-scoped customers, jobs and staff",
      "scope": "Customers, jobs and staff can be assigned to one of a company's units. A unit-limited account sees only its units' customers, jobs, staff, invoices, estimates, insurance claims, field checklists, notes, photos, route runs, time entries and shifts, plus its units' equipment, vehicles, allocations, availability and overrides. An asset or vehicle with no unit is hidden from unit-limited accounts. Bulk shift publishing is all-or-nothing: a batch that names another unit's shift is refused and nothing is published. Copy-week, fill and coverage work on the unit's own shifts and staff. Clock-in and clock-out, time approvals, the time CSV export, the overtime and crew-utilization reports, and photo export and expiry lists are limited to the account's units. Company-wide job revenue is left out of unit-limited crew figures. The fleet overview, vehicle condition, damage and breakdown records, safety reports and loads are limited to the vehicles and jobs at the account's units; a load belongs to the unit of its assigned vehicle. A load with no vehicle yet is listed and can be opened by a unit-limited account, read only, so nothing is missed; assigning, routing and logging on it stay with the unit of the vehicle. GPS position and geofence events are readable for the account's own vehicles. Procurement is limited to purchase work on the account's jobs. Stock balances, stock locations and vendors are company-wide and read-only for a unit-limited account, unless the Owner turns on \"Limit stock and vendor lists to each person's locations\" (off by default); when it is on, balances and stock locations follow each stock location's unit, and vendors are those used on jobs at the account's units. The physical-inventory API (/api/stock) follows the same switch for warehouse, stock, movement, allocation, supplier and purchase-order reads, with warehouses mapped to units. The labor-digest report is recomputed over the account's units, and a time entry can be moved to another business only when its unit is the account's. The cross-business labor report counts only the account's units' time entries. Freight rates, fuel contracts and index prices, transport estimates, audits, the fleet dashboard, GPS provider connectors and ingest, and weather stay closed to it, because they have no unit. Labor-hour tagging is not part of this yet.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.location-playbooks",
      "title": "Location launch playbooks and rollout of proven workflows",
      "scope": "An Owner can keep a launch playbook for a company (an ordered checklist, proven workflows and message templates) and roll it out to any of that company's units. Each unit receives its own copies, so later edits to the source do not change them. Copied workflows start as drafts that an Owner switches on for that unit. Rolling out again copies nothing twice, and a failed step can be fixed and re-run from where it stopped. Customer, job and other business records are never copied.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.cross-business-sharing",
      "title": "Cross-business sharing of staff, workflows and templates",
      "scope": "Share a staff member, a workflow or a content template from one of your businesses with another business in your account. A shared staff member can be assigned to work in that other business, while their pay and HR records stay with their home business and are never shown there. A shared workflow or template is copied into the other business as a draft when you choose to copy it; the copy is never switched on by itself. Revoking a share stops new copies and new assignments and leaves everything already made in place. Only an Owner, or someone who manages both businesses, can share, and nothing is ever shared with another account. Syncing later changes from the original into existing copies is not part of this yet.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.multi-location-reporting",
      "title": "Per-location P&L and comparison",
      "scope": "Revenue, labor cost, and the operating expenses recorded for each location, shown side by side across every location in the group. A location with no recorded expenses shows operating cost as not recorded, not as zero.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 14,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.property-occupancy",
      "title": "Portfolio occupancy, vacancy and turnover",
      "scope": "Occupied, notice-given and vacant units across the portfolio, with days vacant and vacancy and turnover rates by property and by unit type. The page refreshes every 30 seconds while it is open. A unit appears once a lease names it, so units with no lease are not counted yet.",
      "kind": "capability",
      "status": "Implementation needs reconciliation",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Parts of this work are supported, but earlier descriptions conflict. Confirm the exact tools available for your account. The audit records the evidence and remaining work.",
      "backlogIds": [],
      "historyCount": 4,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.franchise-unit-pnl",
      "title": "Per-unit P&L with cross-unit roll-up",
      "scope": "Revenue, labor cost, direct job cost and the operating expenses recorded for each unit, with a roll-up across all units and a profit after operating cost for each unit that has recorded expenses. A unit with no recorded expenses says to add expenses by location rather than showing a profit after operating cost. Expenses are recorded by unit from the same page. The page refreshes every 30 seconds while it is open.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.catering-events",
      "title": "Catering and event bookings",
      "scope": "A catering inquiry becomes an event booking with menu selections, headcount, deposit status, and staffing needs, followed through to the event and final invoice, with a pipeline of open and confirmed events.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-food-catering-event-record"
      ],
      "historyCount": 8,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.practice-pipeline-reporting",
      "title": "Practice pipeline reporting",
      "scope": "Unscheduled treatment value by provider and case type, and new-patient conversion from inquiry to booked to first visit, by source and month.",
      "kind": "capability",
      "status": "Planned scope retained",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Retained build requirement. This is planned work; working software and complete workflow checks are still required before use.",
      "backlogIds": [
        "industry-dental-recall-reactivation-reporting"
      ],
      "historyCount": 8,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.job-stages",
      "title": "Job stages, next actions and stall alerts",
      "scope": "Each stage of a job has a defined next action and, when you set one, an expected time. A job that stays in its stage past that time raises a high-priority task and an in-app notification for the Owner, once per job per stage. The Jobs screen shows how many jobs sit in each stage and how long the oldest has been there. Each stage move is recorded, and a move made from an out-of-date view is refused instead of overwriting the newer one.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.job-permits",
      "title": "Job permits & inspections",
      "scope": "Track each job's permits and required inspections with their status and dates. A job cannot be marked complete while any of its permits is still open or has failed inspection. Creates a My Work task before a permit expires or an inspection is due: 14 days and 3 days ahead, and once when overdue.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.field-quality-verification",
      "title": "Field quality verification",
      "scope": "Crew members mark each item on a job's quality checklist as passed or failed, with an optional note and photo. Every mark stays on record, and the job's result is derived from those marks and can hold completion until they pass.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.route-runs",
      "title": "Route runs for recurring visits",
      "scope": "Recurring property visits go onto a crew's route for the day, in the order you set. Each crew member sees a work order before leaving: the stops in order, the checklist for each visit, and the property's care instructions. A stop is completed once its required checklist items are done, and a completion replayed from an offline phone is recorded once. Re-sequencing never moves a stop the crew has already completed. A route map and weather-aware scheduling are not built yet.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 14,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.passenger-transport",
      "title": "Passenger transport: rider manifests and routing",
      "scope": "Riders for a church, school or other bus or van service have pickup and drop-off addresses, accessibility needs (wheelchair, car seat) and, for minors, guardians and an authorized pickup list. A transport route has a vehicle, a driver, a capacity and wheelchair spaces, and enrolling a rider past either limit is refused. Buses and vans can both be routed. Each run has a manifest showing who boards, at which stop and the expected time, and the driver marks each rider boarded, dropped off or absent. Stops follow the distance from rider addresses, starting and ending at the depot and venue, and riders without coordinates are listed as needing a location. A run that ends with a rider not dropped off or marked absent raises an in-app alert. Stop order uses distance estimates, not live traffic. Guardian messages (text or email) are off until an Owner turns them on and texting or email is set up. Once they are on, a guardian who has agreed to transport notices (recorded at enrolment or by staff) gets texts that say the bus is on the way with an estimated pickup or drop-off time, that a rider is running late (estimated), and that a rider was dropped off, each only if the guardian wants that type; a staff member can also send running-late or not-picked-up notices by clicking Notify guardians. Guardians can change their preferences from a link, and a STOP text stops all texts. Consent, opt-out and quiet hours apply, and the drop-off notice may bypass quiet hours if the Owner allows it. Estimates come from the planned stop order, not live traffic. Limited release.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 12,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.recurring-service-visits",
      "title": "Recurring service visits",
      "scope": "Recurring service agreements create their upcoming visits automatically, each as a draft job for you to review and assign. A visit is created once per due date, so a rerun never duplicates it.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 17,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.progress-billing",
      "title": "Progress billing from accepted estimates",
      "scope": "Bill an accepted estimate in stages. Each progress invoice is drawn from the estimate and the total billed cannot exceed the estimate's amount.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.customer-equipment",
      "title": "Customer equipment & service history",
      "scope": "Record the equipment installed at each customer's site, with its warranty details, and see every job that has serviced it.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 6,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.purchase-orders-job-link",
      "title": "Purchase orders linked to jobs",
      "scope": "Tag a stock purchase order with the job it is for, so the materials you order can be traced back to that job.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 5,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.service-request-inbox",
      "title": "Service request inbox",
      "scope": "Service and repair requests sent from your customers' portal land in one staff inbox, where your team can review each one, add internal notes, and convert it into a job.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.approval-gated-adjustments",
      "title": "Two-person approval for retainage and invoice payment voids",
      "scope": "A retainage release or an invoice payment void can be requested by a billing user and is applied only after a different Owner, General Manager or Finance user approves it. The requester cannot approve their own request, a request nobody decides within seven days expires without applying, and every request, decision and applied change is recorded in the audit log. The Owner can turn on a setting that makes these two actions go only through that request, and off again, and each change is recorded. Invoice payment voids and construction draws show the request and the pending approvals.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.punch-list-closeout-gate",
      "title": "Punch list & closeout gate",
      "scope": "Punch-list items on a project are tracked from identification to verified fix, with the fixer and a different verifier recorded and every step kept in the item's history. A final draw cannot be approved or paid, retainage cannot be released, and a project cannot be closed while any item is still open; the system answers with the list of open items.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 7,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.toolbox-talks-required-postings",
      "title": "Toolbox talks & required postings",
      "scope": "Toolbox talks are recorded per project with the topic, the date and the company employees who attended. A repeat of the same talk on the same date is flagged for review, never merged into the first. Required postings are kept as a checklist per project with the location, an optional expiry date and an attached photo held in the evidence store. The Forge keeps these as records only: it does not decide whether a talk or a posting meets any legal requirement.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.panel-schedules",
      "title": "Panel schedules & versioned PDF documentation",
      "scope": "Panel schedules are kept per job: each panel has a name, a location and a list of circuits with the circuit number, description, pole count, breaker rating and wire size, and the circuits are searchable. Each render saves a PDF of the schedule to the job as a new numbered version, and earlier versions are kept. The PDF is documentation only. The Forge does not calculate loads and does not check any code requirement.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.retainage-release-flags",
      "title": "Retainage release flags at substantial completion",
      "scope": "A project records its contract substantial-completion date. Once that date passes, its paid retainage is flagged as eligible for release, the project shows how much is collectible now, and a draft release invoice for that amount is created for a person to review. Nothing is sent, charged or posted until someone approves it. Only an Owner, General Manager or Finance user can release retainage, and release is blocked while the project has open punch-list items. When your business turns on approval for adjustments (off by default), each release also needs a second approver: a different Owner, General Manager or Finance user.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 10,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.draw-field-progress-check",
      "title": "Draw check against field progress",
      "scope": "Draw requests are checked against the field progress logged for each schedule-of-values line, from the moment a draft is saved. A claimed percent complete above the latest logged value, beyond the tolerance the business sets, flags the draw for review before it is submitted. A flagged draw can be submitted only with a reason recorded by an Owner or General Manager. The check never changes a draw's amount or retainage. Superintendents can attach field photos to a progress entry as evidence.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 8,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.superintendent-daily-log",
      "title": "Superintendent daily log",
      "scope": "Superintendents will log each project's daily progress, crew on site and conditions, and that log will feed draw checks and the project record. Planned. Not available today.",
      "kind": "capability",
      "status": "Implementation needs reconciliation",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Parts of this work are supported, but earlier descriptions conflict. Confirm the exact tools available for your account. The audit records the evidence and remaining work.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.portfolio-schedule-board",
      "title": "Portfolio schedule board",
      "scope": "The schedule board shows every active dated job across your companies, in one list. Each job shows its crew's overlapping jobs as a conflict. Finish-to-start dependencies between jobs show the slack in days and flag a successor whose predecessor now runs past its start, or whose predecessor has a weather delay, and every job further down a chain from a weather delay. You add and remove dependencies from the board. Moving a job never moves its dependents. A dependency that would create a loop is refused and nothing is saved. Subcontractor bookings show as their own lane with the job they are on, and an overlapping booking is flagged. Project milestones show as dated markers on the board.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "people-hr.technician-credentials",
      "title": "Technician licence and certification records",
      "scope": "Technician records carry their licenses and certifications with expiration dates. Owners verify each one, a document can be linked to it, and the person who manages the technician gets a task 30 days before it expires.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.qualification-based-dispatch",
      "title": "Qualification-based technician dispatch",
      "scope": "Jobs that require a specific license or certification are flagged, and dispatch only offers a job to technicians whose recorded, unexpired credentials cover it. A shift tied to a job cannot be assigned or published to a technician who does not qualify.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.missed-checkin-alerts",
      "title": "Missed check-in alerts",
      "scope": "A scheduled job whose crew has not arrived by the end of its arrival window creates one same-day task for your office. A clock-in against the job or an arrived tap confirms arrival. Limited release.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 3,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.overtime-exposure-alerts",
      "title": "Real-time overtime alerts",
      "scope": "While a pay week is still open, managers see each employee's projected overtime from recorded and scheduled hours, with projected cost, and each employee is warned once per week before a daily or weekly overtime threshold is crossed. Overtime cannot yet be shown by location.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 7,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.overtime-by-location",
      "title": "Overtime by location",
      "scope": "The overtime report shows overtime by location. Each worker's overtime is worked out for each week first, then shared across the locations where that worker logged time that week, in proportion to the minutes at each location. A time entry's location is its job's location, or the worker's home location when the job has none. Time with neither is shown as unassigned. An account limited to specific locations sees only the time in its own locations, so a worker's overtime can read lower there than across the whole company.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.crew-utilization-trends",
      "title": "Crew utilization and per-person trends",
      "scope": "For each crew member, managers see billable hours against published shift hours for each of the last 12 complete weeks, in your timezone. Hours are split into approved and unapproved, and each person's callback rate, jobs worked, revenue per billable hour, close rate and median lead response time are shown by week. A week with no data reads 'not enough data', not zero. Employees see only their own trend. Moving hours between crew members from these figures is not built.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.crew-performance-balancing",
      "title": "Crew balancing suggestions and apply",
      "scope": "Efficiency is measured per job against the typical labor hours for that service line, so job mix does not favour anyone. Managers see each person's efficiency index and each crew's average labor per job, once a person or crew has at least five scored jobs in the last 90 days; before that it reads 'not enough jobs yet'. Callback rework is reported separately and does not count toward speed. Balancing suggests single swaps between crews on booked jobs that narrow the gap between crew averages, skipping any swap that breaks a credential, service area, company assignment or existing booking. Each suggestion shows the crew averages before and after. Nothing moves until a manager applies it, and every applied move is audit-logged. Emergency and urgent jobs are never balanced. Pro plan.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.crew-performance",
      "title": "Crew performance and expedited crew recommendation",
      "scope": "Efficiency is measured per job against the typical labor hours for that service line, so job mix does not favour anyone. Managers see each person's efficiency index and each crew's average labor per job, once a person or crew has at least five scored jobs in the last 90 days; before that it reads 'not enough jobs yet'. Callback rework is reported separately and does not count toward speed. Emergency and urgent jobs get the fastest qualified crew instead. Employees see only their own row.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 0,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.labor-cost-digest",
      "title": "Daily labor-cost digest with budget variance",
      "scope": "Each morning, owners, general managers and finance get an in-app labor-cost digest for each entity covering the previous day: hours and cost for approved and not-yet-approved time, each job against its budget, the most over-budget jobs, and projected overtime. Each day's digest is written once and a rerun adds nothing. Email delivery is not part of this yet.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "core",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 8,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.callback-tracking",
      "title": "Callback tracking",
      "scope": "Callback hours are recorded as their own labor category, and each job shows its callback hours and cost as rework by crew member. Reporting callbacks as completed versus first-visit completions, by job type, is not available yet. Planned.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.kpi-threshold-alerts",
      "title": "KPI threshold alerts",
      "scope": "You set limits on job gross margin, job cost used against budget, lead response time, and how long an open quote has been out, for the whole business or one company. When a job, lead or quote crosses its limit, the platform adds an in-app alert for Owners, Finance and General Managers with a link to that record. Each record alerts once per day for each limit, and a record with no figures yet is shown as not enough data rather than alerting. An alert nobody acknowledges escalates once to the General Manager or Owner as a task after the escalation rule window you set. Alerts stay inside the app; nothing is sent to customers.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "Confirm requirements",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 2,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.scheduled-reports",
      "title": "Scheduled report delivery",
      "scope": "Reports will be sent by email on the daily, weekly or monthly schedule you choose, without anyone assembling them by hand. Planned. Not available today.",
      "kind": "capability",
      "status": "Implementation needs reconciliation",
      "registryStatus": "planned",
      "plan": "Confirm requirements",
      "evidence": "Parts of this work are supported, but earlier descriptions conflict. Confirm the exact tools available for your account. The audit records the evidence and remaining work.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.payroll-export",
      "title": "Payroll export with job allocation",
      "scope": "Export approved hours to a payroll CSV for a chosen pay period. Each hour is allocated to its job and split into regular and overtime, using your overtime settings and your local time zone. Only approved hours are exported. Pending and rejected hours are listed and left out. Each exported hour is locked, so exporting the same period again never duplicates it. When an exported hour is corrected, withdrawn or removed, the next export carries a reversal of what was exported, so the totals across exports match the approved hours. The Gusto-shaped file is checked before it is made: a row without an employee mapping, without a job, with an unknown pay type or with a bad date is refused and listed. Hours already in an earlier Gusto file are listed as manual Gusto adjustments and left out of the file. Owner and Finance only. The Forge does not run payroll, withhold tax or move money.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.gusto-submit-from-forge",
      "title": "Send payroll hours to Gusto from Forge",
      "scope": "Finish payroll hours in Forge and send them to Gusto. Match your employees and jobs to Gusto once, review the exact hours for each employee and job, and confirm. Forge writes them into your unprocessed Gusto payroll for that pay period. Sending the same export again replaces the hours rather than adding them. Gusto still runs the payroll; the Forge does not calculate taxes or move money. Hours that belong to a period Gusto has already processed are listed as exact steps to enter in Gusto, and you mark each one done. Owner and Finance only. Every send is recorded in the audit log.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.lead-response-time-reporting",
      "title": "Lead response time reporting",
      "scope": "The first time you log or send an outbound email, call, or text to a lead, or complete a task linked to that lead, its first contact is recorded once. Average, median and worst response time, and open age for leads not yet contacted, are reported by person and by source over any date range, in calendar time.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "business-api.unanswered-thread-alerts",
      "title": "Unanswered customer thread alerts and open-thread report",
      "scope": "When a customer writes by email or text and nobody replies within the window you set, the Forge opens one high-priority task and an in-app notification for the manager or owner role, once per unanswered episode. The alert clears when a reply goes out. A window can count only your business hours when your location has them set. An open-thread report lists every customer still waiting, with the team member who owns the thread and how long it has waited. Nothing is sent to the customer.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "start",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "integrations.industry-tool-connectors",
      "title": "Industry tool connectors (read-only imports)",
      "scope": "Owners can connect a supply house price list, a load-calculation report, a code-reference extract, a claim estimate export, or an EagleView roof measurement report. Each import only reads what the tool exports and never writes back to it. Re-importing the same records adds no duplicates, and a failed import shows up in the integrations error queue.",
      "kind": "capability",
      "status": "Listed capability — confirm availability",
      "registryStatus": "controlled-beta",
      "plan": "pro",
      "evidence": "Listed automated checks passed, with different levels of coverage. Confirm that the tool works for your account, with the access, setup and connected services you need.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "Current source registry and historical website snapshots"
    },
    {
      "id": "REQ-A-01",
      "title": "Bid pipeline by stage, win rate and bid-to-contract carry-over",
      "scope": "- Award-convert twice on the same bid returns the first project and creates no second project (idempotent)\n- Win rate per estimator/type/client uses latest reviewed outcome and is suppressed below the existing minimum sample\n- Withdrawn or superseded bid revision is excluded from open pipeline with no orphan contract lines\n- Award fails atomically if SOV totals do not match the bid total; no partial project is left behind",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-01"
      ],
      "historyCount": 5,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-02",
      "title": "Subcontractor portal: scoped login to own assignments and compliance",
      "scope": "- A subcontractor sees only projects where it is on the roster; cross-sub documents and draw amounts return 404\n- Compliance upload by sub creates a pending document; a duplicate upload of the same certificate number is rejected with the existing record\n- Revoking a grant during an open upload fails the upload and stores nothing\n- Expired required document appears to the sub with the due date; every sub read is audited",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-02"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-03",
      "title": "Project schedule board: portfolio, crew and sub timelines, dependencies, conflicts",
      "scope": "- Adding a dependency that creates a cycle is rejected and nothing is written\n- Moving a predecessor past a successor's start flags the successor with slack < 0 without changing its dates\n- Concurrent edits to the same job return a version conflict and the second writer must reload\n- Board shows only entities in the principal's scope; counts match the underlying job list",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-03"
      ],
      "historyCount": 7,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-04",
      "title": "Crew and subcontractor double-booking flags on assignment",
      "scope": "- Assigning a crew to an overlapping window returns a conflict listing the conflicting job id; no assignment is written\n- Same check runs for subcontractor roster entries\n- Two simultaneous assignments of the same crew: exactly one succeeds (optimistic version check)\n- Cancelling the conflicting job clears the flag on the next read",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-04"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-05",
      "title": "Field progress log by SOV line and draw verification",
      "scope": "- Progress entry is append-only; correcting a value creates a new entry that references the one it replaces\n- Draw submit with requested % above latest logged % is held with a mismatch flag, not silently accepted\n- Resubmitting the same draw (retry) returns the existing draw id and creates no second draw\n- Draw submitted while a newer progress entry is being written uses the entry version recorded at submit",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-05"
      ],
      "historyCount": 8,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-06",
      "title": "Punch list and closeout gate on final billing",
      "scope": "- Final draw or pay on a project with open punch items returns 409 with the item list; no draw state change\n- Resolve then verify is required; resolved-but-unverified items still block final billing\n- Duplicate punch item submission from double-click is deduplicated on (project, description, location)\n- Reminder fires once per item per due date even if the sweep runs twice",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-06"
      ],
      "historyCount": 5,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-07",
      "title": "Retainage release-eligibility flags at substantial completion",
      "scope": "- Flag is not created before the substantial-completion date and is created exactly once on that date\n- Release still requires Owner/Finance approval; the flag never creates a draw or invoice\n- Changing the completion date after the flag fires re-evaluates and clears the flag if the date moves back\n- Retainage amounts equal the frozen per-draw values, not recomputed from current retainage_pct",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-07"
      ],
      "historyCount": 6,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-08",
      "title": "Field change orders routed to owner or architect acknowledgment, then billed",
      "scope": "- Submitting the same change order twice from a flaky connection creates one record (client idempotency key)\n- Declined change order never reaches an invoice; acknowledged one reaches exactly one invoice line\n- Cancelling an acknowledged but unbilled change order requires Owner approval and writes a reversing entry\n- Apply-to-invoice failure leaves the CO in acknowledged-unbilled state and retries without double-billing",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-08"
      ],
      "historyCount": 5,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-09",
      "title": "Compliance document states: 30/60/90-day windows and PM alerts",
      "scope": "- Each required document shows exactly one bucket; moving from 60 to 30 days produces one new alert\n- Sweep rerun in the same window produces no duplicate alert\n- Document renewed before the bucket date clears the alert and the warning on future draws\n- Draw naming a sub with an expired required document still gets the non-blocking warning (existing behaviour)",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-09"
      ],
      "historyCount": 3,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-10",
      "title": "Contractor licence and bond records with expiry alerts",
      "scope": "- Record requires jurisdiction and expires_on; expired record shows on the business overview\n- Alert fires per threshold once; renewal updates the record without deleting history\n- Two records for the same jurisdiction and type are allowed only with distinct numbers\n- No copy or UI claims state verification",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-10"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-11",
      "title": "Toolbox talks and required postings on project and job records",
      "scope": "- Toolbox talk with attendees who are not employees of the company is rejected\n- Duplicate talk on same project, date and topic is flagged, not silently merged\n- Posting evidence attaches to the record and survives job archive\n- Incident log per project lists both record types",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-11"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-12",
      "title": "Certified-payroll report by project and week",
      "scope": "- Totals reconcile to approved time entries for the week; unapproved entries block generation with a list\n- Regenerating an approved week returns the locked report, not a new one\n- Entries changed after lock create a correction record and mark the report stale\n- Report never states agency acceptance",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-12"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-A-13",
      "title": "Draw/AIA billing and estimating-tool connectors",
      "scope": "- Export of the same draw twice updates the vendor record by external key instead of creating a second one\n- Vendor timeout after send leaves draw state 'sync_pending' and retries with the same key\n- Credential revoked mid-sync stops the run and surfaces in integrations.error-queue\n- No sync occurs without tenant credentials",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "A-13"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-B-01",
      "title": "Inbound call and missed-call lead capture with follow-up task",
      "scope": "- Provider retry of the same call event creates one lead (keyed on provider call id)\n- Call webhook arriving before the customer record exists creates the record once, not twice\n- Missed call with no connection creates nothing\n- Booking from a call that conflicts with a slot returns a conflict and leaves the lead open",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "B-01"
      ],
      "historyCount": 7,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-B-02",
      "title": "Emergency triage queue, priority dispatch and displaced-job handling",
      "scope": "- Accepting an emergency that displaces N jobs writes all N flags and one task each in one transaction or none\n- Two dispatchers displacing the same job: one wins, the other gets a conflict\n- Displacement cancelled: flags and tasks are reversed; no customer task remains open\n- Triage rule change is audited and does not re-triage existing queue items without confirmation",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "B-02"
      ],
      "historyCount": 5,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-B-03",
      "title": "Skill, certification, service-area and availability matching in dispatch",
      "scope": "- Candidate failing a required certification is listed as ineligible with reason code, not omitted\n- Ranking is deterministic for identical inputs (tie-break by employee id)\n- Missing skills data yields 'not enough data', never a zero score\n- Existing weights unchanged; regression test on current suggestion fixtures",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "B-03"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-B-04",
      "title": "Certification expiry enforced at assignment; technician licence records",
      "scope": "- Assignment to a job whose date is after a cert expiry returns certification_expired\n- Renewal updates expiry; assignments made before renewal are not retroactively changed\n- Alert created once per cert per 30-day window\n- Missing expiry date treated as non-expiring and documented on the record",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "B-04"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-B-05",
      "title": "Parts and materials per job: PO-to-job usage, need-by staging, reconciliation",
      "scope": "- Issuing usage to a job twice from one scan produces one usage record (idempotency key)\n- Receipt against a closed PO line is rejected; partial receipt updates remaining quantity\n- Reconciliation delta equals ordered minus received minus used, and totals match ledger\n- PO with need-by after job start is flagged, not blocked",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "B-05"
      ],
      "historyCount": 6,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-B-06",
      "title": "Insurance claim and supplement tracking on jobs",
      "scope": "- Duplicate claim number for the same carrier is rejected\n- Approved supplement total never exceeds requested total; decrease creates a correction entry\n- Supplement approved after invoicing creates a separate invoice, not an edit\n- No carrier connection is implied in UI",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "B-06"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-B-07",
      "title": "Panel schedule and load documentation templates",
      "scope": "- Rendered PDF is stored once per version; re-render creates a new version, not an overwrite\n- Circuit fields are stored structured and searchable\n- No load calculation is performed or implied by the template",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "B-07"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-B-08",
      "title": "Seasonal demand history and pre-booking window",
      "scope": "- Booking inside an open pre-booking window does not exceed capacity (concurrent bookings: one wins)\n- History report reproduces counts from job records\n- Any projection is labelled as prior-period average with the method shown",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "B-08"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-B-09",
      "title": "Industry tool connectors (HVAC design, supply house, code reference, roofing measurement, claim platforms)",
      "scope": "- Import retry after timeout does not duplicate records (vendor key)\n- Connector without credentials is absent from UI\n- Failed import visible in integrations.error-queue",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "B-09"
      ],
      "historyCount": 5,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-C-01",
      "title": "Turnover request to job; crew assignment by location; live arrival; missed-arrival flags",
      "scope": "- Duplicate check-in events from device retry create one arrival\n- Job with no expected arrival never produces a missed-arrival flag\n- Arrival recorded out of order (offline flush) is attached to the correct job window\n- Missed-arrival task created once per job per day",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "C-01"
      ],
      "historyCount": 5,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-C-02",
      "title": "Required completion evidence gate: photos and checklist before close",
      "scope": "- Completing a job without required evidence returns 409 listing missing items; status unchanged\n- Concurrent completion attempts: one transition wins, the other sees completed and returns 200 no-op\n- Evidence deleted after completion does not reopen the job; audit records the deletion\n- Retention note: photos expire on the field-photos policy; required-evidence claims need retention set to the claim window",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "C-02"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-C-03",
      "title": "Property care instructions, versioned, shown to assigned crew",
      "scope": "- Edit creates a new version; crew sees the current version at job open time\n- Two simultaneous edits: second writer gets a version conflict\n- Instructions for a property with no assigned crew are visible to Office only",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "C-03"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-D-01",
      "title": "Recurring route run: ordered stops, crew work order, checklist per visit",
      "scope": "- Re-sequencing while crew is on route does not reorder completed stops\n- Offline crew device replays visit completions without duplicates\n- Visit with no checklist template yields an empty work order, not a failure",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "D-01"
      ],
      "historyCount": 3,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-D-02",
      "title": "Seasonal crew planning: route capacity, rotation preview, route history",
      "scope": "- Rotation commit is all-or-nothing; a failed property move rolls back the batch\n- Preview shows capacity delta per crew before commit; stale preview is rejected on commit\n- Route history shows lateness only where completion data exists",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "D-02"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-D-03",
      "title": "Dispatch board: overdue visits, open crew slots, location filter",
      "scope": "- Completing a visit removes it from overdue on next read\n- Open-slot minutes per crew per day equal shift minutes minus scheduled minutes\n- Board read consistent with a concurrent assignment: stale slot is rechecked at assign time",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "D-03"
      ],
      "historyCount": 3,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-D-04",
      "title": "Weather-day logging, reschedule cascade and overdue flags",
      "scope": "- Logging the same weather day for the same scope twice creates one record\n- Reschedule commit moves a job only if the target slot is still open; otherwise conflict and no partial moves\n- Cancelled weather day reverses flags and proposals\n- No external forecast is required; forecast connector is D-07",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "D-04"
      ],
      "historyCount": 7,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-D-05",
      "title": "Customer delay notices for weather and schedule changes",
      "scope": "- Notice enqueued once per job per weather event even if the flag is recomputed\n- Customer without consent is never sent a notice; suppression shown to dispatcher\n- Provider failure keeps notice in failed-retryable state; retry does not resend a success",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "D-05"
      ],
      "historyCount": 3,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-D-06",
      "title": "Equipment out-of-service status blocks new allocation",
      "scope": "- Allocation to an out-of-service asset returns 409 naming the asset; no allocation row written\n- Setting out-of-service with an active allocation flags the allocation and does not silently cancel it\n- Return to service is audited and re-enables allocation",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "D-06"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-D-07",
      "title": "GPS/fleet and weather-forecast connectors",
      "scope": "- Duplicate provider event id is ignored\n- Out-of-order fix does not move a vehicle backwards in time\n- No adapter means no UI claim",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "D-07"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-01",
      "title": "Cost-code budgets, budget variance, cost at completion",
      "scope": "- Posting the same cost entry twice (retry) is counted once (unique source key)\n- Changing a cost code on a posted entry creates a reversing and a new entry; totals unchanged\n- Variance = budget - actual - committed per code and reconciles to project total\n- Projection with no budget-to-complete shows 'not enough data', not zero",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-01"
      ],
      "historyCount": 5,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-02",
      "title": "Partial invoice payments, balances and partially-paid status",
      "scope": "- Payment with idempotency key recorded twice returns the first payment; balance changes once\n- Overpayment is rejected; full payment sets paid only when balance is zero\n- Partial failure: payment row written but ledger posting fails leaves a pending-post state retried by sweep; never double-posts\n- Reversal writes a compensating payment; original stays visible\n- Backfill maps every existing paid invoice to one payment equal to its total, verified by row count and sum",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-02"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-03",
      "title": "Pay-now from invoice link through connected processor",
      "scope": "- Stripe webhook redelivered: one payment recorded (event id key)\n- Checkout created then abandoned: no payment; balance unchanged\n- Webhook arriving before invoice commit is retried, not dropped\n- No Pay button without connected processor",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-03"
      ],
      "historyCount": 3,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-04",
      "title": "Receivables aging and overdue invoices by customer and property",
      "scope": "- Bucket totals sum to total open balance (reconciliation check on every run)\n- Invoice paid during report generation is either in or out, never double-counted (snapshot time)\n- Respects entity scoping",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-04"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-05",
      "title": "Approval-gated adjustments: change-order, retainage, draw and invoice corrections",
      "scope": "- Requester cannot approve own adjustment (409)\n- Approval retried after timeout does not apply twice\n- Pending approval auto-expires without applying\n- Every adjustment writes an audit event with before/after",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-05"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-06",
      "title": "Invoice created automatically on job completion (idempotent)",
      "scope": "- Re-completing a job (reopen then complete) does not create a second invoice\n- Workflow retry after partial failure reuses the invoice created by the first attempt\n- Auto-send never happens without the Owner setting\n- Job with an accepted estimate uses the estimate totals",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-06"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-07",
      "title": "Consolidated invoices across a customer's properties; per-property option",
      "scope": "- A job can appear on at most one open invoice (guard against concurrent selection)\n- Cancelling a consolidated invoice releases its jobs\n- Totals equal sum of selected job amounts",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-07"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-08",
      "title": "Recurring billing from completed visits; skipped-visit exceptions",
      "scope": "- Rerunning the period sweep does not create a second invoice for the same period\n- Visit billed in one period cannot be billed in another\n- Missed visit appears as exception, not a zero line",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-08"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-09",
      "title": "Renewal calendar across policies, leases, agreements; lead-time choices; renewal tasks",
      "scope": "- Renewal task created once per agreement per lead-time point even if sweep reruns\n- Changing end date reschedules the task and does not duplicate it\n- Same underlying record never appears twice in the calendar",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-09"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-10",
      "title": "Renewal and retention reporting",
      "scope": "- Renewal rate = renewed / due in period, with denominator shown\n- Renewal recorded twice from retry counts once\n- Revenue retained equals contract value of renewed items",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-10"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-11",
      "title": "Labor categories (drive, setup, callback, non-billable); callback and rework cost",
      "scope": "- Backfill assigns production to every existing entry; hours total unchanged\n- Category change after approval requires correction record\n- Callback link to a job outside 30-day window rejected unless override",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-11"
      ],
      "historyCount": 3,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-12",
      "title": "Overtime warnings before threshold, with projected cost",
      "scope": "- Warning fires once per employee per threshold per week; rerun does not repeat\n- Projection uses recorded and scheduled hours and matches computeOvertimeForWeek on the same inputs\n- Daily threshold honoured when set",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-12"
      ],
      "historyCount": 5,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-13",
      "title": "Time-entry approval queue, irregular clock-time and unapproved-hour flags",
      "scope": "- Self-approval rejected\n- Approving an already-approved entry is a no-op\n- Flags cleared on approval and audited\n- Queue ranking reproducible from entries",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-13"
      ],
      "historyCount": 3,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-14",
      "title": "Job cost roll-ups by service line, client, crew, location; cost-per-unit; client margin",
      "scope": "- Sum of group rollups equals sum of per-job economics for the same filter (reconciliation test)\n- Entity isolation: no roll-up merges rows across entities without explicit portfolio scope\n- Jobs with missing dimension appear in an 'unassigned' group, not dropped\n- Cost per unit shows 'no unit defined' rather than dividing by zero",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-14"
      ],
      "historyCount": 6,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-15",
      "title": "Configurable KPI thresholds, margin alerts and record-linked alerts",
      "scope": "- Alert fires at most once per record per day while threshold stays crossed\n- Threshold edit mid-day re-evaluates and does not re-fire for unchanged crossings\n- Metric with no data produces 'not enough data', never a fire\n- Alert deep-links to the triggering job, customer, employee or deal",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-15"
      ],
      "historyCount": 8,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-16",
      "title": "Escalation of untouched or overdue items to a manager",
      "scope": "- Escalation fires once per item per level; sweep rerun creates no duplicate\n- Response (contacted, reply, completed) before window stops escalation with no item created\n- Partial failure creating work item leaves no escalation record, so the next sweep retries\n- Escalation log visible in audit",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-16"
      ],
      "historyCount": 7,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-17",
      "title": "Lead routing by service and availability (beyond round robin, team, territory)",
      "scope": "- Round-robin behaviour unchanged (regression on existing fixtures)\n- Concurrent leads with round robin assign distinct sequence positions\n- Assignment record names the rule that matched",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-17"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-18",
      "title": "Live KPI overview: job volume, conversion, drill-down, freshness and automated-message volume",
      "scope": "- Every KPI carries formula and as-of time (metric provenance)\n- Drill-down list totals equal KPI value at same as-of time\n- Recomputation on refresh does not double count a record written during compute (snapshot time)",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-18"
      ],
      "historyCount": 6,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-19",
      "title": "Crew utilization and per-person performance trends",
      "scope": "- No-data week shows 'not enough data', not zero\n- Trend uses 12 complete weeks and excludes the current partial week\n- Employee cannot see peers' metrics",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-19"
      ],
      "historyCount": 3,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-20",
      "title": "First-contact response time by source and person",
      "scope": "- First contact recorded once; later contacts do not change it\n- Leads never contacted show open age, not excluded\n- Average and max reproduce on a fixture set",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-20"
      ],
      "historyCount": 5,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-21",
      "title": "Forward revenue pace from booked and in-progress work",
      "scope": "- Cancelling a scheduled job reduces pace on next read\n- Pace shows inputs and method; no forecast accuracy claim",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-21"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-22",
      "title": "Customer churn-risk flags from explicit rules",
      "scope": "- Each flag lists the rule and evidence record ids\n- Flag cleared when rule no longer holds; no duplicate active flags per customer per rule",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-22"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-23",
      "title": "Portfolio consolidated view: revenue by business, labor, pipeline, risk flags",
      "scope": "- Portfolio totals equal sum of entity totals, each row tagged with entity_id\n- No cross-entity write path introduced",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-23"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-24",
      "title": "Estimate aging, stale-close prompts and office overdue view",
      "scope": "- Auto-close runs once per estimate; a customer accept during the same sweep wins (estimate state checked inside the write)\n- Prompt not repeated for same estimate until state changes\n- Follow-up execution reservation prevents duplicate queued communications on sweep retry",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-24"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-25",
      "title": "Estimate decline reasons and win/loss reporting by salesperson",
      "scope": "- Declining an estimate requires a reason; a retry does not create a second decline event\n- Win rate reports sample size and hides below minimum\n- Revenue won plus lost plus open equals total estimate value per period",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-25"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-26",
      "title": "Estimate view and email-open tracking",
      "scope": "- Repeated link loads record one view per session, not one per request\n- Email-open event absent when no provider; UI does not imply opens",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-26"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-27",
      "title": "Lead conversion by source; revenue awaiting response; aging opportunity value",
      "scope": "- Converted lead counted once even if converted twice\n- Totals reconcile to lead list at same as-of time",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-27"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-28",
      "title": "Follow-up call tasks and follow-up coverage report",
      "scope": "- Policy run twice creates one task per estimate per due date\n- Task completed before due is not counted late",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-28"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-29",
      "title": "Triggers for inactivity and enrollment-status change; renewal trigger reuse",
      "scope": "- Inactivity trigger fires once per customer per window\n- Enrollment change emits one event per status transition; replays ignored",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-29"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-30",
      "title": "Unanswered-thread alerts; open-thread report by customer and team",
      "scope": "- One alert per thread per window; reply clears it\n- Inbound duplicate from provider retry does not reset the clock",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-30"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-31",
      "title": "Customer commitments tracker (promises and delivery)",
      "scope": "- Marking delivered twice keeps one delivered event\n- Overdue alert once per day per commitment",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-31"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-32",
      "title": "One communication timeline across text, email and call (auto-logging)",
      "scope": "- Provider webhook retry creates one timeline entry\n- Unmatched number creates a review item, not a customer",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-32"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-33",
      "title": "Outbound SMS and email through tenant-connected providers (shared messaging layer)",
      "scope": "- Send retried after timeout uses the same message key; recipient gets one message\n- Suppressed recipient never receives; attempt logged\n- No connection: send disabled with reason, message kept queued",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-33"
      ],
      "historyCount": 6,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-34",
      "title": "Job stage model: next action, expected time per stage, stall alerts, stage pipeline",
      "scope": "- Stage transition is version-checked; concurrent move: one wins\n- Stall alert once per job per stage\n- Existing status enum and job API unchanged (regression)\n- Backfill maps existing jobs to a default stage; counts equal",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-34"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-35",
      "title": "Stage-based confirmations, reminders and customer status link",
      "scope": "- Stage change sends at most one reminder per stage\n- Stage reverted and re-entered sends again only after 24h",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-35"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-36",
      "title": "Post-job review and referral requests",
      "scope": "- Completing a job queues one request; recompletion does not\n- Customer who already responded is not asked again",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-36"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-37",
      "title": "Renewal outreach and review-invitation cadence",
      "scope": "- Step runs once per renewal per cadence point\n- Consent revoked before step: step skipped and logged",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-37"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-38",
      "title": "Automatic sync to accounting, payroll and other connected systems",
      "scope": "- Push retry after timeout uses external key; no duplicate records\n- Conflicting edits on both sides: conflict queued for review, not overwritten\n- Failed sync visible per system with last successful run",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-38"
      ],
      "historyCount": 3,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-40",
      "title": "On-time completion and turnover timing reporting",
      "scope": "- On-time flag set once at completion and not recomputed on later edits to the schedule\n- Turnover intervals computed only where all three timestamps exist; missing ones shown as not enough data\n- Weather-delayed jobs appear in their own group, totals still reconcile",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-40"
      ],
      "historyCount": 4,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-41",
      "title": "Payroll export of approved hours with job allocation (payroll provider)",
      "scope": "- Re-export of the same period updates the provider batch by key, never duplicates hours\n- Unapproved entries are excluded and listed\n- Provider timeout leaves period in export_pending and retries with same key",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-41"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-42",
      "title": "Daily labor-cost digest with budget variance (in-app; email when connected)",
      "scope": "- One digest per cadence point; rerun does not duplicate\n- Digest totals equal E-01 variance at the snapshot time stamped on the digest",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-42"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-E-43",
      "title": "Scheduled KPI report delivery (daily, weekly, monthly)",
      "scope": "- Scheduled run creates one snapshot per cadence point\n- Without provider the in-app copy exists and email is shown as not sent",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "E-43"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-F-01",
      "title": "Per-location reporting, comparison and threshold alerts (franchise, restaurants)",
      "scope": "- Every location report uses the same metric definitions (provenance check)\n- Ranking ties are deterministic\n- Location without data is excluded with a visible reason",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "F-01"
      ],
      "historyCount": 3,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-F-02",
      "title": "Location (unit)-scoped customers, jobs and staff",
      "scope": "- Unit manager cannot read another unit's customers (404)\n- Migration backfills existing records to default unit with row count check\n- Cross-unit transfer is an audited two-step operation",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "F-02"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-F-03",
      "title": "Location launch playbook and rollout of proven workflows (copies, not links)",
      "scope": "- Applying to N entities twice does not create 2N copies (idempotent per target)\n- Partial apply failure rolls back the failed target only and reports it\n- No customer or job record is copied",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "F-03"
      ],
      "historyCount": 2,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-F-04",
      "title": "Share staff, workflows and templates across businesses",
      "scope": "- Updating a shared template creates a new version applied per entity by explicit action (not silent)\n- Entity without permission cannot see shared staff detail\n- Unshare leaves local copies intact",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "F-04"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-F-05",
      "title": "Cross-business schedule with hour allocation to the correct business",
      "scope": "- Allocation split sums to total hours of each entry (no rounding loss)\n- Overlapping shifts across entities flagged by A-04 rule\n- Allocation change after approval uses correction record",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "F-05"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-F-06",
      "title": "Multi-business compliance calendar (licences, certifications, insurance, regulatory deadlines)",
      "scope": "- Calendar items are user-entered deadlines; no regulatory content is generated\n- Escalation once per item per level\n- Entity admin sees only their entity's items",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "F-06"
      ],
      "historyCount": 1,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "REQ-M-01",
      "title": "Mapping correction: geofencing is not a remedy for no-shows, care instructions or live status (no build)",
      "scope": "- Pain rows resolve to the capabilities that implement C-01 and C-03, not to business-api.geofencing\n- Geofencing remains mapped only where its publicClaim (transitions only) applies",
      "kind": "original-build-requirement",
      "status": "Historical build scope retained",
      "registryStatus": "See linked capabilities",
      "plan": "Confirm the applicable plan and rollout",
      "evidence": "Original October10 shared build requirement. Historical completion claims are not re-certified by inclusion here. Compare the exact acceptance criteria with current source and the existing build queue.",
      "backlogIds": [
        "M-01"
      ],
      "historyCount": 219,
      "origin": "Original81-requirement build backlog"
    },
    {
      "id": "C-011",
      "title": "Included operator users: 3 (Start), 10 (Core), 30 (Pro), 50 (Operations); view-only users unlimited.",
      "scope": "Included operator users: 3 (Start), 10 (Core), 30 (Pro), 50 (Operations); view-only users unlimited.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:67"
    },
    {
      "id": "C-017",
      "title": "Workflow automation limit: 1 active workflow (Start), 10 (Core), 30 (Pro), custom (Operations); if/e",
      "scope": "Workflow automation limit: 1 active workflow (Start), 10 (Core), 30 (Pro), custom (Operations); if/else branches and wait steps with run history.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:73"
    },
    {
      "id": "C-018",
      "title": "Public forms builder, quotes/estimates, customer communications and e-signature on estimates/documen",
      "scope": "Public forms builder, quotes/estimates, customer communications and e-signature on estimates/documents are included on every plan.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:74"
    },
    {
      "id": "C-019",
      "title": "Tracked links are included on all four plans, including Start.",
      "scope": "Tracked links are included on all four plans, including Start.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:75"
    },
    {
      "id": "C-020",
      "title": "Tracked links are available from Forge Core.",
      "scope": "Tracked links are available from Forge Core.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:76"
    },
    {
      "id": "C-021",
      "title": "Email campaigns are available on Pro and Operations only, with consent checks and one-click unsubscr",
      "scope": "Email campaigns are available on Pro and Operations only, with consent checks and one-click unsubscribe.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access (trust page)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:77"
    },
    {
      "id": "C-022",
      "title": "Reviews and reputation loop reads reviews from your own connected Google Business Profile, read-only",
      "scope": "Reviews and reputation loop reads reviews from your own connected Google Business Profile, read-only; nothing is posted or replied to.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:78"
    },
    {
      "id": "C-025",
      "title": "AI image generation in the social composer, available once an image service is connected.",
      "scope": "AI image generation in the social composer, available once an image service is connected.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "available with integration",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:81"
    },
    {
      "id": "C-026",
      "title": "In-house Reel (video) generation for social posts.",
      "scope": "In-house Reel (video) generation for social posts.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "available with integration",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:82"
    },
    {
      "id": "C-027",
      "title": "Onboarding snapshot bundles apply an industry starter pack, workflows and templates in one click.",
      "scope": "Onboarding snapshot bundles apply an industry starter pack, workflows and templates in one click.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:83"
    },
    {
      "id": "C-028",
      "title": "Feedback capture and roadmap voting are included on every plan; company roadmap access is for Owners",
      "scope": "Feedback capture and roadmap voting are included on every plan; company roadmap access is for Owners.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:84"
    },
    {
      "id": "C-029",
      "title": "Live website chat: visitor chats land in your inbox and replies refresh every few seconds.",
      "scope": "Live website chat: visitor chats land in your inbox and replies refresh every few seconds.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:85"
    },
    {
      "id": "C-030",
      "title": "A typical single-location launch takes five weeks.",
      "scope": "A typical single-location launch takes five weeks.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:86"
    },
    {
      "id": "C-031",
      "title": "Managed Launch: HustleForge configures, connects, migrates, tests, trains and launches remotely; exi",
      "scope": "Managed Launch: HustleForge configures, connects, migrates, tests, trains and launches remotely; existing systems keep running until you approve the switch.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:87"
    },
    {
      "id": "C-032",
      "title": "Nothing switches over until written go-live approval from your business.",
      "scope": "Nothing switches over until written go-live approval from your business.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:88"
    },
    {
      "id": "C-033",
      "title": "Guided Launch is included on Start, Core and Pro; Forge Operations requires a scoped Managed Launch.",
      "scope": "Guided Launch is included on Start, Core and Pro; Forge Operations requires a scoped Managed Launch.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:89"
    },
    {
      "id": "C-034",
      "title": "Forge is never the general ledger, payroll processor, tax filer, card processor, insurer or legal ad",
      "scope": "Forge is never the general ledger, payroll processor, tax filer, card processor, insurer or legal adviser.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:90"
    },
    {
      "id": "C-035",
      "title": "Business platform is one connected system: a new lead becomes a scheduled job, a completed job becom",
      "scope": "Business platform is one connected system: a new lead becomes a scheduled job, a completed job becomes an invoice, and the result lands on the dashboard.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:91"
    },
    {
      "id": "C-036",
      "title": "Install The Forge to a phone or desktop home screen; screens load from a local cache and business da",
      "scope": "Install The Forge to a phone or desktop home screen; screens load from a local cache and business data is never cached.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:92"
    },
    {
      "id": "C-037",
      "title": "Internal team chat (channels and direct messages) for owners, managers and employees.",
      "scope": "Internal team chat (channels and direct messages) for owners, managers and employees.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:93"
    },
    {
      "id": "C-038",
      "title": "Approvals: change orders, purchase requests and incidents move through one approval process; actions",
      "scope": "Approvals: change orders, purchase requests and incidents move through one approval process; actions over a configured threshold hold for the right manager.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:94"
    },
    {
      "id": "C-039",
      "title": "Native double-entry bookkeeping if you run no external accounting platform.",
      "scope": "Native double-entry bookkeeping if you run no external accounting platform.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:95"
    },
    {
      "id": "C-040",
      "title": "Finance anomaly alerts on Pro: aging exceptions, expense spikes and revenue drops alert Owner or Fin",
      "scope": "Finance anomaly alerts on Pro: aging exceptions, expense spikes and revenue drops alert Owner or Finance when a fixed threshold is crossed.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:96"
    },
    {
      "id": "C-041",
      "title": "Integrations: you keep accounting, payroll, payment and industry systems; The Forge connects to them",
      "scope": "Integrations: you keep accounting, payroll, payment and industry systems; The Forge connects to them. Sixteen integration categories.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:97"
    },
    {
      "id": "C-042",
      "title": "Connections are revocable by the customer; revocation stops outbound writes immediately.",
      "scope": "Connections are revocable by the customer; revocation stops outbound writes immediately.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:98"
    },
    {
      "id": "C-043",
      "title": "If a connection stops working you are notified with the reason, and no duplicate or incomplete recor",
      "scope": "If a connection stops working you are notified with the reason, and no duplicate or incomplete records are sent while it is down.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:99"
    },
    {
      "id": "C-044",
      "title": "Connect your own QuickBooks Online, Stripe, Zoom, SendGrid, Google Calendar, Google Drive, OneDrive,",
      "scope": "Connect your own QuickBooks Online, Stripe, Zoom, SendGrid, Google Calendar, Google Drive, OneDrive, SharePoint and Outlook Calendar accounts.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "connect your own account",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:100"
    },
    {
      "id": "C-045",
      "title": "Square POS and Gusto payroll are early access.",
      "scope": "Square POS and Gusto payroll are early access.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:101"
    },
    {
      "id": "C-046",
      "title": "QuickBooks Online accounting push sync (staged) is early access.",
      "scope": "QuickBooks Online accounting push sync (staged) is early access.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:102"
    },
    {
      "id": "C-047",
      "title": "Automatic updates from connected financial systems are verified as coming from that provider.",
      "scope": "Automatic updates from connected financial systems are verified as coming from that provider.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:103"
    },
    {
      "id": "C-048",
      "title": "All connections use HTTPS/TLS; data is encrypted in transit and at rest.",
      "scope": "All connections use HTTPS/TLS; data is encrypted in transit and at rest.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:104"
    },
    {
      "id": "C-049",
      "title": "Secrets and integration credentials are stored in dedicated secret managers, not in databases or sou",
      "scope": "Secrets and integration credentials are stored in dedicated secret managers, not in databases or source code.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:105"
    },
    {
      "id": "C-050",
      "title": "Your data is not sold and not shared with other customers or unrelated third parties.",
      "scope": "Your data is not sold and not shared with other customers or unrelated third parties.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:106"
    },
    {
      "id": "C-051",
      "title": "Backups are automatic and you do not run or manage them.",
      "scope": "Backups are automatic and you do not run or manage them.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:107"
    },
    {
      "id": "C-052",
      "title": "Repeated failed sign-in attempts are blocked automatically.",
      "scope": "Repeated failed sign-in attempts are blocked automatically.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:108"
    },
    {
      "id": "C-053",
      "title": "Authenticator codes and passkeys are available and can be required; MFA is configurable.",
      "scope": "Authenticator codes and passkeys are available and can be required; MFA is configurable.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "configurable",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:109"
    },
    {
      "id": "C-054",
      "title": "Single sign-on is listed as a security control, status Coming to the platform.",
      "scope": "Single sign-on is listed as a security control, status Coming to the platform.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:110"
    },
    {
      "id": "C-055",
      "title": "The Forge keeps a record of who changed what and when, so administrative activity can be reviewed.",
      "scope": "The Forge keeps a record of who changed what and when, so administrative activity can be reviewed.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:111"
    },
    {
      "id": "C-056",
      "title": "You can export business records at any time in a standard format; export is independently checked.",
      "scope": "You can export business records at any time in a standard format; export is independently checked.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:112"
    },
    {
      "id": "C-057",
      "title": "Security control inventory: 52 controls; 21 Independently Checked, 20 Active, 6 Configurable, 2 Limi",
      "scope": "Security control inventory: 52 controls; 21 Independently Checked, 20 Active, 6 Configurable, 2 Limited Availability, 3 Coming to the platform.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "mixed",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:113"
    },
    {
      "id": "C-058",
      "title": "'Independently Checked' label on 21 controls.",
      "scope": "'Independently Checked' label on 21 controls.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "independently checked",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:114"
    },
    {
      "id": "C-059",
      "title": "External security assessment and recovery testing are not yet in place.",
      "scope": "External security assessment and recovery testing are not yet in place.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:115"
    },
    {
      "id": "C-060",
      "title": "No SOC 2, ISO 27001, HIPAA or PCI DSS certification has been completed; the Forge does not store pay",
      "scope": "No SOC 2, ISO 27001, HIPAA or PCI DSS certification has been completed; the Forge does not store payment card data.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none (explicit negative)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:116"
    },
    {
      "id": "C-061",
      "title": "Parts of The Forge use AI to draft, summarise and route work; AI output is labelled and anything tha",
      "scope": "Parts of The Forge use AI to draft, summarise and route work; AI output is labelled and anything that commits the business needs human approval.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:117"
    },
    {
      "id": "C-062",
      "title": "Ask The Forge is an AI assistant; questions are sent to an AI generation provider and answers may be",
      "scope": "Ask The Forge is an AI assistant; questions are sent to an AI generation provider and answers may be incomplete.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "AI assistant (label)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:118"
    },
    {
      "id": "C-063",
      "title": "AI Voice Receptionist processes call recordings and transcripts through Vapi and call handling throu",
      "scope": "AI Voice Receptionist processes call recordings and transcripts through Vapi and call handling through Twilio.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:119"
    },
    {
      "id": "C-064",
      "title": "Vulnerabilities can be reported to security@hustleforge.tech.",
      "scope": "Vulnerabilities can be reported to security@hustleforge.tech.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:120"
    },
    {
      "id": "C-065",
      "title": "Consumer privacy rights requests (CCPA/CPRA) can be submitted.",
      "scope": "Consumer privacy rights requests (CCPA/CPRA) can be submitted.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access (trust page)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:121"
    },
    {
      "id": "C-066",
      "title": "Status page checks the marketing site, the app and Ask The Forge live on every load; it does not pub",
      "scope": "Status page checks the marketing site, the app and Ask The Forge live on every load; it does not publish an uptime percentage or incident history.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:122"
    },
    {
      "id": "C-067",
      "title": "No ranking, traffic or revenue increase, campaign result, lead volume or conversion is guaranteed.",
      "scope": "No ranking, traffic or revenue increase, campaign result, lead volume or conversion is guaranteed.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:123"
    },
    {
      "id": "C-070",
      "title": "Business-in-a-box comparison: Free Forever plan and 14-day money-back guarantee on paid plans.",
      "scope": "Business-in-a-box comparison: Free Forever plan and 14-day money-back guarantee on paid plans.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:126"
    },
    {
      "id": "C-071",
      "title": "The Forge currently supports twelve industries.",
      "scope": "The Forge currently supports twelve industries.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:127"
    },
    {
      "id": "C-072",
      "title": "Home page industry grid shows 16 industries, including Construction, Landscaping, Restaurants, Denta",
      "scope": "Home page industry grid shows 16 industries, including Construction, Landscaping, Restaurants, Dental, Property Management and Churches.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:128"
    },
    {
      "id": "C-075",
      "title": "Built with you: feedback is captured, statuses are Captured, Planned, In development and Released; s",
      "scope": "Built with you: feedback is captured, statuses are Captured, Planned, In development and Released; submission does not commit to delivery.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:131"
    },
    {
      "id": "C-078",
      "title": "This is not penetration testing, a complete vulnerability assessment, compliance certification or a ",
      "scope": "This is not penetration testing, a complete vulnerability assessment, compliance certification or a guarantee of protection.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none (explicit negative)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:134"
    },
    {
      "id": "C-079",
      "title": "Admissions applications: Track each family's application — applicant, guardian contact, and three in",
      "scope": "Admissions applications: Track each family's application — applicant, guardian contact, and three independently-set dates: the application deadline, the deposit due date, and ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:135"
    },
    {
      "id": "C-080",
      "title": "Two-person approval for retainage and invoice payment voids: A retainage release or an invoice payme",
      "scope": "Two-person approval for retainage and invoice payment voids: A retainage release or an invoice payment void can be requested by a billing user and is applied only after a different Owner, General Manager or ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:136"
    },
    {
      "id": "C-081",
      "title": "Billing & plan entitlements: Every plan tier's own subscription, usage, and unlocked capabilities ar",
      "scope": "Billing & plan entitlements: Every plan tier's own subscription, usage, and unlocked capabilities are visible from one place. Where the platform's payment processor is ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:137"
    },
    {
      "id": "C-082",
      "title": "Blueprint engine: Structured Blueprint intake that generates a customer-specific Forge Plan grounded",
      "scope": "Blueprint engine: Structured Blueprint intake that generates a customer-specific Forge Plan grounded in platform capability status.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:138"
    },
    {
      "id": "C-083",
      "title": "Industry blueprint library: Every shipped industry blueprint — operating areas, recommended workflow",
      "scope": "Industry blueprint library: Every shipped industry blueprint — operating areas, recommended workflows, connectors, roles, and a launch outline — is browsable inside your own ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:139"
    },
    {
      "id": "C-084",
      "title": "Bulk customer & lead import: A JSON or CSV batch of customers and active real-estate leads can be im",
      "scope": "Bulk customer & lead import: A JSON or CSV batch of customers and active real-estate leads can be imported directly into a migration job, with a row-by-row ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:140"
    },
    {
      "id": "C-085",
      "title": "Certified-payroll report draft by project and week: A certified-payroll report draft for review, by ",
      "scope": "Certified-payroll report draft by project and week: A certified-payroll report draft for review, by project and week. For each worker it lists classification, daily and weekly straight and overtime ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:141"
    },
    {
      "id": "C-086",
      "title": "Owner and architect acknowledgment of change orders: A sent change order can be routed to its owner ",
      "scope": "Owner and architect acknowledgment of change orders: A sent change order can be routed to its owner or architect for acknowledgment. The office copies a one-time link, or emails it to the owner or ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:142"
    },
    {
      "id": "C-087",
      "title": "Commission forecasting & approval visibility: A commission can be forecast, approved by a different ",
      "scope": "Commission forecasting & approval visibility: A commission can be forecast, approved by a different Owner or General Manager than whoever forecast it, and reconciled against what was actually ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:143"
    },
    {
      "id": "C-088",
      "title": "Customer commitments: Record each promise the business makes to a customer: what was promised, who o",
      "scope": "Customer commitments: Record each promise the business makes to a customer: what was promised, who owns it, when it is due, and the job, estimate, invoice or message it ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:144"
    },
    {
      "id": "C-089",
      "title": "One communication timeline per customer: Texts, emails and calls the platform itself sends or receiv",
      "scope": "One communication timeline per customer: Texts, emails and calls the platform itself sends or receives for a customer, plus booking confirmations, show in one newest-first timeline on that ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:145"
    },
    {
      "id": "C-090",
      "title": "Consolidated financial statements: Businesses running more than one native-ledger legal entity get a",
      "scope": "Consolidated financial statements: Businesses running more than one native-ledger legal entity get a consolidated trial balance, profit and loss, and balance sheet — each entity's ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:146"
    },
    {
      "id": "C-091",
      "title": "Consolidated and per-property draft invoices: Bill one customer's completed jobs across their proper",
      "scope": "Consolidated and per-property draft invoices: Bill one customer's completed jobs across their properties on one draft invoice that names each job and property, or on one draft per property. Each ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:147"
    },
    {
      "id": "C-092",
      "title": "Construction bid intelligence (Level 1: trustworthy bid history): Every bid keeps its own history: w",
      "scope": "Construction bid intelligence (Level 1: trustworthy bid history): Every bid keeps its own history: which estimate it was priced from, the reviewed risk register and economic policy behind its floor, what was ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:148"
    },
    {
      "id": "C-093",
      "title": "Construction (T2 vertical) lane: A project's schedule of values, subcontractor compliance documents,",
      "scope": "Construction (T2 vertical) lane: A project's schedule of values, subcontractor compliance documents, change orders, and draw/retainage math live in one workspace: a change order only ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:149"
    },
    {
      "id": "C-094",
      "title": "Live website chat: Website visitors can start a chat that lands in your inbox; replies refresh every",
      "scope": "Live website chat: Website visitors can start a chat that lands in your inbox; replies refresh every few seconds. An embed snippet goes on your own site; you can ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:150"
    },
    {
      "id": "C-096",
      "title": "Crew double-booking refused at job assignment: A crew member cannot be assigned to two open jobs who",
      "scope": "Crew double-booking refused at job assignment: A crew member cannot be assigned to two open jobs whose scheduled windows overlap, and a subcontractor cannot be booked onto two overlapping windows. ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:152"
    },
    {
      "id": "C-097",
      "title": "Crew performance, balancing suggestions and fastest crew for expedited jobs: Efficiency is measured ",
      "scope": "Crew performance, balancing suggestions and fastest crew for expedited jobs: Efficiency is measured per job against the typical labor hours for that service line, so job mix does not favour anyone. Managers see each person's ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:153"
    },
    {
      "id": "C-098",
      "title": "Crew utilization and per-person trends: For each crew member, managers see billable hours against pu",
      "scope": "Crew utilization and per-person trends: For each crew member, managers see billable hours against published shift hours for each of the last 12 complete weeks, in your timezone. Hours are ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:154"
    },
    {
      "id": "C-099",
      "title": "Cross-business staff allocation: Staff who work across your businesses appear on one read-only list,",
      "scope": "Cross-business staff allocation: Staff who work across your businesses appear on one read-only list, and each booking and time entry is labelled with the business it belongs to. Time ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:155"
    },
    {
      "id": "C-100",
      "title": "Cross-business sharing of staff, workflows and templates: Share a staff member, a workflow or a cont",
      "scope": "Cross-business sharing of staff, workflows and templates: Share a staff member, a workflow or a content template from one of your businesses with another business in your account. A shared staff member can ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:156"
    },
    {
      "id": "C-101",
      "title": "Customer churn-risk flags from explicit rules: Flags customers whose own records break a rule you ca",
      "scope": "Customer churn-risk flags from explicit rules: Flags customers whose own records break a rule you can read: no job activity for a set number of days, repeated skipped visits, an invoice past due ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:157"
    },
    {
      "id": "C-102",
      "title": "Customer equipment & service history: Record the equipment installed at each customer's site, with i",
      "scope": "Customer equipment & service history: Record the equipment installed at each customer's site, with its warranty details, and see every job that has serviced it.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:158"
    },
    {
      "id": "C-103",
      "title": "Customer portal (magic-link, self-serve): Your own customers get a login-free, emailed link to their",
      "scope": "Customer portal (magic-link, self-serve): Your own customers get a login-free, emailed link to their own portal — where they can see every estimate and invoice from you, accept or decline a ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:159"
    },
    {
      "id": "C-104",
      "title": "Data subject rights requests (CCPA/CPRA): An outside individual — one of your customers or employees",
      "scope": "Data subject rights requests (CCPA/CPRA): An outside individual — one of your customers or employees — can submit a CCPA/CPRA rights request (know, access, delete, or correct) through a ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:160"
    },
    {
      "id": "C-105",
      "title": "Customer delay notices for weather days: When a weather day is logged, each flagged job gets one cus",
      "scope": "Customer delay notices for weather days: When a weather day is logged, each flagged job gets one customer delay notice, queued in the communications log. A notice is sent only when the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:161"
    },
    {
      "id": "C-106",
      "title": "Brand colors: Set one brand color and a corner style, and the platform works out a matching set of c",
      "scope": "Brand colors: Set one brand color and a corner style, and the platform works out a matching set of colors from it — button and heading color, page background, text ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:162"
    },
    {
      "id": "C-107",
      "title": "Dispatch board: overdue visits and open crew slots: The dispatch board lists recurring visits that a",
      "scope": "Dispatch board: overdue visits and open crew slots: The dispatch board lists recurring visits that are past their due date and still not completed, with the days overdue. It shows each crew member's ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:163"
    },
    {
      "id": "C-108",
      "title": "Document upload & review queue: Upload receipts, invoices, and statements to a review queue, then ma",
      "scope": "Document upload & review queue: Upload receipts, invoices, and statements to a review queue, then match them to a transaction yourself or create one from the document with a few ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:164"
    },
    {
      "id": "C-109",
      "title": "Branded PDF documents: a branded PDF of any estimate or invoice, generated in-house from the same re",
      "scope": "Branded PDF documents: a branded PDF of any estimate or invoice, generated in-house from the same record that the web page shows, with a JPEG logo if you have one set, or ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:165"
    },
    {
      "id": "C-110",
      "title": "Donations: Record a gift with the donor's name, email, phone, amount, date, method, and fund. A dono",
      "scope": "Donations: Record a gift with the donor's name, email, phone, amount, date, method, and fund. A donor email is matched, case-insensitively, against your ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:166"
    },
    {
      "id": "C-111",
      "title": "Draw check against field progress: Draw requests are checked against the field progress logged for e",
      "scope": "Draw check against field progress: Draw requests are checked against the field progress logged for each schedule-of-values line, from the moment a draft is saved. A claimed percent ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:167"
    },
    {
      "id": "C-112",
      "title": "Email marketing campaigns: Build a real audience from your own customers and prospects, honestly exc",
      "scope": "Email marketing campaigns: Build a real audience from your own customers and prospects, honestly excluding anyone who has revoked consent or been suppressed, then send and ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:168"
    },
    {
      "id": "C-113",
      "title": "Emergency triage queue and displaced-job rescheduling: Emergency jobs wait in a triage queue. Crews ",
      "scope": "Emergency triage queue and displaced-job rescheduling: Emergency jobs wait in a triage queue. Crews are ranked by how few booked jobs an emergency would displace, with ineligible crews listed and the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:169"
    },
    {
      "id": "C-114",
      "title": "Company equipment allocated to jobs: Company trucks, trailers and tools can be allocated to a job fo",
      "scope": "Company equipment allocated to jobs: Company trucks, trailers and tools can be allocated to a job for a time window. A piece of equipment cannot be booked to two overlapping jobs. ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:170"
    },
    {
      "id": "C-115",
      "title": "Estimate aging and stale-estimate handling: On the Estimates list, every open estimate shows its age",
      "scope": "Estimate aging and stale-estimate handling: On the Estimates list, every open estimate shows its age, how long it has sat idle, its follow-up state and next follow-up date, and the total value ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:171"
    },
    {
      "id": "C-116",
      "title": "Email an estimate to the customer: A staff member with estimate access can email an estimate to the ",
      "scope": "Email an estimate to the customer: A staff member with estimate access can email an estimate to the customer from the estimate screen. The email has a default message the Owner can ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:172"
    },
    {
      "id": "C-117",
      "title": "Estimate follow-up policy: An Owner can turn on an automatic follow-up for estimates that go quiet —",
      "scope": "Estimate follow-up policy: An Owner can turn on an automatic follow-up for estimates that go quiet — set the delay, the channel, and the message — and a scheduled run queues ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:173"
    },
    {
      "id": "C-118",
      "title": "Estimate follow-up coverage report: An Owner can add a call task to the estimate follow-up: when an ",
      "scope": "Estimate follow-up coverage report: An Owner can add a call task to the estimate follow-up: when an estimate has gone unanswered for the delay they set, one open call task is created ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:174"
    },
    {
      "id": "C-119",
      "title": "Estimate customer view history: The Forge records when a customer opens an estimate's share link: fi",
      "scope": "Estimate customer view history: The Forge records when a customer opens an estimate's share link: first and last view and how many times, with staff and bots not counted. The ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:175"
    },
    {
      "id": "C-121",
      "title": "Field supply usage logging: Field staff log the supplies they use against a job in whatever way is f",
      "scope": "Field supply usage logging: Field staff log the supplies they use against a job in whatever way is fastest to say — an exact amount, a fraction of a container, or one tap for ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:177"
    },
    {
      "id": "C-123",
      "title": "Fleet GPS tracking and weather-forecast connections: An Owner can connect a GPS fleet provider and a",
      "scope": "Fleet GPS tracking and weather-forecast connections: An Owner can connect a GPS fleet provider and a weather-forecast provider with their own API keys, and disconnect either one. With no GPS provider ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:179"
    },
    {
      "id": "C-124",
      "title": "Forge Plan generation & approval: Once a Blueprint intake is submitted, a customer-specific Forge Pl",
      "scope": "Forge Plan generation & approval: Once a Blueprint intake is submitted, a customer-specific Forge Plan is assembled deterministically from that intake and platform capability status, ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:180"
    },
    {
      "id": "C-125",
      "title": "Send payroll hours to Gusto from Forge: Finish payroll hours in Forge and send them to Gusto. Match ",
      "scope": "Send payroll hours to Gusto from Forge: Finish payroll hours in Forge and send them to Gusto. Match your employees and jobs to Gusto once, review the exact hours for each employee and job, ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:181"
    },
    {
      "id": "C-126",
      "title": "Public help center: A public help page for your customers with the articles you write and a search b",
      "scope": "Public help center: A public help page for your customers with the articles you write and a search box that works entirely in the visitor's browser. Nothing is generated ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:182"
    },
    {
      "id": "C-127",
      "title": "Inbound email: A dedicated inbound email address per workspace. Received mail is recorded as a commu",
      "scope": "Inbound email: A dedicated inbound email address per workspace. Received mail is recorded as a communication with its attachments, matched to a lead or customer by ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:183"
    },
    {
      "id": "C-128",
      "title": "Lease-term inspections: Schedule move-in, periodic, move-out, and maintenance inspections against a ",
      "scope": "Lease-term inspections: Schedule move-in, periodic, move-out, and maintenance inspections against a lease, and bind a scheduled workflow to the scheduled date so a reminder ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:184"
    },
    {
      "id": "C-129",
      "title": "Insurance claims on jobs: Record a customer's insurance claim against a job: the carrier, claim numb",
      "scope": "Insurance claims on jobs: Record a customer's insurance claim against a job: the carrier, claim number, adjuster, deductible, the amount the carrier approved and the amount it ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:185"
    },
    {
      "id": "C-130",
      "title": "Insurance policy renewals: Track each policy you manage — carrier, policy number, and its expiration",
      "scope": "Insurance policy renewals: Track each policy you manage — carrier, policy number, and its expiration date — and bind a scheduled workflow to that expiration so a renewal ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:186"
    },
    {
      "id": "C-131",
      "title": "Partial invoice payments and balances: Records partial payments against an invoice: each payment pos",
      "scope": "Partial invoice payments and balances: Records partial payments against an invoice: each payment posts to the invoice's payment history, the remaining balance shows, and a payment can be ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:187"
    },
    {
      "id": "C-132",
      "title": "Pay now on an invoice (flagged checkout): When pay-now is turned on for a business, a native invoice",
      "scope": "Pay now on an invoice (flagged checkout): When pay-now is turned on for a business, a native invoice's open balance can be paid through a hosted checkout on that business's own connected ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:188"
    },
    {
      "id": "C-134",
      "title": "Change orders on native jobs: A change order can be raised against a job directly, without a constru",
      "scope": "Change orders on native jobs: A change order can be raised against a job directly, without a construction project: it carries priced lines, is acknowledged by staff, and its ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:190"
    },
    {
      "id": "C-137",
      "title": "Per-job profitability rollup: A job's real revenue, labor (scheduled vs. actual), materials, subcont",
      "scope": "Per-job profitability rollup: A job's real revenue, labor (scheduled vs. actual), materials, subcontractors, equipment, and overhead roll up into one per-job profitability figure ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:193"
    },
    {
      "id": "C-138",
      "title": "Job permits & inspections: Track each job's permits and required inspections with their status and d",
      "scope": "Job permits & inspections: Track each job's permits and required inspections with their status and dates. A job cannot be marked complete while any of its permits is still open ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:194"
    },
    {
      "id": "C-139",
      "title": "Job stages, next actions and stall alerts: Each stage of a job has a defined next action and, when y",
      "scope": "Job stages, next actions and stall alerts: Each stage of a job has a defined next action and, when you set one, an expected time. A job that stays in its stage past that time raises a ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:195"
    },
    {
      "id": "C-140",
      "title": "Live KPI overview with drill-down: The business overview shows job volume, estimate conversion, lead",
      "scope": "Live KPI overview with drill-down: The business overview shows job volume, estimate conversion, lead-to-job conversion and automated messages queued. Each figure carries its value, the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:196"
    },
    {
      "id": "C-141",
      "title": "Scheduled KPI report delivery (daily, weekly, monthly): An Owner can schedule a KPI report daily, we",
      "scope": "Scheduled KPI report delivery (daily, weekly, monthly): An Owner can schedule a KPI report daily, weekly or monthly. Each run stores one snapshot of the chosen overview figures, with the formula and the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:197"
    },
    {
      "id": "C-145",
      "title": "Lead conversion by source: For any date range in your workspace's timezone, see how leads convert by",
      "scope": "Lead conversion by source: For any date range in your workspace's timezone, see how leads convert by source and service line: how many were contacted, estimated and won, with ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:201"
    },
    {
      "id": "C-146",
      "title": "Lead response time reporting: The first time you log or send an outbound email, call, or text to a l",
      "scope": "Lead response time reporting: The first time you log or send an outbound email, call, or text to a lead, or complete a task linked to that lead, its first contact is recorded ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:202"
    },
    {
      "id": "C-147",
      "title": "Lead routing rules: An Owner can configure how incoming leads get assigned — round robin, by team, b",
      "scope": "Lead routing rules: An Owner can configure how incoming leads get assigned — round robin, by team, by territory, by service line, or to whoever is on a published shift — ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:203"
    },
    {
      "id": "C-148",
      "title": "Lead-generation request pipeline: Request lead generation from your connected provider — define the ",
      "scope": "Lead-generation request pipeline: Request lead generation from your connected provider — define the customers you want, track delivery against your request.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:204"
    },
    {
      "id": "C-149",
      "title": "Lease terms and renewals: Track each lease you manage — property, unit, resident, owner, rent, and i",
      "scope": "Lease terms and renewals: Track each lease you manage — property, unit, resident, owner, rent, and its end date — and bind a scheduled workflow to that end date so a renewal ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:205"
    },
    {
      "id": "C-150",
      "title": "Lifecycle workflow triggers: customer inactivity, enrollment status, renewal due: Workflows can star",
      "scope": "Lifecycle workflow triggers: customer inactivity, enrollment status, renewal due: Workflows can start when a customer has gone a set number of days without a completed job, when an admissions application or program enrollment ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:206"
    },
    {
      "id": "C-151",
      "title": "Location launch playbooks and rollout of proven workflows: An Owner can keep a launch playbook for a",
      "scope": "Location launch playbooks and rollout of proven workflows: An Owner can keep a launch playbook for a company (an ordered checklist, proven workflows and message templates) and roll it out to any of that ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:207"
    },
    {
      "id": "C-152",
      "title": "Marketplace activation preview: Before enabling a marketplace add-on, its business/entity, billing a",
      "scope": "Marketplace activation preview: Before enabling a marketplace add-on, its business/entity, billing account, immediate charge, recurring effect, usage basis, approval requirement, ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:208"
    },
    {
      "id": "C-153",
      "title": "Missed check-in alerts: A scheduled job whose crew has not arrived by the end of its arrival window ",
      "scope": "Missed check-in alerts: A scheduled job whose crew has not arrived by the end of its arrival window creates one same-day task for your office. A clock-in against the job or ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:209"
    },
    {
      "id": "C-155",
      "title": "My shifts and hours: See your own upcoming shifts and the hours you have logged, drawn from the shif",
      "scope": "My shifts and hours: See your own upcoming shifts and the hours you have logged, drawn from the shift and time records your business already keeps in The Forge — not a ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:211"
    },
    {
      "id": "C-156",
      "title": "Native Mode onboarding provisioning: A new customer's onboarding answers determine which native oper",
      "scope": "Native Mode onboarding provisioning: A new customer's onboarding answers determine which native operating modules are enabled from day one, with Forge itself declared as the system of ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:212"
    },
    {
      "id": "C-157",
      "title": "On-time completion and turnover timing: Each completed job is marked on time or late against its sch",
      "scope": "On-time completion and turnover timing: Each completed job is marked on time or late against its scheduled end, with a 15 minute grace, and that flag is fixed at completion so later ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:213"
    },
    {
      "id": "C-158",
      "title": "Online self-booking: Turn on a public booking page for your business, define the services and hours ",
      "scope": "Online self-booking: Turn on a public booking page for your business, define the services and hours you offer, and let customers request an appointment online — requests ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:214"
    },
    {
      "id": "C-159",
      "title": "Operational resources (locations, assets, vendors): Track the locations, physical assets — with warr",
      "scope": "Operational resources (locations, assets, vendors): Track the locations, physical assets — with warranty and service-interval dates — and vendors — with insurance and certification expirations — your ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:215"
    },
    {
      "id": "C-160",
      "title": "Outbound messaging layer (shared send path): Every outbound text and email now goes through one send",
      "scope": "Outbound messaging layer (shared send path): Every outbound text and email now goes through one send path. Before anything is sent it is checked against the customer's opt-out, consent and quiet ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:216"
    },
    {
      "id": "C-161",
      "title": "Outbound webhooks: Register an HTTPS endpoint and choose which platform events it receives. Every de",
      "scope": "Outbound webhooks: Register an HTTPS endpoint and choose which platform events it receives. Every delivery is signed with a standard HMAC scheme, retried on a published ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:217"
    },
    {
      "id": "C-162",
      "title": "Review, referral and renewal outreach cadences: After a completed job the Owner chooses whether the ",
      "scope": "Review, referral and renewal outreach cadences: After a completed job the Owner chooses whether the customer gets a review request or a referral request, and how many days after completion it is ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:218"
    },
    {
      "id": "C-163",
      "title": "Overtime by location: The overtime report shows overtime by location. Each worker's overtime is work",
      "scope": "Overtime by location: The overtime report shows overtime by location. Each worker's overtime is worked out for each week first, then shared across the locations where that ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:219"
    },
    {
      "id": "C-166",
      "title": "Panel schedules & versioned PDF documentation: Panel schedules are kept per job: each panel has a na",
      "scope": "Panel schedules & versioned PDF documentation: Panel schedules are kept per job: each panel has a name, a location and a list of circuits with the circuit number, description, pole count, breaker ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:222"
    },
    {
      "id": "C-168",
      "title": "Payment processor integration: Once a business connects its own payment processor under Integrations",
      "scope": "Payment processor integration: Once a business connects its own payment processor under Integrations, a native invoice can get a real hosted checkout payment link an Owner/GM ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:224"
    },
    {
      "id": "C-169",
      "title": "Automatic invoice payment reminders: Unpaid invoices past due can get a reminder email on a schedule",
      "scope": "Automatic invoice payment reminders: Unpaid invoices past due can get a reminder email on a schedule you set. Each reminder is logged, and no reminder goes out once the invoice is paid.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:225"
    },
    {
      "id": "C-170",
      "title": "Payroll export with job allocation: Export approved hours to a payroll CSV for a chosen pay period. ",
      "scope": "Payroll export with job allocation: Export approved hours to a payroll CSV for a chosen pay period. Each hour is allocated to its job and split into regular and overtime, using your ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:226"
    },
    {
      "id": "C-171",
      "title": "Customer portal feedback inbox: Staff can read and reply to the feedback and support messages your c",
      "scope": "Customer portal feedback inbox: Staff can read and reply to the feedback and support messages your customers send through their customer-portal link, and triage each one — the staff ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:227"
    },
    {
      "id": "C-172",
      "title": "Portfolio schedule board: The schedule board shows every active dated job across your companies, in ",
      "scope": "Portfolio schedule board: The schedule board shows every active dated job across your companies, in one list. Each job shows its crew's overlapping jobs as a conflict. ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:228"
    },
    {
      "id": "C-173",
      "title": "Programs, class sessions & attendance hours: Run a course or programme where many people attend the ",
      "scope": "Programs, class sessions & attendance hours: Run a course or programme where many people attend the same scheduled session, which nothing else in the platform could do — bookings and jobs each ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:229"
    },
    {
      "id": "C-175",
      "title": "Property care instructions (versioned): Each customer property can carry structured care instruction",
      "scope": "Property care instructions (versioned): Each customer property can carry structured care instructions. Every edit is kept as a new version, and the crew assigned to a job at that property ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:231"
    },
    {
      "id": "C-176",
      "title": "Provider service jobs: A service provider you activate from the Marketplace can perform document rea",
      "scope": "Provider service jobs: A service provider you activate from the Marketplace can perform document reading, browser rendering, and site-data lookups on your behalf. Every job ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:232"
    },
    {
      "id": "C-177",
      "title": "Public self-booking page: The public page a customer actually lands on to request an appointment — d",
      "scope": "Public self-booking page: The public page a customer actually lands on to request an appointment — deliberately reachable without signing in, since the person requesting time ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:233"
    },
    {
      "id": "C-178",
      "title": "Public job status page: A customer can open their job's shared status link to see the schedule and c",
      "scope": "Public job status page: A customer can open their job's shared status link to see the schedule and confirm it or request a change — the same public, unauthenticated page ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:234"
    },
    {
      "id": "C-179",
      "title": "Punch list & closeout gate: Punch-list items on a project are tracked from identification to verifie",
      "scope": "Punch list & closeout gate: Punch-list items on a project are tracked from identification to verified fix, with the fixer and a different verifier recorded and every step kept ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:235"
    },
    {
      "id": "C-180",
      "title": "Purchase orders linked to jobs: Tag a stock purchase order with the job it is for, so the materials ",
      "scope": "Purchase orders linked to jobs: Tag a stock purchase order with the job it is for, so the materials you order can be traced back to that job.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:236"
    },
    {
      "id": "C-181",
      "title": "Qualification-based technician dispatch: Jobs that require a specific license or certification are f",
      "scope": "Qualification-based technician dispatch: Jobs that require a specific license or certification are flagged, and dispatch only offers a job to technicians whose recorded, unexpired ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:237"
    },
    {
      "id": "C-182",
      "title": "Real Estate & Brokerage lane: Contacts, properties, listings, deals, contingency milestones, and lea",
      "scope": "Real Estate & Brokerage lane: Contacts, properties, listings, deals, contingency milestones, and lead routing live in one workspace that integrates with - and never replaces - ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:238"
    },
    {
      "id": "C-183",
      "title": "Receivables aging by account: Open invoice balances grouped by customer and by days past due, in cur",
      "scope": "Receivables aging by account: Open invoice balances grouped by customer and by days past due, in current, 1-30, 31-60, 61-90 and 90+ day buckets, with totals.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:239"
    },
    {
      "id": "C-184",
      "title": "AI Voice Receptionist operating surface: Every call the receptionist add-on handles - live, missed, ",
      "scope": "AI Voice Receptionist operating surface: Every call the receptionist add-on handles - live, missed, or voicemail - lands in one queue with caller identity matched to your contacts and leads, ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:240"
    },
    {
      "id": "C-185",
      "title": "Recurring invoice schedules: Set a customer's invoice to repeat weekly or monthly. The platform crea",
      "scope": "Recurring invoice schedules: Set a customer's invoice to repeat weekly or monthly. The platform creates each period's invoice on schedule from its scheduled sweep, and you can ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:241"
    },
    {
      "id": "C-186",
      "title": "Recurring service visits: Recurring service agreements create their upcoming visits automatically, e",
      "scope": "Recurring service visits: Recurring service agreements create their upcoming visits automatically, each as a draft job for you to review and assign. A visit is created once ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:242"
    },
    {
      "id": "C-188",
      "title": "Renewal calendar across policies, leases and agreements: See every insurance policy, lease, service ",
      "scope": "Renewal calendar across policies, leases and agreements: See every insurance policy, lease, service agreement, contractor licence or bond, and employee certification or driver credential end date in one ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:244"
    },
    {
      "id": "C-189",
      "title": "Renewal outcomes and retention reporting: Record each renewal as renewed, lost or pending, with the ",
      "scope": "Renewal outcomes and retention reporting: Record each renewal as renewed, lost or pending, with the contract value. The Forge reports the renewal rate for each month and service line, showing ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:245"
    },
    {
      "id": "C-190",
      "title": "Retainage release flags at substantial completion: A project records its contract substantial-comple",
      "scope": "Retainage release flags at substantial completion: A project records its contract substantial-completion date. Once that date passes, its paid retainage is flagged as eligible for release, the project ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:246"
    },
    {
      "id": "C-191",
      "title": "Forward revenue pace from booked revenue: For the coming weeks and months, shows the revenue already",
      "scope": "Forward revenue pace from booked revenue: For the coming weeks and months, shows the revenue already booked (scheduled and in-progress jobs, recurring visits, fixed-fee billing schedules and ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:247"
    },
    {
      "id": "C-192",
      "title": "Revenue recognition: Businesses running the native general ledger can defer and recognize revenue ov",
      "scope": "Revenue recognition: Businesses running the native general ledger can defer and recognize revenue over time instead of booking it all on invoice issue — straight-line ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:248"
    },
    {
      "id": "C-193",
      "title": "Reviews & reputation loop: Every review shown in your dashboard or on your embeddable review widget ",
      "scope": "Reviews & reputation loop: Every review shown in your dashboard or on your embeddable review widget is sourced directly from your own connected Google Business Profile — The ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:249"
    },
    {
      "id": "C-194",
      "title": "Route runs for recurring visits: Recurring property visits go onto a crew's route for the day, in th",
      "scope": "Route runs for recurring visits: Recurring property visits go onto a crew's route for the day, in the order you set. Each crew member sees a work order before leaving: the stops in ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:250"
    },
    {
      "id": "C-195",
      "title": "Saved views: Save a named arrangement of a list — its sort, filters, grouping, and which columns are",
      "scope": "Saved views: Save a named arrangement of a list — its sort, filters, grouping, and which columns are hidden — and reopen it later instead of rebuilding it every ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:251"
    },
    {
      "id": "C-196",
      "title": "Seasonal crew planning: Seasonal crew rotations can be previewed before anything changes. On the Job",
      "scope": "Seasonal crew planning: Seasonal crew rotations can be previewed before anything changes. On the Jobs & Dispatch screen a dispatcher picks recurring visits and a new crew ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:252"
    },
    {
      "id": "C-198",
      "title": "Job engagement tracking: A customer engagement moves through its own stage pipeline, from inquiry th",
      "scope": "Job engagement tracking: A customer engagement moves through its own stage pipeline, from inquiry through paid and renewed, with versioned estimate options and a recorded ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:254"
    },
    {
      "id": "C-199",
      "title": "Service request inbox: Service and repair requests sent from your customers' portal land in one staf",
      "scope": "Service request inbox: Service and repair requests sent from your customers' portal land in one staff inbox, where your team can review each one, add internal notes, and ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:255"
    },
    {
      "id": "C-200",
      "title": "In-app class room: Your class sessions get a room inside your own workspace, so a participant opens ",
      "scope": "In-app class room: Your class sessions get a room inside your own workspace, so a participant opens their portal and joins from there instead of being sent off to ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:256"
    },
    {
      "id": "C-201",
      "title": "Site Health: Link the website your business owns and request a Site Health audit — an SEO pass and a",
      "scope": "Site Health: Link the website your business owns and request a Site Health audit — an SEO pass and a passive security and trust pass (security headers, TLS ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:257"
    },
    {
      "id": "C-202",
      "title": "Onboarding snapshot bundles: Named onboarding-accelerator bundles apply an industry starter pack plu",
      "scope": "Onboarding snapshot bundles: Named onboarding-accelerator bundles apply an industry starter pack plus starter communication templates and intake forms in one step — through the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:258"
    },
    {
      "id": "C-203",
      "title": "Stage-based job messages and customer status link: Automatic messages can follow a job through its s",
      "scope": "Stage-based job messages and customer status link: Automatic messages can follow a job through its stages: a booking confirmation, a reminder a set number of hours before the visit, an on-the-way ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:259"
    },
    {
      "id": "C-204",
      "title": "Stalled item escalation rules: An Owner sets rules for items that go quiet: an untouched lead, a quo",
      "scope": "Stalled item escalation rules: An Owner sets rules for items that go quiet: an untouched lead, a quote sent with no reply, a renewal coming due with no owner action, a follow-up ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:260"
    },
    {
      "id": "C-205",
      "title": "Short-term rental booking calendars drive turnover jobs: Paste a property's Airbnb, VRBO or Booking.",
      "scope": "Short-term rental booking calendars drive turnover jobs: Paste a property's Airbnb, VRBO or Booking.com calendar link and each booking becomes one turnover job, dated the checkout day at the property's ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:261"
    },
    {
      "id": "C-206",
      "title": "Subcontractor portal (scoped sign-in): Your subcontractors sign in through a single-use invite link.",
      "scope": "Subcontractor portal (scoped sign-in): Your subcontractors sign in through a single-use invite link. Your office either copies the link to them or emails it to an address you name, and an ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:262"
    },
    {
      "id": "C-207",
      "title": "Subscription downgrade & cancellation: An Owner can request a plan downgrade or cancellation from wi",
      "scope": "Subscription downgrade & cancellation: An Owner can request a plan downgrade or cancellation from within the account; a two-step confirmation is required and the change only takes effect ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:263"
    },
    {
      "id": "C-208",
      "title": "Post-visit surveys (NPS / CSAT): A one-question survey is sent by email after a job completes or an ",
      "scope": "Post-visit surveys (NPS / CSAT): A one-question survey is sent by email after a job completes or an invoice is paid, only to contacts who may be emailed under the same consent and ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:264"
    },
    {
      "id": "C-209",
      "title": "Internal team chat: Owners, managers, and employees on the same account can chat with each other ins",
      "scope": "Internal team chat: Owners, managers, and employees on the same account can chat with each other inside the app — a shared workspace channel, channels tied to a specific ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:265"
    },
    {
      "id": "C-211",
      "title": "Toolbox talks & required postings: Toolbox talks are recorded per project with the topic, the date a",
      "scope": "Toolbox talks & required postings: Toolbox talks are recorded per project with the topic, the date and the company employees who attended. A repeat of the same talk on the same date is ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:267"
    },
    {
      "id": "C-212",
      "title": "Unanswered customer thread alerts and open-thread report: When a customer writes by email or text an",
      "scope": "Unanswered customer thread alerts and open-thread report: When a customer writes by email or text and nobody replies within the window you set, the Forge opens one high-priority task and an in-app ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:268"
    },
    {
      "id": "C-213",
      "title": "Unit-scoped customers, jobs and staff: Customers, jobs and staff can be assigned to one of a company",
      "scope": "Unit-scoped customers, jobs and staff: Customers, jobs and staff can be assigned to one of a company's units. A unit-limited account sees only its units' customers, jobs, staff, invoices, ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:269"
    },
    {
      "id": "C-214",
      "title": "Usage metering & statement detail: Every metered add-on (starting with AI Receptionist call minutes)",
      "scope": "Usage metering & statement detail: Every metered add-on (starting with AI Receptionist call minutes) is recorded as it happens and priced on a monthly statement alongside the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:270"
    },
    {
      "id": "C-215",
      "title": "Industry starter packs: Industry starter packs seed ready-made automations matched to how your indus",
      "scope": "Industry starter packs: Industry starter packs seed ready-made automations matched to how your industry runs — applied within your plan's workflow allowance, fully editable ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:271"
    },
    {
      "id": "C-216",
      "title": "Wallets: Lead and campaign wallets track funded and spent balances in an append-only ledger, and fun",
      "scope": "Wallets: Lead and campaign wallets track funded and spent balances in an append-only ledger, and fund the marketplace add-on programmes you activate. A wallet ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:272"
    },
    {
      "id": "C-217",
      "title": "Watchers: Checks a page you name on a schedule you set (15-minute minimum), bounded and robots-respe",
      "scope": "Watchers: Checks a page you name on a schedule you set (15-minute minimum), bounded and robots-respecting, and alerts you in-app and by email only on a real ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:273"
    },
    {
      "id": "C-218",
      "title": "Weather-delay rescheduling: A dispatcher declares a weather day, optionally for one area. Scheduled ",
      "scope": "Weather-delay rescheduling: A dispatcher declares a weather day, optionally for one area. Scheduled jobs that day are flagged weather-delayed, and each gets the next open slot ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:274"
    },
    {
      "id": "C-219",
      "title": "Web Presence audit: A bounded, robots-respecting read of up to 25 pages of a site you name — every f",
      "scope": "Web Presence audit: A bounded, robots-respecting read of up to 25 pages of a site you name — every finding is an evidence-backed observation with plain-language fix ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:275"
    },
    {
      "id": "C-220",
      "title": "Push notifications (PWA): Push notifications go only to a device where you personally turned notific",
      "scope": "Push notifications (PWA): Push notifications go only to a device where you personally turned notifications on in Settings and your browser granted permission. Nothing is ever ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:276"
    },
    {
      "id": "C-221",
      "title": "Feedback capture & status tracking: Submit feedback from anywhere in Forge — a bug, something missin",
      "scope": "Feedback capture & status tracking: Submit feedback from anywhere in Forge — a bug, something missing, or a workflow that's just confusing — and track its status on a plain timeline ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:277"
    },
    {
      "id": "C-222",
      "title": "Accounting push sync (QuickBooks Online, staged): For a QuickBooks Online company you connect, invoi",
      "scope": "Accounting push sync (QuickBooks Online, staged): For a QuickBooks Online company you connect, invoices and customers can be pushed from The Forge. Push is on by default and needs QuickBooks ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:278"
    },
    {
      "id": "C-223",
      "title": "Automatic updates from connected financial systems: Updates arriving from your connected financial s",
      "scope": "Automatic updates from connected financial systems: Updates arriving from your connected financial systems are verified as genuinely coming from that provider before anything is applied to your records.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:279"
    },
    {
      "id": "C-224",
      "title": "Gusto connector: Connect your own Gusto account via OAuth using your own Gusto Developer app — the p",
      "scope": "Gusto connector: Connect your own Gusto account via OAuth using your own Gusto Developer app — the platform encrypts your credentials at rest, can verify the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:280"
    },
    {
      "id": "C-226",
      "title": "Square POS connector: Connect your own Square account via OAuth using your own Square Application — ",
      "scope": "Square POS connector: Connect your own Square account via OAuth using your own Square Application — the platform encrypts your credentials at rest, can verify the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:282"
    },
    {
      "id": "C-227",
      "title": "Assistant grounded in your own data: Ask a question and get answers grounded in your own workspace d",
      "scope": "Assistant grounded in your own data: Ask a question and get answers grounded in your own workspace data — structured search across your records, communications, tasks, launches, finance, ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:283"
    },
    {
      "id": "C-228",
      "title": "Data retention and archival: Records are archived rather than lost, and permanent deletion is allowe",
      "scope": "Data retention and archival: Records are archived rather than lost, and permanent deletion is allowed only once the retention period your business sets for each kind of record ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:284"
    },
    {
      "id": "C-229",
      "title": "Role-based daily workspace: One role-scoped rollup for today — the jobs and shifts on your schedule,",
      "scope": "Role-based daily workspace: One role-scoped rollup for today — the jobs and shifts on your schedule, plus your open finance exceptions and purchase requests — filtered to ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:285"
    },
    {
      "id": "C-230",
      "title": "Required completion evidence: A job can require a set number of photos and finished checklist items ",
      "scope": "Required completion evidence: A job can require a set number of photos and finished checklist items before it can be marked complete; a completion that is missing them is refused ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:286"
    },
    {
      "id": "C-231",
      "title": "Crew lead resolution & photo walkthrough gate: Every job automatically has a crew lead — the schedul",
      "scope": "Crew lead resolution & photo walkthrough gate: Every job automatically has a crew lead — the scheduled owner if there is one, an Owner-chosen override, or otherwise the crew member with the most ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:287"
    },
    {
      "id": "C-232",
      "title": "Field notes and checklists: A crew working the same job can leave notes and tick off one shared chec",
      "scope": "Field notes and checklists: A crew working the same job can leave notes and tick off one shared checklist from their own accounts — everyone assigned to that job sees the same ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:288"
    },
    {
      "id": "C-233",
      "title": "Field quality verification: Crew members mark each item on a job's quality checklist as passed or fa",
      "scope": "Field quality verification: Crew members mark each item on a job's quality checklist as passed or failed, with an optional note and photo. Every mark stays on record, and the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:289"
    },
    {
      "id": "C-234",
      "title": "Job postings and applicants: Write up a job you are hiring for, open it, and track everyone who appl",
      "scope": "Job postings and applicants: Write up a job you are hiring for, open it, and track everyone who applies through a simple set of stages from new to hired. If you point one of your ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:290"
    },
    {
      "id": "C-235",
      "title": "Interview panels and scorecards: Schedule an interview for a candidate, invite one or more of your t",
      "scope": "Interview panels and scorecards: Schedule an interview for a candidate, invite one or more of your team members as panelists, and let each panelist submit their own 1-5 score, a hire ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:291"
    },
    {
      "id": "C-236",
      "title": "Offers, including hire conversion: Extend a candidate a real offer — role, pay, start date, and an o",
      "scope": "Offers, including hire conversion: Extend a candidate a real offer — role, pay, start date, and an optional expiration — and move it to accepted, declined, or withdrawn. Accepting an ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:292"
    },
    {
      "id": "C-237",
      "title": "Hire-scoped onboarding checklists: Give a new hire a checklist grouped into documents, training, equ",
      "scope": "Hire-scoped onboarding checklists: Give a new hire a checklist grouped into documents, training, equipment, and first-week schedule, each item trackable as pending, done, or skipped ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:293"
    },
    {
      "id": "C-238",
      "title": "Employee recognition: Anyone on your team can give a teammate a public kudos tied to one of your com",
      "scope": "Employee recognition: Anyone on your team can give a teammate a public kudos tied to one of your company's values, and owners can hand out named awards and get reminded ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:294"
    },
    {
      "id": "C-239",
      "title": "Staff Library: Owners publish policy and training documents to the roles or positions they choose, a",
      "scope": "Staff Library: Owners publish policy and training documents to the roles or positions they choose, and staff sign off with a drawn signature, a typed name, and an ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:295"
    },
    {
      "id": "C-240",
      "title": "Technician licence and certification records: Technician records carry their licenses and certificat",
      "scope": "Technician licence and certification records: Technician records carry their licenses and certifications with expiration dates. Owners verify each one, a document can be linked to it, and the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:296"
    },
    {
      "id": "C-241",
      "title": "Evidence-linked control registry: An internal, evidence-linked inventory of the platform's security,",
      "scope": "Evidence-linked control registry: An internal, evidence-linked inventory of the platform's security, availability, and confidentiality controls, mapped to SOC 2 Trust Services ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:297"
    },
    {
      "id": "C-242",
      "title": "Evidence backup manifest & integrity: Every stored evidence object is continuously checksummed again",
      "scope": "Evidence backup manifest & integrity: Every stored evidence object is continuously checksummed against its original hash and mirrored to a second, content-addressed copy in the same ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:298"
    },
    {
      "id": "C-243",
      "title": "Release-journey conformance evidence: The core signup-to-revenue workflow — sign in with MFA, connec",
      "scope": "Release-journey conformance evidence: The core signup-to-revenue workflow — sign in with MFA, connect a provider, take a call, route a lead, schedule an appointment, track a listing to ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:299"
    },
    {
      "id": "C-244",
      "title": "Client-driven public roadmap: See what other businesses on Forge are asking for, ranked by how many ",
      "scope": "Client-driven public roadmap: See what other businesses on Forge are asking for, ranked by how many have raised it — not a hand-picked marketing list. Say an existing idea matters ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:300"
    },
    {
      "id": "C-245",
      "title": "Launch workspace aggregate: One view shows a launch's phase, milestones, owners, customer vs HustleF",
      "scope": "Launch workspace aggregate: One view shows a launch's phase, milestones, owners, customer vs HustleForge tasks, risks, blockers, and pending approvals - each section only shows ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:301"
    },
    {
      "id": "C-247",
      "title": "Daily idea deck & extra idea packs: A deck of ready-to-post marketing ideas - an image, carousel or ",
      "scope": "Daily idea deck & extra idea packs: A deck of ready-to-post marketing ideas - an image, carousel or short video with a caption and per-network variants - that you approve or skip one ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "available with integration",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:303"
    },
    {
      "id": "C-248",
      "title": "In-house image generation for social posts: Describe the image you want inside the social composer a",
      "scope": "In-house image generation for social posts: Describe the image you want inside the social composer and a ready-to-attach image is generated for you, sized for the post. The generate control ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "available with integration",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:304"
    },
    {
      "id": "C-249",
      "title": "Content calendar, broker approval & scheduled publishing: A post moves through broker approval befor",
      "scope": "Content calendar, broker approval & scheduled publishing: A post moves through broker approval before it can ever be scheduled, and every attempt to publish is tracked with an honest status - published, or a ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "available with integration",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:305"
    },
    {
      "id": "C-250",
      "title": "In-house Reel (video) generation for social posts: Choose 1-4 images already generated or attached, ",
      "scope": "In-house Reel (video) generation for social posts: Choose 1-4 images already generated or attached, add a caption for each scene, pick a duration, and a ready-to-publish vertical Reel (1080x1920, ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "available with integration",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:306"
    },
    {
      "id": "C-251",
      "title": "Capability-gap assist guidance: When a user hits a permission or feature boundary, the platform can ",
      "scope": "Capability-gap assist guidance: When a user hits a permission or feature boundary, the platform can offer contextual guidance from a configured assist provider.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "available with integration",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:307"
    },
    {
      "id": "C-252",
      "title": "Telephony provider webhook adapter: Call events from your configured telephony provider are verified",
      "scope": "Telephony provider webhook adapter: Call events from your configured telephony provider are verified and normalized into the receptionist queue automatically - this platform's own code ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "available with integration",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:308"
    },
    {
      "id": "C-253",
      "title": "Physical inventory capability discovery: The platform can report which physical-inventory capability",
      "scope": "Physical inventory capability discovery: The platform can report which physical-inventory capability packs a workspace has available. Item tracking and a usage-based ordering estimator are ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "configured during launch",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:309"
    },
    {
      "id": "C-254",
      "title": "Admissions document checklists and missing-item follow-up: Each application lists the materials it r",
      "scope": "Admissions document checklists and missing-item follow-up: Each application lists the materials it requires and tracks each one as received or outstanding, so missing items are followed up automatically. Not ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:310"
    },
    {
      "id": "C-255",
      "title": "Enrollment funnel stage conversion: Shows every prospective family by stage, from inquiry through to",
      "scope": "Enrollment funnel stage conversion: Shows every prospective family by stage, from inquiry through tour, application, offer and enrollment, with conversion rates between stages. Not yet ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:311"
    },
    {
      "id": "C-256",
      "title": "Application checklists and missing-item follow-up: Each application carries a checklist of required ",
      "scope": "Application checklists and missing-item follow-up: Each application carries a checklist of required information, and missing items trigger a follow-up before the quote is prepared.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:312"
    },
    {
      "id": "C-257",
      "title": "Backorders and fill rate: Short-shipped order lines are flagged as backorders with a customer notice",
      "scope": "Backorders and fill rate: Short-shipped order lines are flagged as backorders with a customer notice, released for shipment when inventory arrives, and reported as fill rate ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:313"
    },
    {
      "id": "C-259",
      "title": "Catering and event bookings: A catering inquiry becomes an event booking with menu selections, headc",
      "scope": "Catering and event bookings: A catering inquiry becomes an event booking with menu selections, headcount, deposit status, and staffing needs, followed through to the event and ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:315"
    },
    {
      "id": "C-260",
      "title": "Client deliverable approval requests: Submits a deliverable for client review, sends a structured ap",
      "scope": "Client deliverable approval requests: Submits a deliverable for client review, sends a structured approval request, captures the response on the engagement, and escalates when approval ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:316"
    },
    {
      "id": "C-261",
      "title": "Donor stewardship milestones: Flags first gifts, increased giving and lapsed donors so stewardship f",
      "scope": "Donor stewardship milestones: Flags first gifts, increased giving and lapsed donors so stewardship follow-up starts from the giving record. Not yet built: the only milestone is a ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:317"
    },
    {
      "id": "C-263",
      "title": "Engagement renewal forecast: Lists engagements approaching their end date with a renewal likelihood ",
      "scope": "Engagement renewal forecast: Lists engagements approaching their end date with a renewal likelihood and the revenue at risk if they do not renew. Not yet built: renewal dates ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:319"
    },
    {
      "id": "C-264",
      "title": "Engagement scope, timeline and billing terms: Holds the scope, timeline and billing terms on a signe",
      "scope": "Engagement scope, timeline and billing terms: Holds the scope, timeline and billing terms on a signed engagement, and records scope changes with client acknowledgment before billing is adjusted. ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:320"
    },
    {
      "id": "C-265",
      "title": "Retention and book composition: Renewal rate by producer, line, and client segment, and policies in ",
      "scope": "Retention and book composition: Renewal rate by producer, line, and client segment, and policies in force by line, carrier, and premium band.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:321"
    },
    {
      "id": "C-266",
      "title": "Bind and policy servicing: An accepted quote converts to a bound policy on the client record, and en",
      "scope": "Bind and policy servicing: An accepted quote converts to a bound policy on the client record, and endorsement requests, certificates, and claims are tracked against that policy.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:322"
    },
    {
      "id": "C-267",
      "title": "Customer e-signature approval of change orders: Planned: a customer will approve a change order by e",
      "scope": "Customer e-signature approval of change orders: Planned: a customer will approve a change order by e-signature through the existing signature flow, and the signed approval will acknowledge the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:323"
    },
    {
      "id": "C-268",
      "title": "Maintenance requests and work orders: Renter-submitted maintenance requests, from the portal or an i",
      "scope": "Maintenance requests and work orders: Renter-submitted maintenance requests, from the portal or an inbound email, become work orders routed to a vendor or technician, track status to ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:324"
    },
    {
      "id": "C-270",
      "title": "Practice pipeline reporting: Unscheduled treatment value by provider and case type, and new-patient ",
      "scope": "Practice pipeline reporting: Unscheduled treatment value by provider and case type, and new-patient conversion from inquiry to booked to first visit, by source and month.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:326"
    },
    {
      "id": "C-271",
      "title": "Transaction milestone deadline alerts: Flags a transaction milestone that is approaching its due dat",
      "scope": "Transaction milestone deadline alerts: Flags a transaction milestone that is approaching its due date or is at risk, and alerts the agent and transaction coordinator. Not yet built: ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:327"
    },
    {
      "id": "C-272",
      "title": "Rent ledger and delinquency escalation: Rent charges post on each lease's due date, and a missed pay",
      "scope": "Rent ledger and delinquency escalation: Rent charges post on each lease's due date, and a missed payment moves through your configured notice, follow-up, and escalation steps, with ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:328"
    },
    {
      "id": "C-273",
      "title": "Rental applications and screening: Rental applications are submitted, screened against the criteria ",
      "scope": "Rental applications and screening: Rental applications are submitted, screened against the criteria you configure, and moved to lease preparation, with follow-up for missing documents.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:329"
    },
    {
      "id": "C-274",
      "title": "Residence beds, stays and restricted period: Tracks beds by house, assigns each resident to a bed wi",
      "scope": "Residence beds, stays and restricted period: Tracks beds by house, assigns each resident to a bed with start and end dates, records the end date of the restricted early period, and shows open ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:330"
    },
    {
      "id": "C-275",
      "title": "Scheduled report delivery: Reports will be sent by email on the daily, weekly or monthly schedule yo",
      "scope": "Scheduled report delivery: Reports will be sent by email on the daily, weekly or monthly schedule you choose, without anyone assembling them by hand. Planned. Not available ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:331"
    },
    {
      "id": "C-276",
      "title": "Superintendent daily log: Superintendents will log each project's daily progress, crew on site and c",
      "scope": "Superintendent daily log: Superintendents will log each project's daily progress, crew on site and conditions, and that log will feed draw checks and the project record. ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:332"
    },
    {
      "id": "C-277",
      "title": "Tuition, aid and net revenue summary: Shows projected tuition revenue, committed aid and net revenue",
      "scope": "Tuition, aid and net revenue summary: Shows projected tuition revenue, committed aid and net revenue by grade level and enrollment status. Not yet built: invoices carry no grade or aid ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:333"
    },
    {
      "id": "C-278",
      "title": "First-time visitor return tracking: Records each visit against a person so first-time visitors who r",
      "scope": "First-time visitor return tracking: Records each visit against a person so first-time visitors who return for a second or third visit, or join a group, can be counted. Not yet built: ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:334"
    },
    {
      "id": "C-279",
      "title": "Volunteer shift confirmations and need fill rate: Sends confirmation requests to volunteers who are ",
      "scope": "Volunteer shift confirmations and need fill rate: Sends confirmation requests to volunteers who are not on payroll, records their replies, and reports open versus confirmed needs by ministry and ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:335"
    },
    {
      "id": "C-280",
      "title": "Public lead capture: A public endpoint validates a website inquiry and blocks bots and automated flo",
      "scope": "Public lead capture: A public endpoint validates a website inquiry and blocks bots and automated flooding before accepting it. It does not yet store or forward the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "roadmap / not live (contact us)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:336"
    },
    {
      "id": "C-313",
      "title": "Get an alert when an item runs low.",
      "scope": "Get an alert when an item runs low.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:369"
    },
    {
      "id": "C-314",
      "title": "Track inventory across multiple locations.",
      "scope": "Track inventory across multiple locations.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:370"
    },
    {
      "id": "C-315",
      "title": "The Forge is a connected business platform for service businesses. It brings sales, marketing, opera",
      "scope": "The Forge is a connected business platform for service businesses. It brings sales, marketing, operations, workforce, communications, and reporting into one system, configured for how your industry ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:371"
    },
    {
      "id": "C-316",
      "title": "A CRM handles customers. A workflow tool automates one process. The Forge connects everything the bu",
      "scope": "A CRM handles customers. A workflow tool automates one process. The Forge connects everything the business runs on — the customer, the job, the schedule, the crew, the invoice, the payroll summary, ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:372"
    },
    {
      "id": "C-317",
      "title": "The Forge currently supports twelve industries, including home services and contractors, professiona",
      "scope": "The Forge currently supports twelve industries, including home services and contractors, professional services, insurance agencies, distribution, restaurants, construction, property management, ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:373"
    },
    {
      "id": "C-318",
      "title": "Yes, from Start. Owners, managers, and employees message each other in a shared channel, entity-scop",
      "scope": "Yes, from Start. Owners, managers, and employees message each other in a shared channel, entity-scoped channels, and direct messages. Messages refresh on a short interval, not a live socket, and ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:374"
    },
    {
      "id": "C-319",
      "title": "Yes to both, from Start. Trigger-then-action workflows run against real events — a new lead, a job s",
      "scope": "Yes to both, from Start. Trigger-then-action workflows run against real events — a new lead, a job status change, an accepted estimate, an overdue invoice — up to your plan's limit, with full run ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:375"
    },
    {
      "id": "C-320",
      "title": "Yes, from Start. Send an estimate or a document out for signature, in order, with drawn signatures, ",
      "scope": "Yes, from Start. Send an estimate or a document out for signature, in order, with drawn signatures, a tamper-evident completion record, and your own logo and accent color on the signing page. Build a ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:376"
    },
    {
      "id": "C-321",
      "title": "From Core, a tracked link is a reusable short link with a click count, for a campaign, a text messag",
      "scope": "From Core, a tracked link is a reusable short link with a click count, for a campaign, a text message, or a printed flyer. On Pro, a prospecting audit report is a shareable business-health snapshot ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:377"
    },
    {
      "id": "C-322",
      "title": "Yes, from Start. Install The Forge to a phone or desktop home screen and open it like a native app. ",
      "scope": "Yes, from Start. Install The Forge to a phone or desktop home screen and open it like a native app. Screens load fast from a local cache, and a clear offline page appears when there is no connection. ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:378"
    },
    {
      "id": "C-323",
      "title": "Managed Launch typically runs 10–20 business days for Core and 20–40 for Pro after all required acce",
      "scope": "Managed Launch typically runs 10–20 business days for Core and 20–40 for Pro after all required access and data are supplied; Operations is scoped to your complexity. Guided Launch moves at your ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:379"
    },
    {
      "id": "C-324",
      "title": "All traffic runs over HTTPS, and a Content-Security-Policy restricts what the browser is allowed to ",
      "scope": "All traffic runs over HTTPS, and a Content-Security-Policy restricts what the browser is allowed to load and execute. Content pulled in from third parties is sanitized before it's rendered. Customer ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:380"
    },
    {
      "id": "C-325",
      "title": "Yes. Your data is yours. The Forge provides customer data export in standard formats, and integratio",
      "scope": "Yes. Your data is yours. The Forge provides customer data export in standard formats, and integrations continue to write to your accounting and payroll systems throughout — so leaving isn't a ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:381"
    },
    {
      "id": "C-326",
      "title": "You earn Forge Credits by participating in your launch — preparing approved data exports, connecting",
      "scope": "You earn Forge Credits by participating in your launch — preparing approved data exports, connecting supported systems, confirming your workflow configuration, and completing administrator training. ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:382"
    },
    {
      "id": "C-327",
      "title": "Yes. Forge Marketplace access is included on every tier, including Core. Lead programs, campaign lau",
      "scope": "Yes. Forge Marketplace access is included on every tier, including Core. Lead programs, campaign launches, and paid media management are available as optional add-ons regardless of which plan you're ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:383"
    },
    {
      "id": "C-328",
      "title": "No. Marketplace add-ons are optional purchases layered onto your existing plan. Adding a capability ",
      "scope": "No. Marketplace add-ons are optional purchases layered onto your existing plan. Adding a capability does not automatically change your tier or your monthly platform fee.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:384"
    },
    {
      "id": "C-331",
      "title": "Yes. Forge Operations is built for multiple businesses and legal entities under one account, with cr",
      "scope": "Yes. Forge Operations is built for multiple businesses and legal entities under one account, with cross-business executive reporting. Core and Pro customers can add an additional business entity or ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:387"
    },
    {
      "id": "C-332",
      "title": "Yes. From inside The Forge you can set a Lead Wallet balance, a monthly campaign cap, an owner appro",
      "scope": "Yes. From inside The Forge you can set a Lead Wallet balance, a monthly campaign cap, an owner approval threshold, and usage alerts, plus an emergency stop for optional spend — nothing above your ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:388"
    },
    {
      "id": "C-333",
      "title": "You do. HustleForge LLC operates The Forge as the platform, but your customer, business, and financi",
      "scope": "You do. HustleForge LLC operates The Forge as the platform, but your customer, business, and financial records belong to your business — see our Privacy Policy for the specifics of what's collected ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:389"
    },
    {
      "id": "C-334",
      "title": "You can export your customer and business data in standard formats, and any live integrations to you",
      "scope": "You can export your customer and business data in standard formats, and any live integrations to your accounting or payroll systems keep those records current up to the point you leave. There's no ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:390"
    },
    {
      "id": "C-335",
      "title": "Integrated, not replaced. The Forge connects to the accounting platform, payroll provider, and point",
      "scope": "Integrated, not replaced. The Forge connects to the accounting platform, payroll provider, and point-of-sale you already use, surfacing wage, payroll, and sales summaries natively — it doesn't run ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:391"
    },
    {
      "id": "C-336",
      "title": "On Pro, The Forge watches every entity's finances for aging exceptions, expense spikes, and revenue ",
      "scope": "On Pro, The Forge watches every entity's finances for aging exceptions, expense spikes, and revenue drops, alerting Owner or Finance the moment a fixed threshold is crossed. Every alert shows the ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:392"
    },
    {
      "id": "C-337",
      "title": "Email campaigns are available on Pro and Operations only, up to your plan's limit. Build a real audi",
      "scope": "Email campaigns are available on Pro and Operations only, up to your plan's limit. Build a real audience, automatically excluding anyone who revoked consent, then send and track it — every send ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:393"
    },
    {
      "id": "C-338",
      "title": "On Pro, item-level inventory lives natively: a per-item ledger of receipts, usage, adjustments, and ",
      "scope": "On Pro, item-level inventory lives natively: a per-item ledger of receipts, usage, adjustments, and counts drives current stock, never a mutable counter. A deterministic ordering estimator suggests ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:394"
    },
    {
      "id": "C-339",
      "title": "No. The Forge replaces redundant tools — the overlapping CRMs, standalone schedulers, and disconnect",
      "scope": "No. The Forge replaces redundant tools — the overlapping CRMs, standalone schedulers, and disconnected pipeline apps — and integrates with the systems you need to keep, like your accounting platform ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:395"
    },
    {
      "id": "C-340",
      "title": "Certain specialized Marketplace services may be completed through vetted fulfillment partners, but t",
      "scope": "Certain specialized Marketplace services may be completed through vetted fulfillment partners, but they remain managed, reviewed, and delivered through The Forge. Quoted pricing includes ...",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:396"
    },
    {
      "id": "C-341",
      "title": "Real-time claim group: Live dashboards and KPI views (owner, portfolio, finance, pipeline, cross-loc",
      "scope": "Real-time claim group: Live dashboards and KPI views (owner, portfolio, finance, pipeline, cross-location)",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:397"
    },
    {
      "id": "C-342",
      "title": "Real-time claim group: Dispatch/ops board, capacity view",
      "scope": "Real-time claim group: Dispatch/ops board, capacity view",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:398"
    },
    {
      "id": "C-343",
      "title": "Real-time claim group: Live technician map, real-time tech location, reroute pushed to the tech",
      "scope": "Real-time claim group: Live technician map, real-time tech location, reroute pushed to the tech",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:399"
    },
    {
      "id": "C-344",
      "title": "Real-time claim group: Running-late schedule, overtime \"in real time\"",
      "scope": "Real-time claim group: Running-late schedule, overtime \"in real time\"",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:400"
    },
    {
      "id": "C-345",
      "title": "Real-time claim group: Alerts \"as it happens\" (KPI breach, unapproved time)",
      "scope": "Real-time claim group: Alerts \"as it happens\" (KPI breach, unapproved time)",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:401"
    },
    {
      "id": "C-346",
      "title": "Real-time claim group: Lead capture immediate",
      "scope": "Real-time claim group: Lead capture immediate",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:402"
    },
    {
      "id": "C-347",
      "title": "Real-time claim group: Follow-up \"starts immediately\", front-desk alert",
      "scope": "Real-time claim group: Follow-up \"starts immediately\", front-desk alert",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:403"
    },
    {
      "id": "C-348",
      "title": "Real-time claim group: Field update \"office sees immediately\"",
      "scope": "Real-time claim group: Field update \"office sees immediately\"",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:404"
    },
    {
      "id": "C-350",
      "title": "Real-time claim group: Finance \"near real time\"; anomaly alerts",
      "scope": "Real-time claim group: Finance \"near real time\"; anomaly alerts",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:406"
    },
    {
      "id": "C-351",
      "title": "Real-time claim group: \"Live operating view\"; scheduled reports",
      "scope": "Real-time claim group: \"Live operating view\"; scheduled reports",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:407"
    },
    {
      "id": "C-352",
      "title": "Real-time claim group: Status page \"checked on every page load\"",
      "scope": "Real-time claim group: Status page \"checked on every page load\"",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:408"
    },
    {
      "id": "C-353",
      "title": "Real-time claim group: Receptionist live call queue",
      "scope": "Real-time claim group: Receptionist live call queue",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:409"
    },
    {
      "id": "C-354",
      "title": "Real-time claim group: Connector sync real time / revocation immediate",
      "scope": "Real-time claim group: Connector sync real time / revocation immediate",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:410"
    },
    {
      "id": "C-355",
      "title": "Real-time claim group: Manager live clock-in status",
      "scope": "Real-time claim group: Manager live clock-in status",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:411"
    },
    {
      "id": "C-356",
      "title": "Industry and problem page claims (construction, home-services and 5 subpages, cleaning, landscaping,",
      "scope": "Industry and problem page claims (construction, home-services and 5 subpages, cleaning, landscaping, catalog, 14 problem pages): 271 rows.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:412"
    },
    {
      "id": "C-357",
      "title": "Workflow claims for 8 target industries: 60 claims, 27 AVAILABLE, 2 PARTIAL, 31 MISSING.",
      "scope": "Workflow claims for 8 target industries: 60 claims, 27 AVAILABLE, 2 PARTIAL, 31 MISSING.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:413"
    },
    {
      "id": "C-358",
      "title": "Workflow claims for 8 further industries: 67 claims, 51 AVAILABLE, 12 PARTIAL, 4 MISSING.",
      "scope": "Workflow claims for 8 further industries: 67 claims, 51 AVAILABLE, 12 PARTIAL, 4 MISSING.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "none",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:414"
    },
    {
      "id": "C-359",
      "title": "UNRELEASED: committed in rebuild, not in repo main: FAQ 'Can The Forge plan our bus or van routes?' ",
      "scope": "UNRELEASED: committed in rebuild, not in repo main: FAQ 'Can The Forge plan our bus or van routes?' answered 'Yes, in Early access'.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "early access",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:415"
    },
    {
      "id": "C-360",
      "title": "UNRELEASED: market claim gating now blocks 'Contact us for availability' capabilities from supported",
      "scope": "UNRELEASED: market claim gating now blocks 'Contact us for availability' capabilities from supported claims.",
      "kind": "historical-curated-statement",
      "status": "Historical scope requires verification",
      "registryStatus": "n/a (control)",
      "plan": "Historical wording; confirm current offer",
      "evidence": "This statement was captured by the earlier curated audit. It may describe several actions or an example, not one finished feature. It remains a scope-reconciliation requirement rather than a delivery or availability guarantee.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "SITE-CLAIMS-INVENTORY.md:416"
    },
    {
      "id": "IND-99beedcbb77a1c",
      "title": "1. Home Services & Contractors (HVAC, plumbing, electrical, general contracting) — Every call captured to a customer record; after-hours inquiries get an immediate follow-up sequence",
      "scope": "Every call captured to a customer record; after-hours inquiries get an immediate follow-up sequence",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0039_receptionist.sql, migrations/0047_receptionist_vapi.sql, src/receptionist-requests.js, src/receptionist-schedule.js, src/receptionist.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.receptionist-operations",
        "integrations.vapi-connector"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:19"
    },
    {
      "id": "IND-d1470d6fae6bfd",
      "title": "1. Home Services & Contractors (HVAC, plumbing, electrical, general contracting) — Open estimates get automatic follow-up on a schedule with time limits; overdue shown to estimator an",
      "scope": "Open estimates get automatic follow-up on a schedule with time limits; overdue shown to estimator and office",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0138_estimate_follow_up.sql, migrations/20261010440000_estimate_aging.sql, migrations/20261011100000_estimate_call_tasks.sql, src/escalation.js, src/estimate-follow-up-coverage.js, src/estimate-follow-up.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.estimate-follow-up"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:20"
    },
    {
      "id": "IND-7f7e4abcd53f33",
      "title": "1. Home Services & Contractors (HVAC, plumbing, electrical, general contracting) — Dispatch sees skills, certifications, location and availability against job requirements",
      "scope": "Dispatch sees skills, certifications, location and availability against job requirements",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/dispatch-qualifications.js, src/dispatch-suggestions.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.qualification-based-dispatch",
        "people-hr.technician-credentials"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:21"
    },
    {
      "id": "IND-8ef3222bb41406",
      "title": "1. Home Services & Contractors (HVAC, plumbing, electrical, general contracting) — Field change orders flow to billing; technician hours tie to the job; labor cost visible before payr",
      "scope": "Field change orders flow to billing; technician hours tie to the job; labor cost visible before payroll",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/job-economics.js, src/overtime-exposure.js, tests/change-order-invoice-automation.test.mjs, tests/change-orders-native-job.test.mjs, tests/field-change-order-request-ui.test.mjs, tests/oc-a08-field-change-orders.test.mjs. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.job-change-orders",
        "business-api.native-time-tracking"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:22"
    },
    {
      "id": "IND-d6e19d54d27772",
      "title": "1. Home Services & Contractors (HVAC, plumbing, electrical, general contracting) — Emergency dispatch with skill-matched technicians; triage and displaced-job recovery",
      "scope": "Emergency dispatch with skill-matched technicians; triage and displaced-job recovery",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/emergency-triage.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:23"
    },
    {
      "id": "IND-b82b56c5a7beec",
      "title": "1. Home Services & Contractors (HVAC, plumbing, electrical, general contracting) — Maintenance agreements tracked; tune-ups pre-scheduled; renewal task before expiry; warranty and equ",
      "scope": "Maintenance agreements tracked; tune-ups pre-scheduled; renewal task before expiry; warranty and equipment history",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-crm.js, migrations/0152_service_engagement_operations.sql, migrations/20261009050000_customer_equipment.sql, migrations/20261010630000_renewal_calendar.sql, src/customer-equipment.js, src/recurring-visits.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:24"
    },
    {
      "id": "IND-e13025bff78842",
      "title": "1. Home Services & Contractors (HVAC, plumbing, electrical, general contracting) — Seasonal demand forecasting and pre-booking",
      "scope": "Seasonal demand forecasting and pre-booking",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-booking.js, src/seasonal-demand.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.online-booking",
        "business-api.seasonal-demand"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:25"
    },
    {
      "id": "IND-92ee5846ef6621",
      "title": "1. Home Services & Contractors (HVAC, plumbing, electrical, general contracting) — Callbacks broken out; first-visit completion vs callbacks",
      "scope": "Callbacks broken out; first-visit completion vs callbacks",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261010460000_time_entry_labor_category.sql, src/crew-utilization.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.callback-tracking"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:26"
    },
    {
      "id": "IND-107ad417cd1363",
      "title": "2. Roofing (home-services/roofing subpage; roofing-contractors catalog page) — Weather delays flagged for rescheduling; cascade shown on later jobs; customers notified",
      "scope": "Weather delays flagged for rescheduling; cascade shown on later jobs; customers notified",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/weather-delays.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.delay-notices",
        "business-api.weather-delay-rescheduling"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:45"
    },
    {
      "id": "IND-52d7332e7aa625",
      "title": "2. Roofing (home-services/roofing subpage; roofing-contractors catalog page) — Materials ordered and staged against the job timeline; costs tracked against the job before invoice",
      "scope": "Materials ordered and staged against the job timeline; costs tracked against the job before invoice",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0153_job_economics_resources.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.purchase-orders-job-link"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:46"
    },
    {
      "id": "IND-8ba2a6d16cc225",
      "title": "2. Roofing (home-services/roofing subpage; roofing-contractors catalog page) — Safety documentation, toolbox talks, compliance tracking",
      "scope": "Safety documentation, toolbox talks, compliance tracking",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261010610000_toolbox_talks_postings.sql, src/construction-toolbox.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.toolbox-talks-required-postings"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:47"
    },
    {
      "id": "IND-268735f3978532",
      "title": "2. Roofing (home-services/roofing subpage; roofing-contractors catalog page) — Insurance claim coordination and supplement tracking",
      "scope": "Insurance claim coordination and supplement tracking",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261010690000_insurance_claims.sql, src/insurance-claims.js, tests/insurance-claims-supplement-billing.test.mjs. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.insurance-claims"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:48"
    },
    {
      "id": "IND-bd158f1a38fe2f",
      "title": "2. Roofing (home-services/roofing subpage; roofing-contractors catalog page) — Warranty documentation and installation records linked to customer",
      "scope": "Warranty documentation and installation records linked to customer",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261009050000_customer_equipment.sql, src/customer-equipment.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:49"
    },
    {
      "id": "IND-e9820b199d153f",
      "title": "2. Roofing (home-services/roofing subpage; roofing-contractors catalog page) — Roofing measurement and takeoff tools; insurance platform connections",
      "scope": "Roofing measurement and takeoff tools; insurance platform connections",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:50"
    },
    {
      "id": "IND-f2a2c77ffb9929",
      "title": "2. Roofing (home-services/roofing subpage; roofing-contractors catalog page) — Seasonal demand swings and capacity",
      "scope": "Seasonal demand swings and capacity",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/seasonal-demand.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:51"
    },
    {
      "id": "IND-f259b22f3e44cd",
      "title": "3. Cleaning & Turnover Services — Turnover request becomes a job; crews assigned by location and availability see it",
      "scope": "Turnover request becomes a job; crews assigned by location and availability see it",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/dispatch-qualifications.js, src/dispatch-suggestions.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:67"
    },
    {
      "id": "IND-d3dbbcee698d0e",
      "title": "3. Cleaning & Turnover Services — Before-and-after completion photos attached to the job record; office sees completion",
      "scope": "Before-and-after completion photos attached to the job record; office sees completion",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/field-photos.js, src/native-jobs.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "people-hr.completion-evidence",
        "people-hr.field-execution"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:68"
    },
    {
      "id": "IND-15932ea2514f03",
      "title": "3. Cleaning & Turnover Services — Missed check-in becomes a same-day task",
      "scope": "Missed check-in becomes a same-day task",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261010360000_job_arrivals.sql, src/index.js, src/job-arrivals.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.missed-checkin-alerts"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:69"
    },
    {
      "id": "IND-5c5dbf9a998743",
      "title": "3. Cleaning & Turnover Services — Recurring cleaning agreements with frequency and renewal date; invoices per period from completed wo",
      "scope": "Recurring cleaning agreements with frequency and renewal date; invoices per period from completed work",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0152_service_engagement_operations.sql, migrations/0191_recurring_invoice_schedules.sql, src/service-engagements.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:70"
    },
    {
      "id": "IND-36f6a62e713443",
      "title": "3. Cleaning & Turnover Services — Invoice generated on completion with a payment link; payment posts to invoice",
      "scope": "Invoice generated on completion with a payment link; payment posts to invoice",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/invoice-pay-now.js, src/invoice-payments.js, src/job-auto-invoice.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.invoice-pay-now",
        "integrations.stripe-connector"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:71"
    },
    {
      "id": "IND-802b55d19e814d",
      "title": "3. Cleaning & Turnover Services — Crew utilization by location",
      "scope": "Crew utilization by location",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/crew-utilization.js, src/overtime-exposure.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:72"
    },
    {
      "id": "IND-dd551f47f503d9",
      "title": "3. Cleaning & Turnover Services — Job completion rate, on-time, turnover speed; invoice and payment aging",
      "scope": "Job completion rate, on-time, turnover speed; invoice and payment aging",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/on-time-reporting.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.on-time-reporting",
        "business-api.receivables-aging"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:73"
    },
    {
      "id": "IND-c2434a40ddee41",
      "title": "3. Cleaning & Turnover Services — Crew \"on the way\" live from the latest device fix",
      "scope": "Crew \"on the way\" live from the latest device fix",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261012170000_live_location.sql, src/geofence.js, src/live-location.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:74"
    },
    {
      "id": "IND-28ada94bc0b3f3",
      "title": "4. Landscaping & Grounds Management — Recurring route stops, standing schedule or custom cadence, seasonal crew rotation without rebuildin",
      "scope": "Recurring route stops, standing schedule or custom cadence, seasonal crew rotation without rebuilding the route",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261010570000_route_runs.sql, migrations/20261010740000_crew_rotation.sql, src/crew-planning.js, src/recurring-visits.js, src/route-runs.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.route-runs",
        "business-api.seasonal-crew-planning"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:89"
    },
    {
      "id": "IND-4a226e5b74d028",
      "title": "4. Landscaping & Grounds Management — Work order per route stop with checklist and photos; completion confirmed in the field",
      "scope": "Work order per route stop with checklist and photos; completion confirmed in the field",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/field-execution.js, src/field-photos.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "people-hr.field-execution"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:90"
    },
    {
      "id": "IND-237c7500b0ae44",
      "title": "4. Landscaping & Grounds Management — Weather delay logged, overdue properties flagged, next slot found, customers notified",
      "scope": "Weather delay logged, overdue properties flagged, next slot found, customers notified",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/weather-delays.js, src/weather-forecast.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:91"
    },
    {
      "id": "IND-92634bf02ac38e",
      "title": "4. Landscaping & Grounds Management — Service agreement renewals at 30/60/90 days",
      "scope": "Service agreement renewals at 30/60/90 days",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261010630000_renewal_calendar.sql, src/renewal-calendar.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:92"
    },
    {
      "id": "IND-afef2c2b7192e1",
      "title": "4. Landscaping & Grounds Management — Crew utilization and route balance; capacity per route; seasonal labor cost",
      "scope": "Crew utilization and route balance; capacity per route; seasonal labor cost",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/crew-planning.js, src/crew-utilization.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:93"
    },
    {
      "id": "IND-0d69a1b0cbb9e3",
      "title": "4. Landscaping & Grounds Management — Route on-time performance by property and crew, weather delays separate",
      "scope": "Route on-time performance by property and crew, weather delays separate",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/on-time-reporting.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:94"
    },
    {
      "id": "IND-ec94a54922ec47",
      "title": "4. Landscaping & Grounds Management — Billing ties to completed work per property; skipped visits checked before billing",
      "scope": "Billing ties to completed work per property; skipped visits checked before billing",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: tests/recurring-visit-skip-ui.test.mjs. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.recurring-invoices",
        "business-api.recurring-visit-billing"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:95"
    },
    {
      "id": "IND-9ca3c55517f750",
      "title": "5. Handyman & General Repairs — Scheduling of repair visits; customers see updates without calling",
      "scope": "Scheduling of repair visits; customers see updates without calling",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/portal.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.customer-portal"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:112"
    },
    {
      "id": "IND-969813a8316c5e",
      "title": "5. Handyman & General Repairs — Estimate acceptance and follow-up",
      "scope": "Estimate acceptance and follow-up",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/estimate-follow-up.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:113"
    },
    {
      "id": "IND-8b3e720975d927",
      "title": "5. Handyman & General Repairs — Cash-only jobs tracked; revenue by job type invisible today",
      "scope": "Cash-only jobs tracked; revenue by job type invisible today",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261010500000_job_cost_rollup_dimensions.sql, src/job-cost-rollups.js, src/native-invoices.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:114"
    },
    {
      "id": "IND-57ef0692a03c1a",
      "title": "5. Handyman & General Repairs — Profitability by job type",
      "scope": "Profitability by job type",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/job-cost-rollups.js, src/job-economics.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.job-cost-rollups"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:115"
    },
    {
      "id": "IND-0f586919b5b3e1",
      "title": "5. Handyman & General Repairs — Technician productivity and profitability per crew member",
      "scope": "Technician productivity and profitability per crew member",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/crew-performance.js, src/crew-utilization.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:116"
    },
    {
      "id": "IND-2a91a8f3c51023",
      "title": "5. Handyman & General Repairs — Repair callbacks and return visits",
      "scope": "Repair callbacks and return visits",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:117"
    },
    {
      "id": "IND-e184b7d241cbaf",
      "title": "6. Solar Installation & Energy Services — Permitting and inspection workflows tracked with the project",
      "scope": "Permitting and inspection workflows tracked with the project",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261009070000_job_permits.sql, src/job-permits.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:130"
    },
    {
      "id": "IND-a11d813c149baf",
      "title": "6. Solar Installation & Energy Services — Documents and assigned work tied to the customer's project",
      "scope": "Documents and assigned work tied to the customer's project",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/document-pdf.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:131"
    },
    {
      "id": "IND-ad075b51d60c2c",
      "title": "6. Solar Installation & Energy Services — Crew assignment accounts for electrical certification or roof expertise",
      "scope": "Crew assignment accounts for electrical certification or roof expertise",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/dispatch-qualifications.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.qualification-based-dispatch"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:132"
    },
    {
      "id": "IND-05c224289e544a",
      "title": "6. Solar Installation & Energy Services — Equipment and system specifications per property; installation checklists",
      "scope": "Equipment and system specifications per property; installation checklists",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:133"
    },
    {
      "id": "IND-b82b722d4ef8ce",
      "title": "6. Solar Installation & Energy Services — Warranty and service contracts tracked; follow-up maintenance",
      "scope": "Warranty and service contracts tracked; follow-up maintenance",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:134"
    },
    {
      "id": "IND-30a0de39b9364c",
      "title": "7. Painting & Drywall Services — Agreed color and finish carried on the job; disputes reduced",
      "scope": "Agreed color and finish carried on the job; disputes reduced",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:149"
    },
    {
      "id": "IND-b5857b4fced00e",
      "title": "7. Painting & Drywall Services — Scheduling accounts for cure and drying time",
      "scope": "Scheduling accounts for cure and drying time",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/job-stages.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:150"
    },
    {
      "id": "IND-40d653e10373d0",
      "title": "7. Painting & Drywall Services — Material costs and waste per job; estimates from formulas, not guesses",
      "scope": "Material costs and waste per job; estimates from formulas, not guesses",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0171_inventory_consumption_logs.sql, src/construction-assemblies.js, src/field-supply-usage.js, src/job-cost-rollups.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:151"
    },
    {
      "id": "IND-233ad5dbfdca63",
      "title": "7. Painting & Drywall Services — Crew assignment matches skill level (interior finish vs commercial rough)",
      "scope": "Crew assignment matches skill level (interior finish vs commercial rough)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/dispatch-qualifications.js, src/dispatch-suggestions.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:152"
    },
    {
      "id": "IND-798fa55f712534",
      "title": "7. Painting & Drywall Services — Per-job profitability",
      "scope": "Per-job profitability",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/job-cost-rollups.js, src/job-economics.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:153"
    },
    {
      "id": "IND-c16782e4593a93",
      "title": "7. Painting & Drywall Services — Completion walkthrough and touch-up requests",
      "scope": "Completion walkthrough and touch-up requests",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "people-hr.crew-lead-photo-walkthrough"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:154"
    },
    {
      "id": "IND-4b03ae09050589",
      "title": "8. Pest Control & Extermination — Follow-up inspections scheduled and communicated; customers miss fewer windows",
      "scope": "Follow-up inspections scheduled and communicated; customers miss fewer windows",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/recurring-visits.js, src/service-engagements.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.communications"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:171"
    },
    {
      "id": "IND-a966c6b69cb058",
      "title": "8. Pest Control & Extermination — Treatment protocols and chemical records linked to the property; audit-ready",
      "scope": "Treatment protocols and chemical records linked to the property; audit-ready",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-demo-api.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:172"
    },
    {
      "id": "IND-2296c5ca2cd614",
      "title": "8. Pest Control & Extermination — Seasonal spikes and overflow planning",
      "scope": "Seasonal spikes and overflow planning",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/crew-planning.js, src/seasonal-demand.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:173"
    },
    {
      "id": "IND-47b24b1cc531f2",
      "title": "8. Pest Control & Extermination — Post-treatment effectiveness follow-up; reviews",
      "scope": "Post-treatment effectiveness follow-up; reviews",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/reviews.js, src/surveys.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.reviews-reputation",
        "business-api.surveys"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:174"
    },
    {
      "id": "IND-60604e07cdf1ff",
      "title": "8. Pest Control & Extermination — Recurring service agreements with renewal dates",
      "scope": "Recurring service agreements with renewal dates",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:175"
    },
    {
      "id": "IND-887722eabbaa12",
      "title": "8. Pest Control & Extermination — Return inspection kept with the first visit",
      "scope": "Return inspection kept with the first visit",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-1-trades.md:176"
    },
    {
      "id": "IND-69618b668273a8",
      "title": "1. Construction (`/industries/construction`) — Expiring compliance-document alert to the PM",
      "scope": "Expiring compliance-document alert to the PM",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/construction.js, src/escalation-subjects/compliance_doc.js, src/expiry-window.js, src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:30"
    },
    {
      "id": "IND-4f8074e5104ee3",
      "title": "1. Construction (`/industries/construction`) — \"...and the subcontractor\" alerted before lapse",
      "scope": "\"...and the subcontractor\" alerted before lapse",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/subcontractor-portal.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:31"
    },
    {
      "id": "IND-1774800edb3311",
      "title": "1. Construction (`/industries/construction`) — Unacknowledged change-order work held from the next draw",
      "scope": "Unacknowledged change-order work held from the next draw",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/construction.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:32"
    },
    {
      "id": "IND-faa822d9729748",
      "title": "1. Construction (`/industries/construction`) — Draw-vs-progress mismatch flagged before submit",
      "scope": "Draw-vs-progress mismatch flagged before submit",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-construction.js, src/construction.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:33"
    },
    {
      "id": "IND-7d7a25029ecb7a",
      "title": "1. Construction (`/industries/construction`) — Punch-list reminder and closeout gate",
      "scope": "Punch-list reminder and closeout gate",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-construction.js, src/construction-punch.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:34"
    },
    {
      "id": "IND-38316ece1232b7",
      "title": "1. Construction (`/industries/construction`) — Retainage flagged for billing at substantial completion",
      "scope": "Retainage flagged for billing at substantial completion",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261010420000_construction_retainage_flags.sql, src/construction-retainage.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:35"
    },
    {
      "id": "IND-9f2ba84a37ef27",
      "title": "1. Construction (`/industries/construction`) — Bid follow-up escalation (estimator to principal)",
      "scope": "Bid follow-up escalation (estimator to principal)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/construction-bid-pipeline.js, src/escalation.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:36"
    },
    {
      "id": "IND-68b7e1e82f1fb6",
      "title": "1. Construction (`/industries/construction`) — Job cost vs budget by cost code, real time",
      "scope": "Job cost vs budget by cost code, real time",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-ops.js, src/job-budgets.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:37"
    },
    {
      "id": "IND-fca81a70c0999a",
      "title": "1. Construction (`/industries/construction`) — AIA-style draw and pay-application tools connect",
      "scope": "AIA-style draw and pay-application tools connect",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "integrations.draw-export"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:38"
    },
    {
      "id": "IND-be9e0185b0abe8",
      "title": "1. Construction (`/industries/construction`) — Certified-payroll reporting system connects",
      "scope": "Certified-payroll reporting system connects",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:39"
    },
    {
      "id": "IND-51c027711f5308",
      "title": "1. Construction (`/industries/construction`) — Portfolio schedule board with dependencies and conflicts",
      "scope": "Portfolio schedule board with dependencies and conflicts",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/schedule-board.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:40"
    },
    {
      "id": "IND-ed1c501bbcbbf5",
      "title": "1. Construction (`/industries/construction`) — Crew and sub double-booking refused at assignment",
      "scope": "Crew and sub double-booking refused at assignment",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:41"
    },
    {
      "id": "IND-71c7ff127c6450",
      "title": "1. Construction (`/industries/construction`) — Subcontractor scoped sign-in and licence/bond records",
      "scope": "Subcontractor scoped sign-in and licence/bond records",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/construction-credentials.js, src/subcontractor-portal.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:42"
    },
    {
      "id": "IND-9c7fc12eb1ad70",
      "title": "2. Specialty Contracting (`/industries/specialty-contracting`) — Shift scheduling across concurrent site dates",
      "scope": "Shift scheduling across concurrent site dates",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/native-shifts.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:58"
    },
    {
      "id": "IND-c4d8af3f2067d7",
      "title": "2. Specialty Contracting (`/industries/specialty-contracting`) — Committed crew checked before accepting a site date",
      "scope": "Committed crew checked before accepting a site date",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:59"
    },
    {
      "id": "IND-7c7120d632d2e8",
      "title": "2. Specialty Contracting (`/industries/specialty-contracting`) — Jobs and work orders",
      "scope": "Jobs and work orders",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:60"
    },
    {
      "id": "IND-18d74273b041ed",
      "title": "2. Specialty Contracting (`/industries/specialty-contracting`) — Percent-complete documentation for draw requests",
      "scope": "Percent-complete documentation for draw requests",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:61"
    },
    {
      "id": "IND-f957d98049158c",
      "title": "2. Specialty Contracting (`/industries/specialty-contracting`) — Safety incidents linked to the project",
      "scope": "Safety incidents linked to the project",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261008030000_incidents.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.incidents"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:62"
    },
    {
      "id": "IND-dad17c8ff61e10",
      "title": "2. Specialty Contracting (`/industries/specialty-contracting`) — Trade-partner compliance documents tied to the project",
      "scope": "Trade-partner compliance documents tied to the project",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/construction.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:63"
    },
    {
      "id": "IND-9440a9da5b3c20",
      "title": "2. Specialty Contracting (`/industries/specialty-contracting`) — Material orders across projects, usage-based ordering estimator",
      "scope": "Material orders across projects, usage-based ordering estimator",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:64"
    },
    {
      "id": "IND-221b7667f2dac4",
      "title": "2. Specialty Contracting (`/industries/specialty-contracting`) — Field supply usage logging",
      "scope": "Field supply usage logging",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:65"
    },
    {
      "id": "IND-2a3cd0cbf86db9",
      "title": "2. Specialty Contracting (`/industries/specialty-contracting`) — Per-job profitability rollup",
      "scope": "Per-job profitability rollup",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:66"
    },
    {
      "id": "IND-b0efba47607264",
      "title": "2. Specialty Contracting (`/industries/specialty-contracting`) — Site access and resources agreed before the job",
      "scope": "Site access and resources agreed before the job",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:67"
    },
    {
      "id": "IND-e60bc057a467a9",
      "title": "3. Architecture & Engineering Services (`/industries/architecture-engineering`) — Deliverable and review dates tracked with one owner",
      "scope": "Deliverable and review dates tracked with one owner",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:81"
    },
    {
      "id": "IND-c03d2bfe1e95f3",
      "title": "3. Architecture & Engineering Services (`/industries/architecture-engineering`) — Client approval requests with approval dates",
      "scope": "Client approval requests with approval dates",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:82"
    },
    {
      "id": "IND-1b6e20d1a62cb7",
      "title": "3. Architecture & Engineering Services (`/industries/architecture-engineering`) — Billable hours and per-project profitability",
      "scope": "Billable hours and per-project profitability",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:83"
    },
    {
      "id": "IND-929e2f5de9c3b7",
      "title": "3. Architecture & Engineering Services (`/industries/architecture-engineering`) — Design changes priced and logged before billing (scope creep caught)",
      "scope": "Design changes priced and logged before billing (scope creep caught)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:84"
    },
    {
      "id": "IND-8336d5807d041d",
      "title": "3. Architecture & Engineering Services (`/industries/architecture-engineering`) — Customer communication and CRM record",
      "scope": "Customer communication and CRM record",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:85"
    },
    {
      "id": "IND-4049c305c4a3c4",
      "title": "3. Architecture & Engineering Services (`/industries/architecture-engineering`) — Next revision tracked against the agreed deadline",
      "scope": "Next revision tracked against the agreed deadline",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-construction.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:86"
    },
    {
      "id": "IND-2bf8091c54822e",
      "title": "4. Property Management (`/industries/property-management`) — Application screened against configured criteria, then lease",
      "scope": "Application screened against configured criteria, then lease",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/leases.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:100"
    },
    {
      "id": "IND-713b90a4c82c0d",
      "title": "4. Property Management (`/industries/property-management`) — Incomplete-application follow-up",
      "scope": "Incomplete-application follow-up",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:101"
    },
    {
      "id": "IND-49c004de296f41",
      "title": "4. Property Management (`/industries/property-management`) — Maintenance request to closed work order (renter intake)",
      "scope": "Maintenance request to closed work order (renter intake)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/service-requests.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:102"
    },
    {
      "id": "IND-34d73545e97e41",
      "title": "4. Property Management (`/industries/property-management`) — Maintenance requests auto-routed to vendor or tech by category and property",
      "scope": "Maintenance requests auto-routed to vendor or tech by category and property",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:103"
    },
    {
      "id": "IND-075e82545ed107",
      "title": "4. Property Management (`/industries/property-management`) — Rent due to delinquency escalation ladder",
      "scope": "Rent due to delinquency escalation ladder",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/leases.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:104"
    },
    {
      "id": "IND-3d8e8d9fbad7b4",
      "title": "4. Property Management (`/industries/property-management`) — Lease renewal opens 60 days before end",
      "scope": "Lease renewal opens 60 days before end",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/renewal-calendar.js, src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:105"
    },
    {
      "id": "IND-8d87bc6db5c073",
      "title": "4. Property Management (`/industries/property-management`) — Owner statements generate each period",
      "scope": "Owner statements generate each period",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:106"
    },
    {
      "id": "IND-63a1c0e41f3e7d",
      "title": "4. Property Management (`/industries/property-management`) — Inspection-due reminder",
      "scope": "Inspection-due reminder",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:107"
    },
    {
      "id": "IND-2c321a93545ec4",
      "title": "4. Property Management (`/industries/property-management`) — Portfolio occupancy and vacancy",
      "scope": "Portfolio occupancy and vacancy",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-property-occupancy.js, src/property-occupancy.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:108"
    },
    {
      "id": "IND-204a372781eb3d",
      "title": "4. Property Management (`/industries/property-management`) — Owner and tenant funds kept separate",
      "scope": "Owner and tenant funds kept separate",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0181_leases.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:109"
    },
    {
      "id": "IND-700f3d412c7f56",
      "title": "5. Real Estate & Brokerage (`/industries/real-estate-brokerage`) — Inbound leads routed by rule (round robin, team, territory)",
      "scope": "Inbound leads routed by rule (round robin, team, territory)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-crm.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:125"
    },
    {
      "id": "IND-c900b1dfb176c5",
      "title": "5. Real Estate & Brokerage (`/industries/real-estate-brokerage`) — AI receptionist answers after hours and routes to an agent",
      "scope": "AI receptionist answers after hours and routes to an agent",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/receptionist.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:126"
    },
    {
      "id": "IND-23a5dc2bb1080c",
      "title": "5. Real Estate & Brokerage (`/industries/real-estate-brokerage`) — Commission forecast at contract, with agent, team and referral splits",
      "scope": "Commission forecast at contract, with agent, team and referral splits",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0037_real_estate.sql, src/real-estate.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:127"
    },
    {
      "id": "IND-53709bd33fa061",
      "title": "5. Real Estate & Brokerage (`/industries/real-estate-brokerage`) — Transaction milestones tracked to closing; approaching deadlines flagged",
      "scope": "Transaction milestones tracked to closing; approaching deadlines flagged",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/real-estate.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:128"
    },
    {
      "id": "IND-0b1b04de8d04c1",
      "title": "5. Real Estate & Brokerage (`/industries/real-estate-brokerage`) — Marketing spend compared with closed volume by campaign and agent",
      "scope": "Marketing spend compared with closed volume by campaign and agent",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/real-estate.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:129"
    },
    {
      "id": "IND-a1ade9c2285867",
      "title": "5. Real Estate & Brokerage (`/industries/real-estate-brokerage`) — Listing and ad approvals recorded with reviewer and decision",
      "scope": "Listing and ad approvals recorded with reviewer and decision",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-social.js, src/real-estate.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:130"
    },
    {
      "id": "IND-edd4dcd6b1677a",
      "title": "5. Real Estate & Brokerage (`/industries/real-estate-brokerage`) — Post-close follow-up, anniversary and referral sequences",
      "scope": "Post-close follow-up, anniversary and referral sequences",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:131"
    },
    {
      "id": "IND-78a97d4ac95c99",
      "title": "5. Real Estate & Brokerage (`/industries/real-estate-brokerage`) — Agent licence and CE expiry alerts",
      "scope": "Agent licence and CE expiry alerts",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:132"
    },
    {
      "id": "IND-27d5ccab762ce6",
      "title": "5. Real Estate & Brokerage (`/industries/real-estate-brokerage`) — Fair-housing and brokerage checklists configured by the brokerage",
      "scope": "Fair-housing and brokerage checklists configured by the brokerage",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/real-estate.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:133"
    },
    {
      "id": "IND-5119529c486d02",
      "title": "6. Property Developer (`/industries/property-developer`) — Project milestones, inspections and regulatory approvals tracked",
      "scope": "Project milestones, inspections and regulatory approvals tracked",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/construction-milestones.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:149"
    },
    {
      "id": "IND-c948a374fb7512",
      "title": "6. Property Developer (`/industries/property-developer`) — Construction cost tracking and change orders",
      "scope": "Construction cost tracking and change orders",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:150"
    },
    {
      "id": "IND-d602e578863596",
      "title": "6. Property Developer (`/industries/property-developer`) — Outstanding decisions with responsible team and dates",
      "scope": "Outstanding decisions with responsible team and dates",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:151"
    },
    {
      "id": "IND-ce3c6b31ca2a52",
      "title": "6. Property Developer (`/industries/property-developer`) — Tenant interest and lease commitments tracked; pre-leasing targets met",
      "scope": "Tenant interest and lease commitments tracked; pre-leasing targets met",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:152"
    },
    {
      "id": "IND-7337ad4565a1f5",
      "title": "6. Property Developer (`/industries/property-developer`) — Customer communications and templates",
      "scope": "Customer communications and templates",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:153"
    },
    {
      "id": "IND-4fb24958deb329",
      "title": "7. Facilities Management & Maintenance (`/industries/facilities-management`) — Recurring visits flagged once past due",
      "scope": "Recurring visits flagged once past due",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:166"
    },
    {
      "id": "IND-170aeb4200e685",
      "title": "7. Facilities Management & Maintenance (`/industries/facilities-management`) — Client service requests in one place",
      "scope": "Client service requests in one place",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:167"
    },
    {
      "id": "IND-3385ada89c5006",
      "title": "7. Facilities Management & Maintenance (`/industries/facilities-management`) — Preventive schedules enforced for equipment and assets",
      "scope": "Preventive schedules enforced for equipment and assets",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0153_job_economics_resources.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:168"
    },
    {
      "id": "IND-5d826ba6865694",
      "title": "7. Facilities Management & Maintenance (`/industries/facilities-management`) — Crew assigned by skill, certification and area",
      "scope": "Crew assigned by skill, certification and area",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/dispatch-qualifications.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:169"
    },
    {
      "id": "IND-bd5e98487a6d74",
      "title": "7. Facilities Management & Maintenance (`/industries/facilities-management`) — Facility inventory, equipment and warranty records",
      "scope": "Facility inventory, equipment and warranty records",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-crm.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:170"
    },
    {
      "id": "IND-efc03a1d6669b4",
      "title": "7. Facilities Management & Maintenance (`/industries/facilities-management`) — Response times measured for service requests",
      "scope": "Response times measured for service requests",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:171"
    },
    {
      "id": "IND-a5ac4b25f39d1c",
      "title": "7. Facilities Management & Maintenance (`/industries/facilities-management`) — Compliance audit and warranty-claim records",
      "scope": "Compliance audit and warranty-claim records",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-2-construction-realestate.md:172"
    },
    {
      "id": "IND-09f959347fc01d",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Backorder-fulfilled release: receipt against a SKU with open backorders flags orders for release and",
      "scope": "Backorder-fulfilled release: receipt against a SKU with open backorders flags orders for release and queues a customer notice",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/stock.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.backorders-fill-rate"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:29"
    },
    {
      "id": "IND-091ee6cdf2ea9c",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Credit-hold alert at order confirmation (account past limit or terms)",
      "scope": "Credit-hold alert at order confirmation (account past limit or terms)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:30"
    },
    {
      "id": "IND-b24ad3a53d9a8a",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Reorder-point trigger generates a draft PO to the vendor",
      "scope": "Reorder-point trigger generates a draft PO to the vendor",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-stock.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:31"
    },
    {
      "id": "IND-29e914eb55c038",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Rebate-threshold notification (vendor volume toward rebate, claim deadline)",
      "scope": "Rebate-threshold notification (vendor volume toward rebate, claim deadline)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:32"
    },
    {
      "id": "IND-36910e30072c32",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Price-tier mismatch flag at order entry",
      "scope": "Price-tier mismatch flag at order entry",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.order-intake-fulfillment"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:33"
    },
    {
      "id": "IND-74a745c725a0f5",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Receivables aging escalation: overdue invoice enters follow-up sequence, escalates to AR manager",
      "scope": "Receivables aging escalation: overdue invoice enters follow-up sequence, escalates to AR manager",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-billing.js, migrations/20261010120000_invoice_reminder_sends.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:34"
    },
    {
      "id": "IND-ad2ac6aea4d4a6",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Purchase order to received inventory into the correct warehouse, updating available stock and any ba",
      "scope": "Purchase order to received inventory into the correct warehouse, updating available stock and any backorders it can fulfil",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-stock.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.inventory-tracking"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:35"
    },
    {
      "id": "IND-2e05ff0dc28272",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Order intake from rep, phone, email or EDI, captured on the account, priced to tier, credit-checked,",
      "scope": "Order intake from rep, phone, email or EDI, captured on the account, priced to tier, credit-checked, routed to picking",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:36"
    },
    {
      "id": "IND-555b3d0ba4f12f",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Management view: sales by rep and territory, order volume and margin",
      "scope": "Management view: sales by rep and territory, order volume and margin",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:37"
    },
    {
      "id": "IND-e0dcff7140600d",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Fill rate and backorder aging",
      "scope": "Fill rate and backorder aging",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.backorders-fill-rate"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:38"
    },
    {
      "id": "IND-3e05b88b190987",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Inventory position by warehouse: on-hand, allocated, available, reorder points",
      "scope": "Inventory position by warehouse: on-hand, allocated, available, reorder points",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.inventory-tracking"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:39"
    },
    {
      "id": "IND-b9848afe6ebeae",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Multi-warehouse: an order fills from the right location, not \"assumed available at the nearest one\"",
      "scope": "Multi-warehouse: an order fills from the right location, not \"assumed available at the nearest one\"",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:40"
    },
    {
      "id": "IND-d9183052b812f7",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Customer-service status (confirmed, picking, backordered, shipped) visible on the account",
      "scope": "Customer-service status (confirmed, picking, backordered, shipped) visible on the account",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:41"
    },
    {
      "id": "IND-14f83e0873e39c",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Lot/serial traceability for recalls",
      "scope": "Lot/serial traceability for recalls",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:42"
    },
    {
      "id": "IND-d8e557a9549c7f",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Unit of measure: each, case, pallet convert between purchase and sell",
      "scope": "Unit of measure: each, case, pallet convert between purchase and sell",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:43"
    },
    {
      "id": "IND-9bed695be40c0e",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Landed cost (freight, duty, handling) in margin",
      "scope": "Landed cost (freight, duty, handling) in margin",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:44"
    },
    {
      "id": "IND-b937ce0b2a84c1",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Territory: account and order routing by rep territory",
      "scope": "Territory: account and order routing by rep territory",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:45"
    },
    {
      "id": "IND-5f1b84f7bf36e9",
      "title": "Distribution (live page: https://theforge.systems/industries/distribution) — Connected systems stay in place (WMS, accounting, EDI, carrier)",
      "scope": "Connected systems stay in place (WMS, accounting, EDI, carrier)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-3-retail-manufacturing.md:46"
    },
    {
      "id": "IND-52b74b56c03462",
      "title": "Summary — Live page",
      "scope": "Live page",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:9"
    },
    {
      "id": "IND-a04428c94f573e",
      "title": "1. Restaurants (P): /industries/restaurants — Forecast-versus-labor alert and sales forecast to labor schedule",
      "scope": "Forecast-versus-labor alert and sales forecast to labor schedule",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-ops.js, migrations/0089_pos_sales.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:31"
    },
    {
      "id": "IND-5352350ec52891",
      "title": "1. Restaurants (P): /industries/restaurants — Food-cost variance flag",
      "scope": "Food-cost variance flag",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0189_menu_items_food_cost.sql, src/index.js, src/workflow-engine.js, tests/food-cost-variance.test.mjs. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:32"
    },
    {
      "id": "IND-f7bc9a56dc8c65",
      "title": "1. Restaurants (P): /industries/restaurants — 86'd-item sync to online ordering",
      "scope": "86'd-item sync to online ordering",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/watchers/restock.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:33"
    },
    {
      "id": "IND-c127d9371cee01",
      "title": "1. Restaurants (P): /industries/restaurants — Onboarding-step reminder to employee and manager",
      "scope": "Onboarding-step reminder to employee and manager",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20260915193000_staff_library_compliance.sql, src/notifications.js, src/staff-library.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:34"
    },
    {
      "id": "IND-8e20200dc7afb0",
      "title": "1. Restaurants (P): /industries/restaurants — Par level to vendor order to receiving",
      "scope": "Par level to vendor order to receiving",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-stock.js, src/inventory-estimator.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:35"
    },
    {
      "id": "IND-ffb4bdfd00d3a6",
      "title": "1. Restaurants (P): /industries/restaurants — Catering inquiry to event execution (with deposit follow-up)",
      "scope": "Catering inquiry to event execution (with deposit follow-up)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.catering-events"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:36"
    },
    {
      "id": "IND-6c51504ea38224",
      "title": "1. Restaurants (P): /industries/restaurants — Catering deposit follow-up",
      "scope": "Catering deposit follow-up",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-billing.js, migrations/20261009060000_progress_billing.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:37"
    },
    {
      "id": "IND-d5307759a55a32",
      "title": "1. Restaurants (P): /industries/restaurants — Vendor price-change flag",
      "scope": "Vendor price-change flag",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/watchers/restock.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:38"
    },
    {
      "id": "IND-c938ea48ce2026",
      "title": "1. Restaurants (P): /industries/restaurants — Multi-location comparison (sales, labor, food cost, comps)",
      "scope": "Multi-location comparison (sales, labor, food cost, comps)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-finance.js, src/index.js, src/location-reporting.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.multi-location-reporting"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:39"
    },
    {
      "id": "IND-fd82384d6ac507",
      "title": "1. Restaurants (P): /industries/restaurants — Prime cost; comps and voids with reason codes",
      "scope": "Prime cost; comps and voids with reason codes",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:40"
    },
    {
      "id": "IND-14dcdc14cf510d",
      "title": "3. Catering & Events (C): /industries/catering-events — Catering inquiry becomes an event booking, with menu, headcount, deposit and staffing",
      "scope": "Catering inquiry becomes an event booking, with menu, headcount, deposit and staffing",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.catering-events"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:78"
    },
    {
      "id": "IND-0b3728971e84c9",
      "title": "3. Catering & Events (C): /industries/catering-events — Event scheduling; venue and date conflicts prevented; double-bookings",
      "scope": "Event scheduling; venue and date conflicts prevented; double-bookings",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.crew-double-booking",
        "business-api.equipment-allocation"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:79"
    },
    {
      "id": "IND-b82d49c963c857",
      "title": "3. Catering & Events (C): /industries/catering-events — Crew scheduling for setup, service and breakdown, with staffing completeness",
      "scope": "Crew scheduling for setup, service and breakdown, with staffing completeness",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/dispatch-qualifications.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:80"
    },
    {
      "id": "IND-8a4de51b217be1",
      "title": "3. Catering & Events (C): /industries/catering-events — Event food orders and ingredients tracked against event dates",
      "scope": "Event food orders and ingredients tracked against event dates",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20260806180003_inventory_allocations.sql, tests/job-materials-attribution.test.mjs. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:81"
    },
    {
      "id": "IND-52ab18ed8eb607",
      "title": "3. Catering & Events (C): /industries/catering-events — Changes and special requests priced upfront (estimates)",
      "scope": "Changes and special requests priced upfront (estimates)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.native-estimates"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:82"
    },
    {
      "id": "IND-6e68fb13761646",
      "title": "3. Catering & Events (C): /industries/catering-events — Per-job profitability rollup",
      "scope": "Per-job profitability rollup",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0153_job_economics_resources.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:83"
    },
    {
      "id": "IND-cdcd4adfb4b445",
      "title": "3. Catering & Events (C): /industries/catering-events — Online self-booking intake for events",
      "scope": "Online self-booking intake for events",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/booking.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.online-booking"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:84"
    },
    {
      "id": "IND-5d775748e7604c",
      "title": "3. Catering & Events (C): /industries/catering-events — Deposit and completion billing handoff",
      "scope": "Deposit and completion billing handoff",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-billing.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:85"
    },
    {
      "id": "IND-a9248b9e24d268",
      "title": "5. Fitness & Sports Club (C): /industries/fitness-gym — Member inquiries and billing questions get an owner",
      "scope": "Member inquiries and billing questions get an owner",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:123"
    },
    {
      "id": "IND-b972f146744197",
      "title": "5. Fitness & Sports Club (C): /industries/fitness-gym — Membership billing; expired-membership revenue leakage",
      "scope": "Membership billing; expired-membership revenue leakage",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0191_recurring_invoice_schedules.sql, src/recurring-invoices.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:124"
    },
    {
      "id": "IND-7a406c0378ddf1",
      "title": "5. Fitness & Sports Club (C): /industries/fitness-gym — Class scheduling with instructor availability and popularity",
      "scope": "Class scheduling with instructor availability and popularity",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0177_programs_sessions.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:125"
    },
    {
      "id": "IND-ff134c9498d29f",
      "title": "5. Fitness & Sports Club (C): /industries/fitness-gym — Attendance tracking and engagement; churn reactive",
      "scope": "Attendance tracking and engagement; churn reactive",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/churn-risk.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:126"
    },
    {
      "id": "IND-fcfbf1154b082a",
      "title": "5. Fitness & Sports Club (C): /industries/fitness-gym — Equipment maintenance and inspection schedules",
      "scope": "Equipment maintenance and inspection schedules",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/operational-resources.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:127"
    },
    {
      "id": "IND-b28d24d7704b3c",
      "title": "5. Fitness & Sports Club (C): /industries/fitness-gym — Online self-booking (classes, sessions)",
      "scope": "Online self-booking (classes, sessions)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.online-booking"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:128"
    },
    {
      "id": "IND-76136a0dd01e88",
      "title": "6. Beauty & Hair Salon (C): /industries/beauty-salon — Appointments account for stylist availability and client preferences",
      "scope": "Appointments account for stylist availability and client preferences",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/booking.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:144"
    },
    {
      "id": "IND-7a4dd467e28bba",
      "title": "6. Beauty & Hair Salon (C): /industries/beauty-salon — Client history and repeat clients recognised by name",
      "scope": "Client history and repeat clients recognised by name",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0115_bookings.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:145"
    },
    {
      "id": "IND-3849bf26ad47e8",
      "title": "6. Beauty & Hair Salon (C): /industries/beauty-salon — Product inventory and stylist product access tracked",
      "scope": "Product inventory and stylist product access tracked",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:146"
    },
    {
      "id": "IND-96a1cd004c2e3e",
      "title": "6. Beauty & Hair Salon (C): /industries/beauty-salon — Stylist commission and revenue allocation",
      "scope": "Stylist commission and revenue allocation",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:147"
    },
    {
      "id": "IND-114c6dda8314a7",
      "title": "6. Beauty & Hair Salon (C): /industries/beauty-salon — Invoicing and labour-cost visibility",
      "scope": "Invoicing and labour-cost visibility",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:148"
    },
    {
      "id": "IND-a508847ad02239",
      "title": "6. Beauty & Hair Salon (C): /industries/beauty-salon — Shift scheduling",
      "scope": "Shift scheduling",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0059_native_shifts.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:149"
    },
    {
      "id": "IND-1db78ca8b99166",
      "title": "7. Therapy & Counseling (C): /industries/therapy-counseling — Therapist assignment matched on modality and specialisation",
      "scope": "Therapist assignment matched on modality and specialisation",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:165"
    },
    {
      "id": "IND-9875aece96b55e",
      "title": "7. Therapy & Counseling (C): /industries/therapy-counseling — Session notes and treatment progress; outcomes measured",
      "scope": "Session notes and treatment progress; outcomes measured",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:166"
    },
    {
      "id": "IND-b0cb741d1a3186",
      "title": "7. Therapy & Counseling (C): /industries/therapy-counseling — Insurance claim tracking, denials and payment",
      "scope": "Insurance claim tracking, denials and payment",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.insurance-claims"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:167"
    },
    {
      "id": "IND-172b6b3e7af60e",
      "title": "7. Therapy & Counseling (C): /industries/therapy-counseling — Licensure and continuing-education requirements tracked",
      "scope": "Licensure and continuing-education requirements tracked",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-team.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:168"
    },
    {
      "id": "IND-9329dc01e70578",
      "title": "7. Therapy & Counseling (C): /industries/therapy-counseling — Administrative follow-up with role-gated access",
      "scope": "Administrative follow-up with role-gated access",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "identity.rbac-policy"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:169"
    },
    {
      "id": "IND-b62227ae223222",
      "title": "7. Therapy & Counseling (C): /industries/therapy-counseling — Appointment scheduling",
      "scope": "Appointment scheduling",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:170"
    },
    {
      "id": "IND-cb275efda84966",
      "title": "8. Pet Grooming & Boarding (C): /industries/pet-grooming — Scheduling accounts for grooming time per pet and groomer availability",
      "scope": "Scheduling accounts for grooming time per pet and groomer availability",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/booking.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:186"
    },
    {
      "id": "IND-9d0b877d395d3b",
      "title": "8. Pet Grooming & Boarding (C): /industries/pet-grooming — Pet health records (allergies, temperament, medications) centralised",
      "scope": "Pet health records (allergies, temperament, medications) centralised",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:187"
    },
    {
      "id": "IND-df8790d6854a91",
      "title": "8. Pet Grooming & Boarding (C): /industries/pet-grooming — Boarding room assignment and occupancy",
      "scope": "Boarding room assignment and occupancy",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:188"
    },
    {
      "id": "IND-f86337275e3681",
      "title": "8. Pet Grooming & Boarding (C): /industries/pet-grooming — Grooming supplies tracked per groomer",
      "scope": "Grooming supplies tracked per groomer",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:189"
    },
    {
      "id": "IND-bda94d44b572b4",
      "title": "8. Pet Grooming & Boarding (C): /industries/pet-grooming — Visit completion and collection billing",
      "scope": "Visit completion and collection billing",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:190"
    },
    {
      "id": "IND-3f88e2abed9688",
      "title": "8. Pet Grooming & Boarding (C): /industries/pet-grooming — Customer records and online booking",
      "scope": "Customer records and online booking",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-4-food-hospitality-wellness.md:191"
    },
    {
      "id": "IND-4bcff2549f6713",
      "title": "1. Dental Practices (P tile; pack `dental` T1; blueprint `registry/blueprint-templates/dental.json`) — New-patient inquiry becomes a record, same-day follow-up, welcome info and insurance-verification pr",
      "scope": "New-patient inquiry becomes a record, same-day follow-up, welcome info and insurance-verification prompt, first appointment booked",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.leads",
        "business-api.online-booking"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:28"
    },
    {
      "id": "IND-d2fc1cadcc801a",
      "title": "1. Dental Practices (P tile; pack `dental` T1; blueprint `registry/blueprint-templates/dental.json`) — Missed calls returned within minutes; callback task escalates if not returned",
      "scope": "Missed calls returned within minutes; callback task escalates if not returned",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/receptionist.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.stalled-item-escalation"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:29"
    },
    {
      "id": "IND-d7a2a56f7e2176",
      "title": "1. Dental Practices (P tile; pack `dental` T1; blueprint `registry/blueprint-templates/dental.json`) — Treatment plan presented; unscheduled case followed until scheduled, declined or escalated; case val",
      "scope": "Treatment plan presented; unscheduled case followed until scheduled, declined or escalated; case value visible",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261011030000_estimate_decline_reasons.sql, src/estimate-follow-up.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.estimate-aging",
        "business-api.estimate-follow-up",
        "business-api.native-estimates"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:30"
    },
    {
      "id": "IND-0a36a9738d68cc",
      "title": "1. Dental Practices (P tile; pack `dental` T1; blueprint `registry/blueprint-templates/dental.json`) — Hygiene recall: queued on a set schedule, 2nd and 3rd reminder, personal-call task",
      "scope": "Hygiene recall: queued on a set schedule, 2nd and 3rd reminder, personal-call task",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:31"
    },
    {
      "id": "IND-6628340b0e504d",
      "title": "1. Dental Practices (P tile; pack `dental` T1; blueprint `registry/blueprint-templates/dental.json`) — Reactivation at 12+ months inactive: personalised outreach, book if responds, final outreach, record",
      "scope": "Reactivation at 12+ months inactive: personalised outreach, book if responds, final outreach, record flagged dormant",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:32"
    },
    {
      "id": "IND-d415450dc6c150",
      "title": "1. Dental Practices (P tile; pack `dental` T1; blueprint `registry/blueprint-templates/dental.json`) — Appointment reminders at 2 days, same-morning, 1 hour before; cancel/no-show triggers rescheduling",
      "scope": "Appointment reminders at 2 days, same-morning, 1 hour before; cancel/no-show triggers rescheduling",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261011330000_stage_messages.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:33"
    },
    {
      "id": "IND-48c6ad6bcdf675",
      "title": "1. Dental Practices (P tile; pack `dental` T1; blueprint `registry/blueprint-templates/dental.json`) — Reports: new-patient conversion, unscheduled treatment value, marketing ROI by source",
      "scope": "Reports: new-patient conversion, unscheduled treatment value, marketing ROI by source",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/lead-conversion.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:34"
    },
    {
      "id": "IND-28dc8aeeb06a01",
      "title": "1. Dental Practices (P tile; pack `dental` T1; blueprint `registry/blueprint-templates/dental.json`) — Reports: recall effectiveness, reactivation results, chair utilization",
      "scope": "Reports: recall effectiveness, reactivation results, chair utilization",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/crew-utilization.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:35"
    },
    {
      "id": "IND-1ed1abcfde8827",
      "title": "2. Medical Practice & Clinics (C tile; no pack, no blueprint) — Native shift scheduling (Available)",
      "scope": "Native shift scheduling (Available)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.native-shift-scheduling"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:49"
    },
    {
      "id": "IND-2f751dde7355ff",
      "title": "2. Medical Practice & Clinics (C tile; no pack, no blueprint) — Online self-booking (labelled Early access)",
      "scope": "Online self-booking (labelled Early access)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/booking.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.online-booking"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:50"
    },
    {
      "id": "IND-03d16d8c2b033a",
      "title": "2. Medical Practice & Clinics (C tile; no pack, no blueprint) — Customer comms and templates, business records (CRM), native invoicing (Available)",
      "scope": "Customer comms and templates, business records (CRM), native invoicing (Available)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.communications",
        "business-api.native-invoicing",
        "business-api.records-crm"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:51"
    },
    {
      "id": "IND-b4184b71e46e8d",
      "title": "2. Medical Practice & Clinics (C tile; no pack, no blueprint) — Operational resources: locations, assets, vendors (Early access)",
      "scope": "Operational resources: locations, assets, vendors (Early access)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.operational-resources"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:52"
    },
    {
      "id": "IND-9a2c785e062cc9",
      "title": "2. Medical Practice & Clinics (C tile; no pack, no blueprint) — Scheduling accounts for procedure type and provider time (challenge)",
      "scope": "Scheduling accounts for procedure type and provider time (challenge)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/booking.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:53"
    },
    {
      "id": "IND-25db579ee88cce",
      "title": "2. Medical Practice & Clinics (C tile; no pack, no blueprint) — Follow-up care and medication compliance tracked (challenge)",
      "scope": "Follow-up care and medication compliance tracked (challenge)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:54"
    },
    {
      "id": "IND-2c10d54a00ed1b",
      "title": "2. Medical Practice & Clinics (C tile; no pack, no blueprint) — Insurance claims and prior-authorization tracking (challenge)",
      "scope": "Insurance claims and prior-authorization tracking (challenge)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:55"
    },
    {
      "id": "IND-59d47863e6fe51",
      "title": "2. Medical Practice & Clinics (C tile; no pack, no blueprint) — Medical board, DEA and privacy compliance centralised (challenge)",
      "scope": "Medical board, DEA and privacy compliance centralised (challenge)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/renewal-calendar.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "people-hr.technician-credentials"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:56"
    },
    {
      "id": "IND-6155820de9c238",
      "title": "3. Veterinary Clinics (C tile; no pack, no blueprint) — Native shift scheduling (Available)",
      "scope": "Native shift scheduling (Available)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.native-shift-scheduling"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:68"
    },
    {
      "id": "IND-7e9681aeb2de37",
      "title": "3. Veterinary Clinics (C tile; no pack, no blueprint) — Appointment scheduling accounts for procedure type and vet availability (challenge)",
      "scope": "Appointment scheduling accounts for procedure type and vet availability (challenge)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/booking.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:69"
    },
    {
      "id": "IND-9a0a4c4b7b5c43",
      "title": "3. Veterinary Clinics (C tile; no pack, no blueprint) — Pet medical history and vaccination records; preventive reminders not missed (challenge)",
      "scope": "Pet medical history and vaccination records; preventive reminders not missed (challenge)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:70"
    },
    {
      "id": "IND-285c91d8f06c10",
      "title": "3. Veterinary Clinics (C tile; no pack, no blueprint) — Physical inventory tracking and usage-based ordering estimator (Available)",
      "scope": "Physical inventory tracking and usage-based ordering estimator (Available)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.field-supply-usage",
        "business-api.inventory-tracking"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:71"
    },
    {
      "id": "IND-0546d51b3e7f72",
      "title": "3. Veterinary Clinics (C tile; no pack, no blueprint) — Pharmacy and medication dispensing per pet; over- or under-ordering (challenge)",
      "scope": "Pharmacy and medication dispensing per pet; over- or under-ordering (challenge)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:72"
    },
    {
      "id": "IND-5654d50bef5dcb",
      "title": "3. Veterinary Clinics (C tile; no pack, no blueprint) — State vet board and licence expiry tracked (challenge)",
      "scope": "State vet board and licence expiry tracked (challenge)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:73"
    },
    {
      "id": "IND-59e5f467426741",
      "title": "3. Veterinary Clinics (C tile; no pack, no blueprint) — Operational resources: locations, assets, vendors (Early access)",
      "scope": "Operational resources: locations, assets, vendors (Early access)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.operational-resources"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:74"
    },
    {
      "id": "IND-ee8e9c1d909845",
      "title": "3. Veterinary Clinics (C tile; no pack, no blueprint) — Customer communications and CRM (Available)",
      "scope": "Customer communications and CRM (Available)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.communications",
        "business-api.records-crm"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:75"
    },
    {
      "id": "IND-9897fbed33f9f8",
      "title": "4. Sober Living & Recovery Residences (P tile; pack `sober-living` T2; blueprint `registry/blueprint-templates/sober-living.json`) — Referral to move-in: bed assigned, agreement signed, portal access, house rules walked, restricted p",
      "scope": "Referral to move-in: bed assigned, agreement signed, portal access, house rules walked, restricted period end recorded",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.customer-portal",
        "business-api.esignature",
        "business-api.leads",
        "business-api.residence-bed-occupancy"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:87"
    },
    {
      "id": "IND-7591f105f0c281",
      "title": "4. Sober Living & Recovery Residences (P tile; pack `sober-living` T2; blueprint `registry/blueprint-templates/sober-living.json`) — Intake: website form feeds pipeline, each submission reviewed against required documents, applicant ",
      "scope": "Intake: website form feeds pipeline, each submission reviewed against required documents, applicant moved forward or declined with recorded reason",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0180_admissions_applications.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.admissions-document-checklists"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:88"
    },
    {
      "id": "IND-15e3099764b391",
      "title": "4. Sober Living & Recovery Residences (P tile; pack `sober-living` T2; blueprint `registry/blueprint-templates/sober-living.json`) — Program fee invoiced per resident; partial payments post; past-due fee opens an in-person task",
      "scope": "Program fee invoiced per resident; partial payments post; past-due fee opens an in-person task",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.invoice-partial-payments",
        "business-api.recurring-invoices"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:89"
    },
    {
      "id": "IND-55b6df09ccfdef",
      "title": "4. Sober Living & Recovery Residences (P tile; pack `sober-living` T2; blueprint `registry/blueprint-templates/sober-living.json`) — Supplies counted per house; item at reorder point raises alert naming that house; test kits or donat",
      "scope": "Supplies counted per house; item at reorder point raises alert naming that house; test kits or donated food near expiry alert",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/index.js, src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:90"
    },
    {
      "id": "IND-9ba37fa3f69367",
      "title": "4. Sober Living & Recovery Residences (P tile; pack `sober-living` T2; blueprint `registry/blueprint-templates/sober-living.json`) — Route roster to safe drop-off: enrol riders, plan stops, driver manifest boarded/dropped/absent, ale",
      "scope": "Route roster to safe drop-off: enrol riders, plan stops, driver manifest boarded/dropped/absent, alert on unaccounted rider",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/passenger-transport.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.passenger-transport"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:91"
    },
    {
      "id": "IND-41ea01a84bcfc4",
      "title": "4. Sober Living & Recovery Residences (P tile; pack `sober-living` T2; blueprint `registry/blueprint-templates/sober-living.json`) — Open beds by house, referral source to move-in, length of stay by house, discharges by reason",
      "scope": "Open beds by house, referral source to move-in, length of stay by house, discharges by reason",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0181_leases.sql, migrations/20261014100000_property_units.sql, src/property-occupancy.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:92"
    },
    {
      "id": "IND-2e102b1ffcbc7f",
      "title": "4. Sober Living & Recovery Residences (P tile; pack `sober-living` T2; blueprint `registry/blueprint-templates/sober-living.json`) — Resident gets their own emailed-link login to see and pay their fee balance",
      "scope": "Resident gets their own emailed-link login to see and pay their fee balance",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.customer-portal",
        "business-api.invoice-pay-now"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:93"
    },
    {
      "id": "IND-86793e8760d8a6",
      "title": "4. Sober Living & Recovery Residences (P tile; pack `sober-living` T2; blueprint `registry/blueprint-templates/sober-living.json`) — Certification renewal: one document trail per house; occupancy ceiling worked out from fixtures and ",
      "scope": "Certification renewal: one document trail per house; occupancy ceiling worked out from fixtures and room sizes (FAQ)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.document-processing",
        "business-api.renewal-calendar"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:94"
    },
    {
      "id": "IND-72ef3ba5f49d7a",
      "title": "Family totals — Claims/workflows",
      "scope": "Claims/workflows",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-5-health-care.md:153"
    },
    {
      "id": "IND-fbd116cef690af",
      "title": "1. Accounting & Bookkeeping (accounting-firm) — Billable hours per client tracked; recurring service revenue measured",
      "scope": "Billable hours per client tracked; recurring service revenue measured",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261010460000_time_entry_labor_category.sql, src/native-time.js, src/recurring-invoices.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.native-time-tracking",
        "business-api.recurring-invoices"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:35"
    },
    {
      "id": "IND-be779178f6ad14",
      "title": "1. Accounting & Bookkeeping (accounting-firm) — Tax return and deadline scheduling, extension windows",
      "scope": "Tax return and deadline scheduling, extension windows",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0022_tax_obligations_and_reserves.sql, migrations/0024_notifications.sql, src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:36"
    },
    {
      "id": "IND-50d3bb1370d0a2",
      "title": "1. Accounting & Bookkeeping (accounting-firm) — Client file organization and document retention",
      "scope": "Client file organization and document retention",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0079_data_subject_requests.sql, src/documents.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:37"
    },
    {
      "id": "IND-a754cc10dd2686",
      "title": "1. Accounting & Bookkeeping (accounting-firm) — Per-job profitability",
      "scope": "Per-job profitability",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/job-economics.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.engagement-profitability-rollup"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:38"
    },
    {
      "id": "IND-dbeb5183b55459",
      "title": "1. Accounting & Bookkeeping (accounting-firm) — Business records (CRM) and customer communications",
      "scope": "Business records (CRM) and customer communications",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/leads.js, src/records.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.communication-timeline"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:39"
    },
    {
      "id": "IND-b44739d1a51543",
      "title": "2. Law Firm (law-firm) — Billable hours tracked; non-billable and administrative time visible",
      "scope": "Billable hours tracked; non-billable and administrative time visible",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261010460000_time_entry_labor_category.sql, src/native-time.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.native-time-tracking"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:57"
    },
    {
      "id": "IND-7ceb8e57c17d03",
      "title": "2. Law Firm (law-firm) — Deadline calendars and statute-of-limitations tracking",
      "scope": "Deadline calendars and statute-of-limitations tracking",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0120_sign_documents.sql, src/org-playbook.js, src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:58"
    },
    {
      "id": "IND-ea10838913a966",
      "title": "2. Law Firm (law-firm) — Matter costs known before billing",
      "scope": "Matter costs known before billing",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/job-economics.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.engagement-profitability-rollup"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:59"
    },
    {
      "id": "IND-50dd801ee5d3c1",
      "title": "2. Law Firm (law-firm) — Matter outcome, settlement and trust accounting",
      "scope": "Matter outcome, settlement and trust accounting",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0181_leases.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:60"
    },
    {
      "id": "IND-099807fbe43e88",
      "title": "2. Law Firm (law-firm) — Inquiry intake and responsible-person follow-up",
      "scope": "Inquiry intake and responsible-person follow-up",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/escalation-subjects/lead.js, src/lead-routing.js, src/leads.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:61"
    },
    {
      "id": "IND-360439eee83b91",
      "title": "3. Marketing & Creative Agency (marketing-agency) — Campaign brief connected to assigned work",
      "scope": "Campaign brief connected to assigned work",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/native-jobs.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.job-change-orders"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:79"
    },
    {
      "id": "IND-341e3941f1e021",
      "title": "3. Marketing & Creative Agency (marketing-agency) — Deliverables, client approvals and revision rounds tracked",
      "scope": "Deliverables, client approvals and revision rounds tracked",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:80"
    },
    {
      "id": "IND-54bfef1ec39ac2",
      "title": "3. Marketing & Creative Agency (marketing-agency) — Billable hours and project profitability",
      "scope": "Billable hours and project profitability",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:81"
    },
    {
      "id": "IND-ff81c1da85f5ab",
      "title": "3. Marketing & Creative Agency (marketing-agency) — Client change requests scoped before billing",
      "scope": "Client change requests scoped before billing",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/field-change-orders.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.change-order-external-ack",
        "business-api.job-change-orders"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:82"
    },
    {
      "id": "IND-191f5be584839d",
      "title": "3. Marketing & Creative Agency (marketing-agency) — Team utilization and billable-hour allocation across clients",
      "scope": "Team utilization and billable-hour allocation across clients",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/crew-utilization.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.crew-utilization-trends"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:83"
    },
    {
      "id": "IND-832540a1336ebe",
      "title": "3. Marketing & Creative Agency (marketing-agency) — Client communications and templates",
      "scope": "Client communications and templates",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/communications.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.communication-timeline"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:84"
    },
    {
      "id": "IND-2cc418bd70a6d0",
      "title": "4. HR & Recruiting (hr-recruiting) — Candidate pipeline and interview scheduling",
      "scope": "Candidate pipeline and interview scheduling",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0174_hiring.sql, migrations/0184_hiring_lifecycle.sql, src/hiring.js, src/interviews.js, src/offers.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "people-hr.hiring",
        "people-hr.interviews"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:102"
    },
    {
      "id": "IND-8e4cdcbe1ddd41",
      "title": "4. HR & Recruiting (hr-recruiting) — Online self-booking for candidates and interviews",
      "scope": "Online self-booking for candidates and interviews",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/booking.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.online-booking",
        "business-api.public-booking-page"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:103"
    },
    {
      "id": "IND-d385efdfe9d09b",
      "title": "4. HR & Recruiting (hr-recruiting) — Billable hours per retained company; project profitability",
      "scope": "Billable hours per retained company; project profitability",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:104"
    },
    {
      "id": "IND-88747636b2b41a",
      "title": "4. HR & Recruiting (hr-recruiting) — Placement outcomes and long-term fit tracked",
      "scope": "Placement outcomes and long-term fit tracked",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0174_hiring.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:105"
    },
    {
      "id": "IND-076d8785d8de22",
      "title": "4. HR & Recruiting (hr-recruiting) — Client feedback and candidate availability communicated",
      "scope": "Client feedback and candidate availability communicated",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/booking.js, src/communications.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:106"
    },
    {
      "id": "IND-d0e4aa38a53802",
      "title": "5. Insurance Agencies (insurance) — P tile — Inbound leads routed by line, territory or round robin; alert if untouched",
      "scope": "Inbound leads routed by line, territory or round robin; alert if untouched",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0137_lead_routing.sql, migrations/20261010770000_lead_routing_service_availability.sql, src/escalation-subjects/lead.js, src/escalation.js, src/lead-routing.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:124"
    },
    {
      "id": "IND-a938cc07d8efe5",
      "title": "5. Insurance Agencies (insurance) — P tile — Quote request missing a required item → automatic prospect nudge, escalated to producer",
      "scope": "Quote request missing a required item → automatic prospect nudge, escalated to producer",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.application-checklists"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:125"
    },
    {
      "id": "IND-d8b7c08ed1f338",
      "title": "5. Insurance Agencies (insurance) — P tile — 90-day renewal trigger opens a renewal workflow",
      "scope": "90-day renewal trigger opens a renewal workflow",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.renewal-calendar"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:126"
    },
    {
      "id": "IND-9ef3e1473224e5",
      "title": "5. Insurance Agencies (insurance) — P tile — Carrier non-payment or cancellation notice flags the client record immediately",
      "scope": "Carrier non-payment or cancellation notice flags the client record immediately",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/admissions.js, src/insurance-policies.js, src/programs.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:127"
    },
    {
      "id": "IND-3eecbcb44e78e0",
      "title": "5. Insurance Agencies (insurance) — P tile — Commission statement reconciled against expected commissions from bound and renewed policies",
      "scope": "Commission statement reconciled against expected commissions from bound and renewed policies",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0037_real_estate.sql, migrations/0179_insurance_policies.sql, src/insurance-policies.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:128"
    },
    {
      "id": "IND-48afed2ddbe22d",
      "title": "5. Insurance Agencies (insurance) — P tile — License and carrier-appointment expiration alert",
      "scope": "License and carrier-appointment expiration alert",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0096_construction.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:129"
    },
    {
      "id": "IND-ed97a04b4b2deb",
      "title": "5. Insurance Agencies (insurance) — P tile — Book review to cross-sell; coverage-gap and life-event triggers",
      "scope": "Book review to cross-sell; coverage-gap and life-event triggers",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:130"
    },
    {
      "id": "IND-d44a7d930971aa",
      "title": "5. Insurance Agencies (insurance) — P tile — Quote bound to policy; endorsements, certificates and claims tracked on the policy",
      "scope": "Quote bound to policy; endorsements, certificates and claims tracked on the policy",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/insurance-policies.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.insurance-claims",
        "business-api.insurance-servicing"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:131"
    },
    {
      "id": "IND-722de723c502ab",
      "title": "5. Insurance Agencies (insurance) — P tile — Producer pipeline, performance and book composition",
      "scope": "Producer pipeline, performance and book composition",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/leads.js, src/renewal-retention.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.estimate-win-loss",
        "business-api.insurance-book-analytics"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:132"
    },
    {
      "id": "IND-8b2bb21c1bf7a2",
      "title": "5. Insurance Agencies (insurance) — P tile — Lead to quoted proposal",
      "scope": "Lead to quoted proposal",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/esignature.js, src/leads.js, src/native-estimates.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.native-estimates"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:133"
    },
    {
      "id": "IND-8b1a6d49e45a61",
      "title": "6. Professional Services (professional-services) — P tile — Inquiry to signed engagement (discovery, proposal, follow-up, e-sign)",
      "scope": "Inquiry to signed engagement (discovery, proposal, follow-up, e-sign)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0138_estimate_follow_up.sql, src/booking.js, src/esignature.js, src/estimate-follow-up.js, src/leads.js, src/native-estimates.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:153"
    },
    {
      "id": "IND-f25b5a63a0f121",
      "title": "6. Professional Services (professional-services) — P tile — Unbilled-time (WIP-threshold) nudge to partner and billing admin",
      "scope": "Unbilled-time (WIP-threshold) nudge to partner and billing admin",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/escalation-subjects/time_entry.js, src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:154"
    },
    {
      "id": "IND-e22ba7a32e3e98",
      "title": "6. Professional Services (professional-services) — P tile — Proposal-aging escalation from consultant to responsible partner",
      "scope": "Proposal-aging escalation from consultant to responsible partner",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/escalation-subjects/estimate.js, src/estimate-follow-up.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:155"
    },
    {
      "id": "IND-f6f52bfd2b2526",
      "title": "6. Professional Services (professional-services) — P tile — Engagement-letter expiry alert ahead of end date",
      "scope": "Engagement-letter expiry alert ahead of end date",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:156"
    },
    {
      "id": "IND-602b54c3d11f1f",
      "title": "6. Professional Services (professional-services) — P tile — Unlogged-time reminder when a consultant has not logged time",
      "scope": "Unlogged-time reminder when a consultant has not logged time",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: dist/app-ops.js, tests/f112a-time-labor-loop.test.mjs. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:157"
    },
    {
      "id": "IND-5e955a5da54def",
      "title": "6. Professional Services (professional-services) — P tile — Deliverable awaiting client approval escalated after N days",
      "scope": "Deliverable awaiting client approval escalated after N days",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0152_service_engagement_operations.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:158"
    },
    {
      "id": "IND-b3cadd8762d79b",
      "title": "6. Professional Services (professional-services) — P tile — Scope-change acknowledgment gate; work held from invoicing until acknowledged",
      "scope": "Scope-change acknowledgment gate; work held from invoicing until acknowledged",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.change-order-external-ack",
        "business-api.job-change-orders"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:159"
    },
    {
      "id": "IND-3d07dd22682bfb",
      "title": "6. Professional Services (professional-services) — P tile — Utilization rate by consultant and service line",
      "scope": "Utilization rate by consultant and service line",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/crew-utilization.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:160"
    },
    {
      "id": "IND-9d63ee5554553e",
      "title": "6. Professional Services (professional-services) — P tile — Engagement profitability visible before close",
      "scope": "Engagement profitability visible before close",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/job-economics.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.engagement-profitability-rollup"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:161"
    },
    {
      "id": "IND-ff201814c4dd4d",
      "title": "6. Professional Services (professional-services) — P tile — Pipeline value and stage by partner and service line",
      "scope": "Pipeline value and stage by partner and service line",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/native-portfolio.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:162"
    },
    {
      "id": "IND-2537257463e9bc",
      "title": "6. Professional Services (professional-services) — P tile — Scope-change frequency and whether extra work is billed",
      "scope": "Scope-change frequency and whether extra work is billed",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:163"
    },
    {
      "id": "IND-8ef43d967f808d",
      "title": "6. Professional Services (professional-services) — P tile — Approval cycle time by client and engagement type",
      "scope": "Approval cycle time by client and engagement type",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:164"
    },
    {
      "id": "IND-ab663008c8808f",
      "title": "6. Professional Services (professional-services) — P tile — Renewal forecast with likelihood and revenue at risk",
      "scope": "Renewal forecast with likelihood and revenue at risk",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/renewal-retention.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.engagement-renewal-forecast"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:165"
    },
    {
      "id": "IND-66ac972b83b083",
      "title": "7. Private Education (private-education) — P tile — Inquiry → same-day response and campus tour",
      "scope": "Inquiry → same-day response and campus tour",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/booking.js, src/forms.js, src/index.js, src/leads.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:183"
    },
    {
      "id": "IND-2864fcf7b046b5",
      "title": "7. Private Education (private-education) — P tile — Application checklist with automatic missing-item reminders and escalation",
      "scope": "Application checklist with automatic missing-item reminders and escalation",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0180_admissions_applications.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.admissions-document-checklists",
        "business-api.application-checklists"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:184"
    },
    {
      "id": "IND-604c38dd87bb14",
      "title": "7. Private Education (private-education) — P tile — Application → enrollment decision through status stages",
      "scope": "Application → enrollment decision through status stages",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/admissions.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.admissions"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:185"
    },
    {
      "id": "IND-455ab053f37906",
      "title": "7. Private Education (private-education) — P tile — Enrollment packet, tuition agreement and onboarding checklist sequence",
      "scope": "Enrollment packet, tuition agreement and onboarding checklist sequence",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/esignature.js, src/onboarding.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:186"
    },
    {
      "id": "IND-0fca1af5c3aec6",
      "title": "7. Private Education (private-education) — P tile — Re-enrollment outreach before the commitment window; unconfirmed families surfaced",
      "scope": "Re-enrollment outreach before the commitment window; unconfirmed families surfaced",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:187"
    },
    {
      "id": "IND-1fdacb2d1f7f09",
      "title": "7. Private Education (private-education) — P tile — Key dates (application deadline, deposit due, enrollment confirmation) drive notifications and alert",
      "scope": "Key dates (application deadline, deposit due, enrollment confirmation) drive notifications and alerts",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:188"
    },
    {
      "id": "IND-92f1c67d85b03d",
      "title": "7. Private Education (private-education) — P tile — Enrollment pipeline by stage with conversion rates",
      "scope": "Enrollment pipeline by stage with conversion rates",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.admissions-funnel-conversion"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:189"
    },
    {
      "id": "IND-bbc9d685af61cf",
      "title": "7. Private Education (private-education) — P tile — Inquiry response time by channel and staff member",
      "scope": "Inquiry response time by channel and staff member",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/kpi-thresholds.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.lead-response-time-reporting"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:190"
    },
    {
      "id": "IND-dd6ebb7f9d8723",
      "title": "7. Private Education (private-education) — P tile — Marketing attribution to enrolled families (not just inquiries)",
      "scope": "Marketing attribution to enrolled families (not just inquiries)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0039_receptionist.sql, src/lead-conversion.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:191"
    },
    {
      "id": "IND-d079da2a85cffb",
      "title": "7. Private Education (private-education) — P tile — Tuition and aid summary; aid and tuition attached to the family",
      "scope": "Tuition and aid summary; aid and tuition attached to the family",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/admissions.js, src/portability.js, src/recurring-invoices.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:192"
    },
    {
      "id": "IND-b12c05e8397736",
      "title": "7. Private Education (private-education) — P tile — Route roster with safe drop-off manifest; end-of-run alert for unmarked riders",
      "scope": "Route roster with safe drop-off manifest; end-of-run alert for unmarked riders",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/20261012090000_passenger_transport.sql, migrations/20261012160000_transport_guardian_notices.sql, src/passenger-transport.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.passenger-transport"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:193"
    },
    {
      "id": "IND-b6fcdd8feed849",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Visitor → connected member: follow-up queued within 48 hours; invitation sequence",
      "scope": "Visitor → connected member: follow-up queued within 48 hours; invitation sequence",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/booking.js, src/records.js, src/workflow-engine.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:211"
    },
    {
      "id": "IND-37884b83c8754e",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Volunteer need matched by skill and schedule; automatic confirmations; filled/open view",
      "scope": "Volunteer need matched by skill and schedule; automatic confirmations; filled/open view",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/dispatch-qualifications.js, src/native-shifts.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.native-shift-scheduling",
        "business-api.volunteer-confirmations-and-fill-rate"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:212"
    },
    {
      "id": "IND-9d3f5cbbc9d916",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Gift → acknowledgment: thank-you queued on the person record",
      "scope": "Gift → acknowledgment: thank-you queued on the person record",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0183_donations.sql, src/donations.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.donations"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:213"
    },
    {
      "id": "IND-401d0f3dae258c",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Stewardship milestones: first gift, increased giving, lapsed giving trigger staff responses",
      "scope": "Stewardship milestones: first gift, increased giving, lapsed giving trigger staff responses",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/customer-inactivity.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:214"
    },
    {
      "id": "IND-7bff634de3d3cd",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Pastoral-care request tracked to resolution, assigned, not lost",
      "scope": "Pastoral-care request tracked to resolution, assigned, not lost",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/service-engagements.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:215"
    },
    {
      "id": "IND-503980f94f2c06",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Route roster to safe drop-off; end-of-run alert",
      "scope": "Route roster to safe drop-off; end-of-run alert",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/passenger-transport.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:216"
    },
    {
      "id": "IND-292f10f1bac1d0",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Visitor retention rate (second and third visits, connection)",
      "scope": "Visitor retention rate (second and third visits, connection)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0068_activation_events.sql. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:217"
    },
    {
      "id": "IND-c6179deb2ad2bb",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Volunteer fill rate by ministry and period",
      "scope": "Volunteer fill rate by ministry and period",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [
        "business-api.volunteer-confirmations-and-fill-rate"
      ],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:218"
    },
    {
      "id": "IND-1ef9225b3e7613",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Giving trends: total, average gift, new and lapsed donors, against budget",
      "scope": "Giving trends: total, average gift, new and lapsed donors, against budget",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/donations.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:219"
    },
    {
      "id": "IND-b91a08e50a90a1",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Program engagement depth (people in one, two or three+ programs)",
      "scope": "Program engagement depth (people in one, two or three+ programs)",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: migrations/0177_programs_sessions.sql, src/programs.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:220"
    },
    {
      "id": "IND-2d17103fda28d6",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Pastoral care load: open requests, response time, caseload",
      "scope": "Pastoral care load: open requests, response time, caseload",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:221"
    },
    {
      "id": "IND-9cb68b9b579316",
      "title": "8. Churches & Nonprofits (churches-nonprofits) — P tile — Communication reach by channel and segment",
      "scope": "Communication reach by channel and segment",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: src/brand-insights.js, src/communications.js. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:222"
    },
    {
      "id": "IND-bd72bbac29052e",
      "title": "Counts (family 6, 8 tiles, 67 claims) — Tile",
      "scope": "Tile",
      "kind": "historical-industry-requirement",
      "status": "Earlier industry scope retained",
      "registryStatus": "Prior audit status is not current availability",
      "plan": "Confirm the current requirement and rollout",
      "evidence": "This functional scope was recorded by the earlier industry audit. Existing source references: none established by this row. A matching file and an older verdict do not certify the whole workflow; reuse the existing master queue and verify the remaining scope.",
      "backlogIds": [],
      "historyCount": 1,
      "origin": "INDUSTRY-GAPS-6-professional-community.md:267"
    }
  ]
}
