Protocol
An open standard, tested from both sides
Two independent implementations validate against the same shipped conformance vectors, including deliberately invalid streams. Every figure on this page derives from the repository at build time.
The shipped version
nep/1.1
The version above is imported from the protocol source at build time. A retyped version string anywhere on this surface fails the build.
The conformance corpus
21 valid streams
Counted by one .jsonl stream per file under packages/protocol/vectors/, outside invalid/
packages/protocol/vectors
9 invalid stream categories
Counted by one .jsonl pair per category under packages/protocol/vectors/invalid/
packages/protocol/vectors/invalid
Each invalid category ships as a stream and its expected verdict. The categories, named from their files:
- broken-chain
- expired-key
- replayed-record
- sequence-gap
- signature-mismatch
- suppressed-stream
- tampered-payload
- truncated-tail
- unknown-key
The corpus and the second implementation resolve in the repository, at paths the build asserts exist:
packages/protocol/vectors
packages/protocol/verifier
Independence
The security addendum states the relationship between the two implementations in its own terms.
Neither the vendor's TypeScript implementation nor the Go verifier is the reference for the other; both are validated against shared, versioned conformance vectors including nine categories of deliberately invalid streams.
docs/vendor-assessment/security-addendum.md:25-25
Implementation status and remaining scope
Decision Assurance ships a bounded direct-instrumentation collector, live pre-execution refusal evidence and the current countersignature envelope. The broader generic MCP interposition, high-availability and managed-key scope remains open. State, scope and evidence paths below derive from the capability register.
- F-075 collector
- The reference collector verifies, appends and countersigns the Decision Assurance workload in the buyer-controlled deployment shape.
- Scope: Decision Assurance direct-instrumentation reference workload; generic MCP stdio interposition, federation, high availability and managed key infrastructure remain open.
- implemented-scoped
- governed by tasks/prd-decision-assurance-v0.1.md
- executable evidence: examples/decision-assurance/vendor-risk/run-demo.sh
- Live blocked-action capture
- The reference control plane emits a real non-synthetic action_blocked record before the protected function can execute.
- Scope: Decision Assurance control plane emits a real non-synthetic action_blocked record before the protected function; generic MCP-boundary capture remains open.
- implemented-scoped
- governed by tasks/prd-decision-assurance-v0.1.md
- executable evidence: examples/decision-assurance/vendor-risk/run-demo.sh
- nep/1.1 countersignature envelope
- The shipped TypeScript emitter and collector and the independently implemented Go verifier exercise the same countersignature contract.
- Scope: NEP 1.1 emitter compatibility and distinct collector countersignatures across the TypeScript protocol package, collector, schemas, vectors and Go verifier.
- implemented
- governed by standards/intelligence-platform/rfc/0015-evidence-stream-protocol.md
- executable evidence: packages/protocol/vectors/
- 6 occurrences in the shipped source (occurrences of the literal nep/1.1 in every file under packages/protocol/src/ (reproduce: grep -ro 'nep/1.1' packages/protocol/src/ | wc -l))
Policy packs are data
A policy pack binds regulatory controls to the gates that enforce them. Packs live under standards/policy-packs/packs/ and load through one loader, so a new jurisdiction is a new pack, not a fork.
The apra-cps pack ships as it is: version 0.1.0, jurisdiction AU, regulator APRA. Its verification rows are recomputed from 5 source files currently held under sources/. Rows without matching provenance remain UNVERIFIED-DRAFT.
17 controls
Counted by node standards/policy-packs/tools/pack-load.cjs --pack apra-cps --json
standards/policy-packs/packs/apra-cps
17 rows VERIFIED
Counted by node standards/policy-packs/tools/pack-load.cjs --pack apra-cps --json
standards/policy-packs/packs/apra-cps
0 rows UNVERIFIED-DRAFT
Counted by node standards/policy-packs/tools/pack-load.cjs --pack apra-cps --json
standards/policy-packs/packs/apra-cps
The two verification figures render side by side and are never combined into one score. A row without matching provenance stays visibly drafted until the loader can recompute it as verified.
What CPS 230 asks of an automated control