
=== GATE: shell syntax ===
ok  ci/run-gates.sh
ok  ci/digest/build.sh
ok  ci/digest/digest-proof-int.sh
ok  ci/docs/check-docs.sh
ok  ci/manifest/check-manifest.sh
ok  ci/publish/package-adapter.sh
ok  ci/publish/release-acquire-int.sh
ok  tests/adapter-archive.sh
ok  tests/ci-gates.sh
ok  tests/manifest-schema.sh
ok  tests/manifest-shortcut.sh
ok  tests/native-launch-manifest.sh
ok  tests/release-acquire.sh

=== GATE: Python syntax ===
ok  ci/docs/build-docs.py
ok  ci/manifest/validate_manifest.py
ok  ci/publish/create-adapter-archive.py
ok  ci/publish/unwrap-changelog.py
ok  ci/publish/validate-release-binary.py
ok  ci/release/check-version-consistency.py
ok  ci/release/validate-release-evidence.py
ok  tests/docs-gate.py
ok  tests/release-evidence.py
ok  tests/version-consistency.py

=== GATE: version consistency ===
VERSION-CONSISTENCY OK: 0.9.4
ok  version consistency

=== GATE: version consistency behavior ===
test_current_artifacts_match_canonical_manifest (__main__.VersionConsistencyTests) ... ok
test_each_versioned_artifact_mismatch_is_rejected (__main__.VersionConsistencyTests) ... ok
test_stale_or_unversioned_parity_baseline_is_rejected (__main__.VersionConsistencyTests) ... ok

----------------------------------------------------------------------
Ran 3 tests in 1.109s

OK
ok  version consistency behavior

=== GATE: docs drift behavior ===
test_checked_in_export_matches_sources (__main__.DocsDriftTests) ... ok
test_source_change_without_regeneration_is_rejected (__main__.DocsDriftTests) ... ok
test_summary_missing_chapter_is_rejected (__main__.DocsDriftTests) ... ok

----------------------------------------------------------------------
Ran 3 tests in 0.064s

OK
ok  docs drift behavior

=== GATE: release evidence validation behavior ===
test_complete_supported_target_set_is_accepted_at_version_floors (__main__.ReleaseEvidenceTests) ... ok
test_cross_target_adapter_digest_mismatch_is_rejected (__main__.ReleaseEvidenceTests) ... ok
test_schema_and_cross_record_failures_are_rejected (__main__.ReleaseEvidenceTests) ... ok

----------------------------------------------------------------------
Ran 3 tests in 6.310s

OK
ok  release evidence validation behavior

=== GATE: documentation publish gate ===
 INFO Book building has started
 INFO Running the html backend
 INFO HTML book written to `C:\Users\decid\AppData\Local\Temp\omp-spt-docs-c5eqzi7m\site`
DOCS-PUBLISH-GATE OK
ok  documentation publish gate

=== GATE: packaged OMP skills ===
ok   OMP skill frontmatter, exact layout, and ordered behavioral contracts
ok   operative skill commands match the installed public spt CLI
ok   installed package exposes all four skills through omp-plugins discovery
PASS: omp-skills
ok  packaged OMP skills

=== GATE: CI dispatcher contract ===
ok   run-gates syntax
ok   gate: traceable-reqs check
ok   gate: tests/manifest-shortcut.sh
ok   gate: tests/native-launch-manifest.sh
ok   gate: ci/digest/build.sh
ok   gate: tests/release-acquire.sh
ok   gate: ci/manifest/check-manifest.sh
ok   gate: ci/publish/validate-release-binary.py
ok   gate: ci/release/check-version-consistency.py
ok   gate: tests/version-consistency.py
ok   gate: ci/docs/check-docs.sh
ok   gate: bun tests/omp-skills.mjs
ok   gate: tests/docs-gate.py
ok   gate: tests/release-evidence.py
CI-GATES OK
ok  CI dispatcher contract

=== GATE: manifest schema ===
ok   C:/Users/decid/Documents/projects/omp-spt/adapter/omp-spt.toml
ok   manifest validates against published manifest.schema.json
ok  manifest schema

=== GATE: manifest schema behavior ===
ok   real manifest validates
ok   catches missing [adapter]
ok   catches missing required adapter.min_spt_core_version
ok   catches invalid adapter.kind enum
ok   catches non-array adapter.hostable_types
ok   catches non-string shortcut_basename
ok   catches invalid env direction enum
MANIFEST-SCHEMA OK
ok  manifest schema behavior

=== GATE: manifest cutover ===
ok   shortcut_basename = "omp" (omp-<id> brand intact)
ok   single shortcut_basename assignment
ok   [adapter].name = "omp-spt"
ok   host_binaries includes "omp"
ok   hostable_types exposes ReadyAgent + LiveAgent only
ok   [session.self] snapshots endpoint env and forwards naming inputs before native OMP launch
ok   [session.resume] refreshes endpoint snapshot and naming inputs before native resume
ok   hosted sessions never use headless RPC mode
ok   exactly 2 native launch-shim commands
ok   commune_dir = .spt
ok   signoff_dir = .spt
ok   packaged omp-spt extension exists
OMP-EXTENSION OK
ok   [digest].extractor scans project snapshots by session
ok   [history].fetcher scans project snapshots by session
ok   [session.echo_commune] recovers the endpoint snapshot by id
ok   no retired --captured-env argv remains
ok   rejected read-env declarations/placeholders are absent
ok   both psyche roles use the public Psyche key catalog
ok   [session.psyche_init] avoids unsupported read-env substitutions
ok   [session.psyche_resume] avoids unsupported read-env substitutions
ok   no {psyche_prompt} anywhere (event rides stdin)
ok   [session.psyche_init] env_remove scrubs OWL_SESSION_ID + SPT_AGENT_ID
ok   [session.psyche_resume] env_remove scrubs OWL_SESSION_ID + SPT_AGENT_ID
ok   psyche_resume is captured (detach=false)
ok   psyche_resume keys include psyche_context_file
ok   [update].repo = "BigscreenVR/omp-spt"
ok   no active SaberMage repo assignment
ok   [update].transport = "gh"
ok   [update].message present
ok   manifest names only the live lifecycle verbs (create/start/resume/go)
ok   fresh-endpoint update notice uses spt endpoint create
ok   [inject] routes idle and active custody through OMP hooks
ok   retired update/hook/translation/env surfaces absent
ok   no shipped profile overlays
ok   real isolated spt adapter add accepts adapter/omp-spt.toml
ok   real isolated spt reports omp-spt 0.9.4
MANIFEST-SHORTCUT OK
ok  manifest cutover

=== GATE: native launch manifest ===
ok   [session.self] uses launch-omp with endpoint and node naming keys
ok   [session.self] declares endpoint and node fills
ok   [session.resume] forwards endpoint, node, and native resume ids
ok   [session.resume] declares endpoint, node, and session fills
ok   hostable_types is ReadyAgent + LiveAgent only
ok   commune drops under .spt
ok   signoff drops under .spt
ok   no hosted session uses --mode rpc
NATIVE-LAUNCH-MANIFEST OK
ok  native launch manifest

=== GATE: archive packaging ===
ok   real manifest validates
ok   catches missing [adapter]
ok   catches missing required adapter.min_spt_core_version
ok   catches invalid adapter.kind enum
ok   catches non-array adapter.hostable_types
ok   catches non-string shortcut_basename
ok   catches invalid env direction enum
MANIFEST-SCHEMA OK
ok   missing GNU helper fails closed
ok   malformed Windows helper fails closed
ok   zero-entrypoint PE pseudo-binary fails closed
ok   PE with unmapped entrypoint fails closed
ok   PE with non-executable entry section fails closed
ok   DLL PE helper fails closed
ok   PE with incomplete optional header fails closed
ok   PE with truncated section table fails closed
ok   PE with out-of-file raw section fails closed
ok   malformed GNU helper fails closed
ok   zero-entrypoint ELF pseudo-binary fails closed
ok   ELF with unmapped entrypoint fails closed
ok   ELF with non-executable entry segment fails closed
ok   ELF load with file size above memory size fails closed
ok   ELF load with out-of-file range fails closed
ok   missing musl helper fails closed
ok   malformed musl helper fails closed
ok   GNU helper mislabeled as musl fails closed
ok   musl helper with DT_NEEDED dependency fails closed
ok   wrong-architecture musl helper fails closed
ok   incomplete canonical shared plugin copy fails closed
ok   three-target packer --apply succeeds
ok   archive has deterministic exact shared and three-target membership
ok   Windows archive member retains PE magic
ok   x86_64-unknown-linux-gnu member retains ELF magic
ok   x86_64-unknown-linux-gnu member has canonical mode 0755 (-rwxr-xr-x)
ok   x86_64-unknown-linux-musl member retains ELF magic
ok   x86_64-unknown-linux-musl member has canonical mode 0755 (-rwxr-xr-x)
ok   manifest.toml exactly matches its release input
ok   strings/omp-spt.mjs exactly matches its release input
ok   strings/package.json exactly matches its release input
ok   strings/skills/commune/SKILL.md exactly matches its release input
ok   strings/skills/knock/SKILL.md exactly matches its release input
ok   strings/skills/role/SKILL.md exactly matches its release input
ok   strings/skills/setup/SKILL.md exactly matches its release input
ok   strings/skills/signoff/SKILL.md exactly matches its release input
ok   x86_64-pc-windows-msvc/omp-spt.exe exactly matches its release input
ok   x86_64-unknown-linux-gnu/omp-spt exactly matches its release input
ok   x86_64-unknown-linux-musl/omp-spt exactly matches its release input
ok   shared plugin files remain root-only
ok   archive writer rejects unintended musl members
ok   release environment cannot vary canonical archive bytes or Linux modes
ok   packer advertises a fat-capable manifest floor (>= 0.13.2)
ok   dry-run identifies the static musl target
ok   install guidance uses manifest floor v0.67.0
PASS: adapter-archive
ok  archive packaging

=== GATE: release acquisition behavior ===
ok   non-opt-in acquisition skips explicitly
ok   missing release tag fails closed
ok   missing expected version fails closed
ok   missing acceptance target fails closed
ok   missing expected adapter digest fails closed
ok   malformed expected adapter digest fails closed
ok   missing expected helper digest fails closed
ok   malformed expected helper digest fails closed
ok   unsupported acceptance target fails closed
ok   noncanonical release tag fails closed
ok   missing spt fails closed
ok   missing gh fails closed
ok   unauthenticated gh fails closed
ok   canonical tagged acquisition records x86_64-pc-windows-msvc
ok   canonical tagged acquisition records x86_64-unknown-linux-gnu
ok   canonical tagged acquisition records x86_64-unknown-linux-musl
ok   mismatched hosted adapter digest fails closed
ok   mismatched selected helper digest fails closed
ok   missing selected target member fails closed
ok   installed helper differs from hosted member fails closed
ok   wrong acquired version fails closed
ok   failed acquisition with fetched output fails closed
PASS: release-acquire
ok  release acquisition behavior

=== GATE: OMP helper build and tests ===

running 93 tests
....................................................................................... 87/93
......
test result: ok. 93 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 2.14s


running 1 test
.
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.24s


running 1 test
.
test result: ok. 1 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 0.02s


running 15 tests
...............
test result: ok. 15 passed; 0 failed; 0 ignored; 0 measured; 0 filtered out; finished in 1.93s

ok  omp-spt: cargo test + release build
ok  OMP helper build and tests

=== GATE: traceable requirements ===
68 requirements: 68 complete, 0 incomplete, 0 findings
  [OK] REQ-BIND-REFUSAL-DIAGNOSTIC  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       A failed spt command is summarised by the first output line that is not a known diagnostic (ER_HOSTED_PROBE) and its whole output travels with the error into the log, so a refusal printed after a diagnostic is never lost
  [OK] REQ-CHECKPOINT-DELIVERY-HOLD  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Deliveries arriving between arming a checkpoint and queuing its wake stay custodied unsubmitted (status rail shows the pending checkpoint) and self-release right after the wake or the failure notice is queued
  [OK] REQ-COMPANION-FAILURE-TAILS  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       A failed psyche-omp or echo-commune-omp inner turn reports a bounded tail of BOTH the inner session's stdout and stderr in its failure line and says explicitly when a channel was silent
  [OK] REQ-CONTEXT-LEDGER  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Everything omp-spt adds to an OMP session's context (durable mind, startup brief, every now-signal of every kind, every delivery record) persists as one bounded, timestamped, ordered ledger re-supplied as the last message of every provider request, reset only at compaction, because OMP applies the context hook per request and discards the per-turn system-prompt override
  [OK] REQ-DIST-ADAPTER-RELEASE  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       One multi-platform adapter.spt ships the manifest, native OMP extension, and omp-spt binary through BigscreenVR/omp-spt releases
  [OK] REQ-DIST-BINARY-CONSOLIDATE  required: [impl, unit]  stages: -doc +impl +unit -int
       One omp-spt helper binary dispatches only the retained OMP-native launch, digest, history, Psyche, and echo-commune roles
  [OK] REQ-DIST-DIGEST-EXTRACTOR  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       The OMP digest fetcher maps native session JSONL into the published harness-neutral digest record stream
  [OK] REQ-DIST-LINUX-MUSL  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       The release ships and natively accepts a static x86_64 Linux musl helper compatibility tier
  [OK] REQ-DIST-MANIFEST-SCHEMA  required: [doc, impl, unit]  stages: +doc +impl +unit +int
       The omp-spt manifest validates offline against spt-core's published manifest schema
  [OK] REQ-DIST-RELEASE-EVIDENCE  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       Every supported target retains a machine-readable release record covering source identity, digests, acquisition, and native acceptance
  [OK] REQ-DIST-VERSION-CONSISTENCY  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       Manifest version is canonical and release gates reject disagreement in helper, changelog, and versioned public documentation
  [OK] REQ-DOCS-PUBLISH-GATE  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       Local deterministic docs drift checks gate changes and the same checks gate GitHub Pages publication
  [OK] REQ-ECHO-NO-MACHINE-PEERS  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       The echo-commune summarizer is instructed to name another agent only where the transcript shows a direct exchange with it and never to present machine, host, or node names as agents or teammates
  [OK] REQ-ENDPOINT-NAMED-LOGS  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Every extension log line names its endpoint ([omp-spt <id>], unbound before activation) through one logging wrapper
  [OK] REQ-HAZARD-ABNORMAL-TURN-RECEIVABILITY  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Cancellation, interruption, and failed OMP turns settle affected custody and restore endpoint receivability
  [OK] REQ-HAZARD-DELIVERY-BODY-DURABILITY  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       A delivered peer body, once spliced into a turn, is re-spliced into every later boundary where its stub appears, so tool-calling continuations never present the model with an empty delivery
  [OK] REQ-HAZARD-DELIVERY-BODY-INTEGRITY  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       An accepted peer message body reaches the turn by delivery-stub identity even when OMP echoes the stub non-verbatim, and is never silently dropped
  [OK] REQ-HAZARD-DELIVERY-TURN-LIVENESS  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       An accepted delivery on an idle session enters a turn within the liveness deadline or the endpoint self-heals and then visibly closes
  [OK] REQ-HAZARD-DURABLE-STATE-NOT-TMP  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       The endpoint env snapshot lives in a durable state dir (never a volatile tmpdir) and a missing snapshot self-heals by regeneration instead of a permanent echo/Psyche strike-loop
  [OK] REQ-HAZARD-ENVELOPE-ATTRIBUTE-PASSTHROUGH  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Every attribute on a delivered <EVENT> envelope — whole or reassembled from <EVENT-PART> — reaches the turn verbatim, so a receiver-composed trust-warning is surfaced rather than silently dropped
  [OK] REQ-HAZARD-HOSTED-TREE-LIFETIME  required: [doc, impl, int]  stages: +doc +impl -unit +int
       A spt-hosted OMP session tree (launch shim, OMP host, extension listener) never outlives its hosting daemon: shim death or daemon death reaps the whole tree, so no orphan relay strands the endpoint ONLINE - HARNESS ONLY or blocks re-bringup
  [OK] REQ-HAZARD-INBOUND-DRAFT-LOSS  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Inbound peer deliveries and their resubmissions never clear, submit, or overwrite the operator's unsent editor draft
  [OK] REQ-HAZARD-INTOOL-COMPACT  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       spt_checkpoint never awaits ctx.compact() inside its own execute: it arms the checkpoint and compaction runs after the arming turn ends, outside every tool and hook
  [OK] REQ-HAZARD-IO-HISTORY-REPLAY  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       The IO feed's assistant baseline is session-scoped and only ever widens (off-turn boundaries, a turn's first boundary, and every finished turn add to it; nothing replaces it), so no narrower later view of the session — agent_end's run-only messages, a compaction's summary plus kept tail — re-reports earlier output as a new AGENT_OUTPUT span
  [OK] REQ-HAZARD-LISTENER-EMIT-SILENCE  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       A listener that drains the broker but stops emitting RECV-able frames (RECV-absent deafness, e.g. a parser wedge) is detected by an independent listener-liveness heartbeat and self-heals or visibly closes, even though pendingListener never grows
  [OK] REQ-HAZARD-LISTENER-EVENT-PART-REASSEMBLY  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       The listener drain reassembles oversized <EVENT-PART seq/id> chunks into their original whole EVENT and delivers exactly once, never mis-parsing <EVENT-PART as <EVENT nor wedging the buffer
  [OK] REQ-HAZARD-NESTED-ACTIVATION  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Exactly one binding of the extension per OMP process activates: a nested (subagent) session never binds, spawns a listener, publishes state, or ends the primary session, so deliveries surface only in the main conversation
  [OK] REQ-HAZARD-NOTE-IMITATION  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       An adapter-authored [spt] note is structurally distinguishable from a peer body that imitates it: the genuine note renders before the <EVENT opening tag and never inside the envelope, so a body-authored copy stays inside the peer's frame
  [OK] REQ-HAZARD-REST-STATE-NOT-PROOF  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       The adapter never branches on a perch's rest_state as a suspend proof: the extension source carries no rest_state reference, and any future surfacing must label it a last-rest stamp, not a state
  [OK] REQ-HAZARD-SHORTFORM-DOUBLE-FIRE  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       A shortform tag is never dispatched twice: with `[io] compliance = true` the extension carries no shortform parser and issues no `send` at turn end, and every assistant message of the turn reaches core through the feed so an early-message tag is dispatched by core once, not by two readers
  [OK] REQ-HISTORY-FETCHER  required: [doc, impl, unit]  stages: +doc +impl +unit +int
       The history fetcher locates exactly one OMP session and streams its JSONL bytes verbatim
  [OK] REQ-IO-COMPLIANCE  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       The manifest declares `[io] compliance = true` so spt-core parses this adapter's ingest, and that declaration lands in the same change that deletes the adapter-local shortform parser
  [OK] REQ-IO-TURN-FEED  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Every turn's text — the user's prompt as USER_INPUT, each completed assistant message as a mid-turn AGENT_OUTPUT span, and the closing message with idle — rides `api state --payload-stdin` exactly once per span, and a delivery-stub turn never reports a peer's message as USER_INPUT
  [OK] REQ-KNOCK-SKILL  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       A packaged knock skill teaches spt access control from the public contract: bare knock = send, MSG by default, exactly one of --send-only | --send-receive on the asking verbs (none on approve/new-code), --send-only never bars replies, approve opens nothing in reverse (knock back), invite codes sealed to a subnet, --monic impart, and the inbox is quiet
  [OK] REQ-LONG-FOREGROUND-NUDGE  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       A foreground bash tool result whose measured wall time reaches the long-command threshold carries one appended [spt] nudge to run such commands in the background (async), at most three times per turn, advice only
  [OK] REQ-MONIC-NOTE-AHEAD  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       A delivery carrying mnemonics-json renders each matched monic record as an adapter-authored note ahead of the envelope (id + text, attr-decoded, unparseable rendered as unreadable) on both the listener splice and the boundary poll text, with the raw attribute still riding
  [OK] REQ-NOW-SIGNAL-INJECT  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       The now-signal (`api now-signal <id> --session <sid> --spec-manifest`) is polled at turn start with the user's words and at every in-turn context boundary with the assistant's words since the last poll; non-empty stdout is injected, empty stdout adds nothing, and a poll failure never breaks the turn
  [OK] REQ-OMP-COMMS-RECOVERY  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       An established endpoint keeps local OMP work alive while listener, activity, and poll communications recover visibly
  [OK] REQ-OMP-CONTINUITY-DROPS  required: [doc, unit]  stages: +doc -impl +unit -int
       Commune and signoff drops resolve project-locally under .spt on the published v0.29.0 endpoint-cwd contract
  [OK] REQ-OMP-CORE-DELIVERY  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       spt-core retains durable message custody while listener and poll deliveries independently enter OMP context and outbound peer messaging remains explicit
  [OK] REQ-OMP-EXECUTABLE-RESOLUTION  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       Fresh, resumed, and daemon-driven OMP turns resolve and validate Oh My Pi, reject executable collisions, and fail loudly
  [OK] REQ-OMP-LIVE-RELEASE-GATE  required: []  stages: -doc -impl -unit -int
       Pending live gate: a real OMP release must satisfy the ADR-0013 endpoint acceptance criteria
  [OK] REQ-OMP-MESSAGE-CONTEXT  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Each peer delivery opens one ordinary OMP turn containing a message stub and the complete SPT event context
  [OK] REQ-OMP-NATIVE-TUI  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       The hosted launch contract hands validated OMP its packaged extension as the broker PTY process
  [OK] REQ-OMP-READY-LIVE  required: [doc, unit]  stages: +doc -impl +unit -int
       The adapter advertises exactly ReadyAgent and LiveAgent endpoint types on the same native OMP hosting path
  [OK] REQ-OMP-SESSION-IMMUTABLE  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       One endpoint owns one OMP session for its lifetime and blocks every in-TUI session-changing action
  [OK] REQ-OMP-SESSION-TITLES  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Hosted OMP sessions use endpoint, node, and project names while the terminal title visibly tracks idle and animated busy state
  [OK] REQ-PARITY-BASELINE  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Every parity-informed omp-spt release records and gates the exact claude-spt release used as its comparison baseline
  [OK] REQ-PARITY-CHECKPOINT  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Commune checkpoint mode saves continuity, resets OMP context natively, and wakes the same endpoint without operator intervention
  [OK] REQ-PARITY-COMMUNE-SKILL  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       A packaged OMP plugin skill authors endpoint-qualified commune continuity drops
  [OK] REQ-PARITY-LIVE-ACTIVATION  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       An extension-native command binds an ordinary OMP session as a live endpoint with durable Psyche continuity
  [OK] REQ-PARITY-LIVE-AUTO-RESUME  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Explicit live auto-resume selects the most-recent compatible live identity without silently guessing on ordinary activation
  [OK] REQ-PARITY-PEER-SHORTFORM  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Explicit @<target message @> assistant output is dispatched by spt-core's shortform reader over the IO feed, and its outcome reaches the model only through the now-signal's DISPATCH_RESULTS category
  [OK] REQ-PARITY-READY-ACTIVATION  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       An extension-native command binds an ordinary OMP session as a ready endpoint while the extension owns its listener
  [OK] REQ-PARITY-RESUME-CONTEXT  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       An activated session pulls its durable mind (role/live/project tiers plus pending drops) and receives it as opening context ahead of the startup brief
  [OK] REQ-PARITY-ROLE-SKILL  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       A packaged OMP plugin skill reads and edits the durable role through directives or an interactive draft
  [OK] REQ-PARITY-SAFE-BOUNDARY-DELIVERY  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Accepted peer messages enter an active OMP turn before its next tool or model continuation, with ordered next-turn fallback
  [OK] REQ-PARITY-SETUP  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       Hybrid extension command and packaged skill diagnose and complete OMP SPT setup with explicit operator handoffs
  [OK] REQ-PARITY-SIGNOFF-SKILL  required: [doc, impl, unit, int]  stages: +doc +impl +unit +int
       A packaged OMP plugin skill authors final signoff continuity and gracefully shuts down the endpoint
  [OK] REQ-PARITY-STARTUP-BRIEF  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Activated OMP sessions receive concise identity, roster, messaging, continuity, lifecycle, subnet, and version guidance
  [OK] REQ-PARITY-TARGETED-HINTS  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Clear user intent for live activation, identity, messaging, subnet, or checkpointing receives a concise targeted hint — declared as manifest `[[hints]]` and surfaced once per session by the now-signal's HINTS category
  [OK] REQ-PARITY-UPDATE-NOTICE  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       An activated session is told the spt-core and omp-spt versions it runs, and again whenever either changes, through the now-signal's UPDATES category rather than an adapter-local probe
  [OK] REQ-PSYCHE-ACCOUNT-REFUSAL  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       The psyche-omp runner maps an inner OMP turn refused for account/credential reasons (usage limit, quota, credits, billing, auth) to exit 96 with a PSYCHE_ACCOUNT_REFUSAL stderr line that says outage-not-fault (session and context intact, a human clears the account) and quotes the provider's line; never 96 on success and never 95 for a refusal
  [OK] REQ-PSYCHE-EPHEMERAL-SHIM  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       Each LiveAgent Psyche event runs as one bounded OMP turn with file-backed context and explicit reseed signaling
  [OK] REQ-PSYCHE-INVOCATION-BUDGET  required: [doc, unit]  stages: +doc -impl +unit -int
       The manifest declares invocation_budget_secs on every bounded LLM-turn role it owns (psyche_resume, echo_commune) instead of relying on the 90-second default
  [OK] REQ-SEAL-SURFACE  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       A delivery carrying a seal attribute is rendered with an adapter-authored note ahead of the envelope naming the sender, the token, and the verify/describe commands, while the attribute itself rides intact and nothing branches on it (citation, never authorization)
  [OK] REQ-SESSION-ECHO-COMMUNE  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       The bounded echo-commune role summarizes one OMP session and reports real OMP failures without latching on a locate miss
  [OK] REQ-USAGE-LIMIT-HOLD  required: [doc, impl, unit]  stages: +doc +impl +unit -int
       A turn that ends in a provider account/usage-limit refusal is reported as an outage (not a fault) and the endpoint is deliberately held busy (not receivable) until the provider's stated reset plus one minute, re-asserted every few seconds against stray recoveries, with pending deliveries custodied unsubmitted and the liveness ladder paused; a real human prompt or the deadline releases it; a refusal that is still the session's last message re-arms the hold after a restart, and no parseable/plausible reset means no hold beyond the notice
ok  traceable requirements

=== RESULT: PASS ===


Wall time: 62.58 seconds