# PRAE Ship Kit alpha evidence report

**Synthetic corrected handoff fixture**

Captured: 2026-10-29T16:09:57.441Z  
Engine: 0.1.0-alpha.1  
**Assessment status: partial assessment. No control is marked met.**

This report describes four local assertions. It does not establish production security, compliance, or completion of the PRAE Standard.

## Assertion results

| Assertion | Result | Files examined |
| --- | --- | ---: |
| NA-BUNDLE-01 | pass | 1 |
| NA-SOURCE-PUBLIC-01 | pass | 1 |
| NA-CI-PIN-01 | pass | 1 |
| NA-CI-PERM-01 | pass | 1 |

## NA-BUNDLE-01 Recognizable secret indicators in selected client artifacts

**Result: pass.**

A pass establishes: No match for the four documented secret-indicator patterns occurs in the text artifacts successfully inspected in this declared scope.

Limits: Does not establish that a match is a live credential, that no unrecognized or transformed secret exists, that these are complete/current production bundles, or that uninspected files are clear.

Next action: Inspect the indicated location locally. Remove server-only credentials from client artifacts, rebuild, and rerun. If a real credential was exposed, revoke or rotate it through its provider; this alpha does not do that for you.

## NA-SOURCE-PUBLIC-01 Literal public-environment names against the owner declaration

**Result: pass.**

A pass establishes: Every literal NEXT_PUBLIC_ identifier found in the inspected source text is included in the owner-supplied publishable-name declaration.

Limits: Does not validate the declaration, values, actual bundle substitution, dynamic variable construction, runtime configuration, or source outside the scope. Comments and strings may contain matching names.

Owner input: publishable-name declaration attributed to Synthetic fixture owner; not independently verified.

Next action: Review each name and its intended value locally. Keep server-only values out of client-visible variables. Add a name to the declaration only after confirming that its value is intended to be public.

## NA-CI-PIN-01 Immutable references in supported workflow uses lines

**Result: pass.**

A pass establishes: Every recognized external action or reusable-workflow reference in the inspected, supported line-oriented syntax uses a 40-character commit SHA; Docker references use a sha256 digest.

Limits: Does not prove pinned code is safe, validate YAML with a complete parser, inspect referenced workflows/local actions, examine run commands, or establish GitHub runtime settings.

Next action: Review the referenced action or workflow, then pin to the reviewed full commit SHA or use an appropriately verified dependency lockfile. This alpha does not verify lockfiles, repository identity, or dependency code.

## NA-CI-PERM-01 Explicit restricted workflow default token permissions

**Result: pass.**

A pass establishes: Each inspected workflow has a single supported top-level permissions declaration containing an empty map, read-all, or a block map whose values are read or none.

Limits: Does not validate job-level overrides, external workflow permissions, repository/organization settings, YAML as a whole, or whether the remaining permissions are necessary.

Next action: Declare limited workflow defaults and grant additional permissions only to jobs that require them. Review job-level overrides manually; this alpha does not evaluate them.

## Control conclusions

Every associated control remains inconclusive because this alpha collects only part of its evidence. Passing assertions do not promote a whole control to met.

## Boundaries and handling

- Evaluation alpha. Four narrow local assertions; no full control, baseline, compliance, penetration-test, or production-safety conclusion.
- No deployment API, database, authentication, tenant-isolation, live application, Storage, realtime, or MCP testing.
- No project code is executed and no network API is used by this implementation. This is not an operating-system sandbox guarantee.
- Run on a trusted, quiescent local copy. Symlink and path checks do not establish safety against every concurrent or hostile filesystem mutation.
- Reports are unsigned. File digests identify collected bytes and do not establish truth, ownership, or deployment state.
- Matched values and code snippets are withheld. Reports still contain relative paths, public-variable names, file digests, and findings; review before sharing.

## Evidence inventory

| Relative path | Bytes | SHA-256 of collected file |
| --- | ---: | --- |
| null-security.scope.json | 376 | ba2af47311b9f76bb53b6a6cb3964d2a90c3f7fc54642a4d3b2a9e7be016b9de |
| client-artifacts/app.js | 223 | b0b2dbd3a1a3dd12b4a72d4b3aa28ce4d6396cf7dffaac21a232c8a3e08ecc6a |
| app/page.tsx | 287 | f4cf3c2025cc791cca5ddab3fd8cba84ef84c81146500c00f3c6532abea4ecd5 |
| .github/workflows/build.yml | 304 | f95f2c252b064181b3c4cb93bea071a9cfc26ce3d80c318f90275a87394780c4 |

This is an unsigned local working report, not a Null Assessment Record.
