First-use reports: published Windows alpha.1

These are real, unedited renderer outputs from termivar 0.10.0-alpha.1, the verified Windows x86_64 prerelease archive, run in an isolated local directory on 2026-09-05. They are not generated by development alpha.2 or a future commit. This was not a fresh-machine or independent security test.

The walkthrough repeats this path using an explicitly acquired local binary. The checked-in example is Windows release evidence; the existing three-OS runtime-smoke jobs separately exercise the actual development CLI at their recorded full source SHA. Linux release acceptance uses its exact downloaded archive in a separate CI step. Check the associated workflow result/artifact before claiming that execution; a documented command is not proof that an OS was tested. macOS prerelease execution is not claimed.

What ran

The standard-library runner binds 127.0.0.1 on an allocated port and serves two fixed, tiny demonstration documents. It serves no directory or user files, and has no forms, query-driven inputs, reflection, credentials, callbacks, or external assets. It stops its own listener and children after the run.

Invocation Actual result in this capture
Version, help, scan help Exit 0; binary reports termivar 0.10.0-alpha.1
Default scan, no profile Exit 0; decision-scan/v1, one request, no active verification; halt / no_eligible_action
Root web-review, JSON Exit 0; complete report, one subject, four informational items; three fixture requests
Root web-review, HTML Separate exit-0 run; complete HTML from the existing renderer; three fixture requests
Existing JSON output Exit 1; zero fixture requests; original report bytes/hash unchanged
Invalid baseline/report combination Exit 2 before any fixture request; no success artifact
Begun non-root /example run Exit 1 after three fixture requests; assessment_subject_identity_unavailable; no partial report file

The non-root case uses an existing subject-identity limitation, not a payload, stress test, or changed runtime limit. Its operational diagnostic reports incomplete_assessment_items_withheld; this is distinct from preflight refusal. The absence of an assessment file is deliberate, not a zero-observation result.

Reading the actual assessment

The JSON says status: complete, subject_count: 1, and item_count: 4. All four items have disposition: informational, claim_basis: observation, and severity: null. They record that the eligible static HTML response did not include these headers:

  • Permissions-Policy
  • Content-Security-Policy
  • Referrer-Policy
  • X-Content-Type-Options

These are bounded observations, not demonstrated vulnerabilities. NeedsReview would ask a human to investigate stronger evidence; this sample contains no such item. An action's Success is not vulnerability confirmation. The report does not establish business impact, exploitability, detection accuracy, or production readiness. A report with no items must never be paraphrased as “secure.”

The no-profile output is a different, operational schema; it shows planning, dispatch, and terminal state rather than an assessment findings list. Its ordinary no_eligible_action halt is not a renderer failure.

What was not evaluated

The published release-bundle compiles several optional capabilities, but this walkthrough enables none of their flags. It does not request GraphQL, OpenAPI, REST, resource authorization, normalization-resilience, or artifact review. OAST is not compiled into the archived bundle and is not used here. The four-item renderer document does not contain a per-capability execution matrix or request totals: those must not be invented. Fixture request counts come from the separate acceptance provenance, not a new report field.

The archive predates maintenance PRs #109–#111. It is not recommended for credentialed or production use. The tagged alpha.1 source predates the F3 correction, while this archived release binary did not compile OAST; later development changes do not rewrite this capture. See the maintenance ledger.

Provenance and normalization

acquisition.json records the GitHub release ID, peeled tag commit, exact archive name, archive/manifest/binary digests, raw provenance digest, and checked-in sample digests. Checksum agreement is not code signing or an independent audit. Distribution separates checksum and build-provenance verification.

The runner's provenance.json records observed version/hash, declared build features/ref, host architecture, fixture contract/content digest, exact argv, invocation identifiers, timestamps, exits, bounded capture digests, and report digests. Ref/features are caller declarations supported here by exact release acquisition; --version alone does not attest them.

The public copy uses the runner's small public_provenance helper. Its complete normalization allowlist is binary.path and invocations[*].argv[0], both replaced by <LOCAL_BINARY>. No other measured value is transformed. The loopback port, times, errors, counts, completion state, dispositions, and digests remain actual. No raw credential was used. The JSON and HTML reports, and default.json, are byte-for-byte copies: no report normalization. The narrow .gitattributes entries preserve those capture bytes and public provenance line endings across checkouts; they do not exclude lint or coverage.

05-assessment-json and 06-assessment-html identify two different CLI executions. These are harness invocation identities, not invented scanner run IDs. Do not require matching fingerprints/timestamps across separate runs. Compare semantic invariants instead. No unofficial JSON-to-HTML conversion was used; the generated HTML has no scripts, CDN, tracking, or external assets.

Raw stdout/stderr and unnormalized provenance stay in the private local output directory or the workflow's bounded, 30-day first-use-* artifacts. Their relative capture filenames in public provenance are evidence references, not promises that private raw captures are checked into this directory. No raw capture is published here. The normalizer does not promise to scrub arbitrary user-provided labels or unrelated captures; inspect before publishing.

The helper tests verify fixture safety, cleanup, bounded captures, and negative cases. Sample tests pin byte hashes and semantics without treating a future rerun's legitimate timing/identity differences as failures.