@@ -896,6 +896,18 @@ repository already deposited, but Terminal code and operator flow must remain
896896fully generic across repository owner, repository, branch, commit, signer, and
897897source type.
898898
899+ First-run execution boundary:
900+
901+ - A recorded Fit posture is not yet a commercial worthy Fit unless the deployed
902+ pipeline has actually executed and written its evidence.
903+ - Until real pipeline execution exists, the honest positive-control result is
904+ ` blocked_readiness` : Deposit, Read admission, source binding, and Fit posture
905+ are reviewable, but AssetPack range, ledger anchor, BTC fee, settlement, and
906+ finality readback must not be claimed.
907+ - ` worthy_fit` and ` no_worthy_fit` become commercially admissible only when the
908+ result is derived from pipeline execution evidence rather than local posture
909+ rows alone.
910+
899911Starting condition:
900912
901913- Pass 2A Deposit submission has succeeded.
@@ -971,7 +983,9 @@ Manual steps:
971983 enabled, inspect the preview first. Only click it if the preview names source
972984 revision, proof/finality posture, wallet authorization, and expected database
973985 readback.
974- 9. Run saved query ` v28_qa_terminal_06_read_fit_quality_after_read` .
986+ 9. Run saved query ` v28_qa_terminal_06_read_fit_quality_after_read` . Before the
987+ first deployed pipeline execution, expect ` latest_fit_result_state` to be
988+ ` blocked_readiness` , not ` worthy_fit` .
97598910. Rerun ` v28_qa_terminal_02_activity_after_write` and
976990 ` v28_qa_terminal_03_btd_ledger_after_terminal` .
97799111. Paste screenshots, Network payload summaries, Vercel logs for the same
@@ -982,12 +996,17 @@ Pass criteria:
982996- ` v28_qa_terminal_06_read_fit_quality_after_read` reports
983997 ` critical_read_gate_state=' critical_read_fit_sequence_ready_for_result_review' `
984998 for the positive-control run.
999+ - Query 06 also reports ` latest_fit_result_state` as one of ` worthy_fit` ,
1000+ ` no_worthy_fit` , or ` blocked_readiness` . Before deployed pipeline execution is
1001+ wired, the accepted result is ` blocked_readiness` .
9851002- The observed repository matches the latest deposited repository.
9861003- Branch and commit are present on Deposit, Read, and Fit activity.
9871004- Deposit precedes Read, and Read precedes Fit.
9881005- No ` frontier/* ` repository or mock repository appears in staging-testnet
9891006 activity.
9901007- Fit evidence is source-bound and quality-explained, not just a summary.
1008+ - Real ` worthy_fit` or ` no_worthy_fit` classification is backed by deployed
1009+ pipeline execution rows, events, logs, and result evidence.
9911010- Settlement, finality, BTC fee, BTD range, or ledger anchor claims appear only
9921011 when query 03 shows matching projection rows; otherwise the Terminal result
9931012 labels the exact blocked-readiness state.
@@ -1005,6 +1024,105 @@ Commercial blockers:
10051024- Any staging-testnet Read/Fit row contains ` frontier/* ` , mock provider, or
10061025 protocol-demo source as if it were live deposited source.
10071026
1027+ # ## Pass 2C: Vercel Sandbox Pipeline Harness QA
1028+
1029+ Purpose:
1030+ Prove that the Read/Fit path can run inside the first lightweight deployment
1031+ host before QA treats a Fit result as commercially meaningful. This pass checks
1032+ the harness itself: sandbox creation, command execution, manifest binding,
1033+ artifact export, telemetry, database persistence, and cleanup.
1034+
1035+ Prerequisites:
1036+
1037+ - Vercel project is linked and local OIDC credentials are current:
1038+ ` vercel link && vercel env pull` .
1039+ - ` @vercel/sandbox` is installed in the workspace running the harness.
1040+ - Pass 2B has produced a Deposit, Read, and Fit posture for the same repository,
1041+ branch, and commit.
1042+ - No wallet, GitHub, Supabase, model, or provider secret is passed into the
1043+ sandbox unless it is explicitly named in ` BITCODE_SANDBOX_ENV_KEYS` for this
1044+ run and the network policy is understood.
1045+
1046+ Host smoke command:
1047+
1048+ ` ` ` bash
1049+ BITCODE_RUN_VERCEL_SANDBOX_HARNESS=1 \
1050+ BITCODE_SANDBOX_MODE=host_smoke \
1051+ BITCODE_SANDBOX_REPOSITORY=engineeredsoftware/ENGI \
1052+ BITCODE_SANDBOX_SOURCE_BRANCH=main \
1053+ BITCODE_SANDBOX_SOURCE_COMMIT=31bbc0c5227b6b3aed5d107fd8507d35ec22970a \
1054+ pnpm run qa:pipeline-harness:sandbox
1055+ ` ` `
1056+
1057+ Expected host smoke result:
1058+
1059+ - The script creates a Vercel Sandbox, runs ` node --version` , writes a harness
1060+ manifest, writes ` evidence.json` and ` telemetry.jsonl` , reads both artifacts
1061+ back, and stops the sandbox unless ` BITCODE_SANDBOX_LEAVE_RUNNING=1` .
1062+ - The returned result state is ` blocked_readiness` ; this is correct because
1063+ host smoke proves only the host lifecycle.
1064+
1065+ Repository pipeline command:
1066+
1067+ ` ` ` bash
1068+ BITCODE_RUN_VERCEL_SANDBOX_HARNESS=1 \
1069+ BITCODE_SANDBOX_MODE=asset_pack_pipeline \
1070+ BITCODE_SANDBOX_SOURCE_GIT_URL=https://github.com/engineeredsoftware/ENGI.git \
1071+ BITCODE_SANDBOX_SOURCE_BRANCH=main \
1072+ BITCODE_SANDBOX_SOURCE_COMMIT=31bbc0c5227b6b3aed5d107fd8507d35ec22970a \
1073+ BITCODE_SANDBOX_SOURCE_REVISION=31bbc0c5227b6b3aed5d107fd8507d35ec22970a \
1074+ pnpm run qa:pipeline-harness:sandbox
1075+ ` ` `
1076+
1077+ If database streaming is intentionally being tested, pass only the required
1078+ keys by name:
1079+
1080+ ` ` ` bash
1081+ BITCODE_PIPELINE_STREAM_TO_DATABASE=1 \
1082+ BITCODE_PIPELINE_STRUCTURED_DB=1 \
1083+ BITCODE_SANDBOX_ENV_KEYS=SUPABASE_URL,SUPABASE_SERVICE_ROLE_KEY,OPENAI_API_KEY
1084+ ` ` `
1085+
1086+ After either harness run:
1087+
1088+ 1. Save the command JSON summary, sandbox id, command exit codes, and artifact
1089+ presence fields.
1090+ 2. Run saved query
1091+ ` supabase/queries/v28_qa_terminal_07_pipeline_harness_after_fit.sql` .
1092+ 3. Rerun ` v28_qa_terminal_06_read_fit_quality_after_read` and
1093+ ` v28_qa_terminal_03_btd_ledger_after_terminal` .
1094+ 4. Capture Vercel Sandbox dashboard/log evidence for the same timestamps.
1095+
1096+ Pass criteria:
1097+
1098+ - Host smoke returns exported evidence and telemetry artifacts and stops the
1099+ sandbox cleanly.
1100+ - The repository pipeline run either produces source-bound AssetPack pipeline
1101+ evidence or an explicit ` blocked_readiness` error artifact.
1102+ - Query 07 reports ` pipeline_harness_ready_for_result_review` , or reports a
1103+ precise blocker/warning that Terminal also shows as blocked-readiness.
1104+ - Query 07 shows recent pipeline runtime evidence in at least the base runtime
1105+ surfaces (` pipeline_runs` or ` deliverable_pipeline_runs` ) plus event/log
1106+ telemetry (` execution_events` or ` stream_logs` ).
1107+ - Phase and agent-step telemetry appear before any result can be promoted past
1108+ blocked-readiness.
1109+ - Generation/tool rows appear before any model/tool-mediated Fit quality claim
1110+ can be accepted.
1111+ - Query 03 still shows no AssetPack range, BTC fee, ledger anchor, settlement,
1112+ or finality claim without matching projection rows.
1113+
1114+ Commercial blockers:
1115+
1116+ - The harness cannot create a sandbox or authenticate with Vercel.
1117+ - The harness runs but cannot export evidence artifacts before sandbox stop.
1118+ - A ` worthy_fit` or ` no_worthy_fit` result is claimed without query 07 runtime
1119+ evidence.
1120+ - Provider tokens, wallet signatures, GitHub credentials, model keys, or
1121+ Supabase service-role secrets appear unredacted in command output, artifacts,
1122+ browser telemetry, or routine QA query rows.
1123+ - Terminal enables settlement, minting, branch materialization, BTC fee
1124+ broadcast, or ledger finality from a host smoke result.
1125+
10081126# # 2026-05-13 Staging Deployment Readiness Gate
10091127
10101128Purpose:
0 commit comments