See definition_of_done.md, migration_2.2.md, adr/0010-institutional-pilot-release-boundaries.md, and release_manifest.json.
Not production-complete / not safe to market as done without live infra:
- Live AWS S3 Object Lock certification (adapter + mocked confirmation tests exist)
- Live verified remote ledger service with institutional keys
- Live PostgreSQL RLS certification under multi-connection attack scenarios
- Vendor-certified KMS/HSM SAL4 deployments (attestation registry + local verify are reference-grade)
- Live institutional IdP / directory certification (in-repo OIDC/SAML adapters are reference-grade)
- Mandatory live AKTA/PF/PCS gates unless
SCOPE_REQUIRE_LIVE_CONTRACTSis set with sibling repos - Independent third-party certification of pilot reconstruction
- Scientific correctness, reviewer honesty/competence, or regulatory approval (never in-repo claims)
Shipped as reference-grade with in-repo acceptance tests:
- Packet freeze /
action_chain_id(AS-01), independence evidence (AS-02),review_modegates (AS-03) - Institutional grant hardening (AS-04), runtime evidence export (AS-05), append-only outcomes (AS-06)
- Quality metrics v3.0 with denominators/missingness and calibration proxies only (AS-07)
- Offline institutional gates + full-stack fixture reconstruction (AS-08)
S3ObjectLockWormSinkwith Object Lock mode, retention, legal hold, fail-closed confirmationVerifiedRemoteSinkwith Ed25519 ack signatures, Merkle inclusion, replay rejection- Authoritative remote fail-closed via
SCOPE_LEDGER_AUTHORITATIVE_REMOTE - Postgres ledger RLS policies (
FORCE ROW LEVEL SECURITY+app.current_tenant) - SQLite mandatory tenant binding (cross-tenant read/write denied)
- KMS attestation registry (
scope/kms_attestation.py) for SAL4 claims - Pilot reconstruction (
scripts/reconstruct_pilot_chain.py --institutional-stack) - Offline gates:
scripts/run_institutional_offline_gates.py - Institutional CI profile gate in
scripts/ci.sh/.github/workflows/ci.yml
LocalAppendSink is append-only file storage. It is not WORM. Legacy worm_*
fields on local append records are compatibility aliases only.
True WORM claims require S3ObjectLockWormSink (or equivalent) against a bucket
with Object Lock enabled, plus live confirmation that retention cannot be shortened.
Ack field presence is insufficient. Verification requires digest binding, Merkle inclusion when batching, remote signer key ID, signature, timestamp, and monotonic sequence. Forgery, tamper, and replay are rejected in unit tests.
SAL4 requires local signature verification and a verified attestation registry entry (certificate hash, attestation hash, non-revoked status, validity window). Without attestation, KMS caps at SAL3. Live vendor KMS endpoints remain operator-configured.
- Summary contract split:
completedvssession_requiredschemas; consumers branch onsummary.status validate_summary_artifact()on all AKTA review write paths (CLI, REST, Python API)- Conditional session grant provenance: schema if/then plus runtime check in
scope/session_provenance.py - Centralized
resolve_reviewer_id()for CLI, REST, and Python API - Verifiable pilot fixtures: per-scenario
manifest.json,expected_verification.json, andscripts/verify_pilot_fixtures.py - AKTA review contract
scope-akta-review-v0.8.1(incompatible summary schema split; supersedes v0.8.0 contract shape)
scope akta review --sessionfor multi-role packets: session summary schema, explicit failure without--session--reviewer-idbinding for registry signing (must match reviewer artifact)- Session grant provenance aggregation: contributing IAL/SAL, authority checks, veto roles, quorum policy hash
- Pilot fixture pack under
examples/pilot/(five institutional scenarios) - Policy bundle
scope-core-v0.8
- Identity assurance levels (IAL0-IAL4) with provenance on decisions and grants
- Two-stage institutional RBAC then SCOPE scope policy authority checks
- Ledger delivery modes: best_effort, at_least_once (spool), fail_closed for high-risk events
- Review queue workflow state machine with explicit forbidden transitions
- Signing assurance levels (SAL0ΓÇôSAL4) with minimum policy enforcement at grant issue
- Frozen AKTA review output contract (
summary.jsonschema, adapter version constant) - Policy bundle
scope-core-v0.7
- OIDC/JWT identity verification with JWKS or static PEM (
scope identity verify-token,SCOPE_OIDC_ENABLED) - Signing provider abstraction (local PEM, env key, registry path ref for pilot)
- Institutional RBAC with org units and delegation (
policy/org_rbac.yaml) - Review queue auto-assignment, SLA escalation, file locking, static HTML dashboard
- Ledger remote sink (best-effort HTTP append alongside local chain verification)
- Session replication CLI and replicated JSON session store backend
- Runtime violation and expiration ledger recording for PF feedback loop
- VSA live URL fetch adapter with freshness metadata
- PF-Core
pf-core-v0.5and PCSpcs-v0.5export contracts - Domain overlay validate/list CLI; clinical and genomics mandatory session roles
- REST multi-tenant engine factory via request headers
- Local mock PF/PCS validators in
tests/fixtures/for CI live-contract tests
- One-shot
scope akta reviewCLI andPOST /v0/akta/reviewREST path - Quality report
--queue-dir(CLI and RESTGET /v0/quality?queue_dir=...) - Public-key-only reviewer registry with
scope key migrate-registry - Combined
scope_trust_root_hashin decision/grant provenance and PCS manifest
- Minimal review queue with open/assigned/decided/granted/closed lifecycle (CLI + REST +
.scope/queues/) - Reviewer key registry workflow with
scope key list, signing enforcement, and PCS registry metadata - AKTA v0.4 trigger field aliases (
admissibility,review_route, constraint fallbacks) - AKTA evidence alias normalization at packet adapter boundary (
akta_evidence_statemetadata) - Optional live PF/PCS contract validation when sibling repos are configured
- Ed25519 signing on decisions and grants with production-mode grant enforcement
- Public-key-only verification without private key access
- Multi-reviewer sessions with quorum policies and safety veto
- SessionStore persistence (memory, JSON directory, SQLite) with
packet_snapshot - Ledger-backed grant use, revocation, and expiration with structured reasons
- First-class
requested_scopeand AKTAreview_routeseparation with promotion - Reviewer packet rendering (markdown/html) with non-certification language
- REST API endpoints for packets, decisions, sessions, grants, signing, and export
- PF-Core and PCS export with manifest hash validation
- All 28 quality metrics computed from ledger events
- Review lifecycle events:
review_assigned,review_opened,artifact_viewed - Optional API key auth on REST endpoints
- Domain overlays modifying role matrices at runtime
- VSA report enrichment in packet
review_artifacts - Expanded biosecurity and clinical reviewer scope permissions in policy YAML
- No full enterprise IdP/SAML stack; OIDC/JWT RS256 foundation only
- Registry
signing_key_pathis pilot-only; production HSM/KMS integration is operator-managed - Remote ledger sink supports delivery modes; authoritative tamper evidence remains local JSONL chain
- Review queue dashboard is static HTML; no interactive workflow UI
- RBAC is YAML-file based; no live directory sync
- PF/PCS live repo validation still optional; mock validators used when sibling repos absent
- Distributed session store is write-primary with optional read replica; not full CRDT sync
- AKTA live service integration still uses file/HTTP adapters, not in-repo AKTA runtime
SCOPE does not replace AKTA, PF-Core, VSA, PCS, IRB, biosafety, EHS, or legal compliance. It does not certify scientific safety, reviewer competence, or institutional approval.
Normative claim boundaries (mission, five pilot modes, immutability of signed decisions, relationship to AKTA/PF/PCS): ADR-0001.
See CHANGELOG for release history and future plans: HSM-backed signing (SAL4 interface present), authoritative remote ledger, interactive review UI, and enterprise directory RBAC sync.