# StrictPath Launch Benchmark Methodology

The benchmark is designed to prevent impressive-looking but unverifiable claims.

## Automated measurement

Run:

```bash
pnpm run benchmark:launch
```

This measures two distinct operations on the current machine:

1. compiling `examples/domain-specifications/orders.yaml` into synchronized domain artifacts;
2. generating a complete NestJS/Fastify service without dependency installation.

It records wall-clock duration, generated file/directory/byte counts, Node/pnpm versions and machine details in `reports/benchmarks/launch-benchmark.json`.

For dependency installation and runtime verification:

```bash
pnpm run benchmark:launch -- --full
```

Container-based full verification is intentionally separate because image cache, network and Docker state dominate its duration:

```bash
cd /tmp/strictpath-launch-benchmark/svc-launch-orders
strictpath verify --full --report reports/full-verification.json
```

## Manual baseline

A human baseline is valid only if the same engineer builds the same acceptance surface from an empty directory:

- strict TypeScript NestJS/Fastify application;
- aggregate command/query/event behavior;
- Prisma model and migration;
- OpenAPI and event schemas;
- unit, integration and contract tests;
- architecture boundary gate;
- PostgreSQL, Redis and broker verification;
- SBOM and production-proof output.

Start and stop times, interruptions and omitted controls must be recorded. Supply the measured value only after completing that exercise:

```bash
pnpm run benchmark:launch -- --manual-seconds=7200
```

`7200` above is an example argument, not a StrictPath result. The report labels manually supplied measurements and never invents a comparison when no value is provided.

## Interpretation limits

- Generation speed is not development speed.
- Generated file count is not a quality metric.
- First-run dependency and container costs differ from warm-cache runs.
- The benchmark proves repeatability on the recorded machine, not universal performance.
- Independent users should publish raw JSON reports when making time-saving claims.
