# Sovereign Clean Sky — Working Prototype 0.2.0

BB2G / Born Between 2 Generals LLC · October 12, 2026

## What now works

The browser lab generates nonexportable P-256 signing keys and synthetic aircraft, operator and mission credentials. It signs fresh possession proofs and revocation information, verifies them against a separately supplied trust configuration, and returns independent findings. The same module is used by the browser and Node security tests.

Working checks include issuer fingerprint binding, credential signatures and scope, aircraft/operator key possession, short-lived challenge freshness, session replay rejection, credential lifetime, revocation age, revocation of each permission, mission/operator/area binding and namespace separation. Every result retains the contact and refuses enforcement authority.

Separately signed firearm sample reports demonstrate covered tamper-event review, stale-heartbeat handling, wrong-device rejection and alteration detection. They never confirm theft or provide location. Physical sensor events are simulated, not observed.

The oversight demonstration checks two distinct active reviewer signatures over the same change. An append-only application flow produces hash-linked events and signed audit checkpoints. Evidence downloads contain public material only and bind the latest sample evidence to the audit record. Independent retained fingerprints/checkpoints are necessary to resist trust-root or whole-history substitution.

## Run locally

Requires Node 22 or newer. No dependency installation or provider account is needed for the application.

```bash
npm start
```

Open `http://127.0.0.1:8178/console.html`. The server binds only to loopback. Set `CLEAN_SKY_PORT` to select another available port.

The console loads its scripts and styles locally. It does not request third-party resources or submit evidence. The historical proposal page retains its existing third-party fonts and posture badge; open the console directly for the local verification flow.

## Check and preserve evidence

```bash
npm test
```

Browser QA is optional and requires a separately installed Playwright package and its Chromium browser:

```bash
node tests/browser-check.mjs
```

The browser creates synthetic public evidence; the QA runner verifies exported evidence and rejects an altered copy. QA output is temporary and excluded from the repository.

Download public evidence from the console. Retain the audit issuer fingerprint separately from the evidence file through a trusted channel. To verify the export offline:

```bash
node tools/verify-export.mjs EVIDENCE.json INDEPENDENTLY_RETAINED_AUDIT_ISSUER_FINGERPRINT
```

This verifies audit signatures, chain continuity, signed checkpoint and latest evidence bindings. It does not establish current aircraft permission or physical firearm status. The generic `verifyEvidence` function needs its expected nonce, observation context, trusted issuer and status-age policy independently supplied by the verifier. Never trust a package solely because it contains its own public key.

## Boundaries that remain

- Enrollment and reviewer identity are synthetic. There is no deployed owner authentication, agency identity provider, durable credential registry or real-world issuance authority.
- Keys are nonexportable browser keys, not hardware secure elements or independently audited cryptography. P-256 is not post-quantum protection.
- Challenge consumption is in memory for a verifier session. A real service must retain/reconcile replay state, atomically consume challenges and provide restart-safe storage.
- Signed status data is freshly generated for scenarios; there is no fleet-wide revocation distribution or mesh implementation.
- Government samples use pseudonyms. There is no sensitive government identity resolver, classification accreditation or stealth guarantee.
- The lab has no real sensor feed, installed forensic marking, firearm modification, tracker, police integration, automatic dispatch, seizure or remote disabling.
- Sensor timestamps and coverage are device claims. Signatures authenticate a report, not the truth of the physical event. Future devices need independently measured coverage, environmental performance, false alarms and delivery delays.
- Local audit data remains in browser memory until downloaded; refreshing discards the session. Independent trust anchors and checkpoints must be preserved externally.
- The August letters/PDFs remain historical. The October clarification separates identity from permission and supersedes automatic subtraction/capture language.

## Gap closure register

| Area | Software evidence now available | Remaining acceptance |
| --- | --- | --- |
| Stolen/copy/replay | Operator proof separation, signature checks, fresh challenge and session replay tests | Hardware binding, secure enrollment, persistent challenge service |
| Unauthorized mission | Separate mission binding, expiry and revocation | Real airspace permission source and aircraft-safe behavior |
| Offline/compromise | Stale-status classification, trust-pin rejection, node namespace checks | Live revocation distribution, compartmented mesh and issuer recovery |
| Firearm identity | Separate report signatures, coverage-aware review and public evidence | Manufacturer marking, physical sensors, legal/reporting interfaces |
| Governance | Distinct-signature approvals and independently pinned audit verification | Real reviewer identities, role controls, durable independent witnesses |

The current tests verify software boundaries and adversarial inputs. They do not close the physical and institutional gaps listed above.
