# Run & Deploy — Forge PM Work Order Simulation

> **FICTIONAL / SYNTHETIC DEPLOYMENT MODEL.** No real customer data is used. This
> document describes how to run the *simulation*, and how a real deployment of the
> underlying ecosystem would differ.

## Run the simulation locally

```bash
cd delivery-package/forge-pm-work-order-sim
node verify.mjs            # full 100k run (~15-20 min)
node build-deliverables.mjs
node publish.mjs
```

## Proof + gates (from repo root)

```bash
node tools/forge-proof.mjs --outcome delivery-package/forge-pm-work-order-sim \
  --verify "node verify.mjs" --report verification-report.json \
  --outcome-seam "Fictional enterprise customer (Forge Property Management) and 100% synthetic data/assumptions; no real deployment."

node tools/forge-proof-verify.mjs --outcome delivery-package/forge-pm-work-order-sim
node tools/forge-gate.mjs --outcome delivery-package/forge-pm-work-order-sim --action publish
node tools/forge-portfolio.mjs
```

## What a *real* deployment would require (disclosed seams → live)

This simulation runs the ecosystem with in-process infrastructure and synthetic
input. A real deployment for an actual property manager would additionally need:

1. **Real intake integration.** Replace the synthetic generator with the customer's
   work-order intake (portal, email, phone transcription, IoT) feeding the same
   order shape.
2. **External database.** Set `DATABASE_URL` to a managed PostgreSQL (the repository
   and gRPC service use the same SQL via the `pg` adapter). PGlite is the in-process
   engine used here.
3. **External dispatch service.** Point `DISPATCH_GRPC_URL` at a deployed dispatch
   service (a Go implementation of `proto/dispatch.proto` is wire-compatible) and
   integrate the customer's vendor/dispatch systems.
4. **LLM classifier (optional).** Swap the deterministic lexicon classifier for an
   LLM behind the same interface, and re-verify accuracy on the customer's real text.
5. **Identity, RBAC, tenant isolation, retention.** Enterprise non-functional
   controls, evaluated by the Proof Layer before any production claim.
6. **Live validation.** Only real production evidence + an official benchmark +
   independent reproduction could ever justify a `PRODUCTION_VALIDATED` state — which
   this synthetic model explicitly does not claim.

## Determinism

Everything is seeded (`20260625`). Re-running the generator reproduces the exact
corpus (verified by the corpus fingerprint check), so all reported numbers are
reproducible by any independent engineer.
