From 05f18fbacfcd27d6a4251d3b695c9ecb89ce9ca0 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Wed, 8 Jul 2026 23:56:01 +0100 Subject: [PATCH 01/17] Start WS-POL-001-16 live API drill contract --- .agent-loop/LOOP_STATE.md | 19 +- .agent-loop/WORK_QUEUE.md | 6 +- .../STATUS.md | 3 +- ...01-16-terminal-benchmark-live-api-drill.md | 249 ++++++++++++++++++ 4 files changed, 264 insertions(+), 13 deletions(-) create mode 100644 .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md diff --git a/.agent-loop/LOOP_STATE.md b/.agent-loop/LOOP_STATE.md index 4621387ca..47edfdf23 100644 --- a/.agent-loop/LOOP_STATE.md +++ b/.agent-loop/LOOP_STATE.md @@ -4,17 +4,18 @@ - Active initiative: `WS-POL-001` - Submission Artifact Policy Foundation - Active planning chunk: none -- Active implementation chunk: none -- Branch: `main` -- Status: `WS-POL-001-15` merged through PR #81. The project setup derivation - prompt now explicitly prevents required/forbidden artifact self-conflicts, - keeps derivation project-scoped, and the accepted no-DB Terminal Benchmark - live API drill passes after hardening. +- Active implementation chunk: `WS-POL-001-16` - Terminal Benchmark Live API Drill +- Branch: `codex/ws-pol-001-16-terminal-benchmark-live-api-drill` +- Status: `WS-POL-001-16` started after the user's explicit start signal. This + chunk runs the Terminal Benchmark project through real HTTP-visible APIs + without database inspection as lifecycle proof. - Last merged implementation SHA: `b72a5b9` - Last merge commit: `b1a9851` -- Current gate: post-merge memory update for PR #81, then stop for the user's - next explicit implementation chunk. -- Next chunk: inactive until the user explicitly starts it. +- Current gate: plan-review repair for the Terminal Benchmark live API drill + contract. Live execution begins only after plan-review conditions are + addressed. +- Next chunk: inactive until this chunk is reviewed, merged, and followed by a + post-merge memory update. ## Operating Rule diff --git a/.agent-loop/WORK_QUEUE.md b/.agent-loop/WORK_QUEUE.md index 9ea7fc571..0c4602d96 100644 --- a/.agent-loop/WORK_QUEUE.md +++ b/.agent-loop/WORK_QUEUE.md @@ -4,7 +4,7 @@ | Chunk | Title | Risk | Status | |---|---|---:|---| -| none | none | - | Waiting for user to explicitly start the next chunk | +| `WS-POL-001-16` | Terminal Benchmark Live API Drill | L1 | Active on `codex/ws-pol-001-16-terminal-benchmark-live-api-drill` | ## Completed @@ -31,8 +31,8 @@ ## Proposed Next -Stop after the PR #81 post-merge memory update. Do not start the next -implementation chunk until the user explicitly starts it. +Stop after `WS-POL-001-16` is implemented, reviewed, and opened for human +review. Do not start another implementation chunk from this branch. ## Blocked diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md index 6e6ac3fc2..ddfe12225 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md @@ -14,7 +14,7 @@ reran that accepted drill successfully before merging through PR #81. ## Active Chunk -None. Waiting for the user's next explicit implementation chunk. +`WS-POL-001-16` - Terminal Benchmark Live API Drill. ## Chunk Status @@ -35,6 +35,7 @@ None. Waiting for the user's next explicit implementation chunk. | `WS-POL-001-13` | Merged | `codex/ws-pol-001-13-task-context-apis` | 77 | Adds task work-context, worker submission-requirements, and operator-only locked-context APIs. | | `WS-POL-001-14` | Merged | `codex/ws-pol-001-14-submission-finalize` | 79 | Replaces public submission lock with finalize, defines system actor audit semantics, scopes operator visibility, and proves the Terminal Benchmark flow through HTTP-visible lifecycle responses. | | `WS-POL-001-15` | Merged | `codex/ws-pol-001-15-agent-derivation-hardening` | 81 | Hardens agent-derived submission artifact policy instructions after the no-DB Terminal Benchmark drill exposed a required-artifact/forbidden-pattern self-conflict. | +| `WS-POL-001-16` | Active | `codex/ws-pol-001-16-terminal-benchmark-live-api-drill` | - | Runs a human-visible Terminal Benchmark drill through real HTTP APIs without DB inspection as lifecycle proof. | ## Blockers diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md new file mode 100644 index 000000000..6bc57f38d --- /dev/null +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md @@ -0,0 +1,249 @@ +# Chunk Contract: WS-POL-001-16 - Terminal Benchmark Live API Drill + +## Parent Initiative + +`WS-POL-001` - Submission Artifact Policy Foundation + +## Problem Being Solved + +The current system has passed automated API drills and an accepted no-DB +Terminal Benchmark proof, but the next confidence step is a human-visible live +drill that walks the Terminal Benchmark project through Workstream one API call +at a time. + +The drill must show request bodies, response bodies, agent inputs, agent +outputs, setup status, task context, pre-submit feedback, submission creation, +finalization, checker runs, and audit state through HTTP-visible APIs. It must +not rely on database inspection as proof. + +## Why This Work Matters + +The Terminal Benchmark project is the real-world pressure test that exposed +several architectural and implementation gaps. Running it slowly through the +public/operator APIs proves that project guide setup, derived submission +artifact policy, compiled project pre-submit checker policy, task locked +context, and submission intake are understandable without inspecting Postgres. + +## Goal + +Run a real Terminal Benchmark live API drill from project setup through +pre-submit and submission finalization, using HTTP-visible state and actual +Terminal Benchmark guide material. + +This chunk is drill/evidence-only unless the contract is explicitly amended +after a blocker is found. If runtime behavior blocks the drill, stop with a +concrete finding instead of broadening implementation scope silently. + +## Target Behavior + +- Project setup starts from actual Terminal Benchmark guide/source material. +- Guide/source material is captured as an immutable source snapshot. +- Automatic setup runs sufficiency first, then policy derivation, then project + pre-submit checker compilation. +- Project setup outputs are visible through setup-run, sufficiency report, + submission artifact policy, effective policy, and pre-submit checker policy + APIs. +- Task work context and submission requirements are visible through APIs. +- Pre-submit checker feedback is visible before submission creation and is not + authoritative persistence. +- Blocking pre-submit failures prevent submission creation and return + `pre_submission_checker_failed`. +- Successful submission creation and finalization move the task into the + expected async checker/evaluation path. +- Durable checker-run and audit evidence is visible through APIs. + +## Boundaries Preserved + +- This is not a Terminal Benchmark product fork. +- Workstream remains project-scoped: one project guide, one effective project + submission artifact policy, and one compiled project pre-submit checker + policy reused by tasks. +- No task-specific checker generation is introduced. +- No database inspection is accepted as lifecycle proof. +- No new script is introduced for the live drill. Existing scripts may be read + for endpoint discovery, but the human-visible drill uses direct HTTP calls. +- No backward compatibility layer is added for removed legacy request fields. +- No Workstream-owned login, signup, passwords, API-key auth, or primary auth + sessions are added. + +## Credential Boundary + +- No production or shared credentials are used for this drill. +- The OpenAI API key may be read only from the local environment for the + non-production agent call. +- Auth headers, bearer tokens, API keys, environment values, token-shaped + values, signed URLs, query credentials, and local secret paths must never be + committed, printed in evidence, or included in request/response transcripts. +- Evidence must redact credential-shaped values as ``. + +## Authorization Boundary + +- HTTP calls use local verified Flow-compatible bearer actors only. +- Project setup, policy approval, guide activation, locked-context operator + reads, checker-run operator reads, and audit-event operator reads keep current + `admin` / `project_manager` object-level rules. +- Worker-facing calls remain assigned-worker scoped. +- The pre-review system actor cannot authorize HTTP requests and cannot be + supplied by a client. +- This chunk must not change auth defaults, dev-auth production guards, token + verification, route-level roles, or object-level visibility. + +## Risk Class + +L1 + +## SLA + +P1 + +## Work Type + +Live API drill, backend/API correctness, project setup visibility, checker +intake proof. + +## Depends On + +`WS-POL-001-15` + +## Allowed Files + +```text +docs/roadmap_status.md +.agent-loop/LOOP_STATE.md +.agent-loop/WORK_QUEUE.md +.agent-loop/REVIEW_LOG.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-external-review-response.md +``` + +## Not Allowed + +```text +backend/alembic/versions/** +backend/app/** +backend/tests/** +backend/scripts/** +examples/terminal_benchmark/** +backend/app/adapters/auth/** +backend/app/adapters/project_agents/openai_agent_sdk.py +backend/app/core/config.py +backend/app/modules/actors/** +frontend or demo UI work +payment/reputation/blockchain settlement +new agent runtime providers +task-specific checker generation +DB-only drill proof +compatibility aliases for removed legacy fields +public API/schema behavior changes without a new approved implementation chunk +``` + +## Acceptance Criteria + +- The chunk records the exact Terminal Benchmark source material used for the + project guide/source snapshot using sanitized durable refs, fixture ids, + relative/public-safe labels, content hashes, and API-visible source snapshot + id/hash only. +- Persisted snapshots and review evidence contain no raw local filesystem + paths, signed URLs, credential-bearing refs, token-bearing refs, or unsafe + source refs. +- The drill shows each API request body and response body for the human review + path with credentials and local secret paths redacted. +- The drill shows sufficiency-agent input and output. +- The drill shows submission-policy-derivation input and output. +- The drill shows setup-run status, sufficiency result, warning + acknowledgement when applicable, policy approval, compiled checker policy + visibility, and guide activation as API request/response evidence. +- The drill shows the compiled project pre-submit checker policy summary and + hash through API response. +- The drill creates a task using the current task contract without legacy + artifact/evidence request fields. +- The drill shows task work context, worker submission requirements, and + operator locked context through APIs. +- The drill proves preflight returns `PreSubmitCheckResponse` with `status`, + `eligible_to_submit`, structured pass/fail/warning details, + `authoritative: false`, and no `accept`, `needs_revision`, or `reject` + decision leakage. +- The drill proves a blocked pre-submit path creates no submission using + HTTP-visible evidence: failed create response, unchanged/empty task + submission list, checker-run list, and audit-event response. +- The drill proves a successful pre-submit path is non-authoritative and then a + submission-create call creates the durable submission. +- The drill finalizes the submission and shows checker-run and audit visibility + through APIs. +- Workstream default checker set and hard rules remain unchanged. If a drill + blocker appears to require weakening hash, storage-ref, forbidden-artifact, or + default-checker behavior, this chunk stops for a new human-approved contract. +- Any blocker found during the drill is explicitly stopped with a concrete + finding unless a new approved contract amends the allowed implementation + scope. + +## Live Drill Evidence + +The formal live-drill transcript must be committed to: + +```text +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md +``` + +Required sections: + +- local stack and environment summary, with secret values redacted +- source-material manifest with sanitized durable refs, relative/public-safe + labels, content hashes, fixture id, and API-visible source snapshot id/hash +- ordered HTTP request/response transcript for project creation, guide creation, + source snapshot capture, setup-run polling, sufficiency result, warning + acknowledgement when applicable, derived policy visibility, policy approval, + effective policy visibility, pre-submit checker policy visibility, guide + activation, task creation, task screening/release/claim/start, work context, + submission requirements, locked context, blocked pre-submit, blocked create, + submission-list no-side-effect proof, successful pre-submit, successful + submission create, finalize, checker-run list/get, and task audit events +- sufficiency-agent input and output +- submission-policy-derivation input and output +- explicit no-DB proof notes for every lifecycle assertion +- blocker notes and stop decision if any step cannot proceed + +## Verification Commands + +```bash +cd backend && .venv/bin/pytest tests/test_projects.py tests/test_tasks.py tests/test_checkers.py -q +cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py +python3 scripts/check_stale_workstream_wording.py +python3 scripts/check_markdown_links.py +INTERNAL_REVIEW_CHUNK_ID=WS-POL-001-16-terminal-benchmark-live-api-drill python3 scripts/check_internal_review_evidence.py +``` + +Live drill verification is direct HTTP execution against local FastAPI, +Postgres, Celery, and Redis. Database access is allowed for migration reset and +cleanup only, not for proving lifecycle state. + +The live drill must follow the ordered transcript checklist in the Live Drill +Evidence section and must commit the completed evidence artifact before the +chunk can be reviewed. + +## Required Reviewers + +senior engineering, QA/test, security/auth, product/ops, architecture, docs, +reuse/dedup, test delta. + +## Human Review Focus + +- Whether the API drill is genuinely understandable without DB inspection. +- Whether Terminal Benchmark guide material flows into setup without invented + fake project-guide fields. +- Whether agent-derived policy and compiled checker output are visible and + project-scoped. +- Whether pre-submit failure, submission creation, finalization, checker-run, + and audit evidence match the intended lifecycle. + +## Stop Conditions + +- Stop if the live drill requires database inspection for lifecycle proof. +- Stop if project setup cannot use actual Terminal Benchmark guide material. +- Stop if a fix requires weakening Workstream default checker policy. +- Stop if a fix requires adding task-specific checker generation. +- Stop if secrets or production credentials are required. From 48cdcd2512428632225f2f97359b68271ab03575 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 02:21:04 +0100 Subject: [PATCH 02/17] docs: record WS-POL-001-16 live API drill evidence --- .agent-loop/LOOP_STATE.md | 14 +- .../STATUS.md | 8 +- ...01-16-terminal-benchmark-live-api-drill.md | 4 +- .../WS-POL-001-16-live-api-drill-evidence.md | 8574 +++++++++++++++++ docs/roadmap_status.md | 3 + 5 files changed, 8593 insertions(+), 10 deletions(-) create mode 100644 .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md diff --git a/.agent-loop/LOOP_STATE.md b/.agent-loop/LOOP_STATE.md index 47edfdf23..f7fe00817 100644 --- a/.agent-loop/LOOP_STATE.md +++ b/.agent-loop/LOOP_STATE.md @@ -6,14 +6,16 @@ - Active planning chunk: none - Active implementation chunk: `WS-POL-001-16` - Terminal Benchmark Live API Drill - Branch: `codex/ws-pol-001-16-terminal-benchmark-live-api-drill` -- Status: `WS-POL-001-16` started after the user's explicit start signal. This - chunk runs the Terminal Benchmark project through real HTTP-visible APIs - without database inspection as lifecycle proof. +- Status: `WS-POL-001-16` completed the final clean Terminal Benchmark live API + drill through real HTTP-visible APIs. The accepted run used sanitized source + material, automatic project setup, live `submission-requirements`-derived + worker packets, blocked pre-submit no-side-effect proof, successful + submission finalization, durable checker-run visibility, and final + `review_pending` task state without database inspection as lifecycle proof. - Last merged implementation SHA: `b72a5b9` - Last merge commit: `b1a9851` -- Current gate: plan-review repair for the Terminal Benchmark live API drill - contract. Live execution begins only after plan-review conditions are - addressed. +- Current gate: deterministic verification and internal reviewer fanout for + `WS-POL-001-16` before PR review. - Next chunk: inactive until this chunk is reviewed, merged, and followed by a post-merge memory update. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md index ddfe12225..b6ef449b4 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md @@ -3,8 +3,10 @@ ## Current Status `WS-POL-001-01` through `WS-POL-001-15` are merged to `main`. -The post-actor-registry Terminal Benchmark live API drill passed through real -HTTP calls, and task context visibility is now exposed through APIs. +`WS-POL-001-16` completed the final clean Terminal Benchmark live API drill +through real HTTP calls, using sanitized source material and a worker packet +derived from the live `submission-requirements` response. Evidence is recorded +and awaiting deterministic checks plus internal reviewer fanout. `WS-POL-001-14` replaced public submission lock wording with finalization, defined system actor audit semantics, and merged PR #79's HTTP-visible Terminal Benchmark proof evidence. The accepted post-merge no-DB Terminal Benchmark @@ -35,7 +37,7 @@ reran that accepted drill successfully before merging through PR #81. | `WS-POL-001-13` | Merged | `codex/ws-pol-001-13-task-context-apis` | 77 | Adds task work-context, worker submission-requirements, and operator-only locked-context APIs. | | `WS-POL-001-14` | Merged | `codex/ws-pol-001-14-submission-finalize` | 79 | Replaces public submission lock with finalize, defines system actor audit semantics, scopes operator visibility, and proves the Terminal Benchmark flow through HTTP-visible lifecycle responses. | | `WS-POL-001-15` | Merged | `codex/ws-pol-001-15-agent-derivation-hardening` | 81 | Hardens agent-derived submission artifact policy instructions after the no-DB Terminal Benchmark drill exposed a required-artifact/forbidden-pattern self-conflict. | -| `WS-POL-001-16` | Active | `codex/ws-pol-001-16-terminal-benchmark-live-api-drill` | - | Runs a human-visible Terminal Benchmark drill through real HTTP APIs without DB inspection as lifecycle proof. | +| `WS-POL-001-16` | Evidence complete | `codex/ws-pol-001-16-terminal-benchmark-live-api-drill` | - | Proved a human-visible Terminal Benchmark drill through real HTTP APIs without DB inspection as lifecycle proof; deterministic checks and internal review are pending. | ## Blockers diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md index 6bc57f38d..8ca550efa 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md @@ -169,7 +169,9 @@ public API/schema behavior changes without a new approved implementation chunk decision leakage. - The drill proves a blocked pre-submit path creates no submission using HTTP-visible evidence: failed create response, unchanged/empty task - submission list, checker-run list, and audit-event response. + submission list, and audit-event response. Because checker-run visibility is + submission-scoped, blocked intake with no submission id must explicitly note + that no checker-run list endpoint is valid before a submission exists. - The drill proves a successful pre-submit path is non-authoritative and then a submission-create call creates the durable submission. - The drill finalizes the submission and shows checker-run and audit visibility diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md new file mode 100644 index 000000000..77ecbaf9a --- /dev/null +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md @@ -0,0 +1,8574 @@ +# WS-POL-001-16 Live API Drill Evidence + +## Verdict + +PASS. + +The final clean Terminal Benchmark drill ran through public/operator HTTP APIs +without database inspection as lifecycle proof. + +Final state: + +```text +project_id: 36331e8e-c849-484d-9e9e-c8ebc2f70130 +guide_id: fbe0b2ab-2793-4619-a414-ed083d9cc117 +source_snapshot_id: 2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b +source_snapshot_hash: sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb +sufficiency_status: passed +submission_artifact_policy_hash: sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136 +effective_policy_hash: sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850 +pre_submit_checker_bundle_hash: sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63 +task_id: d8cfda33-6c7e-461a-bdcd-036a6cefeda3 +submission_id: ba25f15a-e36a-4925-9891-09d394eae2ec +checker_run_id: d7885348-fd08-4820-b209-36a704765a2b +final_task_status: review_pending +``` + +## Local Stack + +- FastAPI: `127.0.0.1:8008` +- Postgres: local Docker Compose service, `workstream_test` +- Redis: local Docker Compose service +- Celery: `app.workers.celery_app`, queue `celery` +- Auth: local Flow-compatible HMAC tokens, values not printed or committed +- Agent runtime: OpenAI Agents SDK adapter with `gpt-5.5` +- Secrets: all bearer tokens and API keys redacted; no token value appears in + this evidence. + +Database access was used only for migration reset. Lifecycle proof below comes +from HTTP responses. + +## Source Material + +Fixture label: + +```text +termius_reviewer/reviews/build-seccomp-profile-reducer-rust-json +``` + +Fixture id: + +```text +terminal-benchmark-1c027e78be41 +``` + +Before the final API run, source text was sanitized so raw local filesystem +paths were not sent to Workstream. The clean request/response capture was +scanned for `/home/` and passed. + +Guide body: + +```text +content_markdown_hash: sha256:586b0e702b8fe201185ffab41d9ec4b4b862fea134deb010c2cc93c3b7412c1c +content_markdown_bytes: 138427 +``` + +Source snapshot manifest: + +| Label | Durable ref | Hash | Bytes | +|---|---|---:|---:| +| `PROJECT_GUIDE.md` | `import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md` | `sha256:a2b2d57cc56cddc4a8049e9df00da02577fcd729043aad065e2a47f84ca4372e` | 27143 | +| `REVIEWER_PROGRAM.md` | `import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md` | `sha256:297415ca932fd7109c63c03232afd0d73a0ce0b1237cd460a6b0cbec81e8995d` | 45121 | +| `task.toml` | `import:/fixtures/terminal-benchmark-1c027e78be41/task.toml` | `sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811` | 1562 | +| `review_packet.md` | `import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md` | `sha256:42eb6fead00923488b1212d23ef756926849dd51087aa0490ca656e829e8b8ea` | 36295 | +| `static_guard.txt` | `import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt` | `sha256:73840f643300f873de7bfff017cfe00ed01659208800fd1c572362fc8a300b62` | 612 | +| `docker_build.log` | `import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log` | `sha256:793b9c193beb4f7b4bad4aacf66f5a74a6007e420c3232039d96cfa8cf6fbf42` | 31676 | +| `oracle_test.log` | `import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log` | `sha256:33e5d68026c8e84b7558e2389293edc9d8b9f366a37e40b449397cd1b5b6fd97` | 3926 | +| `starter_m1_test.log` | `import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log` | `sha256:fb06dbd479c6a782297fde0f83414ff3f9bc456ece2c7e7098362f783730bbc2` | 11284 | + +## HTTP Transcript + +Large guide content is represented by stable hashes and source manifest rows +above. The table below is an ordered index; full redacted request and response +bodies for every step are recorded in the Redacted HTTP Body Appendix. + +| Step | Method and path | HTTP | +|---|---|---:| +| `01_project_create` | `POST /api/v1/projects` | 201 | +| `02_guide_create` | `POST /api/v1/projects/{project_id}/guides` | 201 | +| `03_setup_poll_01..14` | `GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` | 200 | +| `04_sufficiency_report` | `GET /api/v1/projects/{project_id}/guides/{guide_id}/sufficiency-reports/{report_id}` | 200 | +| `05_submission_artifact_policy` | `GET /api/v1/projects/{project_id}/guides/{guide_id}/submission-artifact-policies/{policy_id}` | 200 | +| `06_approve_policy` | `POST /api/v1/projects/{project_id}/guides/{guide_id}/submission-artifact-policies/{policy_id}/approve` | 200 | +| `07_effective_policy` | `GET /api/v1/projects/{project_id}/guides/{guide_id}/effective-submission-artifact-policy` | 200 | +| `08_pre_submit_checker_policy` | `GET /api/v1/projects/{project_id}/guides/{guide_id}/pre-submit-checker-policy` | 200 | +| `09_activate_guide` | `POST /api/v1/projects/{project_id}/guides/{guide_id}/activate` | 200 | +| `10_task_create` | `POST /api/v1/projects/{project_id}/tasks` | 201 | +| `11_task_screen` | `POST /api/v1/tasks/{task_id}/screen` | 200 | +| `12_locked_context_after_screen` | `GET /api/v1/tasks/{task_id}/locked-context` | 200 | +| `13_task_release` | `POST /api/v1/tasks/{task_id}/release` | 200 | +| `14_worker_profile` | `POST /api/v1/workers/me/profile` | 200 | +| `15_task_claim` | `POST /api/v1/tasks/{task_id}/claim` | 200 | +| `16_task_start` | `POST /api/v1/tasks/{task_id}/start` | 200 | +| `17_locked_context_after_start` | `GET /api/v1/tasks/{task_id}/locked-context` | 200 | +| `18_work_context` | `GET /api/v1/tasks/{task_id}/work-context` | 200 | +| `19_submission_requirements` | `GET /api/v1/tasks/{task_id}/submission-requirements` | 200 | +| `20_precheck_blocked` | `POST /api/v1/tasks/{task_id}/submission-precheck` | 200 | +| `21_submission_blocked_create` | `POST /api/v1/tasks/{task_id}/submissions` | 422 | +| `22_submissions_after_blocked` | `GET /api/v1/tasks/{task_id}/submissions` | 200 | +| `23_audit_after_blocked` | `GET /api/v1/tasks/{task_id}/audit-events` | 200 | +| `24_precheck_success` | `POST /api/v1/tasks/{task_id}/submission-precheck` | 200 | +| `25_submissions_after_success_precheck` | `GET /api/v1/tasks/{task_id}/submissions` | 200 | +| `26_submission_success_create` | `POST /api/v1/tasks/{task_id}/submissions` | 201 | +| `27_submissions_after_success_create` | `GET /api/v1/tasks/{task_id}/submissions` | 200 | +| `28_submission_finalize_worker_forbidden` | `POST /api/v1/submissions/{submission_id}/finalize` | 403 | +| `29_submission_finalize_manager` | `POST /api/v1/submissions/{submission_id}/finalize` | 200 | +| `30_submission_get_after_finalize` | `GET /api/v1/submissions/{submission_id}` | 200 | +| `31_checker_runs_after_finalize` | `GET /api/v1/submissions/{submission_id}/checker-runs` | 200 | +| `32_checker_run_get` | `GET /api/v1/checker-runs/{checker_run_id}` | 200 | +| `33_audit_after_finalize` | `GET /api/v1/tasks/{task_id}/audit-events` | 200 | +| `34_task_get_after_finalize` | `GET /api/v1/tasks/{task_id}` | 200 | + +## Setup Run + +Setup poll statuses: + +```json +[ + {"poll": 1, "status": "queued"}, + {"poll": 2, "status": "running_sufficiency_agent"}, + {"poll": 3, "status": "running_sufficiency_agent"}, + {"poll": 4, "status": "running_sufficiency_agent"}, + {"poll": 5, "status": "running_policy_derivation_agent"}, + {"poll": 6, "status": "running_policy_derivation_agent"}, + {"poll": 7, "status": "running_policy_derivation_agent"}, + {"poll": 8, "status": "running_policy_derivation_agent"}, + {"poll": 9, "status": "running_policy_derivation_agent"}, + {"poll": 10, "status": "running_policy_derivation_agent"}, + {"poll": 11, "status": "running_policy_derivation_agent"}, + {"poll": 12, "status": "running_policy_derivation_agent"}, + {"poll": 13, "status": "running_policy_derivation_agent"}, + {"poll": 14, "status": "policy_draft_ready"} +] +``` + +Sufficiency-agent input: + +```json +{ + "input_type": "GuideSourceMaterial", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "guide_material": { + "content_markdown": { + "hash": "sha256:586b0e702b8fe201185ffab41d9ec4b4b862fea134deb010c2cc93c3b7412c1c", + "bytes": 138427 + } + }, + "source_items": [ + ["project_guide", "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", "sha256:a2b2d57cc56cddc4a8049e9df00da02577fcd729043aad065e2a47f84ca4372e"], + ["reviewer_program", "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", "sha256:297415ca932fd7109c63c03232afd0d73a0ce0b1237cd460a6b0cbec81e8995d"], + ["task_material", "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml", "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811"], + ["review_packet", "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", "sha256:42eb6fead00923488b1212d23ef756926849dd51087aa0490ca656e829e8b8ea"], + ["static_guard", "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", "sha256:73840f643300f873de7bfff017cfe00ed01659208800fd1c572362fc8a300b62"], + ["build_log", "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", "sha256:793b9c193beb4f7b4bad4aacf66f5a74a6007e420c3232039d96cfa8cf6fbf42"], + ["test_log", "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", "sha256:33e5d68026c8e84b7558e2389293edc9d8b9f366a37e40b449397cd1b5b6fd97"], + ["test_log", "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", "sha256:fb06dbd479c6a782297fde0f83414ff3f9bc456ece2c7e7098362f783730bbc2"] + ], + "representative_task_material": { + "items": [] + } +} +``` + +Sufficiency-agent output: + +```text +status: passed +agent_name: ProjectGuideSufficiencyAgent +source_snapshot_hash: sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb +``` + +Submission-policy-derivation input: + +```json +{ + "guide_source_material": "same GuideSourceMaterial envelope shown above", + "sufficiency_report": { + "status": "guide_sufficient", + "findings": [], + "summary_hash": "sha256:2cfc87c9362a379ea96b21e57d2bc054abd5a523b939fe7c85c38428c844ab21", + "agent_name": "ProjectGuideSufficiencyAgent", + "agent_version": "workstream-sufficiency-agent-v0.1" + } +} +``` + +Submission-policy-derivation output: + +```text +derivation_source: agent_derivation +policy_hash: sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136 +``` + +Final live submission requirements: + +```json +{ + "required_artifacts": [ + "environment/Dockerfile", + "environment/.dockerignore", + "rubric.md", + "task.toml" + ], + "required_evidence": [ + "dependency_pinning_review", + "environment_hygiene_review", + "instructions_present", + "reward_footer_review", + "solution_present", + "submission_explanations", + "test_alignment_review", + "tests_present" + ], + "attestation_terms": [ + "all_or_nothing_reward", + "confidential_data_exclusion", + "container_bases_digest_pinned", + "credentials_and_secret_exclusion", + "dependencies_pinned", + "hashes_sha256", + "human_accountability_for_agent_assisted_work", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "original_work", + "task_layout_matches_metadata" + ] +} +``` + +Compiled project pre-submit checker policy: + +```text +compiled_bundle_hash: sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63 +checker_names: +- check_submission_packet +- check_forbidden_files +- check_confidentiality_attestation +- check_required_files +- check_evidence_present +- check_evidence_integrity +- check_low_quality_generated_artifacts +``` + +## Task Context + +Task creation request used the current task contract only: + +```json +{ + "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "task_type": "terminal_benchmark", + "difficulty": "medium", + "skill_tags": ["rust", "json", "seccomp", "containers", "cli"], + "source_type": "manual", + "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "external_task_id": "terminal-benchmark-1c027e78be41" +} +``` + +Locked task context after screening included: + +```text +locked_guide_version: v1 +locked_guide_source_snapshot_hash: sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb +locked_effective_project_submission_artifact_policy_hash: sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850 +locked_pre_submit_checker_bundle_hash: sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63 +``` + +Worker work context reported: + +```text +status: in_progress +assigned_to_current_actor: true +can_run_pre_submit_check: true +can_submit: true +``` + +## Blocked Pre-Submit Path + +Blocked request intentionally omitted `environment/.dockerignore` from +`artifact_hash_manifest` while preserving the required evidence and +attestation. + +Pre-submit response: + +```json +{ + "authoritative": false, + "status": "failed", + "eligible_to_submit": false, + "failed_checkers": ["check_required_files"] +} +``` + +Submission creation response: + +```json +{ + "code": "pre_submission_checker_failed", + "details": { + "authoritative": false, + "status": "failed", + "eligible_to_submit": false, + "failed_checkers": ["check_required_files"] + } +} +``` + +No-side-effect proof: + +```text +GET /tasks/{task_id}/submissions after blocked create: [] +GET /tasks/{task_id}/audit-events after blocked create: +- pre_submission_check_failed is present +- submission_created is absent +- pre_review_gate_started is absent +``` + +There is no valid checker-run list endpoint before a submission id exists. +Durable checker-run visibility is submission-scoped by API design, so the +blocked create proof uses the task submission list plus task audit events. The +successful create and finalize path then proves checker-run list/get visibility +once a submission id exists. + +## Successful Submission Path + +Success pre-submit response: + +```json +{ + "authoritative": false, + "status": "passed", + "eligible_to_submit": true, + "results": [ + ["check_submission_packet", "passed"], + ["check_forbidden_files", "passed"], + ["check_confidentiality_attestation", "passed"], + ["check_required_files", "passed"], + ["check_evidence_present", "passed"], + ["check_evidence_integrity", "passed"], + ["check_low_quality_generated_artifacts", "passed"] + ] +} +``` + +Non-authoritative proof: + +```text +GET /tasks/{task_id}/submissions after success precheck: [] +``` + +Submission create: + +```text +HTTP: 201 +submission_id: ba25f15a-e36a-4925-9891-09d394eae2ec +version: 1 +``` + +Worker finalize attempt: + +```text +HTTP: 403 +detail: actor lacks required role +``` + +Project manager finalize: + +```text +HTTP: 200 +finalized_at: present +``` + +## Checker Runs + +Checker run list and get both returned: + +```json +{ + "id": "d7885348-fd08-4820-b209-36a704765a2b", + "status": "completed", + "routing_recommendation": "allow_review", + "passed_count": 8, + "warning_count": 0, + "failed_count": 0, + "blocking_count": 0, + "triggered_by": "workstream-system:pre-review-gate" +} +``` + +Durable checker results: + +```text +check_submission_packet: passed +check_policy_context_present: passed +check_evidence_present: passed +check_evidence_integrity: passed +check_required_files: passed +check_forbidden_files: passed +check_confidentiality_attestation: passed +check_low_quality_generated_artifacts: passed +``` + +Final task response: + +```text +status: review_pending +locked_guide_source_snapshot_hash: sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb +locked_effective_project_submission_artifact_policy_hash: sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850 +locked_pre_submit_checker_bundle_hash: sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63 +``` + +## Audit Events + +Final task audit event sequence: + +```text +task_created: null -> draft +task_status_changed: draft -> screening +task_status_changed: screening -> ready +task_status_changed: ready -> claimed +task_status_changed: claimed -> in_progress +pre_submission_check_failed: in_progress -> in_progress +submission_created: in_progress -> submitted +submission_finalized: submitted -> submitted +pre_review_gate_started: submitted -> evaluation_pending +pre_review_gate_passed: evaluation_pending -> review_pending +``` + +## Redacted HTTP Body Appendix + +Every step below records the HTTP method/path, request body, and response body from the final clean run. `null` request body means the call had no JSON body. Large guide/source text is redacted to hash and byte count; credentials were not recorded. +### 01_project_create + +`POST /api/v1/projects` -> HTTP `201` + +Request body: + +```json +{ + "description": "Real Terminal Benchmark fixture used as Workstream API evidence with sanitized source text.", + "name": "Terminal Benchmark Real API ws16-clean-cb1540ba", + "slug": "terminal-benchmark-real-api-ws16-clean-cb1540ba" +} +``` + +Response body: + +```json +{ + "created_at": "2026-07-08T23:43:31.535968Z", + "description": "Real Terminal Benchmark fixture used as Workstream API evidence with sanitized source text.", + "id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "name": "Terminal Benchmark Real API ws16-clean-cb1540ba", + "slug": "terminal-benchmark-real-api-ws16-clean-cb1540ba", + "status": "draft", + "updated_at": "2026-07-08T23:43:31.535968Z" +} +``` + +### 02_guide_create + +`POST /api/v1/projects/{project_id}/guides` -> HTTP `201` + +Request body: + +```json +{ + "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", + "content_markdown": "", + "payment_policy": { + "accepted_payment_rule": "pay_on_acceptance", + "base_amount": "25.00", + "currency": "USD", + "payout_type": "fixed", + "rejection_payment_rule": "no_payment_on_reject", + "revision_payment_rule": "no_extra_payment_for_revisions" + }, + "post_submit_checker_policy": { + "blocking_severities": [ + "high", + "medium" + ], + "required_checkers": [ + "check_policy_context_present", + "check_low_quality_generated_artifacts" + ], + "warning_checkers": [] + }, + "review_policy": { + "allowed_decisions": [ + "accept", + "needs_revision", + "reject" + ], + "minimum_finding_fields": [ + "issue", + "required_fix" + ], + "requires_second_review": false, + "sla_hours": 24 + }, + "revision_policy": { + "allowed_resubmission_states": [ + "needs_revision" + ], + "auto_reject_after_limit": true, + "max_revision_rounds": 7, + "reviewer_reassignment_rule": "same_reviewer_preferred", + "revision_deadline_hours": 48 + }, + "source_snapshot": { + "items": [ + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:a2b2d57cc56cddc4a8049e9df00da02577fcd729043aad065e2a47f84ca4372e", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/markdown", + "source_kind": "project_guide" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:297415ca932fd7109c63c03232afd0d73a0ce0b1237cd460a6b0cbec81e8995d", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/markdown", + "source_kind": "reviewer_program" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/toml", + "source_kind": "task_material" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:42eb6fead00923488b1212d23ef756926849dd51087aa0490ca656e829e8b8ea", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/markdown", + "source_kind": "review_packet" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:73840f643300f873de7bfff017cfe00ed01659208800fd1c572362fc8a300b62", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/plain", + "source_kind": "checker_evidence" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:793b9c193beb4f7b4bad4aacf66f5a74a6007e420c3232039d96cfa8cf6fbf42", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/plain", + "source_kind": "checker_evidence" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:33e5d68026c8e84b7558e2389293edc9d8b9f366a37e40b449397cd1b5b6fd97", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/plain", + "source_kind": "checker_evidence" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:fb06dbd479c6a782297fde0f83414ff3f9bc456ece2c7e7098362f783730bbc2", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/plain", + "source_kind": "checker_evidence" + } + ] + }, + "version": "v1" +} +``` + +Response body: + +```json +{ + "approved_by": null, + "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", + "content_markdown": "", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "effective_at": null, + "id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "status": "draft", + "superseded_at": null, + "updated_at": "2026-07-08T23:43:31.606777Z", + "version": "v1" +} +``` + +### 03_setup_poll_01 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "queued", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": null, + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": null, + "status": "queued", + "updated_at": "2026-07-08T23:43:31.799970Z" +} +``` + +### 03_setup_poll_02 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "guide_sufficiency", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": null, + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_sufficiency_agent", + "updated_at": "2026-07-08T23:43:32.263663Z" +} +``` + +### 03_setup_poll_03 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "guide_sufficiency", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": null, + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_sufficiency_agent", + "updated_at": "2026-07-08T23:43:32.263663Z" +} +``` + +### 03_setup_poll_04 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "guide_sufficiency", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": null, + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_sufficiency_agent", + "updated_at": "2026-07-08T23:43:32.263663Z" +} +``` + +### 03_setup_poll_05 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "submission_artifact_policy_derivation", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_policy_derivation_agent", + "updated_at": "2026-07-08T23:43:40.681014Z" +} +``` + +### 03_setup_poll_06 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "submission_artifact_policy_derivation", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_policy_derivation_agent", + "updated_at": "2026-07-08T23:43:40.681014Z" +} +``` + +### 03_setup_poll_07 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "submission_artifact_policy_derivation", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_policy_derivation_agent", + "updated_at": "2026-07-08T23:43:40.681014Z" +} +``` + +### 03_setup_poll_08 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "submission_artifact_policy_derivation", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_policy_derivation_agent", + "updated_at": "2026-07-08T23:43:40.681014Z" +} +``` + +### 03_setup_poll_09 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "submission_artifact_policy_derivation", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_policy_derivation_agent", + "updated_at": "2026-07-08T23:43:40.681014Z" +} +``` + +### 03_setup_poll_10 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "submission_artifact_policy_derivation", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_policy_derivation_agent", + "updated_at": "2026-07-08T23:43:40.681014Z" +} +``` + +### 03_setup_poll_11 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "submission_artifact_policy_derivation", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_policy_derivation_agent", + "updated_at": "2026-07-08T23:43:40.681014Z" +} +``` + +### 03_setup_poll_12 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "submission_artifact_policy_derivation", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_policy_derivation_agent", + "updated_at": "2026-07-08T23:43:40.681014Z" +} +``` + +### 03_setup_poll_13 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "submission_artifact_policy_derivation", + "error_code": null, + "error_summary": null, + "finished_at": null, + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": null, + "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "running_policy_derivation_agent", + "updated_at": "2026-07-08T23:43:40.681014Z" +} +``` + +### 03_setup_poll_14 + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "current_step": "submission_artifact_policy_derivation", + "error_code": null, + "error_summary": null, + "finished_at": "2026-07-08T23:44:00.380059Z", + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "output_submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "started_at": "2026-07-08T23:43:32.307172Z", + "status": "policy_draft_ready", + "updated_at": "2026-07-08T23:44:00.332149Z" +} +``` + +### 04_sufficiency_report + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/sufficiency-reports/{report_id}` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "acknowledgement_note": null, + "agent_name": "ProjectGuideSufficiencyAgent", + "agent_version": "workstream-sufficiency-agent-v0.1", + "created_at": "2026-07-08T23:43:40.523990Z", + "created_by": "workstream-system:project-setup-pipeline", + "findings": [], + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "status": "passed", + "summary": "The guide provides sufficient reviewer criteria and workflow direction for this Terminus task review, including milestone structure, static guard handling, dependency pinning, Dockerfile requirements, test alignment, rubric rules, reward behavior, and category mapping.", + "warnings_acknowledged_at": null, + "warnings_acknowledged_by_actor": null, + "warnings_acknowledged_by_role": null +} +``` + +### 05_submission_artifact_policy + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/submission-artifact-policies/{policy_id}` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "approved_at": null, + "approved_by_actor": null, + "approved_by_role": null, + "change_summary": null, + "created_at": "2026-07-08T23:44:00.095072Z", + "created_by": "workstream-system:project-setup-pipeline", + "derivation_agent_name": "SubmissionArtifactPolicyDerivationAgent", + "derivation_agent_version": "workstream-policy-derivation-agent-v0.1", + "derivation_source": "agent_derivation", + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "lifecycle_status": "draft", + "policy_body": { + "allowed_storage_schemes": [ + "local", + "r2", + "s3" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "all_or_nothing_reward", + "container_bases_digest_pinned", + "dependencies_pinned", + "hashes_sha256", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "task_layout_matches_metadata" + ], + "forbidden_artifacts": [ + { + "pattern": "**/*.key", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pem", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pyc", + "reason": "compiled Python bytecode is a generated artifact", + "worker_facing_fix": "delete bytecode files before packaging" + }, + { + "pattern": "**/.DS_Store", + "reason": "operating system metadata is not part of the task submission", + "worker_facing_fix": "remove operating system metadata files" + }, + { + "pattern": "**/.env", + "reason": "local configuration files may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.env.*", + "reason": "local configuration variants may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.pytest_cache/**", + "reason": "generated test cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/__pycache__/**", + "reason": "generated Python cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/build/**", + "reason": "compiled or generated build outputs are not part of source intake by default", + "worker_facing_fix": "remove generated build directories unless explicitly required by the task" + }, + { + "pattern": "**/dist/**", + "reason": "compiled or generated distribution outputs are not part of source intake by default", + "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" + }, + { + "pattern": "**/docker_build.log", + "reason": "build logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/id_ed25519", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/id_rsa", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/node_modules/**", + "reason": "local dependency folders bloat submissions and reduce reproducibility", + "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" + }, + { + "pattern": "**/oracle_test.log", + "reason": "test logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/platform_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/platfrom_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/review_packet.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only packets before packaging" + }, + { + "pattern": "**/rubrics.txt", + "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", + "worker_facing_fix": "remove rubrics.txt and provide rubric.md" + }, + { + "pattern": "**/static_guard.txt", + "reason": "local checker output is not a worker submission artifact", + "worker_facing_fix": "remove checker logs before packaging" + }, + { + "pattern": "**/target/**", + "reason": "compiled Rust build outputs should not be submitted", + "worker_facing_fix": "remove build output directories before packaging" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "packaging": { + "allowed_package_formats": [ + "zip" + ], + "package_required": true + }, + "required_artifacts": [ + { + "description": "container build definition for the task environment", + "hash_required": true, + "key": "environment_dockerfile", + "path": "environment/Dockerfile", + "required": true + }, + { + "description": "build context hygiene exclusions", + "hash_required": true, + "key": "environment_dockerignore", + "path": "environment/.dockerignore", + "required": true + }, + { + "description": "task scoring criteria for agent traces", + "hash_required": true, + "key": "rubric", + "path": "rubric.md", + "required": true + }, + { + "description": "project task metadata and runtime configuration", + "hash_required": true, + "key": "task_config", + "path": "task.toml", + "required": true + } + ], + "required_evidence": [ + { + "description": "confirms language packages and container bases are pinned as required", + "hash_required": true, + "key": "dependency_pinning_review", + "label": "Dependency pinning review", + "required": true + }, + { + "description": "confirms build context, size limits, and runtime setup are acceptable", + "hash_required": true, + "key": "environment_hygiene_review", + "label": "Environment hygiene review", + "required": true + }, + { + "description": "root or milestone instruction files are included for the task layout", + "hash_required": true, + "key": "instructions_present", + "label": "Task instructions included", + "required": true + }, + { + "description": "confirms verifier runner writes only all-or-nothing reward output", + "hash_required": true, + "key": "reward_footer_review", + "label": "Reward footer review", + "required": true + }, + { + "description": "root or milestone solution scripts are included for validation", + "hash_required": true, + "key": "solution_present", + "label": "Reference solution included", + "required": true + }, + { + "description": "difficulty, solution, and verification explanations are provided", + "hash_required": true, + "key": "submission_explanations", + "label": "Submission explanations", + "required": true + }, + { + "description": "maps stated behavior to verifier coverage and strict assertions", + "hash_required": true, + "key": "test_alignment_review", + "label": "Test alignment review", + "required": true + }, + { + "description": "root or milestone verifier runner and test files are included for the task layout", + "hash_required": true, + "key": "tests_present", + "label": "Verifier files included", + "required": true + } + ], + "schema_version": "project_submission_artifact_policy.v1" + }, + "policy_hash": "sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136", + "policy_version": "agent-9843f69ef5b7f7631f98a61d", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_material_refs": [ + "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", + "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", + "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", + "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", + "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", + "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", + "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", + "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", + "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml" + ], + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "superseded_at": null, + "supersedes_policy_id": null, + "updated_at": "2026-07-08T23:44:00.095072Z" +} +``` + +### 06_approve_policy + +`POST /api/v1/projects/{project_id}/guides/{guide_id}/submission-artifact-policies/{policy_id}/approve` -> HTTP `200` + +Request body: + +```json +{ + "approval_note": "Approved agent-derived Terminal Benchmark intake contract for final clean live API drill." +} +``` + +Response body: + +```json +{ + "created_at": "2026-07-08T23:44:02.228409Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "effective_policy": { + "allowed_storage_schemes": [ + "local", + "r2", + "s3" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "all_or_nothing_reward", + "confidential_data_exclusion", + "container_bases_digest_pinned", + "credentials_and_secret_exclusion", + "dependencies_pinned", + "hashes_sha256", + "human_accountability_for_agent_assisted_work", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "original_work", + "task_layout_matches_metadata" + ], + "forbidden_artifacts": [ + { + "pattern": "**/*.key", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pem", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pyc", + "reason": "compiled Python bytecode is a generated artifact", + "worker_facing_fix": "delete bytecode files before packaging" + }, + { + "pattern": "**/.DS_Store", + "reason": "operating system metadata is not part of the task submission", + "worker_facing_fix": "remove operating system metadata files" + }, + { + "pattern": "**/.env", + "reason": "local configuration files may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.env.*", + "reason": "local configuration variants may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.pytest_cache/**", + "reason": "generated test cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/__pycache__/**", + "reason": "generated Python cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/build/**", + "reason": "compiled or generated build outputs are not part of source intake by default", + "worker_facing_fix": "remove generated build directories unless explicitly required by the task" + }, + { + "pattern": "**/dist/**", + "reason": "compiled or generated distribution outputs are not part of source intake by default", + "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" + }, + { + "pattern": "**/docker_build.log", + "reason": "build logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/id_ed25519", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/id_rsa", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/node_modules/**", + "reason": "local dependency folders bloat submissions and reduce reproducibility", + "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" + }, + { + "pattern": "**/oracle_test.log", + "reason": "test logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/platform_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/platfrom_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/review_packet.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only packets before packaging" + }, + { + "pattern": "**/rubrics.txt", + "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", + "worker_facing_fix": "remove rubrics.txt and provide rubric.md" + }, + { + "pattern": "**/static_guard.txt", + "reason": "local checker output is not a worker submission artifact", + "worker_facing_fix": "remove checker logs before packaging" + }, + { + "pattern": "**/target/**", + "reason": "compiled Rust build outputs should not be submitted", + "worker_facing_fix": "remove build output directories before packaging" + }, + { + "pattern": "*.env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.env.*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.pem", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".env*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".git", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".npmrc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".pypirc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credential*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credentials", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "node_modules", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secret*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secrets", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token*", + "severity": "blocking", + "source": "workstream_default" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "merge_algorithm_version": "workstream_default_merge.v1", + "packaging": { + "allowed_package_formats": [ + "zip" + ], + "package_required": true + }, + "project_policy": { + "allowed_storage_schemes": [ + "local", + "r2", + "s3" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "all_or_nothing_reward", + "container_bases_digest_pinned", + "dependencies_pinned", + "hashes_sha256", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "task_layout_matches_metadata" + ], + "forbidden_artifacts": [ + { + "pattern": "**/*.key", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pem", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pyc", + "reason": "compiled Python bytecode is a generated artifact", + "worker_facing_fix": "delete bytecode files before packaging" + }, + { + "pattern": "**/.DS_Store", + "reason": "operating system metadata is not part of the task submission", + "worker_facing_fix": "remove operating system metadata files" + }, + { + "pattern": "**/.env", + "reason": "local configuration files may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.env.*", + "reason": "local configuration variants may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.pytest_cache/**", + "reason": "generated test cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/__pycache__/**", + "reason": "generated Python cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/build/**", + "reason": "compiled or generated build outputs are not part of source intake by default", + "worker_facing_fix": "remove generated build directories unless explicitly required by the task" + }, + { + "pattern": "**/dist/**", + "reason": "compiled or generated distribution outputs are not part of source intake by default", + "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" + }, + { + "pattern": "**/docker_build.log", + "reason": "build logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/id_ed25519", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/id_rsa", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/node_modules/**", + "reason": "local dependency folders bloat submissions and reduce reproducibility", + "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" + }, + { + "pattern": "**/oracle_test.log", + "reason": "test logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/platform_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/platfrom_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/review_packet.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only packets before packaging" + }, + { + "pattern": "**/rubrics.txt", + "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", + "worker_facing_fix": "remove rubrics.txt and provide rubric.md" + }, + { + "pattern": "**/static_guard.txt", + "reason": "local checker output is not a worker submission artifact", + "worker_facing_fix": "remove checker logs before packaging" + }, + { + "pattern": "**/target/**", + "reason": "compiled Rust build outputs should not be submitted", + "worker_facing_fix": "remove build output directories before packaging" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "packaging": { + "allowed_package_formats": [ + "zip" + ], + "package_required": true + }, + "required_artifacts": [ + { + "description": "container build definition for the task environment", + "hash_required": true, + "key": "environment_dockerfile", + "path": "environment/Dockerfile", + "required": true + }, + { + "description": "build context hygiene exclusions", + "hash_required": true, + "key": "environment_dockerignore", + "path": "environment/.dockerignore", + "required": true + }, + { + "description": "task scoring criteria for agent traces", + "hash_required": true, + "key": "rubric", + "path": "rubric.md", + "required": true + }, + { + "description": "project task metadata and runtime configuration", + "hash_required": true, + "key": "task_config", + "path": "task.toml", + "required": true + } + ], + "required_evidence": [ + { + "description": "confirms language packages and container bases are pinned as required", + "hash_required": true, + "key": "dependency_pinning_review", + "label": "Dependency pinning review", + "required": true + }, + { + "description": "confirms build context, size limits, and runtime setup are acceptable", + "hash_required": true, + "key": "environment_hygiene_review", + "label": "Environment hygiene review", + "required": true + }, + { + "description": "root or milestone instruction files are included for the task layout", + "hash_required": true, + "key": "instructions_present", + "label": "Task instructions included", + "required": true + }, + { + "description": "confirms verifier runner writes only all-or-nothing reward output", + "hash_required": true, + "key": "reward_footer_review", + "label": "Reward footer review", + "required": true + }, + { + "description": "root or milestone solution scripts are included for validation", + "hash_required": true, + "key": "solution_present", + "label": "Reference solution included", + "required": true + }, + { + "description": "difficulty, solution, and verification explanations are provided", + "hash_required": true, + "key": "submission_explanations", + "label": "Submission explanations", + "required": true + }, + { + "description": "maps stated behavior to verifier coverage and strict assertions", + "hash_required": true, + "key": "test_alignment_review", + "label": "Test alignment review", + "required": true + }, + { + "description": "root or milestone verifier runner and test files are included for the task layout", + "hash_required": true, + "key": "tests_present", + "label": "Verifier files included", + "required": true + } + ], + "schema_version": "project_submission_artifact_policy.v1" + }, + "required_artifacts": [ + { + "description": "container build definition for the task environment", + "hash_required": true, + "key": "environment_dockerfile", + "path": "environment/Dockerfile", + "required": true + }, + { + "description": "build context hygiene exclusions", + "hash_required": true, + "key": "environment_dockerignore", + "path": "environment/.dockerignore", + "required": true + }, + { + "description": "task scoring criteria for agent traces", + "hash_required": true, + "key": "rubric", + "path": "rubric.md", + "required": true + }, + { + "description": "project task metadata and runtime configuration", + "hash_required": true, + "key": "task_config", + "path": "task.toml", + "required": true + } + ], + "required_evidence": [ + { + "description": "confirms language packages and container bases are pinned as required", + "hash_required": true, + "key": "dependency_pinning_review", + "label": "Dependency pinning review", + "required": true + }, + { + "description": "confirms build context, size limits, and runtime setup are acceptable", + "hash_required": true, + "key": "environment_hygiene_review", + "label": "Environment hygiene review", + "required": true + }, + { + "description": "root or milestone instruction files are included for the task layout", + "hash_required": true, + "key": "instructions_present", + "label": "Task instructions included", + "required": true + }, + { + "description": "confirms verifier runner writes only all-or-nothing reward output", + "hash_required": true, + "key": "reward_footer_review", + "label": "Reward footer review", + "required": true + }, + { + "description": "root or milestone solution scripts are included for validation", + "hash_required": true, + "key": "solution_present", + "label": "Reference solution included", + "required": true + }, + { + "description": "difficulty, solution, and verification explanations are provided", + "hash_required": true, + "key": "submission_explanations", + "label": "Submission explanations", + "required": true + }, + { + "description": "maps stated behavior to verifier coverage and strict assertions", + "hash_required": true, + "key": "test_alignment_review", + "label": "Test alignment review", + "required": true + }, + { + "description": "root or milestone verifier runner and test files are included for the task layout", + "hash_required": true, + "key": "tests_present", + "label": "Verifier files included", + "required": true + } + ], + "required_packet_fields": [ + "artifact_hash_manifest", + "summary", + "worker_attestation" + ], + "schema_version": "effective_project_submission_artifact_policy.v1", + "workstream_default_policy": { + "allowed_storage_schemes": [ + "local", + "s3", + "r2" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "original_work", + "confidential_data_exclusion", + "credentials_and_secret_exclusion", + "human_accountability_for_agent_assisted_work" + ], + "forbidden_artifacts": [ + { + "pattern": ".env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".env*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.env.*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".git", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credentials", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credential*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secrets", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secret*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".npmrc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".pypirc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.pem", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "node_modules", + "severity": "blocking", + "source": "workstream_default" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "packaging": {}, + "required_artifacts": [], + "required_evidence": [], + "required_packet_fields": [ + "summary", + "artifact_hash_manifest", + "worker_attestation" + ], + "schema_version": "workstream_default_submission_artifact_policy.v1" + } + }, + "effective_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "lifecycle_status": "approved", + "merge_algorithm_version": "workstream_default_merge.v1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "submission_artifact_policy_hash": "sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136", + "submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "superseded_at": null, + "supersedes_effective_policy_id": null +} +``` + +### 07_effective_policy + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/effective-submission-artifact-policy` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "created_at": "2026-07-08T23:44:02.228409Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "effective_policy": { + "allowed_storage_schemes": [ + "local", + "r2", + "s3" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "all_or_nothing_reward", + "confidential_data_exclusion", + "container_bases_digest_pinned", + "credentials_and_secret_exclusion", + "dependencies_pinned", + "hashes_sha256", + "human_accountability_for_agent_assisted_work", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "original_work", + "task_layout_matches_metadata" + ], + "forbidden_artifacts": [ + { + "pattern": "**/*.key", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pem", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pyc", + "reason": "compiled Python bytecode is a generated artifact", + "worker_facing_fix": "delete bytecode files before packaging" + }, + { + "pattern": "**/.DS_Store", + "reason": "operating system metadata is not part of the task submission", + "worker_facing_fix": "remove operating system metadata files" + }, + { + "pattern": "**/.env", + "reason": "local configuration files may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.env.*", + "reason": "local configuration variants may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.pytest_cache/**", + "reason": "generated test cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/__pycache__/**", + "reason": "generated Python cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/build/**", + "reason": "compiled or generated build outputs are not part of source intake by default", + "worker_facing_fix": "remove generated build directories unless explicitly required by the task" + }, + { + "pattern": "**/dist/**", + "reason": "compiled or generated distribution outputs are not part of source intake by default", + "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" + }, + { + "pattern": "**/docker_build.log", + "reason": "build logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/id_ed25519", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/id_rsa", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/node_modules/**", + "reason": "local dependency folders bloat submissions and reduce reproducibility", + "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" + }, + { + "pattern": "**/oracle_test.log", + "reason": "test logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/platform_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/platfrom_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/review_packet.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only packets before packaging" + }, + { + "pattern": "**/rubrics.txt", + "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", + "worker_facing_fix": "remove rubrics.txt and provide rubric.md" + }, + { + "pattern": "**/static_guard.txt", + "reason": "local checker output is not a worker submission artifact", + "worker_facing_fix": "remove checker logs before packaging" + }, + { + "pattern": "**/target/**", + "reason": "compiled Rust build outputs should not be submitted", + "worker_facing_fix": "remove build output directories before packaging" + }, + { + "pattern": "*.env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.env.*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.pem", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".env*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".git", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".npmrc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".pypirc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credential*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credentials", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "node_modules", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secret*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secrets", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token*", + "severity": "blocking", + "source": "workstream_default" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "merge_algorithm_version": "workstream_default_merge.v1", + "packaging": { + "allowed_package_formats": [ + "zip" + ], + "package_required": true + }, + "project_policy": { + "allowed_storage_schemes": [ + "local", + "r2", + "s3" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "all_or_nothing_reward", + "container_bases_digest_pinned", + "dependencies_pinned", + "hashes_sha256", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "task_layout_matches_metadata" + ], + "forbidden_artifacts": [ + { + "pattern": "**/*.key", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pem", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pyc", + "reason": "compiled Python bytecode is a generated artifact", + "worker_facing_fix": "delete bytecode files before packaging" + }, + { + "pattern": "**/.DS_Store", + "reason": "operating system metadata is not part of the task submission", + "worker_facing_fix": "remove operating system metadata files" + }, + { + "pattern": "**/.env", + "reason": "local configuration files may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.env.*", + "reason": "local configuration variants may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.pytest_cache/**", + "reason": "generated test cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/__pycache__/**", + "reason": "generated Python cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/build/**", + "reason": "compiled or generated build outputs are not part of source intake by default", + "worker_facing_fix": "remove generated build directories unless explicitly required by the task" + }, + { + "pattern": "**/dist/**", + "reason": "compiled or generated distribution outputs are not part of source intake by default", + "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" + }, + { + "pattern": "**/docker_build.log", + "reason": "build logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/id_ed25519", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/id_rsa", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/node_modules/**", + "reason": "local dependency folders bloat submissions and reduce reproducibility", + "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" + }, + { + "pattern": "**/oracle_test.log", + "reason": "test logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/platform_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/platfrom_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/review_packet.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only packets before packaging" + }, + { + "pattern": "**/rubrics.txt", + "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", + "worker_facing_fix": "remove rubrics.txt and provide rubric.md" + }, + { + "pattern": "**/static_guard.txt", + "reason": "local checker output is not a worker submission artifact", + "worker_facing_fix": "remove checker logs before packaging" + }, + { + "pattern": "**/target/**", + "reason": "compiled Rust build outputs should not be submitted", + "worker_facing_fix": "remove build output directories before packaging" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "packaging": { + "allowed_package_formats": [ + "zip" + ], + "package_required": true + }, + "required_artifacts": [ + { + "description": "container build definition for the task environment", + "hash_required": true, + "key": "environment_dockerfile", + "path": "environment/Dockerfile", + "required": true + }, + { + "description": "build context hygiene exclusions", + "hash_required": true, + "key": "environment_dockerignore", + "path": "environment/.dockerignore", + "required": true + }, + { + "description": "task scoring criteria for agent traces", + "hash_required": true, + "key": "rubric", + "path": "rubric.md", + "required": true + }, + { + "description": "project task metadata and runtime configuration", + "hash_required": true, + "key": "task_config", + "path": "task.toml", + "required": true + } + ], + "required_evidence": [ + { + "description": "confirms language packages and container bases are pinned as required", + "hash_required": true, + "key": "dependency_pinning_review", + "label": "Dependency pinning review", + "required": true + }, + { + "description": "confirms build context, size limits, and runtime setup are acceptable", + "hash_required": true, + "key": "environment_hygiene_review", + "label": "Environment hygiene review", + "required": true + }, + { + "description": "root or milestone instruction files are included for the task layout", + "hash_required": true, + "key": "instructions_present", + "label": "Task instructions included", + "required": true + }, + { + "description": "confirms verifier runner writes only all-or-nothing reward output", + "hash_required": true, + "key": "reward_footer_review", + "label": "Reward footer review", + "required": true + }, + { + "description": "root or milestone solution scripts are included for validation", + "hash_required": true, + "key": "solution_present", + "label": "Reference solution included", + "required": true + }, + { + "description": "difficulty, solution, and verification explanations are provided", + "hash_required": true, + "key": "submission_explanations", + "label": "Submission explanations", + "required": true + }, + { + "description": "maps stated behavior to verifier coverage and strict assertions", + "hash_required": true, + "key": "test_alignment_review", + "label": "Test alignment review", + "required": true + }, + { + "description": "root or milestone verifier runner and test files are included for the task layout", + "hash_required": true, + "key": "tests_present", + "label": "Verifier files included", + "required": true + } + ], + "schema_version": "project_submission_artifact_policy.v1" + }, + "required_artifacts": [ + { + "description": "container build definition for the task environment", + "hash_required": true, + "key": "environment_dockerfile", + "path": "environment/Dockerfile", + "required": true + }, + { + "description": "build context hygiene exclusions", + "hash_required": true, + "key": "environment_dockerignore", + "path": "environment/.dockerignore", + "required": true + }, + { + "description": "task scoring criteria for agent traces", + "hash_required": true, + "key": "rubric", + "path": "rubric.md", + "required": true + }, + { + "description": "project task metadata and runtime configuration", + "hash_required": true, + "key": "task_config", + "path": "task.toml", + "required": true + } + ], + "required_evidence": [ + { + "description": "confirms language packages and container bases are pinned as required", + "hash_required": true, + "key": "dependency_pinning_review", + "label": "Dependency pinning review", + "required": true + }, + { + "description": "confirms build context, size limits, and runtime setup are acceptable", + "hash_required": true, + "key": "environment_hygiene_review", + "label": "Environment hygiene review", + "required": true + }, + { + "description": "root or milestone instruction files are included for the task layout", + "hash_required": true, + "key": "instructions_present", + "label": "Task instructions included", + "required": true + }, + { + "description": "confirms verifier runner writes only all-or-nothing reward output", + "hash_required": true, + "key": "reward_footer_review", + "label": "Reward footer review", + "required": true + }, + { + "description": "root or milestone solution scripts are included for validation", + "hash_required": true, + "key": "solution_present", + "label": "Reference solution included", + "required": true + }, + { + "description": "difficulty, solution, and verification explanations are provided", + "hash_required": true, + "key": "submission_explanations", + "label": "Submission explanations", + "required": true + }, + { + "description": "maps stated behavior to verifier coverage and strict assertions", + "hash_required": true, + "key": "test_alignment_review", + "label": "Test alignment review", + "required": true + }, + { + "description": "root or milestone verifier runner and test files are included for the task layout", + "hash_required": true, + "key": "tests_present", + "label": "Verifier files included", + "required": true + } + ], + "required_packet_fields": [ + "artifact_hash_manifest", + "summary", + "worker_attestation" + ], + "schema_version": "effective_project_submission_artifact_policy.v1", + "workstream_default_policy": { + "allowed_storage_schemes": [ + "local", + "s3", + "r2" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "original_work", + "confidential_data_exclusion", + "credentials_and_secret_exclusion", + "human_accountability_for_agent_assisted_work" + ], + "forbidden_artifacts": [ + { + "pattern": ".env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".env*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.env.*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".git", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credentials", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credential*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secrets", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secret*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".npmrc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".pypirc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.pem", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "node_modules", + "severity": "blocking", + "source": "workstream_default" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "packaging": {}, + "required_artifacts": [], + "required_evidence": [], + "required_packet_fields": [ + "summary", + "artifact_hash_manifest", + "worker_attestation" + ], + "schema_version": "workstream_default_submission_artifact_policy.v1" + } + }, + "effective_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "lifecycle_status": "approved", + "merge_algorithm_version": "workstream_default_merge.v1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "submission_artifact_policy_hash": "sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136", + "submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "superseded_at": null, + "supersedes_effective_policy_id": null +} +``` + +### 08_pre_submit_checker_policy + +`GET /api/v1/projects/{project_id}/guides/{guide_id}/pre-submit-checker-policy` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "checker_names": [ + "check_submission_packet", + "check_forbidden_files", + "check_confidentiality_attestation", + "check_required_files", + "check_evidence_present", + "check_evidence_integrity", + "check_low_quality_generated_artifacts" + ], + "compiled_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "compiler_version": "workstream-pre-submit-compiler-v0.1", + "created_at": "2026-07-08T23:44:02.228409Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "effective_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "effective_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "lifecycle_status": "compiled", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "superseded_at": null, + "supersedes_pre_submit_checker_policy_id": null +} +``` + +### 09_activate_guide + +`POST /api/v1/projects/{project_id}/guides/{guide_id}/activate` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "effective_submission_artifact_policy": { + "created_at": "2026-07-08T23:44:02.228409Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "effective_policy": { + "allowed_storage_schemes": [ + "local", + "r2", + "s3" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "all_or_nothing_reward", + "confidential_data_exclusion", + "container_bases_digest_pinned", + "credentials_and_secret_exclusion", + "dependencies_pinned", + "hashes_sha256", + "human_accountability_for_agent_assisted_work", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "original_work", + "task_layout_matches_metadata" + ], + "forbidden_artifacts": [ + { + "pattern": "**/*.key", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pem", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pyc", + "reason": "compiled Python bytecode is a generated artifact", + "worker_facing_fix": "delete bytecode files before packaging" + }, + { + "pattern": "**/.DS_Store", + "reason": "operating system metadata is not part of the task submission", + "worker_facing_fix": "remove operating system metadata files" + }, + { + "pattern": "**/.env", + "reason": "local configuration files may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.env.*", + "reason": "local configuration variants may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.pytest_cache/**", + "reason": "generated test cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/__pycache__/**", + "reason": "generated Python cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/build/**", + "reason": "compiled or generated build outputs are not part of source intake by default", + "worker_facing_fix": "remove generated build directories unless explicitly required by the task" + }, + { + "pattern": "**/dist/**", + "reason": "compiled or generated distribution outputs are not part of source intake by default", + "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" + }, + { + "pattern": "**/docker_build.log", + "reason": "build logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/id_ed25519", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/id_rsa", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/node_modules/**", + "reason": "local dependency folders bloat submissions and reduce reproducibility", + "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" + }, + { + "pattern": "**/oracle_test.log", + "reason": "test logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/platform_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/platfrom_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/review_packet.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only packets before packaging" + }, + { + "pattern": "**/rubrics.txt", + "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", + "worker_facing_fix": "remove rubrics.txt and provide rubric.md" + }, + { + "pattern": "**/static_guard.txt", + "reason": "local checker output is not a worker submission artifact", + "worker_facing_fix": "remove checker logs before packaging" + }, + { + "pattern": "**/target/**", + "reason": "compiled Rust build outputs should not be submitted", + "worker_facing_fix": "remove build output directories before packaging" + }, + { + "pattern": "*.env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.env.*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.pem", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".env*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".git", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".npmrc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".pypirc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credential*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credentials", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "node_modules", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secret*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secrets", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token*", + "severity": "blocking", + "source": "workstream_default" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "merge_algorithm_version": "workstream_default_merge.v1", + "packaging": { + "allowed_package_formats": [ + "zip" + ], + "package_required": true + }, + "project_policy": { + "allowed_storage_schemes": [ + "local", + "r2", + "s3" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "all_or_nothing_reward", + "container_bases_digest_pinned", + "dependencies_pinned", + "hashes_sha256", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "task_layout_matches_metadata" + ], + "forbidden_artifacts": [ + { + "pattern": "**/*.key", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pem", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pyc", + "reason": "compiled Python bytecode is a generated artifact", + "worker_facing_fix": "delete bytecode files before packaging" + }, + { + "pattern": "**/.DS_Store", + "reason": "operating system metadata is not part of the task submission", + "worker_facing_fix": "remove operating system metadata files" + }, + { + "pattern": "**/.env", + "reason": "local configuration files may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.env.*", + "reason": "local configuration variants may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.pytest_cache/**", + "reason": "generated test cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/__pycache__/**", + "reason": "generated Python cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/build/**", + "reason": "compiled or generated build outputs are not part of source intake by default", + "worker_facing_fix": "remove generated build directories unless explicitly required by the task" + }, + { + "pattern": "**/dist/**", + "reason": "compiled or generated distribution outputs are not part of source intake by default", + "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" + }, + { + "pattern": "**/docker_build.log", + "reason": "build logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/id_ed25519", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/id_rsa", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/node_modules/**", + "reason": "local dependency folders bloat submissions and reduce reproducibility", + "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" + }, + { + "pattern": "**/oracle_test.log", + "reason": "test logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/platform_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/platfrom_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/review_packet.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only packets before packaging" + }, + { + "pattern": "**/rubrics.txt", + "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", + "worker_facing_fix": "remove rubrics.txt and provide rubric.md" + }, + { + "pattern": "**/static_guard.txt", + "reason": "local checker output is not a worker submission artifact", + "worker_facing_fix": "remove checker logs before packaging" + }, + { + "pattern": "**/target/**", + "reason": "compiled Rust build outputs should not be submitted", + "worker_facing_fix": "remove build output directories before packaging" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "packaging": { + "allowed_package_formats": [ + "zip" + ], + "package_required": true + }, + "required_artifacts": [ + { + "description": "container build definition for the task environment", + "hash_required": true, + "key": "environment_dockerfile", + "path": "environment/Dockerfile", + "required": true + }, + { + "description": "build context hygiene exclusions", + "hash_required": true, + "key": "environment_dockerignore", + "path": "environment/.dockerignore", + "required": true + }, + { + "description": "task scoring criteria for agent traces", + "hash_required": true, + "key": "rubric", + "path": "rubric.md", + "required": true + }, + { + "description": "project task metadata and runtime configuration", + "hash_required": true, + "key": "task_config", + "path": "task.toml", + "required": true + } + ], + "required_evidence": [ + { + "description": "confirms language packages and container bases are pinned as required", + "hash_required": true, + "key": "dependency_pinning_review", + "label": "Dependency pinning review", + "required": true + }, + { + "description": "confirms build context, size limits, and runtime setup are acceptable", + "hash_required": true, + "key": "environment_hygiene_review", + "label": "Environment hygiene review", + "required": true + }, + { + "description": "root or milestone instruction files are included for the task layout", + "hash_required": true, + "key": "instructions_present", + "label": "Task instructions included", + "required": true + }, + { + "description": "confirms verifier runner writes only all-or-nothing reward output", + "hash_required": true, + "key": "reward_footer_review", + "label": "Reward footer review", + "required": true + }, + { + "description": "root or milestone solution scripts are included for validation", + "hash_required": true, + "key": "solution_present", + "label": "Reference solution included", + "required": true + }, + { + "description": "difficulty, solution, and verification explanations are provided", + "hash_required": true, + "key": "submission_explanations", + "label": "Submission explanations", + "required": true + }, + { + "description": "maps stated behavior to verifier coverage and strict assertions", + "hash_required": true, + "key": "test_alignment_review", + "label": "Test alignment review", + "required": true + }, + { + "description": "root or milestone verifier runner and test files are included for the task layout", + "hash_required": true, + "key": "tests_present", + "label": "Verifier files included", + "required": true + } + ], + "schema_version": "project_submission_artifact_policy.v1" + }, + "required_artifacts": [ + { + "description": "container build definition for the task environment", + "hash_required": true, + "key": "environment_dockerfile", + "path": "environment/Dockerfile", + "required": true + }, + { + "description": "build context hygiene exclusions", + "hash_required": true, + "key": "environment_dockerignore", + "path": "environment/.dockerignore", + "required": true + }, + { + "description": "task scoring criteria for agent traces", + "hash_required": true, + "key": "rubric", + "path": "rubric.md", + "required": true + }, + { + "description": "project task metadata and runtime configuration", + "hash_required": true, + "key": "task_config", + "path": "task.toml", + "required": true + } + ], + "required_evidence": [ + { + "description": "confirms language packages and container bases are pinned as required", + "hash_required": true, + "key": "dependency_pinning_review", + "label": "Dependency pinning review", + "required": true + }, + { + "description": "confirms build context, size limits, and runtime setup are acceptable", + "hash_required": true, + "key": "environment_hygiene_review", + "label": "Environment hygiene review", + "required": true + }, + { + "description": "root or milestone instruction files are included for the task layout", + "hash_required": true, + "key": "instructions_present", + "label": "Task instructions included", + "required": true + }, + { + "description": "confirms verifier runner writes only all-or-nothing reward output", + "hash_required": true, + "key": "reward_footer_review", + "label": "Reward footer review", + "required": true + }, + { + "description": "root or milestone solution scripts are included for validation", + "hash_required": true, + "key": "solution_present", + "label": "Reference solution included", + "required": true + }, + { + "description": "difficulty, solution, and verification explanations are provided", + "hash_required": true, + "key": "submission_explanations", + "label": "Submission explanations", + "required": true + }, + { + "description": "maps stated behavior to verifier coverage and strict assertions", + "hash_required": true, + "key": "test_alignment_review", + "label": "Test alignment review", + "required": true + }, + { + "description": "root or milestone verifier runner and test files are included for the task layout", + "hash_required": true, + "key": "tests_present", + "label": "Verifier files included", + "required": true + } + ], + "required_packet_fields": [ + "artifact_hash_manifest", + "summary", + "worker_attestation" + ], + "schema_version": "effective_project_submission_artifact_policy.v1", + "workstream_default_policy": { + "allowed_storage_schemes": [ + "local", + "s3", + "r2" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "original_work", + "confidential_data_exclusion", + "credentials_and_secret_exclusion", + "human_accountability_for_agent_assisted_work" + ], + "forbidden_artifacts": [ + { + "pattern": ".env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".env*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.env", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.env.*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".git", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credentials", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "credential*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secrets", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "secret*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".npmrc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": ".pypirc", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "api-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "access-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private_key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "private-key*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_rsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_dsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ecdsa*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "id_ed25519*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service_account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "service-account*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "token*", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.pem", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "*.key", + "severity": "blocking", + "source": "workstream_default" + }, + { + "pattern": "node_modules", + "severity": "blocking", + "source": "workstream_default" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "packaging": {}, + "required_artifacts": [], + "required_evidence": [], + "required_packet_fields": [ + "summary", + "artifact_hash_manifest", + "worker_attestation" + ], + "schema_version": "workstream_default_submission_artifact_policy.v1" + } + }, + "effective_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "lifecycle_status": "approved", + "merge_algorithm_version": "workstream_default_merge.v1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "submission_artifact_policy_hash": "sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136", + "submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "superseded_at": null, + "supersedes_effective_policy_id": null + }, + "guide": { + "approved_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", + "content_markdown": "", + "created_at": "2026-07-08T23:43:31.606777Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "effective_at": "2026-07-08T23:44:03.147622Z", + "id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "status": "active", + "superseded_at": null, + "updated_at": "2026-07-08T23:44:02.875444Z", + "version": "v1" + }, + "guide_source_snapshot": { + "bundle_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "captured_at": "2026-07-08T23:43:31.606777Z", + "captured_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "items": [ + { + "content_cid": null, + "content_hash": "sha256:793b9c193beb4f7b4bad4aacf66f5a74a6007e420c3232039d96cfa8cf6fbf42", + "created_at": "2026-07-08T23:43:31.606777Z", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", + "id": "c408d25e-6276-426f-a99e-ac6114db773b", + "ingestion_adapter": "manual_fixture_import_sanitized", + "item_order": 0, + "media_type": "text/plain", + "source_kind": "checker_evidence", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + }, + { + "content_cid": null, + "content_hash": "sha256:33e5d68026c8e84b7558e2389293edc9d8b9f366a37e40b449397cd1b5b6fd97", + "created_at": "2026-07-08T23:43:31.606777Z", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", + "id": "8531f065-4575-43c1-bf39-e51e0ae3cd07", + "ingestion_adapter": "manual_fixture_import_sanitized", + "item_order": 1, + "media_type": "text/plain", + "source_kind": "checker_evidence", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + }, + { + "content_cid": null, + "content_hash": "sha256:fb06dbd479c6a782297fde0f83414ff3f9bc456ece2c7e7098362f783730bbc2", + "created_at": "2026-07-08T23:43:31.606777Z", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", + "id": "45961844-d3cb-4418-b03f-3a3eeca32615", + "ingestion_adapter": "manual_fixture_import_sanitized", + "item_order": 2, + "media_type": "text/plain", + "source_kind": "checker_evidence", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + }, + { + "content_cid": null, + "content_hash": "sha256:73840f643300f873de7bfff017cfe00ed01659208800fd1c572362fc8a300b62", + "created_at": "2026-07-08T23:43:31.606777Z", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", + "id": "49d53b1d-1a81-45e1-9d37-7f519478c654", + "ingestion_adapter": "manual_fixture_import_sanitized", + "item_order": 3, + "media_type": "text/plain", + "source_kind": "checker_evidence", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + }, + { + "content_cid": null, + "content_hash": "sha256:a2b2d57cc56cddc4a8049e9df00da02577fcd729043aad065e2a47f84ca4372e", + "created_at": "2026-07-08T23:43:31.606777Z", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", + "id": "a23f68aa-b4d0-4dd5-aeba-d0d9a716f96c", + "ingestion_adapter": "manual_fixture_import_sanitized", + "item_order": 4, + "media_type": "text/markdown", + "source_kind": "project_guide", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + }, + { + "content_cid": null, + "content_hash": "sha256:4b88e4bb333b1ff2d207ffedfde94c8350a814e3c89db8789a2d0a851397a042", + "created_at": "2026-07-08T23:43:31.606777Z", + "durable_ref": "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", + "id": "f1b51900-4dac-47fd-9d93-97d975877cd8", + "ingestion_adapter": "workstream_project_guide", + "item_order": 5, + "media_type": "application/json", + "source_kind": "project_guide", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + }, + { + "content_cid": null, + "content_hash": "sha256:42eb6fead00923488b1212d23ef756926849dd51087aa0490ca656e829e8b8ea", + "created_at": "2026-07-08T23:43:31.606777Z", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", + "id": "61db2ff4-3495-49d4-80b3-78cc023f2e51", + "ingestion_adapter": "manual_fixture_import_sanitized", + "item_order": 6, + "media_type": "text/markdown", + "source_kind": "review_packet", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + }, + { + "content_cid": null, + "content_hash": "sha256:297415ca932fd7109c63c03232afd0d73a0ce0b1237cd460a6b0cbec81e8995d", + "created_at": "2026-07-08T23:43:31.606777Z", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", + "id": "87c64c15-33d9-48f2-85a6-cb0ee5ddd932", + "ingestion_adapter": "manual_fixture_import_sanitized", + "item_order": 7, + "media_type": "text/markdown", + "source_kind": "reviewer_program", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + }, + { + "content_cid": null, + "content_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "created_at": "2026-07-08T23:43:31.606777Z", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml", + "id": "316c8374-322d-4e49-a6d9-a581803cb32a", + "ingestion_adapter": "manual_fixture_import_sanitized", + "item_order": 8, + "media_type": "text/toml", + "source_kind": "task_material", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + } + ], + "manifest_json": { + "items": [ + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:793b9c193beb4f7b4bad4aacf66f5a74a6007e420c3232039d96cfa8cf6fbf42", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/plain", + "source_kind": "checker_evidence" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:33e5d68026c8e84b7558e2389293edc9d8b9f366a37e40b449397cd1b5b6fd97", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/plain", + "source_kind": "checker_evidence" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:fb06dbd479c6a782297fde0f83414ff3f9bc456ece2c7e7098362f783730bbc2", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/plain", + "source_kind": "checker_evidence" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:73840f643300f873de7bfff017cfe00ed01659208800fd1c572362fc8a300b62", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/plain", + "source_kind": "checker_evidence" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:a2b2d57cc56cddc4a8049e9df00da02577fcd729043aad065e2a47f84ca4372e", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/markdown", + "source_kind": "project_guide" + }, + { + "content_cid": null, + "content_excerpt": null, + "content_hash": "sha256:4b88e4bb333b1ff2d207ffedfde94c8350a814e3c89db8789a2d0a851397a042", + "durable_ref": "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", + "ingestion_adapter": "workstream_project_guide", + "media_type": "application/json", + "source_kind": "project_guide" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:42eb6fead00923488b1212d23ef756926849dd51087aa0490ca656e829e8b8ea", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/markdown", + "source_kind": "review_packet" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:297415ca932fd7109c63c03232afd0d73a0ce0b1237cd460a6b0cbec81e8995d", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/markdown", + "source_kind": "reviewer_program" + }, + { + "content_cid": null, + "content_excerpt": "", + "content_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml", + "ingestion_adapter": "manual_fixture_import_sanitized", + "media_type": "text/toml", + "source_kind": "task_material" + } + ], + "schema_version": "guide_source_snapshot.v1" + }, + "manifest_schema_version": "guide_source_snapshot.v1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130" + }, + "guide_sufficiency_report": { + "acknowledgement_note": null, + "agent_name": "ProjectGuideSufficiencyAgent", + "agent_version": "workstream-sufficiency-agent-v0.1", + "created_at": "2026-07-08T23:43:40.523990Z", + "created_by": "workstream-system:project-setup-pipeline", + "findings": [], + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "status": "passed", + "summary": "The guide provides sufficient reviewer criteria and workflow direction for this Terminus task review, including milestone structure, static guard handling, dependency pinning, Dockerfile requirements, test alignment, rubric rules, reward behavior, and category mapping.", + "warnings_acknowledged_at": null, + "warnings_acknowledged_by_actor": null, + "warnings_acknowledged_by_role": null + }, + "payment_policy": { + "accepted_payment_rule": "pay_on_acceptance", + "base_amount": "25.00", + "created_at": "2026-07-08T23:43:31.606777Z", + "currency": "USD", + "guide_version": "v1", + "id": "9219d8bc-153c-4492-8884-571ec92a8264", + "payout_type": "fixed", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "rejection_payment_rule": "no_payment_on_reject", + "revision_payment_rule": "no_extra_payment_for_revisions" + }, + "post_submit_checker_policy": { + "blocking_severities": [ + "high", + "medium" + ], + "created_at": "2026-07-08T23:43:31.606777Z", + "guide_version": "v1", + "id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "required_checkers": [ + "check_policy_context_present", + "check_low_quality_generated_artifacts" + ], + "warning_checkers": [] + }, + "pre_submit_checker_policy": { + "checker_configs": { + "enforce_storage_scheme": { + "schemes": [ + "local", + "r2", + "s3" + ] + }, + "forbid_artifact": { + "patterns": [ + "**/*.key", + "**/*.pem", + "**/*.pyc", + "**/.DS_Store", + "**/.env", + "**/.env.*", + "**/.pytest_cache/**", + "**/__pycache__/**", + "**/build/**", + "**/dist/**", + "**/docker_build.log", + "**/id_ed25519", + "**/id_rsa", + "**/node_modules/**", + "**/oracle_test.log", + "**/platform_review.md", + "**/platfrom_review.md", + "**/review_packet.md", + "**/rubrics.txt", + "**/static_guard.txt", + "**/target/**", + "*.env", + "*.env.*", + "*.key", + "*.pem", + ".env", + ".env*", + ".git", + ".npmrc", + ".pypirc", + "access-key", + "access-key*", + "access_key", + "access_key*", + "api-key", + "api-key*", + "api_key", + "api_key*", + "credential*", + "credentials", + "id_dsa", + "id_dsa*", + "id_ecdsa", + "id_ecdsa*", + "id_ed25519", + "id_ed25519*", + "id_rsa", + "id_rsa*", + "node_modules", + "private-key", + "private-key*", + "private_key", + "private_key*", + "secret*", + "secrets", + "service-account", + "service-account*", + "service_account", + "service_account*", + "token", + "token*" + ] + }, + "require_attestation": { + "terms": [ + "all_or_nothing_reward", + "confidential_data_exclusion", + "container_bases_digest_pinned", + "credentials_and_secret_exclusion", + "dependencies_pinned", + "hashes_sha256", + "human_accountability_for_agent_assisted_work", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "original_work", + "task_layout_matches_metadata" + ] + }, + "require_file": { + "artifact_keys": [ + "environment_dockerfile", + "environment_dockerignore", + "rubric", + "task_config" + ] + }, + "require_manifest_field": {}, + "require_minimum_evidence": { + "evidence_keys": [ + "dependency_pinning_review", + "environment_hygiene_review", + "instructions_present", + "reward_footer_review", + "solution_present", + "submission_explanations", + "test_alignment_review", + "tests_present" + ] + }, + "require_packaging": { + "allowed_package_formats": [ + "zip" + ], + "package_required": true + }, + "validate_submission_packet": { + "fields": [ + "artifact_hash_manifest", + "summary", + "worker_attestation" + ] + }, + "verify_hash": { + "algorithm": "sha256" + }, + "warn_low_quality_generated_artifact": {} + }, + "checker_names": [ + "check_submission_packet", + "check_forbidden_files", + "check_confidentiality_attestation", + "check_required_files", + "check_evidence_present", + "check_evidence_integrity", + "check_low_quality_generated_artifacts" + ], + "compiled_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "compiler_version": "workstream-pre-submit-compiler-v0.1", + "created_at": "2026-07-08T23:44:02.228409Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "effective_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "effective_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "lifecycle_status": "compiled", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "superseded_at": null, + "supersedes_pre_submit_checker_policy_id": null + }, + "review_policy": { + "allowed_decisions": [ + "accept", + "needs_revision", + "reject" + ], + "created_at": "2026-07-08T23:43:31.606777Z", + "guide_version": "v1", + "id": "ff2e72ce-efff-461a-9491-e88f3e61e259", + "minimum_finding_fields": [ + "issue", + "required_fix" + ], + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "requires_second_review": false, + "sla_hours": 24 + }, + "revision_policy": { + "allowed_resubmission_states": [ + "needs_revision" + ], + "auto_reject_after_limit": true, + "created_at": "2026-07-08T23:43:31.606777Z", + "guide_version": "v1", + "id": "17ddcb94-16e0-420d-8507-a8faba12fa8c", + "max_revision_rounds": 7, + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "reviewer_reassignment_rule": "same_reviewer_preferred", + "revision_deadline_hours": 48 + }, + "submission_artifact_policy": { + "approved_at": "2026-07-08T23:44:02.420104Z", + "approved_by_actor": "5080787a-cb3b-591d-9948-6b38354788ab", + "approved_by_role": "project_manager", + "change_summary": null, + "created_at": "2026-07-08T23:44:00.095072Z", + "created_by": "workstream-system:project-setup-pipeline", + "derivation_agent_name": "SubmissionArtifactPolicyDerivationAgent", + "derivation_agent_version": "workstream-policy-derivation-agent-v0.1", + "derivation_source": "agent_derivation", + "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_version": "v1", + "id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "lifecycle_status": "approved", + "policy_body": { + "allowed_storage_schemes": [ + "local", + "r2", + "s3" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "all_or_nothing_reward", + "container_bases_digest_pinned", + "dependencies_pinned", + "hashes_sha256", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "task_layout_matches_metadata" + ], + "forbidden_artifacts": [ + { + "pattern": "**/*.key", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pem", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pyc", + "reason": "compiled Python bytecode is a generated artifact", + "worker_facing_fix": "delete bytecode files before packaging" + }, + { + "pattern": "**/.DS_Store", + "reason": "operating system metadata is not part of the task submission", + "worker_facing_fix": "remove operating system metadata files" + }, + { + "pattern": "**/.env", + "reason": "local configuration files may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.env.*", + "reason": "local configuration variants may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.pytest_cache/**", + "reason": "generated test cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/__pycache__/**", + "reason": "generated Python cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/build/**", + "reason": "compiled or generated build outputs are not part of source intake by default", + "worker_facing_fix": "remove generated build directories unless explicitly required by the task" + }, + { + "pattern": "**/dist/**", + "reason": "compiled or generated distribution outputs are not part of source intake by default", + "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" + }, + { + "pattern": "**/docker_build.log", + "reason": "build logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/id_ed25519", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/id_rsa", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/node_modules/**", + "reason": "local dependency folders bloat submissions and reduce reproducibility", + "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" + }, + { + "pattern": "**/oracle_test.log", + "reason": "test logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/platform_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/platfrom_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/review_packet.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only packets before packaging" + }, + { + "pattern": "**/rubrics.txt", + "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", + "worker_facing_fix": "remove rubrics.txt and provide rubric.md" + }, + { + "pattern": "**/static_guard.txt", + "reason": "local checker output is not a worker submission artifact", + "worker_facing_fix": "remove checker logs before packaging" + }, + { + "pattern": "**/target/**", + "reason": "compiled Rust build outputs should not be submitted", + "worker_facing_fix": "remove build output directories before packaging" + } + ], + "manifest_required": true, + "maximum_file_size_bytes": null, + "maximum_package_size_bytes": null, + "packaging": { + "allowed_package_formats": [ + "zip" + ], + "package_required": true + }, + "required_artifacts": [ + { + "description": "container build definition for the task environment", + "hash_required": true, + "key": "environment_dockerfile", + "path": "environment/Dockerfile", + "required": true + }, + { + "description": "build context hygiene exclusions", + "hash_required": true, + "key": "environment_dockerignore", + "path": "environment/.dockerignore", + "required": true + }, + { + "description": "task scoring criteria for agent traces", + "hash_required": true, + "key": "rubric", + "path": "rubric.md", + "required": true + }, + { + "description": "project task metadata and runtime configuration", + "hash_required": true, + "key": "task_config", + "path": "task.toml", + "required": true + } + ], + "required_evidence": [ + { + "description": "confirms language packages and container bases are pinned as required", + "hash_required": true, + "key": "dependency_pinning_review", + "label": "Dependency pinning review", + "required": true + }, + { + "description": "confirms build context, size limits, and runtime setup are acceptable", + "hash_required": true, + "key": "environment_hygiene_review", + "label": "Environment hygiene review", + "required": true + }, + { + "description": "root or milestone instruction files are included for the task layout", + "hash_required": true, + "key": "instructions_present", + "label": "Task instructions included", + "required": true + }, + { + "description": "confirms verifier runner writes only all-or-nothing reward output", + "hash_required": true, + "key": "reward_footer_review", + "label": "Reward footer review", + "required": true + }, + { + "description": "root or milestone solution scripts are included for validation", + "hash_required": true, + "key": "solution_present", + "label": "Reference solution included", + "required": true + }, + { + "description": "difficulty, solution, and verification explanations are provided", + "hash_required": true, + "key": "submission_explanations", + "label": "Submission explanations", + "required": true + }, + { + "description": "maps stated behavior to verifier coverage and strict assertions", + "hash_required": true, + "key": "test_alignment_review", + "label": "Test alignment review", + "required": true + }, + { + "description": "root or milestone verifier runner and test files are included for the task layout", + "hash_required": true, + "key": "tests_present", + "label": "Verifier files included", + "required": true + } + ], + "schema_version": "project_submission_artifact_policy.v1" + }, + "policy_hash": "sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136", + "policy_version": "agent-9843f69ef5b7f7631f98a61d", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "source_material_refs": [ + "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", + "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", + "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", + "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", + "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", + "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", + "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", + "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", + "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml" + ], + "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "superseded_at": null, + "supersedes_policy_id": null, + "updated_at": "2026-07-08T23:44:02.228409Z" + } +} +``` + +### 10_task_create + +`POST /api/v1/projects/{project_id}/tasks` -> HTTP `201` + +Request body: + +```json +{ + "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", + "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "difficulty": "medium", + "estimated_time_minutes": 75, + "external_task_id": "terminal-benchmark-1c027e78be41", + "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", + "skill_tags": [ + "rust", + "json", + "seccomp", + "containers", + "cli" + ], + "source_payload_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "source_type": "manual", + "task_type": "terminal_benchmark", + "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api" +} +``` + +Response body: + +```json +{ + "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", + "created_at": "2026-07-08T23:44:03.452947Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "difficulty": "medium", + "estimated_time_minutes": 75, + "external_task_id": "terminal-benchmark-1c027e78be41", + "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", + "skill_tags": [ + "rust", + "json", + "seccomp", + "containers", + "cli" + ], + "source_payload_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "source_type": "manual", + "status": "draft", + "task_type": "terminal_benchmark", + "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "updated_at": "2026-07-08T23:44:03.452947Z" +} +``` + +### 11_task_screen + +`POST /api/v1/tasks/{task_id}/screen` -> HTTP `200` + +Request body: + +```json +{ + "reason": "Terminal Benchmark final clean live API screening; lock active guide and policy context." +} +``` + +Response body: + +```json +{ + "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", + "base_amount": "25.00", + "created_at": "2026-07-08T23:44:03.452947Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "currency": "USD", + "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "difficulty": "medium", + "estimated_time_minutes": 75, + "external_task_id": "terminal-benchmark-1c027e78be41", + "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "payout_type": "fixed", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", + "skill_tags": [ + "rust", + "json", + "seccomp", + "containers", + "cli" + ], + "source_payload_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "source_type": "manual", + "status": "screening", + "task_type": "terminal_benchmark", + "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "updated_at": "2026-07-08T23:44:03.630101Z" +} +``` + +### 12_locked_context_after_screen + +`GET /api/v1/tasks/{task_id}/locked-context` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_body_summary": { + "blocking_severities": [ + "high", + "medium" + ], + "default_checkers": [ + "check_submission_packet", + "check_policy_context_present", + "check_evidence_present", + "check_evidence_integrity", + "check_required_files", + "check_forbidden_files", + "check_confidentiality_attestation", + "check_low_quality_generated_artifacts" + ], + "execution_checkers": [ + "check_submission_packet", + "check_policy_context_present", + "check_evidence_present", + "check_evidence_integrity", + "check_required_files", + "check_forbidden_files", + "check_confidentiality_attestation", + "check_low_quality_generated_artifacts" + ], + "required_checkers": [ + "check_policy_context_present", + "check_low_quality_generated_artifacts" + ], + "schema_version": "post_submit_checker_policy.v1", + "warning_checkers": [] + }, + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" +} +``` + +### 13_task_release + +`POST /api/v1/tasks/{task_id}/release` -> HTTP `200` + +Request body: + +```json +{ + "reason": "Terminal Benchmark final clean live API ready for worker claim." +} +``` + +Response body: + +```json +{ + "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", + "base_amount": "25.00", + "created_at": "2026-07-08T23:44:03.452947Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "currency": "USD", + "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "difficulty": "medium", + "estimated_time_minutes": 75, + "external_task_id": "terminal-benchmark-1c027e78be41", + "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "payout_type": "fixed", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", + "skill_tags": [ + "rust", + "json", + "seccomp", + "containers", + "cli" + ], + "source_payload_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "source_type": "manual", + "status": "ready", + "task_type": "terminal_benchmark", + "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "updated_at": "2026-07-08T23:44:04.041939Z" +} +``` + +### 14_worker_profile + +`POST /api/v1/workers/me/profile` -> HTTP `200` + +Request body: + +```json +{ + "skill_tags": [ + "rust", + "json", + "seccomp", + "containers", + "cli" + ] +} +``` + +Response body: + +```json +{ + "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "created_at": "2026-07-08T23:44:04.145081Z", + "display_name": "Terminal Benchmark Worker Ws16 Clean Cb1540Ba", + "email": "terminal-benchmark-worker-ws16-clean-cb1540ba@flow.local", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "id": "f67a061a-ff59-4416-bd5a-3fa8461e8b25", + "profile_metadata": { + "source": "worker_profile_api" + }, + "profile_type": "worker", + "scope_id": "global", + "scope_type": "global", + "skill_tags": [ + "rust", + "json", + "seccomp", + "containers", + "cli" + ], + "status": "active", + "updated_at": "2026-07-08T23:44:04.240478Z" +} +``` + +### 15_task_claim + +`POST /api/v1/tasks/{task_id}/claim` -> HTTP `200` + +Request body: + +```json +{ + "reason": "Terminal Benchmark final clean live API worker claim." +} +``` + +Response body: + +```json +{ + "assignment": { + "accepted_at": "2026-07-08T23:44:04.575130Z", + "assigned_at": "2026-07-08T23:44:04.503583Z", + "assigned_by": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "id": "47f47a44-cd98-41e6-859e-86ac232cd83b", + "status": "active", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + }, + "task": { + "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", + "base_amount": "25.00", + "created_at": "2026-07-08T23:44:03.452947Z", + "currency": "USD", + "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "difficulty": "medium", + "estimated_time_minutes": 75, + "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "payout_type": "fixed", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", + "skill_tags": [ + "rust", + "json", + "seccomp", + "containers", + "cli" + ], + "source_type": "manual", + "status": "claimed", + "task_type": "terminal_benchmark", + "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "updated_at": "2026-07-08T23:44:04.503583Z" + } +} +``` + +### 16_task_start + +`POST /api/v1/tasks/{task_id}/start` -> HTTP `200` + +Request body: + +```json +{ + "reason": "Terminal Benchmark final clean live API worker started work." +} +``` + +Response body: + +```json +{ + "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", + "base_amount": "25.00", + "created_at": "2026-07-08T23:44:03.452947Z", + "currency": "USD", + "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "difficulty": "medium", + "estimated_time_minutes": 75, + "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "payout_type": "fixed", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", + "skill_tags": [ + "rust", + "json", + "seccomp", + "containers", + "cli" + ], + "source_type": "manual", + "status": "in_progress", + "task_type": "terminal_benchmark", + "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "updated_at": "2026-07-08T23:44:04.727342Z" +} +``` + +### 17_locked_context_after_start + +`GET /api/v1/tasks/{task_id}/locked-context` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_body_summary": { + "blocking_severities": [ + "high", + "medium" + ], + "default_checkers": [ + "check_submission_packet", + "check_policy_context_present", + "check_evidence_present", + "check_evidence_integrity", + "check_required_files", + "check_forbidden_files", + "check_confidentiality_attestation", + "check_low_quality_generated_artifacts" + ], + "execution_checkers": [ + "check_submission_packet", + "check_policy_context_present", + "check_evidence_present", + "check_evidence_integrity", + "check_required_files", + "check_forbidden_files", + "check_confidentiality_attestation", + "check_low_quality_generated_artifacts" + ], + "required_checkers": [ + "check_policy_context_present", + "check_low_quality_generated_artifacts" + ], + "schema_version": "post_submit_checker_policy.v1", + "warning_checkers": [] + }, + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" +} +``` + +### 18_work_context + +`GET /api/v1/tasks/{task_id}/work-context` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "guide": { + "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", + "content_markdown": "", + "effective_at": "2026-07-08T23:44:03.147622Z", + "id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "version": "v1" + }, + "lifecycle": { + "assigned_to_current_actor": true, + "can_run_pre_submit_check": true, + "can_submit": true, + "next_actions": [ + "run_pre_submit_check", + "submit" + ], + "status": "in_progress" + }, + "payment_policy": { + "base_amount": "25.00", + "currency": "USD", + "guide_version": "v1", + "payout_type": "fixed" + }, + "project": { + "description": "Real Terminal Benchmark fixture used as Workstream API evidence with sanitized source text.", + "id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "name": "Terminal Benchmark Real API ws16-clean-cb1540ba", + "slug": "terminal-benchmark-real-api-ws16-clean-cb1540ba" + }, + "review_policy": { + "guide_version": "v1" + }, + "revision_policy": { + "guide_version": "v1" + }, + "task": { + "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", + "base_amount": "25.00", + "created_at": "2026-07-08T23:44:03.452947Z", + "currency": "USD", + "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "difficulty": "medium", + "estimated_time_minutes": 75, + "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "locked_guide_version": "v1", + "payout_type": "fixed", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", + "skill_tags": [ + "rust", + "json", + "seccomp", + "containers", + "cli" + ], + "status": "in_progress", + "task_type": "terminal_benchmark", + "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "updated_at": "2026-07-08T23:44:04.727342Z" + } +} +``` + +### 19_submission_requirements + +`GET /api/v1/tasks/{task_id}/submission-requirements` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "allowed_storage_schemes": [ + "local", + "r2", + "s3" + ], + "artifact_hash_algorithm": "sha256", + "artifact_hash_required": true, + "attestation_terms": [ + "all_or_nothing_reward", + "confidential_data_exclusion", + "container_bases_digest_pinned", + "credentials_and_secret_exclusion", + "dependencies_pinned", + "hashes_sha256", + "human_accountability_for_agent_assisted_work", + "manifest_complete", + "no_generated_caches", + "no_reviewer_only_material", + "no_sensitive_local_material", + "offline_verifier_dependencies", + "original_work", + "task_layout_matches_metadata" + ], + "forbidden_artifacts": [ + { + "pattern": "**/*.key", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pem", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" + }, + { + "pattern": "**/*.pyc", + "reason": "compiled Python bytecode is a generated artifact", + "worker_facing_fix": "delete bytecode files before packaging" + }, + { + "pattern": "**/.DS_Store", + "reason": "operating system metadata is not part of the task submission", + "worker_facing_fix": "remove operating system metadata files" + }, + { + "pattern": "**/.env", + "reason": "local configuration files may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.env.*", + "reason": "local configuration variants may expose sensitive local settings", + "worker_facing_fix": "remove the file and submit only safe example configuration if needed" + }, + { + "pattern": "**/.pytest_cache/**", + "reason": "generated test cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/__pycache__/**", + "reason": "generated Python cache files are stale package artifacts", + "worker_facing_fix": "delete cache directories before packaging" + }, + { + "pattern": "**/build/**", + "reason": "compiled or generated build outputs are not part of source intake by default", + "worker_facing_fix": "remove generated build directories unless explicitly required by the task" + }, + { + "pattern": "**/dist/**", + "reason": "compiled or generated distribution outputs are not part of source intake by default", + "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" + }, + { + "pattern": "**/docker_build.log", + "reason": "build logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/id_ed25519", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/id_rsa", + "reason": "private authentication material must not be submitted", + "worker_facing_fix": "remove the file from the package" + }, + { + "pattern": "**/node_modules/**", + "reason": "local dependency folders bloat submissions and reduce reproducibility", + "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" + }, + { + "pattern": "**/oracle_test.log", + "reason": "test logs are not source submission artifacts", + "worker_facing_fix": "remove local logs before packaging" + }, + { + "pattern": "**/platform_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/platfrom_review.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only notes before packaging" + }, + { + "pattern": "**/review_packet.md", + "reason": "review-only material must not be included in worker submissions", + "worker_facing_fix": "remove reviewer-only packets before packaging" + }, + { + "pattern": "**/rubrics.txt", + "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", + "worker_facing_fix": "remove rubrics.txt and provide rubric.md" + }, + { + "pattern": "**/static_guard.txt", + "reason": "local checker output is not a worker submission artifact", + "worker_facing_fix": "remove checker logs before packaging" + }, + { + "pattern": "**/target/**", + "reason": "compiled Rust build outputs should not be submitted", + "worker_facing_fix": "remove build output directories before packaging" + }, + { + "pattern": "*.env", + "severity": "blocking" + }, + { + "pattern": "*.env.*", + "severity": "blocking" + }, + { + "pattern": "*.key", + "severity": "blocking" + }, + { + "pattern": "*.pem", + "severity": "blocking" + }, + { + "pattern": ".env", + "severity": "blocking" + }, + { + "pattern": ".env*", + "severity": "blocking" + }, + { + "pattern": ".git", + "severity": "blocking" + }, + { + "pattern": ".npmrc", + "severity": "blocking" + }, + { + "pattern": ".pypirc", + "severity": "blocking" + }, + { + "pattern": "access-key", + "severity": "blocking" + }, + { + "pattern": "access-key*", + "severity": "blocking" + }, + { + "pattern": "access_key", + "severity": "blocking" + }, + { + "pattern": "access_key*", + "severity": "blocking" + }, + { + "pattern": "api-key", + "severity": "blocking" + }, + { + "pattern": "api-key*", + "severity": "blocking" + }, + { + "pattern": "api_key", + "severity": "blocking" + }, + { + "pattern": "api_key*", + "severity": "blocking" + }, + { + "pattern": "credential*", + "severity": "blocking" + }, + { + "pattern": "credentials", + "severity": "blocking" + }, + { + "pattern": "id_dsa", + "severity": "blocking" + }, + { + "pattern": "id_dsa*", + "severity": "blocking" + }, + { + "pattern": "id_ecdsa", + "severity": "blocking" + }, + { + "pattern": "id_ecdsa*", + "severity": "blocking" + }, + { + "pattern": "id_ed25519", + "severity": "blocking" + }, + { + "pattern": "id_ed25519*", + "severity": "blocking" + }, + { + "pattern": "id_rsa", + "severity": "blocking" + }, + { + "pattern": "id_rsa*", + "severity": "blocking" + }, + { + "pattern": "node_modules", + "severity": "blocking" + }, + { + "pattern": "private-key", + "severity": "blocking" + }, + { + "pattern": "private-key*", + "severity": "blocking" + }, + { + "pattern": "private_key", + "severity": "blocking" + }, + { + "pattern": "private_key*", + "severity": "blocking" + }, + { + "pattern": "secret*", + "severity": "blocking" + }, + { + "pattern": "secrets", + "severity": "blocking" + }, + { + "pattern": "service-account", + "severity": "blocking" + }, + { + "pattern": "service-account*", + "severity": "blocking" + }, + { + "pattern": "service_account", + "severity": "blocking" + }, + { + "pattern": "service_account*", + "severity": "blocking" + }, + { + "pattern": "token", + "severity": "blocking" + }, + { + "pattern": "token*", + "severity": "blocking" + } + ], + "guide_version": "v1", + "manifest_required": true, + "merge_algorithm_version": "workstream_default_merge.v1", + "packaging": { + "allowed_package_formats": [ + "zip" + ], + "package_required": true + }, + "policy_schema_version": "effective_project_submission_artifact_policy.v1", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "required_artifacts": [ + { + "description": "container build definition for the task environment", + "hash_required": true, + "key": "environment_dockerfile", + "path": "environment/Dockerfile", + "required": true + }, + { + "description": "build context hygiene exclusions", + "hash_required": true, + "key": "environment_dockerignore", + "path": "environment/.dockerignore", + "required": true + }, + { + "description": "task scoring criteria for agent traces", + "hash_required": true, + "key": "rubric", + "path": "rubric.md", + "required": true + }, + { + "description": "project task metadata and runtime configuration", + "hash_required": true, + "key": "task_config", + "path": "task.toml", + "required": true + } + ], + "required_evidence": [ + { + "description": "confirms language packages and container bases are pinned as required", + "hash_required": true, + "key": "dependency_pinning_review", + "label": "Dependency pinning review", + "required": true + }, + { + "description": "confirms build context, size limits, and runtime setup are acceptable", + "hash_required": true, + "key": "environment_hygiene_review", + "label": "Environment hygiene review", + "required": true + }, + { + "description": "root or milestone instruction files are included for the task layout", + "hash_required": true, + "key": "instructions_present", + "label": "Task instructions included", + "required": true + }, + { + "description": "confirms verifier runner writes only all-or-nothing reward output", + "hash_required": true, + "key": "reward_footer_review", + "label": "Reward footer review", + "required": true + }, + { + "description": "root or milestone solution scripts are included for validation", + "hash_required": true, + "key": "solution_present", + "label": "Reference solution included", + "required": true + }, + { + "description": "difficulty, solution, and verification explanations are provided", + "hash_required": true, + "key": "submission_explanations", + "label": "Submission explanations", + "required": true + }, + { + "description": "maps stated behavior to verifier coverage and strict assertions", + "hash_required": true, + "key": "test_alignment_review", + "label": "Test alignment review", + "required": true + }, + { + "description": "root or milestone verifier runner and test files are included for the task layout", + "hash_required": true, + "key": "tests_present", + "label": "Verifier files included", + "required": true + } + ], + "required_packet_fields": [ + "summary", + "package_hash", + "artifact_hash_manifest", + "worker_attestation" + ], + "storage_reference_rules": { + "allowed_storage_schemes": [ + "local", + "r2", + "s3" + ], + "allowed_uri_prefixes": [ + "local://", + "r2://", + "s3://" + ], + "credentials_allowed": false, + "fragments_allowed": false, + "path_traversal_allowed": false, + "query_strings_allowed": false + }, + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" +} +``` + +### 20_precheck_blocked + +`POST /api/v1/tasks/{task_id}/submission-precheck` -> HTTP `200` + +Request body: + +```json +{ + "submission": { + "artifact_hash_manifest": [ + { + "artifact": "environment/Dockerfile", + "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1327 + }, + { + "artifact": "rubric.md", + "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 34 + }, + { + "artifact": "task.toml", + "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1562 + } + ], + "evidence_items": [ + { + "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "label": "Dependency pinning review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "dependency_pinning_review" + }, + "size_bytes": 40, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + }, + { + "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "label": "Environment hygiene review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "environment_hygiene_review" + }, + "size_bytes": 41, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + }, + { + "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "label": "Task instructions included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "instructions_present" + }, + "size_bytes": 35, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + }, + { + "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "label": "Reward footer review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "reward_footer_review" + }, + "size_bytes": 35, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + }, + { + "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "label": "Reference solution included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "solution_present" + }, + "size_bytes": 31, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + }, + { + "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "label": "Submission explanations", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "submission_explanations" + }, + "size_bytes": 38, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + }, + { + "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "label": "Test alignment review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "test_alignment_review" + }, + "size_bytes": 36, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + }, + { + "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "label": "Verifier files included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "tests_present" + }, + "size_bytes": 28, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + } + ], + "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", + "summary": "Blocked-path packet built from live requirements, missing environment/.dockerignore.", + "worker_attestation": "" + } +} +``` + +Response body: + +```json +{ + "authoritative": false, + "eligible_to_submit": false, + "results": [ + { + "checker_name": "check_submission_packet", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission packet satisfies locked project packet policy.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_forbidden_files", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission does not include default forbidden paths.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_confidentiality_attestation", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes the required confidentiality attestation.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_required_files", + "severity": "high", + "status": "failed", + "worker_evidence_refs": [], + "worker_message": "Submission is missing required artifact files.", + "worker_suggested_fix": "Add every file required by the task to the artifact hash manifest.", + "would_block_if_submitted": true + }, + { + "checker_name": "check_evidence_present", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes required evidence references.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_evidence_integrity", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Artifact manifest and evidence references are structurally valid.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_low_quality_generated_artifacts", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission does not contain obvious generated-output placeholder signals.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + } + ], + "status": "failed", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" +} +``` + +### 21_submission_blocked_create + +`POST /api/v1/tasks/{task_id}/submissions` -> HTTP `422` + +Request body: + +```json +{ + "artifact_hash_manifest": [ + { + "artifact": "environment/Dockerfile", + "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1327 + }, + { + "artifact": "rubric.md", + "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 34 + }, + { + "artifact": "task.toml", + "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1562 + } + ], + "evidence_items": [ + { + "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "label": "Dependency pinning review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "dependency_pinning_review" + }, + "size_bytes": 40, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + }, + { + "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "label": "Environment hygiene review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "environment_hygiene_review" + }, + "size_bytes": 41, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + }, + { + "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "label": "Task instructions included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "instructions_present" + }, + "size_bytes": 35, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + }, + { + "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "label": "Reward footer review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "reward_footer_review" + }, + "size_bytes": 35, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + }, + { + "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "label": "Reference solution included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "solution_present" + }, + "size_bytes": 31, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + }, + { + "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "label": "Submission explanations", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "submission_explanations" + }, + "size_bytes": 38, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + }, + { + "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "label": "Test alignment review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "test_alignment_review" + }, + "size_bytes": 36, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + }, + { + "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "label": "Verifier files included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "tests_present" + }, + "size_bytes": 28, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + } + ], + "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", + "summary": "Blocked-path packet built from live requirements, missing environment/.dockerignore.", + "worker_attestation": "" +} +``` + +Response body: + +```json +{ + "code": "pre_submission_checker_failed", + "details": { + "authoritative": false, + "eligible_to_submit": false, + "results": [ + { + "checker_name": "check_submission_packet", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission packet satisfies locked project packet policy.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_forbidden_files", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission does not include default forbidden paths.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_confidentiality_attestation", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes the required confidentiality attestation.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_required_files", + "severity": "high", + "status": "failed", + "worker_evidence_refs": [], + "worker_message": "Submission is missing required artifact files.", + "worker_suggested_fix": "Add every file required by the task to the artifact hash manifest.", + "would_block_if_submitted": true + }, + { + "checker_name": "check_evidence_present", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes required evidence references.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_evidence_integrity", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Artifact manifest and evidence references are structurally valid.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_low_quality_generated_artifacts", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission does not contain obvious generated-output placeholder signals.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + } + ], + "status": "failed", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + } +} +``` + +### 22_submissions_after_blocked + +`GET /api/v1/tasks/{task_id}/submissions` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +[] +``` + +### 23_audit_after_blocked + +`GET /api/v1/tasks/{task_id}/audit-events` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +[ + { + "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_roles": [ + "project_manager" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:44:03.452947Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": null, + "locked_effective_project_submission_artifact_policy_hash": null, + "locked_effective_project_submission_artifact_policy_id": null, + "locked_guide_source_snapshot_hash": null, + "locked_guide_source_snapshot_id": null, + "locked_guide_version": null, + "locked_payment_policy_version": null, + "locked_post_submit_checker_policy_hash": null, + "locked_post_submit_checker_policy_id": null, + "locked_post_submit_checker_policy_version": null, + "locked_pre_submit_checker_bundle_hash": null, + "locked_pre_submit_checker_policy_id": null, + "locked_review_policy_version": null, + "locked_revision_policy_version": null, + "source_type": "manual" + }, + "event_type": "task_created", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "from_status": null, + "id": "3c645ce6-9cf1-498c-bff2-b5a53e481c3d", + "is_dev_auth": false, + "reason": null, + "to_status": "draft" + }, + { + "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_roles": [ + "project_manager" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:44:03.630101Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": null, + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1" + }, + "event_type": "task_status_changed", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "from_status": "draft", + "id": "43563128-a38c-41ef-baad-f4a5ea77e153", + "is_dev_auth": false, + "reason": "Terminal Benchmark final clean live API screening; lock active guide and policy context.", + "to_status": "screening" + }, + { + "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_roles": [ + "project_manager" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:44:04.041939Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": null, + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1" + }, + "event_type": "task_status_changed", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "from_status": "screening", + "id": "b8264b10-3383-4138-ab3b-6071850aaff9", + "is_dev_auth": false, + "reason": "Terminal Benchmark final clean live API ready for worker claim.", + "to_status": "ready" + }, + { + "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_roles": [ + "worker" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:44:04.503583Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + }, + "event_type": "task_status_changed", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "from_status": "ready", + "id": "b5a3091c-8506-41fe-800c-58dd1aadfb8a", + "is_dev_auth": false, + "reason": "Terminal Benchmark final clean live API worker claim.", + "to_status": "claimed" + }, + { + "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_roles": [ + "worker" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:44:04.727342Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "operator_override": false, + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + }, + "event_type": "task_status_changed", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "from_status": "claimed", + "id": "3f3f1439-662a-4c42-b2bf-6e5543489d46", + "is_dev_auth": false, + "reason": "Terminal Benchmark final clean live API worker started work.", + "to_status": "in_progress" + }, + { + "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_roles": [ + "worker" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:45:17.452515Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "pre_submit_check": { + "authoritative": false, + "eligible_to_submit": false, + "results": [ + { + "checker_name": "check_submission_packet", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission packet satisfies locked project packet policy.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_forbidden_files", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission does not include default forbidden paths.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_confidentiality_attestation", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes the required confidentiality attestation.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_required_files", + "severity": "high", + "status": "failed", + "worker_evidence_refs": [], + "worker_message": "Submission is missing required artifact files.", + "worker_suggested_fix": "Add every file required by the task to the artifact hash manifest.", + "would_block_if_submitted": true + }, + { + "checker_name": "check_evidence_present", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes required evidence references.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_evidence_integrity", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Artifact manifest and evidence references are structurally valid.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_low_quality_generated_artifacts", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission does not contain obvious generated-output placeholder signals.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + } + ], + "status": "failed", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + } + }, + "event_type": "pre_submission_check_failed", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "from_status": "in_progress", + "id": "aaeaf9c7-4482-4bdf-956f-075f539175eb", + "is_dev_auth": false, + "reason": null, + "to_status": "in_progress" + } +] +``` + +### 24_precheck_success + +`POST /api/v1/tasks/{task_id}/submission-precheck` -> HTTP `200` + +Request body: + +```json +{ + "submission": { + "artifact_hash_manifest": [ + { + "artifact": "environment/Dockerfile", + "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1327 + }, + { + "artifact": "environment/.dockerignore", + "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 185 + }, + { + "artifact": "rubric.md", + "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 34 + }, + { + "artifact": "task.toml", + "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1562 + } + ], + "evidence_items": [ + { + "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "label": "Dependency pinning review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "dependency_pinning_review" + }, + "size_bytes": 40, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + }, + { + "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "label": "Environment hygiene review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "environment_hygiene_review" + }, + "size_bytes": 41, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + }, + { + "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "label": "Task instructions included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "instructions_present" + }, + "size_bytes": 35, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + }, + { + "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "label": "Reward footer review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "reward_footer_review" + }, + "size_bytes": 35, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + }, + { + "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "label": "Reference solution included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "solution_present" + }, + "size_bytes": 31, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + }, + { + "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "label": "Submission explanations", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "submission_explanations" + }, + "size_bytes": 38, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + }, + { + "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "label": "Test alignment review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "test_alignment_review" + }, + "size_bytes": 36, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + }, + { + "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "label": "Verifier files included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "tests_present" + }, + "size_bytes": 28, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + } + ], + "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", + "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", + "worker_attestation": "" + } +} +``` + +Response body: + +```json +{ + "authoritative": false, + "eligible_to_submit": true, + "results": [ + { + "checker_name": "check_submission_packet", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission packet satisfies locked project packet policy.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_forbidden_files", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission does not include default forbidden paths.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_confidentiality_attestation", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes the required confidentiality attestation.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_required_files", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes required artifact files.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_evidence_present", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes required evidence references.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_evidence_integrity", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Artifact manifest and evidence references are structurally valid.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_low_quality_generated_artifacts", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission does not contain obvious generated-output placeholder signals.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + } + ], + "status": "passed", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" +} +``` + +### 25_submissions_after_success_precheck + +`GET /api/v1/tasks/{task_id}/submissions` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +[] +``` + +### 26_submission_success_create + +`POST /api/v1/tasks/{task_id}/submissions` -> HTTP `201` + +Request body: + +```json +{ + "artifact_hash_manifest": [ + { + "artifact": "environment/Dockerfile", + "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1327 + }, + { + "artifact": "environment/.dockerignore", + "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 185 + }, + { + "artifact": "rubric.md", + "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 34 + }, + { + "artifact": "task.toml", + "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1562 + } + ], + "evidence_items": [ + { + "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "label": "Dependency pinning review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "dependency_pinning_review" + }, + "size_bytes": 40, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + }, + { + "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "label": "Environment hygiene review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "environment_hygiene_review" + }, + "size_bytes": 41, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + }, + { + "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "label": "Task instructions included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "instructions_present" + }, + "size_bytes": 35, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + }, + { + "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "label": "Reward footer review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "reward_footer_review" + }, + "size_bytes": 35, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + }, + { + "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "label": "Reference solution included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "solution_present" + }, + "size_bytes": 31, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + }, + { + "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "label": "Submission explanations", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "submission_explanations" + }, + "size_bytes": 38, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + }, + { + "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "label": "Test alignment review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "test_alignment_review" + }, + "size_bytes": 36, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + }, + { + "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "label": "Verifier files included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "tests_present" + }, + "size_bytes": 28, + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + } + ], + "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", + "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", + "worker_attestation": "" +} +``` + +Response body: + +```json +{ + "evidence_items": [ + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "0807ade0-2c5a-4128-a253-e3f6307c6e69", + "label": "Dependency pinning review", + "metadata": {}, + "size_bytes": 40, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "21e8b24f-51d8-4934-96dd-6608b9d54082", + "label": "Environment hygiene review", + "metadata": {}, + "size_bytes": 41, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "06f50e90-b055-485e-bda4-289ffa822025", + "label": "Task instructions included", + "metadata": {}, + "size_bytes": 35, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "f21c9ab2-cc6d-466b-a2fb-817ae8741918", + "label": "Reward footer review", + "metadata": {}, + "size_bytes": 35, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "40eb6111-adeb-48ba-9333-ddaa8340a768", + "label": "Reference solution included", + "metadata": {}, + "size_bytes": 31, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "d94c5f46-a286-44cc-a19b-2e4890be3ef8", + "label": "Submission explanations", + "metadata": {}, + "size_bytes": 38, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "f0d58929-efa4-446f-bb72-04c7a2c14a77", + "label": "Test alignment review", + "metadata": {}, + "size_bytes": 36, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "afdb97ca-4a8d-46de-9d7f-34f4c7468242", + "label": "Verifier files included", + "metadata": {}, + "size_bytes": 28, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + } + ], + "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "status": "submitted", + "submitted_at": "2026-07-08T23:45:18.127472Z", + "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "version": 1, + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" +} +``` + +### 27_submissions_after_success_create + +`GET /api/v1/tasks/{task_id}/submissions` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +[ + { + "evidence_items": [ + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "0807ade0-2c5a-4128-a253-e3f6307c6e69", + "label": "Dependency pinning review", + "metadata": {}, + "size_bytes": 40, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "21e8b24f-51d8-4934-96dd-6608b9d54082", + "label": "Environment hygiene review", + "metadata": {}, + "size_bytes": 41, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "06f50e90-b055-485e-bda4-289ffa822025", + "label": "Task instructions included", + "metadata": {}, + "size_bytes": 35, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "f21c9ab2-cc6d-466b-a2fb-817ae8741918", + "label": "Reward footer review", + "metadata": {}, + "size_bytes": 35, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "40eb6111-adeb-48ba-9333-ddaa8340a768", + "label": "Reference solution included", + "metadata": {}, + "size_bytes": 31, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "d94c5f46-a286-44cc-a19b-2e4890be3ef8", + "label": "Submission explanations", + "metadata": {}, + "size_bytes": 38, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "f0d58929-efa4-446f-bb72-04c7a2c14a77", + "label": "Test alignment review", + "metadata": {}, + "size_bytes": 36, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "id": "afdb97ca-4a8d-46de-9d7f-34f4c7468242", + "label": "Verifier files included", + "metadata": {}, + "size_bytes": 28, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log" + } + ], + "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "status": "submitted", + "submitted_at": "2026-07-08T23:45:18.127472Z", + "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "version": 1, + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + } +] +``` + +### 28_submission_finalize_worker_forbidden + +`POST /api/v1/submissions/{submission_id}/finalize` -> HTTP `403` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "detail": "actor lacks required role" +} +``` + +### 29_submission_finalize_manager + +`POST /api/v1/submissions/{submission_id}/finalize` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "artifact_hash_manifest": [ + { + "artifact": "environment/Dockerfile", + "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1327 + }, + { + "artifact": "environment/.dockerignore", + "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 185 + }, + { + "artifact": "rubric.md", + "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 34 + }, + { + "artifact": "task.toml", + "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1562 + } + ], + "evidence_items": [ + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "id": "0807ade0-2c5a-4128-a253-e3f6307c6e69", + "label": "Dependency pinning review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "dependency_pinning_review" + }, + "size_bytes": 40, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "id": "21e8b24f-51d8-4934-96dd-6608b9d54082", + "label": "Environment hygiene review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "environment_hygiene_review" + }, + "size_bytes": 41, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "id": "06f50e90-b055-485e-bda4-289ffa822025", + "label": "Task instructions included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "instructions_present" + }, + "size_bytes": 35, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "id": "f21c9ab2-cc6d-466b-a2fb-817ae8741918", + "label": "Reward footer review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "reward_footer_review" + }, + "size_bytes": 35, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "id": "40eb6111-adeb-48ba-9333-ddaa8340a768", + "label": "Reference solution included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "solution_present" + }, + "size_bytes": 31, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "id": "d94c5f46-a286-44cc-a19b-2e4890be3ef8", + "label": "Submission explanations", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "submission_explanations" + }, + "size_bytes": 38, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "id": "f0d58929-efa4-446f-bb72-04c7a2c14a77", + "label": "Test alignment review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "test_alignment_review" + }, + "size_bytes": 36, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "id": "afdb97ca-4a8d-46de-9d7f-34f4c7468242", + "label": "Verifier files included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "tests_present" + }, + "size_bytes": 28, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + } + ], + "finalized_at": "2026-07-08T23:45:18.750577Z", + "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", + "status": "submitted", + "submitted_at": "2026-07-08T23:45:18.127472Z", + "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "version": 1, + "worker_attestation": "", + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" +} +``` + +### 30_submission_get_after_finalize + +`GET /api/v1/submissions/{submission_id}` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "artifact_hash_manifest": [ + { + "artifact": "environment/Dockerfile", + "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1327 + }, + { + "artifact": "environment/.dockerignore", + "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 185 + }, + { + "artifact": "rubric.md", + "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 34 + }, + { + "artifact": "task.toml", + "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1562 + } + ], + "evidence_items": [ + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "id": "0807ade0-2c5a-4128-a253-e3f6307c6e69", + "label": "Dependency pinning review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "dependency_pinning_review" + }, + "size_bytes": 40, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "id": "21e8b24f-51d8-4934-96dd-6608b9d54082", + "label": "Environment hygiene review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "environment_hygiene_review" + }, + "size_bytes": 41, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "id": "06f50e90-b055-485e-bda4-289ffa822025", + "label": "Task instructions included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "instructions_present" + }, + "size_bytes": 35, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "id": "f21c9ab2-cc6d-466b-a2fb-817ae8741918", + "label": "Reward footer review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "reward_footer_review" + }, + "size_bytes": 35, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "id": "40eb6111-adeb-48ba-9333-ddaa8340a768", + "label": "Reference solution included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "solution_present" + }, + "size_bytes": 31, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "id": "d94c5f46-a286-44cc-a19b-2e4890be3ef8", + "label": "Submission explanations", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "submission_explanations" + }, + "size_bytes": 38, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "id": "f0d58929-efa4-446f-bb72-04c7a2c14a77", + "label": "Test alignment review", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "test_alignment_review" + }, + "size_bytes": 36, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + }, + { + "created_at": "2026-07-08T23:45:18.127472Z", + "finalized_at": "2026-07-08T23:45:18.750577Z", + "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "id": "afdb97ca-4a8d-46de-9d7f-34f4c7468242", + "label": "Verifier files included", + "metadata": { + "fixture_id": "terminal-benchmark-1c027e78be41", + "required_evidence_key": "tests_present" + }, + "size_bytes": 28, + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "type": "log", + "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + } + ], + "finalized_at": "2026-07-08T23:45:18.750577Z", + "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", + "status": "submitted", + "submitted_at": "2026-07-08T23:45:18.127472Z", + "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "version": 1, + "worker_attestation": "", + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" +} +``` + +### 31_checker_runs_after_finalize + +`GET /api/v1/submissions/{submission_id}/checker-runs` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +[ + { + "artifact_hash_manifest": [ + { + "artifact": "environment/Dockerfile", + "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1327 + }, + { + "artifact": "environment/.dockerignore", + "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 185 + }, + { + "artifact": "rubric.md", + "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 34 + }, + { + "artifact": "task.toml", + "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1562 + } + ], + "artifact_manifest_hash": "sha256:69c050a6f5042e96d4775d666722bc5f5f231a64052e4e37ebee8c978df36eb6", + "attempt_number": 1, + "audit_event_id": "b79137c1-398e-4826-9147-9179aa07eb00", + "blocking_count": 0, + "completed_at": "2026-07-08T23:45:18.864215Z", + "created_at": "2026-07-08T23:45:18.592353Z", + "failed_count": 0, + "id": "d7885348-fd08-4820-b209-36a704765a2b", + "is_current_for_submission": true, + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "outcome_source": "none", + "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "passed_count": 8, + "queued_at": "2026-07-08T23:45:18.592353Z", + "results": [ + { + "blocks_review": false, + "checker_name": "check_submission_packet", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "881d313f-729e-442b-9d2a-9e7b41ced497", + "message": "Submission packet contains required fields.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission packet contains required fields.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_policy_context_present", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "5e9e4ea6-b300-4860-b543-4539c227f755", + "message": "Submission has locked guide and policy context.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission has locked guide and policy context.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_evidence_present", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "981f41b2-59b3-4a4d-b9b3-a368719de2a5", + "message": "Submission includes required evidence references.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission includes required evidence references.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_evidence_integrity", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "95dda22a-9486-4e2f-9ada-1ff6def7c0cc", + "message": "Artifact manifest and evidence references are structurally valid.", + "metadata": { + "artifact_count": 4, + "artifact_manifest_hash": "sha256:69c050a6f5042e96d4775d666722bc5f5f231a64052e4e37ebee8c978df36eb6" + }, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Artifact manifest and evidence references are structurally valid.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_required_files", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "e5d0538a-79c2-40a7-90c5-56ef67538dd2", + "message": "Submission includes required artifact files.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission includes required artifact files.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_forbidden_files", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "183eeb53-03f2-4c7d-8f9c-9b4544241bd2", + "message": "Submission does not include default forbidden paths.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission does not include default forbidden paths.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_confidentiality_attestation", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "ec9e8111-1128-4a34-a576-27afb8d5f664", + "message": "Submission includes the required confidentiality attestation.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission includes the required confidentiality attestation.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_low_quality_generated_artifacts", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "024d7ea5-69f8-4c68-a457-b0c24c8c4eca", + "message": "Submission does not contain obvious generated-output placeholder signals.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission does not contain obvious generated-output placeholder signals.", + "worker_visible": true + } + ], + "routing_recommendation": "allow_review", + "started_at": "2026-07-08T23:45:18.864215Z", + "status": "completed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_version": 1, + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "trigger_auth_source": "workstream_system", + "trigger_reason": "submission finalized pre-review gate", + "trigger_source": "submission_finalized", + "triggered_by": "workstream-system:pre-review-gate", + "triggered_by_issuer": "workstream", + "triggered_by_subject": "workstream-system:pre-review-gate", + "warning_count": 0 + } +] +``` + +### 32_checker_run_get + +`GET /api/v1/checker-runs/{checker_run_id}` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "artifact_hash_manifest": [ + { + "artifact": "environment/Dockerfile", + "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1327 + }, + { + "artifact": "environment/.dockerignore", + "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 185 + }, + { + "artifact": "rubric.md", + "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 34 + }, + { + "artifact": "task.toml", + "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1562 + } + ], + "artifact_manifest_hash": "sha256:69c050a6f5042e96d4775d666722bc5f5f231a64052e4e37ebee8c978df36eb6", + "attempt_number": 1, + "audit_event_id": "b79137c1-398e-4826-9147-9179aa07eb00", + "blocking_count": 0, + "completed_at": "2026-07-08T23:45:18.864215Z", + "created_at": "2026-07-08T23:45:18.592353Z", + "failed_count": 0, + "id": "d7885348-fd08-4820-b209-36a704765a2b", + "is_current_for_submission": true, + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "outcome_source": "none", + "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "passed_count": 8, + "queued_at": "2026-07-08T23:45:18.592353Z", + "results": [ + { + "blocks_review": false, + "checker_name": "check_submission_packet", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "881d313f-729e-442b-9d2a-9e7b41ced497", + "message": "Submission packet contains required fields.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission packet contains required fields.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_policy_context_present", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "5e9e4ea6-b300-4860-b543-4539c227f755", + "message": "Submission has locked guide and policy context.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission has locked guide and policy context.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_evidence_present", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "981f41b2-59b3-4a4d-b9b3-a368719de2a5", + "message": "Submission includes required evidence references.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission includes required evidence references.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_evidence_integrity", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "95dda22a-9486-4e2f-9ada-1ff6def7c0cc", + "message": "Artifact manifest and evidence references are structurally valid.", + "metadata": { + "artifact_count": 4, + "artifact_manifest_hash": "sha256:69c050a6f5042e96d4775d666722bc5f5f231a64052e4e37ebee8c978df36eb6" + }, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Artifact manifest and evidence references are structurally valid.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_required_files", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "e5d0538a-79c2-40a7-90c5-56ef67538dd2", + "message": "Submission includes required artifact files.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission includes required artifact files.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_forbidden_files", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "183eeb53-03f2-4c7d-8f9c-9b4544241bd2", + "message": "Submission does not include default forbidden paths.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission does not include default forbidden paths.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_confidentiality_attestation", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "ec9e8111-1128-4a34-a576-27afb8d5f664", + "message": "Submission includes the required confidentiality attestation.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission includes the required confidentiality attestation.", + "worker_visible": true + }, + { + "blocks_review": false, + "checker_name": "check_low_quality_generated_artifacts", + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "created_at": "2026-07-08T23:45:18.592353Z", + "id": "024d7ea5-69f8-4c68-a457-b0c24c8c4eca", + "message": "Submission does not contain obvious generated-output placeholder signals.", + "metadata": {}, + "severity": "info", + "status": "passed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "worker_evidence_refs": [], + "worker_message": "Submission does not contain obvious generated-output placeholder signals.", + "worker_visible": true + } + ], + "routing_recommendation": "allow_review", + "started_at": "2026-07-08T23:45:18.864215Z", + "status": "completed", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_version": 1, + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "trigger_auth_source": "workstream_system", + "trigger_reason": "submission finalized pre-review gate", + "trigger_source": "submission_finalized", + "triggered_by": "workstream-system:pre-review-gate", + "triggered_by_issuer": "workstream", + "triggered_by_subject": "workstream-system:pre-review-gate", + "warning_count": 0 +} +``` + +### 33_audit_after_finalize + +`GET /api/v1/tasks/{task_id}/audit-events` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +[ + { + "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_roles": [ + "project_manager" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:44:03.452947Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": null, + "locked_effective_project_submission_artifact_policy_hash": null, + "locked_effective_project_submission_artifact_policy_id": null, + "locked_guide_source_snapshot_hash": null, + "locked_guide_source_snapshot_id": null, + "locked_guide_version": null, + "locked_payment_policy_version": null, + "locked_post_submit_checker_policy_hash": null, + "locked_post_submit_checker_policy_id": null, + "locked_post_submit_checker_policy_version": null, + "locked_pre_submit_checker_bundle_hash": null, + "locked_pre_submit_checker_policy_id": null, + "locked_review_policy_version": null, + "locked_revision_policy_version": null, + "source_type": "manual" + }, + "event_type": "task_created", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "from_status": null, + "id": "3c645ce6-9cf1-498c-bff2-b5a53e481c3d", + "is_dev_auth": false, + "reason": null, + "to_status": "draft" + }, + { + "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_roles": [ + "project_manager" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:44:03.630101Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": null, + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1" + }, + "event_type": "task_status_changed", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "from_status": "draft", + "id": "43563128-a38c-41ef-baad-f4a5ea77e153", + "is_dev_auth": false, + "reason": "Terminal Benchmark final clean live API screening; lock active guide and policy context.", + "to_status": "screening" + }, + { + "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_roles": [ + "project_manager" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:44:04.041939Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": null, + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1" + }, + "event_type": "task_status_changed", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "from_status": "screening", + "id": "b8264b10-3383-4138-ab3b-6071850aaff9", + "is_dev_auth": false, + "reason": "Terminal Benchmark final clean live API ready for worker claim.", + "to_status": "ready" + }, + { + "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_roles": [ + "worker" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:44:04.503583Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + }, + "event_type": "task_status_changed", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "from_status": "ready", + "id": "b5a3091c-8506-41fe-800c-58dd1aadfb8a", + "is_dev_auth": false, + "reason": "Terminal Benchmark final clean live API worker claim.", + "to_status": "claimed" + }, + { + "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_roles": [ + "worker" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:44:04.727342Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "operator_override": false, + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + }, + "event_type": "task_status_changed", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "from_status": "claimed", + "id": "3f3f1439-662a-4c42-b2bf-6e5543489d46", + "is_dev_auth": false, + "reason": "Terminal Benchmark final clean live API worker started work.", + "to_status": "in_progress" + }, + { + "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_roles": [ + "worker" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:45:17.452515Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "pre_submit_check": { + "authoritative": false, + "eligible_to_submit": false, + "results": [ + { + "checker_name": "check_submission_packet", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission packet satisfies locked project packet policy.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_forbidden_files", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission does not include default forbidden paths.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_confidentiality_attestation", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes the required confidentiality attestation.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_required_files", + "severity": "high", + "status": "failed", + "worker_evidence_refs": [], + "worker_message": "Submission is missing required artifact files.", + "worker_suggested_fix": "Add every file required by the task to the artifact hash manifest.", + "would_block_if_submitted": true + }, + { + "checker_name": "check_evidence_present", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission includes required evidence references.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_evidence_integrity", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Artifact manifest and evidence references are structurally valid.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + }, + { + "checker_name": "check_low_quality_generated_artifacts", + "severity": "info", + "status": "passed", + "worker_evidence_refs": [], + "worker_message": "Submission does not contain obvious generated-output placeholder signals.", + "worker_suggested_fix": null, + "would_block_if_submitted": false + } + ], + "status": "failed", + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + } + }, + "event_type": "pre_submission_check_failed", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "from_status": "in_progress", + "id": "aaeaf9c7-4482-4bdf-956f-075f539175eb", + "is_dev_auth": false, + "reason": null, + "to_status": "in_progress" + }, + { + "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_roles": [ + "worker" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:45:18.127472Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "artifact_hash_manifest": [ + { + "artifact": "environment/Dockerfile", + "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1327 + }, + { + "artifact": "environment/.dockerignore", + "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 185 + }, + { + "artifact": "rubric.md", + "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 34 + }, + { + "artifact": "task.toml", + "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1562 + } + ], + "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "finalized_at": null, + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_version": 1, + "supersedes_submission_id": null, + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + }, + "event_type": "submission_created", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "from_status": "in_progress", + "id": "6eb6b53f-01c1-421b-806c-2a9e23b2117a", + "is_dev_auth": false, + "reason": null, + "to_status": "submitted" + }, + { + "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_roles": [ + "project_manager" + ], + "auth_source": "flow", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:45:18.592353Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "artifact_hash_manifest": [ + { + "artifact": "environment/Dockerfile", + "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1327 + }, + { + "artifact": "environment/.dockerignore", + "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 185 + }, + { + "artifact": "rubric.md", + "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 34 + }, + { + "artifact": "task.toml", + "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "notes": "Required by locked Terminal Benchmark project policy.", + "size_bytes": 1562 + } + ], + "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "finalized_at": "2026-07-08T23:45:18.750577+00:00", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_version": 1, + "supersedes_submission_id": null, + "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + }, + "event_type": "submission_finalized", + "external_issuer": "https://auth.flow.local/e2e", + "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "from_status": "submitted", + "id": "a6843c8e-dc22-45db-9fd2-de16877fde01", + "is_dev_auth": false, + "reason": null, + "to_status": "submitted" + }, + { + "actor_id": "workstream-system:pre-review-gate", + "actor_roles": [ + "workstream_system" + ], + "auth_source": "workstream_system", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:45:18.592353Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "requester_actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "requester_auth_source": "flow", + "requester_external_issuer": "https://auth.flow.local/e2e", + "requester_external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_version": 1, + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "trigger_source": "submission_finalized" + }, + "event_type": "pre_review_gate_started", + "external_issuer": "workstream", + "external_subject": "workstream-system:pre-review-gate", + "from_status": "submitted", + "id": "f6d7a015-51cd-4419-9b3b-c502a10681bc", + "is_dev_auth": false, + "reason": "submission finalized pre-review gate", + "to_status": "evaluation_pending" + }, + { + "actor_id": "workstream-system:pre-review-gate", + "actor_roles": [ + "workstream_system" + ], + "auth_source": "workstream_system", + "claim_snapshot": {}, + "created_at": "2026-07-08T23:45:18.592353Z", + "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_type": "task", + "event_payload": { + "blocking_count": 0, + "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "failed_count": 0, + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_version": "v1", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "outcome_source": "none", + "requester_actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "requester_auth_source": "flow", + "requester_external_issuer": "https://auth.flow.local/e2e", + "requester_external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "review_decision_id": null, + "routing_recommendation": "allow_review", + "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_version": 1, + "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "trigger_source": "submission_finalized", + "warning_count": 0 + }, + "event_type": "pre_review_gate_passed", + "external_issuer": "workstream", + "external_subject": "workstream-system:pre-review-gate", + "from_status": "evaluation_pending", + "id": "fef7e1c4-78b8-4c4e-a740-bbdcb046c2ae", + "is_dev_auth": false, + "reason": "submission finalized pre-review gate", + "to_status": "review_pending" + } +] +``` + +### 34_task_get_after_finalize + +`GET /api/v1/tasks/{task_id}` -> HTTP `200` + +Request body: + +```json +null +``` + +Response body: + +```json +{ + "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", + "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "base_amount": "25.00", + "created_at": "2026-07-08T23:44:03.452947Z", + "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "currency": "USD", + "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "difficulty": "medium", + "estimated_time_minutes": 75, + "external_task_id": "terminal-benchmark-1c027e78be41", + "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_version": "v1", + "locked_payment_policy_version": "v1", + "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_review_policy_version": "v1", + "locked_revision_policy_version": "v1", + "payout_type": "fixed", + "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", + "skill_tags": [ + "rust", + "json", + "seccomp", + "containers", + "cli" + ], + "source_payload_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "source_type": "manual", + "status": "review_pending", + "task_type": "terminal_benchmark", + "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "updated_at": "2026-07-08T23:45:18.592353Z" +} +``` + + +## Notes + +- The first construction pass was discarded because the imported reviewer + material contained raw local path text. The final run sanitized source text + before guide creation and passed a request/response scan for `/home/`. +- A later construction pass was discarded because the worker packet was built + before reading the live `submission-requirements` response. The final run + built the packet from the live requirements before pre-submit calls. +- No Workstream default checker was weakened. +- No task-specific checker generation was introduced. +- No product review decision token leaked into pre-submit output. +- No database inspection was used as lifecycle proof. diff --git a/docs/roadmap_status.md b/docs/roadmap_status.md index 69985bd38..3e40f9cd6 100644 --- a/docs/roadmap_status.md +++ b/docs/roadmap_status.md @@ -70,6 +70,9 @@ Current phase: Week 3 review and revision preparation. - `WS-POL-001-15` hardened the agent-derived submission artifact policy contract after the accepted no-DB Terminal Benchmark drill exposed a required/forbidden self-conflict; the drill now passes after hardening. +- `WS-POL-001-16` completed a human-visible Terminal Benchmark live API drill + without database inspection as lifecycle proof; the evidence is under + internal review before PR/human checkpoint. ## Pending Before Pilot From 0ff7aea4c4fc77b31111e4a239d008e75030df88 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 02:22:55 +0100 Subject: [PATCH 03/17] docs: add WS-POL-001-16 review bundle --- .agent-loop/LOOP_STATE.md | 4 +- .../STATUS.md | 5 +- .../WS-POL-001-16-internal-review-evidence.md | 94 +++++++++++++ .../reviews/WS-POL-001-16-pr-trust-bundle.md | 132 ++++++++++++++++++ 4 files changed, 231 insertions(+), 4 deletions(-) create mode 100644 .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md create mode 100644 .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md diff --git a/.agent-loop/LOOP_STATE.md b/.agent-loop/LOOP_STATE.md index f7fe00817..740522183 100644 --- a/.agent-loop/LOOP_STATE.md +++ b/.agent-loop/LOOP_STATE.md @@ -14,8 +14,8 @@ `review_pending` task state without database inspection as lifecycle proof. - Last merged implementation SHA: `b72a5b9` - Last merge commit: `b1a9851` -- Current gate: deterministic verification and internal reviewer fanout for - `WS-POL-001-16` before PR review. +- Current gate: PR creation and human checkpoint for `WS-POL-001-16`; internal + reviewer fanout and evidence gate are complete. - Next chunk: inactive until this chunk is reviewed, merged, and followed by a post-merge memory update. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md index b6ef449b4..ff4763215 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md @@ -6,7 +6,8 @@ `WS-POL-001-16` completed the final clean Terminal Benchmark live API drill through real HTTP calls, using sanitized source material and a worker packet derived from the live `submission-requirements` response. Evidence is recorded -and awaiting deterministic checks plus internal reviewer fanout. +and internal reviewer fanout is complete. The branch is ready for PR/human +checkpoint. `WS-POL-001-14` replaced public submission lock wording with finalization, defined system actor audit semantics, and merged PR #79's HTTP-visible Terminal Benchmark proof evidence. The accepted post-merge no-DB Terminal Benchmark @@ -37,7 +38,7 @@ reran that accepted drill successfully before merging through PR #81. | `WS-POL-001-13` | Merged | `codex/ws-pol-001-13-task-context-apis` | 77 | Adds task work-context, worker submission-requirements, and operator-only locked-context APIs. | | `WS-POL-001-14` | Merged | `codex/ws-pol-001-14-submission-finalize` | 79 | Replaces public submission lock with finalize, defines system actor audit semantics, scopes operator visibility, and proves the Terminal Benchmark flow through HTTP-visible lifecycle responses. | | `WS-POL-001-15` | Merged | `codex/ws-pol-001-15-agent-derivation-hardening` | 81 | Hardens agent-derived submission artifact policy instructions after the no-DB Terminal Benchmark drill exposed a required-artifact/forbidden-pattern self-conflict. | -| `WS-POL-001-16` | Evidence complete | `codex/ws-pol-001-16-terminal-benchmark-live-api-drill` | - | Proved a human-visible Terminal Benchmark drill through real HTTP APIs without DB inspection as lifecycle proof; deterministic checks and internal review are pending. | +| `WS-POL-001-16` | Internal review complete | `codex/ws-pol-001-16-terminal-benchmark-live-api-drill` | - | Proved a human-visible Terminal Benchmark drill through real HTTP APIs without DB inspection as lifecycle proof; PR/human checkpoint is pending. | ## Blockers diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md new file mode 100644 index 000000000..f0aee95c4 --- /dev/null +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md @@ -0,0 +1,94 @@ +# Internal Review Evidence: WS-POL-001-16 + +## Chunk + +WS-POL-001-16-terminal-benchmark-live-api-drill + +open sub-agent sessions: none + +valid findings addressed: yes + +## Reviewed Revision + +Reviewed code SHA: 48cdcd2512428632225f2f97359b68271ab03575 + +Reviewed at: 2026-07-09T01:21:17Z + +Reviewer run IDs: senior-engineering-initial-019f4468-0149-7331-8432-375a955e4617, senior-engineering-rerun-019f446e-568e-7c00-9728-3e15f65b28a6, senior-engineering-final-019f4472-4bd5-7693-a477-1fae8be3b573, qa-test-initial-019f4468-085b-7bd1-ab51-7bb5a1c6242b, qa-test-rerun-019f446e-4dd4-7c80-a020-799f61f45c37, security-auth-initial-019f4468-146c-7c40-a44a-327b5e619453, security-auth-rerun-019f446e-5f86-7b50-90af-2e7bb3144a09, product-ops-initial-019f4468-22bf-7b81-aff1-82f91df7f853, product-ops-rerun-019f446e-6b96-7df3-a525-7894302969e6, architecture-initial-019f4468-2fb0-7aa3-a3f7-3f08a4efc3ea, architecture-rerun-019f446e-7dc0-7963-949d-da760eaa0779, docs-initial-019f4468-397a-7752-ab7f-e536b304ecd8, docs-rerun-019f446e-8b52-73e1-a1cb-50e7acd11abe, reuse-dedup-019f4472-4ff2-70e1-8a06-32fcfecdd4b5, test-delta-019f4472-5431-7a41-af36-00f19813b272 + +After the reviewed SHA, only allowed review evidence, PR trust-bundle, status, and loop-state files may change. + +## Reviewed Change + +Scope: + +- Recorded the final clean Terminal Benchmark live API drill evidence for `WS-POL-001-16`. +- Captured sanitized source snapshot material, source hashes, setup-run status, sufficiency output, derived submission artifact policy, effective project policy, and compiled project pre-submit checker policy. +- Added explicit sufficiency-agent input and submission-policy-derivation input summaries using the real `GuideSourceMaterial` envelope and source snapshot hashes. +- Added a redacted HTTP body appendix for every final-run API request and response body, including all 14 setup-run polls. +- Proved blocked pre-submit with `pre_submission_checker_failed`, empty task submission list, and audit-event evidence; checker-run visibility is proven only after a submission id exists because checker-run list/get APIs are submission-scoped. +- Proved successful pre-submit, submission creation, manager finalization, automatic checker run, durable checker results, audit events, and final `review_pending` task state without database inspection as lifecycle proof. +- Updated initiative and loop status to show this chunk is evidence complete and awaiting PR/human checkpoint. +- Repaired the chunk contract wording for blocked-intake checker-run evidence so it matches the existing submission-scoped checker-run API design. + +## Reviewer Results + +| Reviewer | Result | Blocking findings | Notes | +|---|---:|---|---| +| senior engineering | PASS WITH LOW RISKS | None | Initial and rerun reviews found missing full body transcript, missing agent inputs, checker-run proof wording mismatch, and missing setup-poll body entries. Evidence and contract wording were fixed. Final low note about poll-summary mismatch was corrected. | +| qa/test | PASS AFTER FIXES | None | Initial review failed on summarized transcript, missing agent inputs, incomplete blocked proof, and abbreviated pre-submit response. Rerun confirmed redacted bodies, full pre-submit structures, agent input/output, blocked audit proof, and checker-run visibility after submission exists. | +| security/auth | PASS AFTER FIXES | None | Confirmed no bearer token values, API key values, signed URLs, raw local filesystem paths, unsafe source refs, or auth expansion. Forbidden-pattern strings such as `api_key`, `secret`, and `token` are checker policy patterns only. | +| product/ops | PASS AFTER FIXES | None | Confirmed lifecycle clarity, worker/operator visibility, no product decision leakage in pre-submit, no Terminal Benchmark fork, and correct blocked/success/finalize/checker/audit state. | +| architecture | PASS AFTER FIXES | None | Confirmed docs/evidence-only scope, no task-specific checker generation, no DB-only lifecycle proof, no backend behavior change, no default-checker weakening, and valid checker-run visibility contract repair. | +| docs | PASS AFTER FIXES | None | Confirmed stale wording, Markdown links, whitespace, roadmap/status wording, and redacted appendix readability after fixes. | +| reuse/dedup | PASS | None | Confirmed no new scripts, helpers, backend code, or duplicate implementation; the appendix is evidence, not parallel implementation. | +| test delta | PASS | None | Confirmed no tests were added, modified, removed, skipped, or weakened; verification evidence matches the chunk contract. | + +## Valid Findings Addressed + +- Added a redacted HTTP request/response body appendix for every human-review API step. +- Added every setup-run poll response body from `03_setup_poll_01` through `03_setup_poll_14`. +- Added sufficiency-agent input and submission-policy-derivation input summaries tied to the source snapshot and content hashes. +- Expanded blocked pre-submit proof to include audit evidence and clarified why checker-run list/get is only valid after submission creation. +- Repaired the chunk contract acceptance criterion for blocked intake to match the submission-scoped checker-run API design. +- Moved roadmap wording from completed to under-review state for `WS-POL-001-16`. +- Corrected the compact setup-poll summary so it matches the appendix body statuses. +- Staged the formal live evidence file so it is no longer untracked. + +## Commands Run + +```bash +python3 scripts/check_stale_workstream_wording.py +python3 scripts/check_markdown_links.py +cd backend && .venv/bin/pytest tests/test_projects.py tests/test_tasks.py tests/test_checkers.py -q +cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py +git diff --cached --check +``` + +Results: + +- Stale wording check: passed. +- Markdown link check: passed for 6 changed Markdown files. +- Focused backend tests: `342 passed in 4305.43s (1:11:45)`. +- API contract drill: `API contract real API e2e passed`. +- Diff whitespace check: passed. + +## Evidence Gate + +Evidence gate: PASS. + +Scope: + +- Changed files stay inside the `WS-POL-001-16` allowed evidence/status scope. +- No backend, migration, script, test, CI, dependency, frontend, payment, reputation, blockchain, or auth behavior files changed. +- No Workstream default checker was weakened. +- No task-specific checker generation was introduced. + +## External Review Separation + +CodeRabbit, GitHub checks, and human PR review are external review. They will be tracked separately if comments arrive after PR creation. + +## Remaining Risks + +- The redacted HTTP appendix is large because the contract required human-reviewable request and response bodies. It is evidence-only and does not add runtime code. +- The live drill proves the final clean Terminal Benchmark path; future review lifecycle chunks still need reviewer packet and `needs_revision` API coverage. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md new file mode 100644 index 000000000..402dae66f --- /dev/null +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md @@ -0,0 +1,132 @@ +# PR Trust Bundle: WS-POL-001-16 + +## Intent + +Prove the current Workstream project setup and submission intake lifecycle with a real Terminal Benchmark live API drill, using HTTP-visible evidence instead of database inspection. + +This chunk exists because earlier Terminal Benchmark drills exposed real gaps in project setup visibility, worker requirements, finalization, and agent-derived submission policy quality. This pass proves the corrected flow slowly and visibly. + +## Scope + +Changed: + +- `.agent-loop/LOOP_STATE.md` +- `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md` +- `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md` +- `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md` +- `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md` +- `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md` +- `docs/roadmap_status.md` + +Not changed: + +- No backend code. +- No migrations. +- No tests or scripts. +- No CI/workflow files. +- No frontend/demo work. +- No auth, payment, reputation, settlement, or blockchain behavior. +- No task-specific checker generation. + +## Design + +The drill evidence follows the real Workstream chain: + +```text +ProjectGuide +-> GuideSourceSnapshot +-> GuideSufficiencyReport +-> ProjectSubmissionArtifactPolicy +-> EffectiveProjectSubmissionArtifactPolicy +-> project PreSubmitCheckerPolicy +-> task locked context +-> worker pre-submit +-> submission finalization +-> durable checker run +-> review_pending +``` + +The evidence records: + +- sanitized Terminal Benchmark source material and source snapshot hashes; +- automatic Celery setup status from queued through `policy_draft_ready`; +- sufficiency-agent and submission-policy-derivation inputs and outputs; +- policy approval, effective policy, checker policy, and guide activation; +- task creation, screening, release, worker profile activation, claim, and start; +- worker work-context and submission-requirements reads; +- blocked pre-submit and blocked create with no submission side effect; +- successful pre-submit, durable submission creation, manager finalization, checker-run list/get, audit events, and final `review_pending` task response. + +The checker-run no-side-effect proof is aligned with the existing API design: checker-run list/get is submission-scoped, so blocked intake before a submission id is proved with task submissions plus audit events; checker-run visibility is proven after a submission exists and finalization starts the pre-review gate. + +## Verification + +Passed: + +```bash +python3 scripts/check_stale_workstream_wording.py +python3 scripts/check_markdown_links.py +cd backend && .venv/bin/pytest tests/test_projects.py tests/test_tasks.py tests/test_checkers.py -q +cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py +git diff --cached --check +``` + +Key results: + +- `342 passed in 4305.43s (1:11:45)` for focused backend tests. +- `API contract real API e2e passed`. +- Stale wording check passed. +- Markdown link check passed for 6 changed Markdown files. +- Diff whitespace check passed. + +## Live Drill Result + +Final clean run: + +```text +project_id: 36331e8e-c849-484d-9e9e-c8ebc2f70130 +guide_id: fbe0b2ab-2793-4619-a414-ed083d9cc117 +source_snapshot_id: 2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b +source_snapshot_hash: sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb +submission_artifact_policy_hash: sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136 +effective_policy_hash: sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850 +pre_submit_checker_bundle_hash: sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63 +task_id: d8cfda33-6c7e-461a-bdcd-036a6cefeda3 +submission_id: ba25f15a-e36a-4925-9891-09d394eae2ec +checker_run_id: d7885348-fd08-4820-b209-36a704765a2b +final_task_status: review_pending +``` + +Evidence: + +- `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md` + +## Internal Review + +| Reviewer | Result | +|---|---:| +| senior engineering | PASS WITH LOW RISKS | +| QA/test | PASS AFTER FIXES | +| security/auth | PASS AFTER FIXES | +| product/ops | PASS AFTER FIXES | +| architecture | PASS AFTER FIXES | +| docs | PASS AFTER FIXES | +| reuse/dedup | PASS | +| test delta | PASS | + +Evidence: + +- `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md` + +## Human Review Focus + +- Confirm the live drill is understandable from HTTP-visible evidence without DB inspection. +- Confirm the Terminal Benchmark source material is treated as fixture/example evidence, not a Workstream product fork. +- Confirm the setup agent inputs/outputs, derived policy, effective policy, and compiled project checker remain project-scoped. +- Confirm blocked pre-submit creates no submission and does not rely on product review decisions. +- Confirm submission finalization, checker-run visibility, audit events, and final `review_pending` state match the intended lifecycle. + +## Remaining Risks + +- The evidence appendix is large because it records all redacted HTTP bodies required by the chunk contract. +- This chunk does not implement review packet assignment, human review decisions, or revision replay APIs; those remain future chunks. From 2207488c126aa0d4ff8c2981f33c8996bd104129 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 04:11:51 +0100 Subject: [PATCH 04/17] docs: scrub terminal benchmark reference evidence --- .agent-loop/LOOP_STATE.md | 2 +- .../CHUNK_MAP.md | 4 +- ...6-terminal-benchmark-real-fixture-drill.md | 6 +- .../WS-POL-001-06-internal-review-evidence.md | 2 +- .../reviews/WS-POL-001-06-pr-trust-bundle.md | 2 +- .../WS-POL-001-14-external-review-response.md | 2 +- .../WS-POL-001-14-internal-review-evidence.md | 4 +- .../reviews/WS-POL-001-14-pr-trust-bundle.md | 2 +- .../WS-POL-001-15-internal-review-evidence.md | 2 +- .../reviews/WS-POL-001-15-pr-trust-bundle.md | 2 +- .../WS-POL-001-16-live-api-drill-evidence.md | 988 +++++++++--------- .../reviews/WS-POL-001-16-pr-trust-bundle.md | 8 +- docs/review_closure.md | 2 +- ...view_process_baseline_operations_review.md | 6 +- .../review_process_pattern_baseline_review.md | 6 +- docs/review_systems_architecture_review.md | 2 +- .../LOCAL_VALIDATION_NOTES.md | 12 +- examples/terminal_benchmark/README.md | 10 +- .../terminal_benchmark_api_e2e.py | 48 +- 19 files changed, 555 insertions(+), 555 deletions(-) diff --git a/.agent-loop/LOOP_STATE.md b/.agent-loop/LOOP_STATE.md index 740522183..fe18d61cc 100644 --- a/.agent-loop/LOOP_STATE.md +++ b/.agent-loop/LOOP_STATE.md @@ -81,7 +81,7 @@ blockchain, frontend, or agent-runtime behavior. - `WS-POL-001-06` started on branch `codex/ws-pol-001-06-terminal-benchmark-drill` after the user's explicit start signal. - `WS-POL-001-06` real Terminal Benchmark manual HTTP drill passed against a - local Termius reviewer fixture; committed evidence uses placeholder fixture + local Terminal Benchmark reference fixture; committed evidence uses placeholder fixture paths and local IDs only. - `WS-POL-001-06` live drill exposed and fixed an OpenAI Agents SDK adapter strict-schema issue for the policy derivation result's open `policy_body`. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/CHUNK_MAP.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/CHUNK_MAP.md index 5775b3bad..e00ce7e6d 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/CHUNK_MAP.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/CHUNK_MAP.md @@ -483,7 +483,7 @@ Fair worker experience during revision and audit clarity. Goal: -Use a real Terminal Benchmark reviewer fixture from the local Termius workspace +Use a real Terminal Benchmark reviewer fixture from the local Terminal Benchmark reference workspace to prove the current Workstream setup-agent route, project policy bundle, task locked context, pre-submit feedback, submission versioning, post-submit checker gate, and fixed revision path over live manual HTTP calls and local Postgres. @@ -573,7 +573,7 @@ Acceptance criteria: Verification: -- Manual live API drill runs against local Postgres and one explicit Termius +- Manual live API drill runs against local Postgres and one explicit Terminal Benchmark reference reviewer fixture path. - Targeted adapter regression tests, stale wording scan, ruff, docstring coverage, markdown link check, and diff whitespace checks pass. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md index 363e210ff..63c8e33dc 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md @@ -6,7 +6,7 @@ WS-POL-001 - Submission Artifact Policy Foundation ## Goal -Use a real Terminal Benchmark reviewer fixture from the local Termius workspace +Use a real Terminal Benchmark reviewer fixture from the local Terminal Benchmark reference workspace to prove the current Workstream project guide, setup-agent, policy bundle, task locked context, pre-submit feedback, submission versioning, post-submit checker gate, and revision resubmission path over live HTTP calls and local Postgres. @@ -119,7 +119,7 @@ work. Further unrelated runtime bugs still require a separate chunk. `PreSubmitCheckerPolicy` as the intake contract. - The drill does not rely on task `required_files` or `required_evidence` as the source of pre-submit truth. -- The guide source snapshot is built from real Termius material, including the +- The guide source snapshot is built from real Terminal Benchmark reference material, including the Terminal Benchmark submission guide/program material, reviewer program or guide material, the selected task TOML, and the selected review packet. - Persisted fixture identifiers and normal success output do not reveal absolute @@ -156,7 +156,7 @@ cd backend && .venv/bin/python -m pytest tests/test_alembic.py cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py ``` -The fixture path may be changed to another local Termius reviewer fixture that +The fixture path may be changed to another local Terminal Benchmark reference fixture that contains the required files. The command must stay local-only and must never run against production or shared databases. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md index b5c1423cf..287e07cc5 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md @@ -89,7 +89,7 @@ construction-state product contracts before continuing pre-submit checker work. snapshots. - Removed Terminal Benchmark-specific branching from the local fixture adapter. - Updated the Terminal Benchmark example to require the OpenAI Agents SDK - adapter and real Termius project guide, reviewer program, task TOML, and + adapter and real Terminal Benchmark reference project guide, reviewer program, task TOML, and review packet material. - Updated `WS-POL-001-06` chunk scope and master chunk map to include the intentional docs and migration cleanup. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-pr-trust-bundle.md index 80de03989..540c72a9d 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-pr-trust-bundle.md @@ -48,7 +48,7 @@ The user explicitly pushed back that: - Updated active docs/templates/roadmaps so payment terms are policy-owned and task-visible payout fields are locked snapshots from `PaymentPolicy`. - Updated the Terminal Benchmark example to require the OpenAI Agents SDK - adapter and real Termius project guide, reviewer program, task TOML, and + adapter and real Terminal Benchmark reference project guide, reviewer program, task TOML, and review packet material. - Removed Terminal Benchmark-specific derivation shortcuts from the local fixture adapter. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md index 2b076c9c6..3cb0ce933 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md @@ -31,7 +31,7 @@ cd backend && .venv/bin/ruff check app/modules/tasks/repository.py cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/home/abiorh/snorkel/termius/termius_reviewer/reviews/build-seccomp-profile-reducer-rust-json; export WORKSTREAM_TERMIUS_REVIEWER_ROOT=/home/abiorh/snorkel/termius/termius_reviewer; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=local reference workspace/terminal-benchmark-reference/terminal-benchmark-reference-task; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md index b6039b0c3..c15138034 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md @@ -67,7 +67,7 @@ cd backend && .venv/bin/ruff check app/modules/tasks/repository.py app/modules/t cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/home/abiorh/snorkel/termius/termius_reviewer/reviews/build-seccomp-profile-reducer-rust-json; export WORKSTREAM_TERMIUS_REVIEWER_ROOT=/home/abiorh/snorkel/termius/termius_reviewer; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=local reference workspace/terminal-benchmark-reference/terminal-benchmark-reference-task; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` @@ -85,7 +85,7 @@ Results: - Final CodeRabbit docstring-nitpick Ruff: passed for `backend/app/modules/tasks/repository.py`. - Task/checker suite: 133 passed in 1666.46s. - API contract real API E2E: passed and exercised `/finalize`, checker-run reads, audit-event reads, and scoped access. -- Terminal Benchmark real API E2E: passed using the real OpenAI Agents SDK adapter and fixture `build-seccomp-profile-reducer-rust-json`. +- Terminal Benchmark real API E2E: passed using the real OpenAI Agents SDK adapter and fixture `terminal-benchmark-reference-task`. - Terminal Benchmark scenario summary: `complete_packet=review_pending`, `missing_static_guard=pre_submit_blocked_no_submission`, `low_quality_v1=needs_revision`, `fixed_low_quality_v2=review_pending`, `worker_profile_setup=canonical_worker_profile_api`. - Markdown link check: passed for 27 changed Markdown files. - Diff whitespace check: passed. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md index 239565155..baa077db6 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md @@ -150,7 +150,7 @@ cd backend && .venv/bin/ruff check app/modules/tasks/repository.py app/modules/t cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/home/abiorh/snorkel/termius/termius_reviewer/reviews/build-seccomp-profile-reducer-rust-json; export WORKSTREAM_TERMIUS_REVIEWER_ROOT=/home/abiorh/snorkel/termius/termius_reviewer; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=local reference workspace/terminal-benchmark-reference/terminal-benchmark-reference-task; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md index 9031ab050..d43f07994 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md @@ -59,7 +59,7 @@ Scope: cd backend && .venv/bin/pytest tests/test_projects.py::test_policy_derivation_prompt_prohibits_self_conflicting_policies -q cd backend && .venv/bin/pytest tests/test_projects.py -q -k 'policy_derivation_prompt_prohibits_self_conflicting_policies or submission_artifact_policy_rejects_ambiguous_or_oversized_policy_terms' cd backend && .venv/bin/pytest tests/test_projects.py -q -bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/home/abiorh/snorkel/termius/termius_reviewer/reviews/build-seccomp-profile-reducer-rust-json; export WORKSTREAM_TERMIUS_REVIEWER_ROOT=/home/abiorh/snorkel/termius/termius_reviewer; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=local reference workspace/terminal-benchmark-reference/terminal-benchmark-reference-task; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py git diff --check diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md index d9f8cae6c..ca2752135 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md @@ -54,7 +54,7 @@ Passed: cd backend && .venv/bin/pytest tests/test_projects.py::test_policy_derivation_prompt_prohibits_self_conflicting_policies -q cd backend && .venv/bin/pytest tests/test_projects.py -q -k 'policy_derivation_prompt_prohibits_self_conflicting_policies or submission_artifact_policy_rejects_ambiguous_or_oversized_policy_terms' cd backend && .venv/bin/pytest tests/test_projects.py -q -bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/home/abiorh/snorkel/termius/termius_reviewer/reviews/build-seccomp-profile-reducer-rust-json; export WORKSTREAM_TERMIUS_REVIEWER_ROOT=/home/abiorh/snorkel/termius/termius_reviewer; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=local reference workspace/terminal-benchmark-reference/terminal-benchmark-reference-task; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py git diff --check diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md index 77ecbaf9a..5e4f5ec2b 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md @@ -13,11 +13,11 @@ Final state: project_id: 36331e8e-c849-484d-9e9e-c8ebc2f70130 guide_id: fbe0b2ab-2793-4619-a414-ed083d9cc117 source_snapshot_id: 2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b -source_snapshot_hash: sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb +source_snapshot_hash: sha256: sufficiency_status: passed -submission_artifact_policy_hash: sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136 -effective_policy_hash: sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850 -pre_submit_checker_bundle_hash: sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63 +submission_artifact_policy_hash: sha256: +effective_policy_hash: sha256: +pre_submit_checker_bundle_hash: sha256: task_id: d8cfda33-6c7e-461a-bdcd-036a6cefeda3 submission_id: ba25f15a-e36a-4925-9891-09d394eae2ec checker_run_id: d7885348-fd08-4820-b209-36a704765a2b @@ -43,13 +43,13 @@ from HTTP responses. Fixture label: ```text -termius_reviewer/reviews/build-seccomp-profile-reducer-rust-json +terminal-benchmark-reference-task ``` Fixture id: ```text -terminal-benchmark-1c027e78be41 +terminal-benchmark-reference-fixture ``` Before the final API run, source text was sanitized so raw local filesystem @@ -59,7 +59,7 @@ scanned for `/home/` and passed. Guide body: ```text -content_markdown_hash: sha256:586b0e702b8fe201185ffab41d9ec4b4b862fea134deb010c2cc93c3b7412c1c +content_markdown_hash: sha256: content_markdown_bytes: 138427 ``` @@ -67,14 +67,14 @@ Source snapshot manifest: | Label | Durable ref | Hash | Bytes | |---|---|---:|---:| -| `PROJECT_GUIDE.md` | `import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md` | `sha256:a2b2d57cc56cddc4a8049e9df00da02577fcd729043aad065e2a47f84ca4372e` | 27143 | -| `REVIEWER_PROGRAM.md` | `import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md` | `sha256:297415ca932fd7109c63c03232afd0d73a0ce0b1237cd460a6b0cbec81e8995d` | 45121 | -| `task.toml` | `import:/fixtures/terminal-benchmark-1c027e78be41/task.toml` | `sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811` | 1562 | -| `review_packet.md` | `import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md` | `sha256:42eb6fead00923488b1212d23ef756926849dd51087aa0490ca656e829e8b8ea` | 36295 | -| `static_guard.txt` | `import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt` | `sha256:73840f643300f873de7bfff017cfe00ed01659208800fd1c572362fc8a300b62` | 612 | -| `docker_build.log` | `import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log` | `sha256:793b9c193beb4f7b4bad4aacf66f5a74a6007e420c3232039d96cfa8cf6fbf42` | 31676 | -| `oracle_test.log` | `import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log` | `sha256:33e5d68026c8e84b7558e2389293edc9d8b9f366a37e40b449397cd1b5b6fd97` | 3926 | -| `starter_m1_test.log` | `import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log` | `sha256:fb06dbd479c6a782297fde0f83414ff3f9bc456ece2c7e7098362f783730bbc2` | 11284 | +| `PROJECT_GUIDE.md` | `import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md` | `sha256:` | 27143 | +| `REVIEWER_PROGRAM.md` | `import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md` | `sha256:` | 45121 | +| `task.toml` | `import:/fixtures/terminal-benchmark-reference-fixture/task.toml` | `sha256:` | 1562 | +| `review_packet.md` | `import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md` | `sha256:` | 36295 | +| `static_guard.txt` | `import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt` | `sha256:` | 612 | +| `docker_build.log` | `import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log` | `sha256:` | 31676 | +| `oracle_test.log` | `import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log` | `sha256:` | 3926 | +| `starter_m1_test.log` | `import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log` | `sha256:` | 11284 | ## HTTP Transcript @@ -151,22 +151,22 @@ Sufficiency-agent input: "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", "guide_version": "v1", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "guide_material": { "content_markdown": { - "hash": "sha256:586b0e702b8fe201185ffab41d9ec4b4b862fea134deb010c2cc93c3b7412c1c", + "hash": "sha256:", "bytes": 138427 } }, "source_items": [ - ["project_guide", "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", "sha256:a2b2d57cc56cddc4a8049e9df00da02577fcd729043aad065e2a47f84ca4372e"], - ["reviewer_program", "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", "sha256:297415ca932fd7109c63c03232afd0d73a0ce0b1237cd460a6b0cbec81e8995d"], - ["task_material", "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml", "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811"], - ["review_packet", "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", "sha256:42eb6fead00923488b1212d23ef756926849dd51087aa0490ca656e829e8b8ea"], - ["static_guard", "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", "sha256:73840f643300f873de7bfff017cfe00ed01659208800fd1c572362fc8a300b62"], - ["build_log", "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", "sha256:793b9c193beb4f7b4bad4aacf66f5a74a6007e420c3232039d96cfa8cf6fbf42"], - ["test_log", "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", "sha256:33e5d68026c8e84b7558e2389293edc9d8b9f366a37e40b449397cd1b5b6fd97"], - ["test_log", "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", "sha256:fb06dbd479c6a782297fde0f83414ff3f9bc456ece2c7e7098362f783730bbc2"] + ["project_guide", "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", "sha256:"], + ["reviewer_program", "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", "sha256:"], + ["task_material", "import:/fixtures/terminal-benchmark-reference-fixture/task.toml", "sha256:"], + ["review_packet", "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", "sha256:"], + ["static_guard", "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", "sha256:"], + ["build_log", "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", "sha256:"], + ["test_log", "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", "sha256:"], + ["test_log", "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", "sha256:"] ], "representative_task_material": { "items": [] @@ -179,7 +179,7 @@ Sufficiency-agent output: ```text status: passed agent_name: ProjectGuideSufficiencyAgent -source_snapshot_hash: sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb +source_snapshot_hash: sha256: ``` Submission-policy-derivation input: @@ -190,7 +190,7 @@ Submission-policy-derivation input: "sufficiency_report": { "status": "guide_sufficient", "findings": [], - "summary_hash": "sha256:2cfc87c9362a379ea96b21e57d2bc054abd5a523b939fe7c85c38428c844ab21", + "summary_hash": "sha256:", "agent_name": "ProjectGuideSufficiencyAgent", "agent_version": "workstream-sufficiency-agent-v0.1" } @@ -201,7 +201,7 @@ Submission-policy-derivation output: ```text derivation_source: agent_derivation -policy_hash: sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136 +policy_hash: sha256: ``` Final live submission requirements: @@ -246,7 +246,7 @@ Final live submission requirements: Compiled project pre-submit checker policy: ```text -compiled_bundle_hash: sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63 +compiled_bundle_hash: sha256: checker_names: - check_submission_packet - check_forbidden_files @@ -263,13 +263,13 @@ Task creation request used the current task contract only: ```json { - "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", "task_type": "terminal_benchmark", "difficulty": "medium", - "skill_tags": ["rust", "json", "seccomp", "containers", "cli"], + "skill_tags": ["rust", "json", "systems", "containers", "cli"], "source_type": "manual", - "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", - "external_task_id": "terminal-benchmark-1c027e78be41" + "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", + "external_task_id": "terminal-benchmark-reference-fixture" } ``` @@ -277,9 +277,9 @@ Locked task context after screening included: ```text locked_guide_version: v1 -locked_guide_source_snapshot_hash: sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb -locked_effective_project_submission_artifact_policy_hash: sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850 -locked_pre_submit_checker_bundle_hash: sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63 +locked_guide_source_snapshot_hash: sha256: +locked_effective_project_submission_artifact_policy_hash: sha256: +locked_pre_submit_checker_bundle_hash: sha256: ``` Worker work context reported: @@ -421,9 +421,9 @@ Final task response: ```text status: review_pending -locked_guide_source_snapshot_hash: sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb -locked_effective_project_submission_artifact_policy_hash: sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850 -locked_pre_submit_checker_bundle_hash: sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63 +locked_guide_source_snapshot_hash: sha256: +locked_effective_project_submission_artifact_policy_hash: sha256: +locked_pre_submit_checker_bundle_hash: sha256: ``` ## Audit Events @@ -483,7 +483,7 @@ Request body: ```json { "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": "", + "content_markdown": " bytes:138427>", "payment_policy": { "accepted_payment_rule": "pay_on_acceptance", "base_amount": "25.00", @@ -529,72 +529,72 @@ Request body: "items": [ { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:a2b2d57cc56cddc4a8049e9df00da02577fcd729043aad065e2a47f84ca4372e", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", + "content_excerpt": " bytes:6112>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "project_guide" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:297415ca932fd7109c63c03232afd0d73a0ce0b1237cd460a6b0cbec81e8995d", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", + "content_excerpt": " bytes:6000>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "reviewer_program" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml", + "content_excerpt": " bytes:1562>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/task.toml", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/toml", "source_kind": "task_material" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:42eb6fead00923488b1212d23ef756926849dd51087aa0490ca656e829e8b8ea", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", + "content_excerpt": " bytes:6184>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "review_packet" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:73840f643300f873de7bfff017cfe00ed01659208800fd1c572362fc8a300b62", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", + "content_excerpt": " bytes:612>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:793b9c193beb4f7b4bad4aacf66f5a74a6007e420c3232039d96cfa8cf6fbf42", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", + "content_excerpt": " bytes:6000>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:33e5d68026c8e84b7558e2389293edc9d8b9f366a37e40b449397cd1b5b6fd97", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", + "content_excerpt": " bytes:3926>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:fb06dbd479c6a782297fde0f83414ff3f9bc456ece2c7e7098362f783730bbc2", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", + "content_excerpt": " bytes:6000>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" @@ -611,7 +611,7 @@ Response body: { "approved_by": null, "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": "", + "content_markdown": " bytes:138427>", "created_at": "2026-07-08T23:43:31.606777Z", "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", "effective_at": null, @@ -651,7 +651,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": null, "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": null, "status": "queued", @@ -686,7 +686,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": null, "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_sufficiency_agent", @@ -721,7 +721,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": null, "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_sufficiency_agent", @@ -756,7 +756,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": null, "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_sufficiency_agent", @@ -791,7 +791,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", @@ -826,7 +826,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", @@ -861,7 +861,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", @@ -896,7 +896,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", @@ -931,7 +931,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", @@ -966,7 +966,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", @@ -1001,7 +1001,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", @@ -1036,7 +1036,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", @@ -1071,7 +1071,7 @@ Response body: "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", @@ -1106,7 +1106,7 @@ Response body: "output_submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "started_at": "2026-07-08T23:43:32.307172Z", "status": "policy_draft_ready", @@ -1138,10 +1138,10 @@ Response body: "guide_version": "v1", "id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "status": "passed", - "summary": "The guide provides sufficient reviewer criteria and workflow direction for this Terminus task review, including milestone structure, static guard handling, dependency pinning, Dockerfile requirements, test alignment, rubric rules, reward behavior, and category mapping.", + "summary": "The guide provides sufficient reviewer criteria and workflow direction for this Terminal Benchmark task review, including milestone structure, static guard handling, dependency pinning, Dockerfile requirements, test alignment, rubric rules, reward behavior, and category mapping.", "warnings_acknowledged_at": null, "warnings_acknowledged_by_actor": null, "warnings_acknowledged_by_role": null @@ -1401,21 +1401,21 @@ Response body: ], "schema_version": "project_submission_artifact_policy.v1" }, - "policy_hash": "sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136", + "policy_hash": "sha256:", "policy_version": "agent-9843f69ef5b7f7631f98a61d", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", "source_material_refs": [ - "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", - "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", - "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", - "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", - "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", + "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", + "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", + "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", + "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", + "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", - "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", - "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", - "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml" + "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", + "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", + "import:/fixtures/terminal-benchmark-reference-fixture/task.toml" ], - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "superseded_at": null, "supersedes_policy_id": null, @@ -2332,16 +2332,16 @@ Response body: "schema_version": "workstream_default_submission_artifact_policy.v1" } }, - "effective_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "effective_policy_hash": "sha256:", "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", "guide_version": "v1", "id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", "lifecycle_status": "approved", "merge_algorithm_version": "workstream_default_merge.v1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", - "submission_artifact_policy_hash": "sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136", + "submission_artifact_policy_hash": "sha256:", "submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", "superseded_at": null, "supersedes_effective_policy_id": null @@ -3255,16 +3255,16 @@ Response body: "schema_version": "workstream_default_submission_artifact_policy.v1" } }, - "effective_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "effective_policy_hash": "sha256:", "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", "guide_version": "v1", "id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", "lifecycle_status": "approved", "merge_algorithm_version": "workstream_default_merge.v1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", - "submission_artifact_policy_hash": "sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136", + "submission_artifact_policy_hash": "sha256:", "submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", "superseded_at": null, "supersedes_effective_policy_id": null @@ -3294,18 +3294,18 @@ Response body: "check_evidence_integrity", "check_low_quality_generated_artifacts" ], - "compiled_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "compiled_bundle_hash": "sha256:", "compiler_version": "workstream-pre-submit-compiler-v0.1", "created_at": "2026-07-08T23:44:02.228409Z", "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", - "effective_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "effective_policy_hash": "sha256:", "effective_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", "guide_version": "v1", "id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "lifecycle_status": "compiled", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "superseded_at": null, "supersedes_pre_submit_checker_policy_id": null @@ -4220,16 +4220,16 @@ Response body: "schema_version": "workstream_default_submission_artifact_policy.v1" } }, - "effective_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "effective_policy_hash": "sha256:", "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", "guide_version": "v1", "id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", "lifecycle_status": "approved", "merge_algorithm_version": "workstream_default_merge.v1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", - "submission_artifact_policy_hash": "sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136", + "submission_artifact_policy_hash": "sha256:", "submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", "superseded_at": null, "supersedes_effective_policy_id": null @@ -4237,7 +4237,7 @@ Response body: "guide": { "approved_by": "5080787a-cb3b-591d-9948-6b38354788ab", "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": "", + "content_markdown": " bytes:138427>", "created_at": "2026-07-08T23:43:31.606777Z", "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", "effective_at": "2026-07-08T23:44:03.147622Z", @@ -4249,7 +4249,7 @@ Response body: "version": "v1" }, "guide_source_snapshot": { - "bundle_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "bundle_hash": "sha256:", "captured_at": "2026-07-08T23:43:31.606777Z", "captured_by": "5080787a-cb3b-591d-9948-6b38354788ab", "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", @@ -4258,9 +4258,9 @@ Response body: "items": [ { "content_cid": null, - "content_hash": "sha256:793b9c193beb4f7b4bad4aacf66f5a74a6007e420c3232039d96cfa8cf6fbf42", + "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", "id": "c408d25e-6276-426f-a99e-ac6114db773b", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 0, @@ -4270,9 +4270,9 @@ Response body: }, { "content_cid": null, - "content_hash": "sha256:33e5d68026c8e84b7558e2389293edc9d8b9f366a37e40b449397cd1b5b6fd97", + "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", "id": "8531f065-4575-43c1-bf39-e51e0ae3cd07", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 1, @@ -4282,9 +4282,9 @@ Response body: }, { "content_cid": null, - "content_hash": "sha256:fb06dbd479c6a782297fde0f83414ff3f9bc456ece2c7e7098362f783730bbc2", + "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", "id": "45961844-d3cb-4418-b03f-3a3eeca32615", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 2, @@ -4294,9 +4294,9 @@ Response body: }, { "content_cid": null, - "content_hash": "sha256:73840f643300f873de7bfff017cfe00ed01659208800fd1c572362fc8a300b62", + "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", "id": "49d53b1d-1a81-45e1-9d37-7f519478c654", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 3, @@ -4306,9 +4306,9 @@ Response body: }, { "content_cid": null, - "content_hash": "sha256:a2b2d57cc56cddc4a8049e9df00da02577fcd729043aad065e2a47f84ca4372e", + "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", "id": "a23f68aa-b4d0-4dd5-aeba-d0d9a716f96c", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 4, @@ -4318,7 +4318,7 @@ Response body: }, { "content_cid": null, - "content_hash": "sha256:4b88e4bb333b1ff2d207ffedfde94c8350a814e3c89db8789a2d0a851397a042", + "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", "durable_ref": "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", "id": "f1b51900-4dac-47fd-9d93-97d975877cd8", @@ -4330,9 +4330,9 @@ Response body: }, { "content_cid": null, - "content_hash": "sha256:42eb6fead00923488b1212d23ef756926849dd51087aa0490ca656e829e8b8ea", + "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", "id": "61db2ff4-3495-49d4-80b3-78cc023f2e51", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 6, @@ -4342,9 +4342,9 @@ Response body: }, { "content_cid": null, - "content_hash": "sha256:297415ca932fd7109c63c03232afd0d73a0ce0b1237cd460a6b0cbec81e8995d", + "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", "id": "87c64c15-33d9-48f2-85a6-cb0ee5ddd932", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 7, @@ -4354,9 +4354,9 @@ Response body: }, { "content_cid": null, - "content_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/task.toml", "id": "316c8374-322d-4e49-a6d9-a581803cb32a", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 8, @@ -4369,45 +4369,45 @@ Response body: "items": [ { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:793b9c193beb4f7b4bad4aacf66f5a74a6007e420c3232039d96cfa8cf6fbf42", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", + "content_excerpt": " bytes:6000>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:33e5d68026c8e84b7558e2389293edc9d8b9f366a37e40b449397cd1b5b6fd97", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", + "content_excerpt": " bytes:3926>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:fb06dbd479c6a782297fde0f83414ff3f9bc456ece2c7e7098362f783730bbc2", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", + "content_excerpt": " bytes:6000>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:73840f643300f873de7bfff017cfe00ed01659208800fd1c572362fc8a300b62", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", + "content_excerpt": " bytes:612>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:a2b2d57cc56cddc4a8049e9df00da02577fcd729043aad065e2a47f84ca4372e", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", + "content_excerpt": " bytes:6112>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "project_guide" @@ -4415,7 +4415,7 @@ Response body: { "content_cid": null, "content_excerpt": null, - "content_hash": "sha256:4b88e4bb333b1ff2d207ffedfde94c8350a814e3c89db8789a2d0a851397a042", + "content_hash": "sha256:", "durable_ref": "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", "ingestion_adapter": "workstream_project_guide", "media_type": "application/json", @@ -4423,27 +4423,27 @@ Response body: }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:42eb6fead00923488b1212d23ef756926849dd51087aa0490ca656e829e8b8ea", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", + "content_excerpt": " bytes:6184>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "review_packet" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:297415ca932fd7109c63c03232afd0d73a0ce0b1237cd460a6b0cbec81e8995d", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", + "content_excerpt": " bytes:6000>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "reviewer_program" }, { "content_cid": null, - "content_excerpt": "", - "content_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", - "durable_ref": "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml", + "content_excerpt": " bytes:1562>", + "content_hash": "sha256:", + "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/task.toml", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/toml", "source_kind": "task_material" @@ -4465,10 +4465,10 @@ Response body: "guide_version": "v1", "id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "status": "passed", - "summary": "The guide provides sufficient reviewer criteria and workflow direction for this Terminus task review, including milestone structure, static guard handling, dependency pinning, Dockerfile requirements, test alignment, rubric rules, reward behavior, and category mapping.", + "summary": "The guide provides sufficient reviewer criteria and workflow direction for this Terminal Benchmark task review, including milestone structure, static guard handling, dependency pinning, Dockerfile requirements, test alignment, rubric rules, reward behavior, and category mapping.", "warnings_acknowledged_at": null, "warnings_acknowledged_by_actor": null, "warnings_acknowledged_by_role": null @@ -4493,7 +4493,7 @@ Response body: "created_at": "2026-07-08T23:43:31.606777Z", "guide_version": "v1", "id": "30095d84-e5c5-46e3-a292-3788bd34699f", - "policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "policy_hash": "sha256:", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", "required_checkers": [ "check_policy_context_present", @@ -4641,18 +4641,18 @@ Response body: "check_evidence_integrity", "check_low_quality_generated_artifacts" ], - "compiled_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "compiled_bundle_hash": "sha256:", "compiler_version": "workstream-pre-submit-compiler-v0.1", "created_at": "2026-07-08T23:44:02.228409Z", "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", - "effective_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "effective_policy_hash": "sha256:", "effective_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", "guide_version": "v1", "id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "lifecycle_status": "compiled", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "superseded_at": null, "supersedes_pre_submit_checker_policy_id": null @@ -4927,21 +4927,21 @@ Response body: ], "schema_version": "project_submission_artifact_policy.v1" }, - "policy_hash": "sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136", + "policy_hash": "sha256:", "policy_version": "agent-9843f69ef5b7f7631f98a61d", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", "source_material_refs": [ - "import:/fixtures/terminal-benchmark-1c027e78be41/docker_build.log", - "import:/fixtures/terminal-benchmark-1c027e78be41/oracle_test.log", - "import:/fixtures/terminal-benchmark-1c027e78be41/starter_m1_test.log", - "import:/fixtures/terminal-benchmark-1c027e78be41/static_guard.txt", - "import:/fixtures/terminal-benchmark-1c027e78be41/PROJECT_GUIDE.md", + "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", + "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", + "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", + "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", + "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", - "import:/fixtures/terminal-benchmark-1c027e78be41/review_packet.md", - "import:/fixtures/terminal-benchmark-1c027e78be41/REVIEWER_PROGRAM.md", - "import:/fixtures/terminal-benchmark-1c027e78be41/task.toml" + "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", + "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", + "import:/fixtures/terminal-benchmark-reference-fixture/task.toml" ], - "source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "source_snapshot_hash": "sha256:", "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "superseded_at": null, "supersedes_policy_id": null, @@ -4959,23 +4959,23 @@ Request body: ```json { "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", - "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "external_task_id": "terminal-benchmark-1c027e78be41", + "external_task_id": "terminal-benchmark-reference-fixture", "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", "skill_tags": [ "rust", "json", - "seccomp", + "systems", "containers", "cli" ], - "source_payload_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", - "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "source_payload_hash": "sha256:", + "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", "source_type": "manual", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api" + "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api" } ``` @@ -4986,26 +4986,26 @@ Response body: "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", "created_at": "2026-07-08T23:44:03.452947Z", "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", - "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "external_task_id": "terminal-benchmark-1c027e78be41", + "external_task_id": "terminal-benchmark-reference-fixture", "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", "skill_tags": [ "rust", "json", - "seccomp", + "systems", "containers", "cli" ], - "source_payload_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", - "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "source_payload_hash": "sha256:", + "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", "source_type": "manual", "status": "draft", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", "updated_at": "2026-07-08T23:44:03.452947Z" } ``` @@ -5031,18 +5031,18 @@ Response body: "created_at": "2026-07-08T23:44:03.452947Z", "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", "currency": "USD", - "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "external_task_id": "terminal-benchmark-1c027e78be41", + "external_task_id": "terminal-benchmark-reference-fixture", "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -5052,16 +5052,16 @@ Response body: "skill_tags": [ "rust", "json", - "seccomp", + "systems", "containers", "cli" ], - "source_payload_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", - "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "source_payload_hash": "sha256:", + "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", "source_type": "manual", "status": "screening", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", "updated_at": "2026-07-08T23:44:03.630101Z" } ``` @@ -5080,9 +5080,9 @@ Response body: ```json { - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", @@ -5118,10 +5118,10 @@ Response body: "schema_version": "post_submit_checker_policy.v1", "warning_checkers": [] }, - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -5151,18 +5151,18 @@ Response body: "created_at": "2026-07-08T23:44:03.452947Z", "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", "currency": "USD", - "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "external_task_id": "terminal-benchmark-1c027e78be41", + "external_task_id": "terminal-benchmark-reference-fixture", "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -5172,16 +5172,16 @@ Response body: "skill_tags": [ "rust", "json", - "seccomp", + "systems", "containers", "cli" ], - "source_payload_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", - "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "source_payload_hash": "sha256:", + "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", "source_type": "manual", "status": "ready", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", "updated_at": "2026-07-08T23:44:04.041939Z" } ``` @@ -5197,7 +5197,7 @@ Request body: "skill_tags": [ "rust", "json", - "seccomp", + "systems", "containers", "cli" ] @@ -5224,7 +5224,7 @@ Response body: "skill_tags": [ "rust", "json", - "seccomp", + "systems", "containers", "cli" ], @@ -5263,7 +5263,7 @@ Response body: "base_amount": "25.00", "created_at": "2026-07-08T23:44:03.452947Z", "currency": "USD", - "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", @@ -5277,14 +5277,14 @@ Response body: "skill_tags": [ "rust", "json", - "seccomp", + "systems", "containers", "cli" ], "source_type": "manual", "status": "claimed", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", "updated_at": "2026-07-08T23:44:04.503583Z" } } @@ -5310,7 +5310,7 @@ Response body: "base_amount": "25.00", "created_at": "2026-07-08T23:44:03.452947Z", "currency": "USD", - "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", @@ -5324,14 +5324,14 @@ Response body: "skill_tags": [ "rust", "json", - "seccomp", + "systems", "containers", "cli" ], "source_type": "manual", "status": "in_progress", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", "updated_at": "2026-07-08T23:44:04.727342Z" } ``` @@ -5350,9 +5350,9 @@ Response body: ```json { - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", @@ -5388,10 +5388,10 @@ Response body: "schema_version": "post_submit_checker_policy.v1", "warning_checkers": [] }, - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -5416,7 +5416,7 @@ Response body: { "guide": { "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": "", + "content_markdown": " bytes:138427>", "effective_at": "2026-07-08T23:44:03.147622Z", "id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", "version": "v1" @@ -5454,7 +5454,7 @@ Response body: "base_amount": "25.00", "created_at": "2026-07-08T23:44:03.452947Z", "currency": "USD", - "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", @@ -5465,13 +5465,13 @@ Response body: "skill_tags": [ "rust", "json", - "seccomp", + "systems", "containers", "cli" ], "status": "in_progress", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", "updated_at": "2026-07-08T23:44:04.727342Z" } } @@ -5918,117 +5918,117 @@ Request body: "artifact_hash_manifest": [ { "artifact": "environment/Dockerfile", - "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1327 }, { "artifact": "rubric.md", - "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 34 }, { "artifact": "task.toml", - "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1562 } ], "evidence_items": [ { - "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "hash": "sha256:", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "dependency_pinning_review" }, "size_bytes": 40, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" }, { - "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "hash": "sha256:", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "environment_hygiene_review" }, "size_bytes": 41, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" }, { - "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "hash": "sha256:", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "instructions_present" }, "size_bytes": 35, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" }, { - "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "hash": "sha256:", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "reward_footer_review" }, "size_bytes": 35, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" }, { - "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "hash": "sha256:", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "solution_present" }, "size_bytes": 31, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" }, { - "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "hash": "sha256:", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "submission_explanations" }, "size_bytes": 38, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" }, { - "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "hash": "sha256:", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "test_alignment_review" }, "size_bytes": 36, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" }, { - "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "hash": "sha256:", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "tests_present" }, "size_bytes": 28, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" } ], - "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", - "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", + "package_hash": "sha256:", + "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", "summary": "Blocked-path packet built from live requirements, missing environment/.dockerignore.", - "worker_attestation": "" + "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>" } } ``` @@ -6120,117 +6120,117 @@ Request body: "artifact_hash_manifest": [ { "artifact": "environment/Dockerfile", - "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1327 }, { "artifact": "rubric.md", - "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 34 }, { "artifact": "task.toml", - "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1562 } ], "evidence_items": [ { - "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "hash": "sha256:", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "dependency_pinning_review" }, "size_bytes": 40, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" }, { - "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "hash": "sha256:", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "environment_hygiene_review" }, "size_bytes": 41, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" }, { - "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "hash": "sha256:", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "instructions_present" }, "size_bytes": 35, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" }, { - "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "hash": "sha256:", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "reward_footer_review" }, "size_bytes": 35, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" }, { - "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "hash": "sha256:", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "solution_present" }, "size_bytes": 31, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" }, { - "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "hash": "sha256:", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "submission_explanations" }, "size_bytes": 38, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" }, { - "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "hash": "sha256:", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "test_alignment_review" }, "size_bytes": 36, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" }, { - "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "hash": "sha256:", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "tests_present" }, "size_bytes": 28, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" } ], - "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", - "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", + "package_hash": "sha256:", + "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", "summary": "Blocked-path packet built from live requirements, missing environment/.dockerignore.", - "worker_attestation": "" + "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>" } ``` @@ -6391,16 +6391,16 @@ Response body: "entity_type": "task", "event_payload": { "assigned_to": null, - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1" @@ -6426,16 +6426,16 @@ Response body: "entity_type": "task", "event_payload": { "assigned_to": null, - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1" @@ -6462,16 +6462,16 @@ Response body: "event_payload": { "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -6499,16 +6499,16 @@ Response body: "event_payload": { "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -6536,16 +6536,16 @@ Response body: "entity_type": "task", "event_payload": { "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -6645,123 +6645,123 @@ Request body: "artifact_hash_manifest": [ { "artifact": "environment/Dockerfile", - "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1327 }, { "artifact": "environment/.dockerignore", - "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 185 }, { "artifact": "rubric.md", - "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 34 }, { "artifact": "task.toml", - "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1562 } ], "evidence_items": [ { - "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "hash": "sha256:", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "dependency_pinning_review" }, "size_bytes": 40, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" }, { - "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "hash": "sha256:", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "environment_hygiene_review" }, "size_bytes": 41, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" }, { - "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "hash": "sha256:", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "instructions_present" }, "size_bytes": 35, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" }, { - "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "hash": "sha256:", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "reward_footer_review" }, "size_bytes": 35, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" }, { - "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "hash": "sha256:", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "solution_present" }, "size_bytes": 31, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" }, { - "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "hash": "sha256:", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "submission_explanations" }, "size_bytes": 38, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" }, { - "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "hash": "sha256:", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "test_alignment_review" }, "size_bytes": 36, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" }, { - "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "hash": "sha256:", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "tests_present" }, "size_bytes": 28, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" } ], - "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", - "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", - "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", - "worker_attestation": "" + "package_hash": "sha256:", + "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", + "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", + "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>" } } ``` @@ -6869,123 +6869,123 @@ Request body: "artifact_hash_manifest": [ { "artifact": "environment/Dockerfile", - "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1327 }, { "artifact": "environment/.dockerignore", - "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 185 }, { "artifact": "rubric.md", - "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 34 }, { "artifact": "task.toml", - "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1562 } ], "evidence_items": [ { - "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "hash": "sha256:", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "dependency_pinning_review" }, "size_bytes": 40, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" }, { - "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "hash": "sha256:", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "environment_hygiene_review" }, "size_bytes": 41, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" }, { - "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "hash": "sha256:", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "instructions_present" }, "size_bytes": 35, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" }, { - "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "hash": "sha256:", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "reward_footer_review" }, "size_bytes": 35, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" }, { - "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "hash": "sha256:", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "solution_present" }, "size_bytes": 31, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" }, { - "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "hash": "sha256:", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "submission_explanations" }, "size_bytes": 38, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" }, { - "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "hash": "sha256:", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "test_alignment_review" }, "size_bytes": 36, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" }, { - "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "hash": "sha256:", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "tests_present" }, "size_bytes": 28, "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" } ], - "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", - "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", - "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", - "worker_attestation": "" + "package_hash": "sha256:", + "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", + "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", + "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>" } ``` @@ -7070,7 +7070,7 @@ Response body: "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "status": "submitted", "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", + "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", "version": 1, "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" @@ -7169,7 +7169,7 @@ Response body: "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "status": "submitted", "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", + "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", "version": 1, "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" @@ -7212,25 +7212,25 @@ Response body: "artifact_hash_manifest": [ { "artifact": "environment/Dockerfile", - "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1327 }, { "artifact": "environment/.dockerignore", - "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 185 }, { "artifact": "rubric.md", - "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 34 }, { "artifact": "task.toml", - "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1562 } @@ -7239,144 +7239,144 @@ Response body: { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "hash": "sha256:", "id": "0807ade0-2c5a-4128-a253-e3f6307c6e69", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "dependency_pinning_review" }, "size_bytes": 40, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "hash": "sha256:", "id": "21e8b24f-51d8-4934-96dd-6608b9d54082", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "environment_hygiene_review" }, "size_bytes": 41, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "hash": "sha256:", "id": "06f50e90-b055-485e-bda4-289ffa822025", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "instructions_present" }, "size_bytes": 35, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "hash": "sha256:", "id": "f21c9ab2-cc6d-466b-a2fb-817ae8741918", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "reward_footer_review" }, "size_bytes": 35, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "hash": "sha256:", "id": "40eb6111-adeb-48ba-9333-ddaa8340a768", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "solution_present" }, "size_bytes": 31, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "hash": "sha256:", "id": "d94c5f46-a286-44cc-a19b-2e4890be3ef8", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "submission_explanations" }, "size_bytes": 38, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "hash": "sha256:", "id": "f0d58929-efa4-446f-bb72-04c7a2c14a77", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "test_alignment_review" }, "size_bytes": 36, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "hash": "sha256:", "id": "afdb97ca-4a8d-46de-9d7f-34f4c7468242", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "tests_present" }, "size_bytes": 28, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" } ], "finalized_at": "2026-07-08T23:45:18.750577Z", "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", - "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", - "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", + "package_hash": "sha256:", + "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", "status": "submitted", "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", + "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", "version": 1, - "worker_attestation": "", + "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>", "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" } ``` @@ -7398,25 +7398,25 @@ Response body: "artifact_hash_manifest": [ { "artifact": "environment/Dockerfile", - "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1327 }, { "artifact": "environment/.dockerignore", - "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 185 }, { "artifact": "rubric.md", - "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 34 }, { "artifact": "task.toml", - "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1562 } @@ -7425,144 +7425,144 @@ Response body: { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:054bfe7027e1d80dbbcc44e9ccb077714e482d7bdef7abbdf9cee10dea17966a", + "hash": "sha256:", "id": "0807ade0-2c5a-4128-a253-e3f6307c6e69", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "dependency_pinning_review" }, "size_bytes": 40, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:693734646cdc384030f735f2cf8b74da1fcf5fe1f12e0e53237ecf13016de751", + "hash": "sha256:", "id": "21e8b24f-51d8-4934-96dd-6608b9d54082", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "environment_hygiene_review" }, "size_bytes": 41, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:37f31815061bdb7ad0d0c0c1e46ad7382b77df61c36583e3a704c87c763d99ca", + "hash": "sha256:", "id": "06f50e90-b055-485e-bda4-289ffa822025", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "instructions_present" }, "size_bytes": 35, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:a88f98916343d1e1aac53d6fd09b9d3be01c322bce792a06074d0a2d46b27659", + "hash": "sha256:", "id": "f21c9ab2-cc6d-466b-a2fb-817ae8741918", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "reward_footer_review" }, "size_bytes": 35, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:71feef897c3a79358318bf8b2634fce6c928ddd5303b57293b93be063bd8d20a", + "hash": "sha256:", "id": "40eb6111-adeb-48ba-9333-ddaa8340a768", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "solution_present" }, "size_bytes": 31, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/solution_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:c82ac87b125cad1ca6928d1fed6b9190fda594c239a84c34dc9a2f77b2d10021", + "hash": "sha256:", "id": "d94c5f46-a286-44cc-a19b-2e4890be3ef8", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "submission_explanations" }, "size_bytes": 38, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:d4390376e1a3875eb88b7b404f0c02cc5cfb5aa123d087ce5890ad13dd6accc1", + "hash": "sha256:", "id": "f0d58929-efa4-446f-bb72-04c7a2c14a77", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "test_alignment_review" }, "size_bytes": 36, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:a89843ff6d20f721ed2b958b37046e740c53dad7c0e7fdd928b97e3e16e885ce", + "hash": "sha256:", "id": "afdb97ca-4a8d-46de-9d7f-34f4c7468242", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-1c027e78be41", + "fixture_id": "terminal-benchmark-reference-fixture", "required_evidence_key": "tests_present" }, "size_bytes": 28, "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "type": "log", - "uri": "local://termius/terminal-benchmark-1c027e78be41/evidence/tests_present.txt" + "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" } ], "finalized_at": "2026-07-08T23:45:18.750577Z", "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", - "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", - "package_uri": "local://termius/terminal-benchmark-1c027e78be41/submission.zip", + "package_hash": "sha256:", + "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", "status": "submitted", "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark terminal-benchmark-1c027e78be41 packet built from live submission requirements.", + "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", "version": 1, - "worker_attestation": "", + "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>", "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" } ``` @@ -7585,30 +7585,30 @@ Response body: "artifact_hash_manifest": [ { "artifact": "environment/Dockerfile", - "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1327 }, { "artifact": "environment/.dockerignore", - "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 185 }, { "artifact": "rubric.md", - "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 34 }, { "artifact": "task.toml", - "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1562 } ], - "artifact_manifest_hash": "sha256:69c050a6f5042e96d4775d666722bc5f5f231a64052e4e37ebee8c978df36eb6", + "artifact_manifest_hash": "sha256:", "attempt_number": 1, "audit_event_id": "b79137c1-398e-4826-9147-9179aa07eb00", "blocking_count": 0, @@ -7619,13 +7619,13 @@ Response body: "is_current_for_submission": true, "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "outcome_source": "none", - "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "package_hash": "sha256:", "passed_count": 8, "queued_at": "2026-07-08T23:45:18.592353Z", "results": [ @@ -7686,7 +7686,7 @@ Response body: "message": "Artifact manifest and evidence references are structurally valid.", "metadata": { "artifact_count": 4, - "artifact_manifest_hash": "sha256:69c050a6f5042e96d4775d666722bc5f5f231a64052e4e37ebee8c978df36eb6" + "artifact_manifest_hash": "sha256:" }, "severity": "info", "status": "passed", @@ -7795,30 +7795,30 @@ Response body: "artifact_hash_manifest": [ { "artifact": "environment/Dockerfile", - "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1327 }, { "artifact": "environment/.dockerignore", - "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 185 }, { "artifact": "rubric.md", - "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 34 }, { "artifact": "task.toml", - "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1562 } ], - "artifact_manifest_hash": "sha256:69c050a6f5042e96d4775d666722bc5f5f231a64052e4e37ebee8c978df36eb6", + "artifact_manifest_hash": "sha256:", "attempt_number": 1, "audit_event_id": "b79137c1-398e-4826-9147-9179aa07eb00", "blocking_count": 0, @@ -7829,13 +7829,13 @@ Response body: "is_current_for_submission": true, "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "outcome_source": "none", - "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "package_hash": "sha256:", "passed_count": 8, "queued_at": "2026-07-08T23:45:18.592353Z", "results": [ @@ -7896,7 +7896,7 @@ Response body: "message": "Artifact manifest and evidence references are structurally valid.", "metadata": { "artifact_count": 4, - "artifact_manifest_hash": "sha256:69c050a6f5042e96d4775d666722bc5f5f231a64052e4e37ebee8c978df36eb6" + "artifact_manifest_hash": "sha256:" }, "severity": "info", "status": "passed", @@ -8049,16 +8049,16 @@ Response body: "entity_type": "task", "event_payload": { "assigned_to": null, - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1" @@ -8084,16 +8084,16 @@ Response body: "entity_type": "task", "event_payload": { "assigned_to": null, - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1" @@ -8120,16 +8120,16 @@ Response body: "event_payload": { "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -8157,16 +8157,16 @@ Response body: "event_payload": { "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -8194,16 +8194,16 @@ Response body: "entity_type": "task", "event_payload": { "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -8302,45 +8302,45 @@ Response body: "artifact_hash_manifest": [ { "artifact": "environment/Dockerfile", - "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1327 }, { "artifact": "environment/.dockerignore", - "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 185 }, { "artifact": "rubric.md", - "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 34 }, { "artifact": "task.toml", - "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1562 } ], "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", "finalized_at": null, - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", - "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "package_hash": "sha256:", "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "submission_version": 1, "supersedes_submission_id": null, @@ -8369,45 +8369,45 @@ Response body: "artifact_hash_manifest": [ { "artifact": "environment/Dockerfile", - "hash": "sha256:c91a62df2e7075d06fa53255f331f19559d301549201ae693ae3a465891087fa", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1327 }, { "artifact": "environment/.dockerignore", - "hash": "sha256:cb2d67a46a111652f3bb388ee15d455eed7542905bdc61cd2a3c6d2fc23cc709", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 185 }, { "artifact": "rubric.md", - "hash": "sha256:4786d11876205560bb85de2ab09b333645b714c43d6f46bee27ef6b0b410816e", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 34 }, { "artifact": "task.toml", - "hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", + "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", "size_bytes": 1562 } ], "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", "finalized_at": "2026-07-08T23:45:18.750577+00:00", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", - "package_hash": "sha256:24297fe175abfa9998d0195e0a990e9e9557e8b361afb1fd0680c0e9d41889fd", + "package_hash": "sha256:", "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", "submission_version": 1, "supersedes_submission_id": null, @@ -8435,7 +8435,7 @@ Response body: "event_payload": { "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", "locked_review_policy_version": "v1", @@ -8474,7 +8474,7 @@ Response body: "failed_count": 0, "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:e2730e8ecea2eca2d8dce218ba1548f7c675d801045b58e1f211df3a35bdc41d", + "locked_post_submit_checker_policy_hash": "sha256:", "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", "locked_post_submit_checker_policy_version": "v1", "locked_review_policy_version": "v1", @@ -8524,18 +8524,18 @@ Response body: "created_at": "2026-07-08T23:44:03.452947Z", "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", "currency": "USD", - "description": "Real Terminal Benchmark reviewer fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", + "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "external_task_id": "terminal-benchmark-1c027e78be41", + "external_task_id": "terminal-benchmark-reference-fixture", "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", - "locked_effective_project_submission_artifact_policy_hash": "sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850", + "locked_effective_project_submission_artifact_policy_hash": "sha256:", "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "locked_guide_source_snapshot_hash": "sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb", + "locked_guide_source_snapshot_hash": "sha256:", "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63", + "locked_pre_submit_checker_bundle_hash": "sha256:", "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -8545,16 +8545,16 @@ Response body: "skill_tags": [ "rust", "json", - "seccomp", + "systems", "containers", "cli" ], - "source_payload_hash": "sha256:4a464edbf1b9047733412e228af0755227f2e44440125761c094324cff3a3811", - "source_ref": "terminal-benchmark/terminal-benchmark-1c027e78be41/live-api/ws16-clean-cb1540ba", + "source_payload_hash": "sha256:", + "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", "source_type": "manual", "status": "review_pending", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-1c027e78be41 live-api", + "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", "updated_at": "2026-07-08T23:45:18.592353Z" } ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md index 402dae66f..cde293677 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md @@ -87,10 +87,10 @@ Final clean run: project_id: 36331e8e-c849-484d-9e9e-c8ebc2f70130 guide_id: fbe0b2ab-2793-4619-a414-ed083d9cc117 source_snapshot_id: 2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b -source_snapshot_hash: sha256:9843f69ef5b7f7631f98a61dcd0a5be4c592be597fc859d9e5ac8142bdf606fb -submission_artifact_policy_hash: sha256:aa0cf8add77b6d193e5f3ffa1bf22f0fd21f27e484e4aa027e693d77b3624136 -effective_policy_hash: sha256:5595f7aa03a671ff81decf94e0a2edd18189391c7524b0367277f177a0b01850 -pre_submit_checker_bundle_hash: sha256:aa7bb902a63cb031a809533cf1939e1fc1dc47f3834aead923c9679e0302aa63 +source_snapshot_hash: sha256: +submission_artifact_policy_hash: sha256: +effective_policy_hash: sha256: +pre_submit_checker_bundle_hash: sha256: task_id: d8cfda33-6c7e-461a-bdcd-036a6cefeda3 submission_id: ba25f15a-e36a-4925-9891-09d394eae2ec checker_run_id: d7885348-fd08-4820-b209-36a704765a2b diff --git a/docs/review_closure.md b/docs/review_closure.md index fbe28c5c9..155adc525 100644 --- a/docs/review_closure.md +++ b/docs/review_closure.md @@ -10,7 +10,7 @@ Planning package in `/home/abiorh/flow/workstream`. - systems architecture review - operations review - adversarial quality review -- process-pattern baseline review against `/home/abiorh/snorkel` metadata +- process-pattern baseline review against `local reference workspace` metadata ## Closure Decision diff --git a/docs/review_process_baseline_operations_review.md b/docs/review_process_baseline_operations_review.md index adbfe0524..8a42e31d0 100644 --- a/docs/review_process_baseline_operations_review.md +++ b/docs/review_process_baseline_operations_review.md @@ -5,7 +5,7 @@ Reviewer role: Operations and Review Workflow Reviewer. Scope: - markdown docs in `/home/abiorh/flow/workstream` -- metadata-level process patterns under `/home/abiorh/snorkel` +- metadata-level process patterns under `local reference workspace` - no task content, private data, or confidential project details copied ## Findings @@ -26,7 +26,7 @@ Status: fixed in `docs/process_pattern_baseline.md`. Finding: -The Snorkel-style projects often have review guards, simulation gates, or screening lanes before work is treated as ready. Workstream would break in daily use if weak tasks went straight from draft to ready. +The reference evaluation projects often have review guards, simulation gates, or screening lanes before work is treated as ready. Workstream would break in daily use if weak tasks went straight from draft to ready. Suggested change: @@ -62,7 +62,7 @@ Status: fixed in `docs/operations_queue_policy.md`. Finding: -Geranium-like and review-guard-heavy workflows show the value of pretending to reject the task before release. Workstream needed this as an operational gate. +Reference review-guard-heavy workflows show the value of pretending to reject the task before release. Workstream needed this as an operational gate. Suggested change: diff --git a/docs/review_process_pattern_baseline_review.md b/docs/review_process_pattern_baseline_review.md index cc9f96818..af021a979 100644 --- a/docs/review_process_pattern_baseline_review.md +++ b/docs/review_process_pattern_baseline_review.md @@ -1,8 +1,8 @@ # Process Pattern Baseline Review -Review scope: metadata-level inspection only under `/home/abiorh/snorkel`. No task content copied. +Review scope: metadata-level inspection only under `local reference workspace`. No task content copied. -Projects inspected: Sequoia, Geranium, Excalibur, Marlin, Termius. +Projects inspected: several reference evaluation projects. ## Baseline Patterns Observed @@ -26,7 +26,7 @@ Suggested change: add an operations doc for project workspace conventions and ad ### High: Workstream needs a pre-review simulation gate -Geranium and Sequoia patterns show review guard plus adversarial/reviewer simulation before calling work ready. Workstream has subagent review protocol but not a productized gate in the lifecycle. +reference project patterns show review guard plus adversarial/reviewer simulation before calling work ready. Workstream has subagent review protocol but not a productized gate in the lifecycle. Suggested change: add `pre_review_gate` as an optional checker phase before `REVIEW_PENDING`, and add reviewer simulation to checker policy/project templates. diff --git a/docs/review_systems_architecture_review.md b/docs/review_systems_architecture_review.md index 5be75f16a..33e5a7725 100644 --- a/docs/review_systems_architecture_review.md +++ b/docs/review_systems_architecture_review.md @@ -56,7 +56,7 @@ Status: fixed in `README.md`. ## Baseline Scope Update -Baseline scanned at metadata/process level only under `/home/abiorh/snorkel`, covering Sequoia, Geranium, Excalibur, Marlin, and Termius. The scan looked at guide names/headings, queue/status structures, review guards, checker/preflight scripts, review packet/evidence/status patterns, and submission package/provenance structures. No task content or confidential details were copied. +Baseline scanned at metadata/process level only under `local reference workspace`, covering several reference projects. The scan looked at guide names/headings, queue/status structures, review guards, checker/preflight scripts, review packet/evidence/status patterns, and submission package/provenance structures. No task content or confidential details were copied. ### Medium: Packaged submission provenance should be first-class diff --git a/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md b/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md index bc19d9c89..1385c8924 100644 --- a/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md +++ b/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md @@ -97,11 +97,11 @@ Date: 2026-07-05 Purpose: -Record that a real Terminal Benchmark reviewer fixture was used in formal +Record that a real Terminal Benchmark reference fixture was used in formal `.agent-loop` evidence to prove the current Workstream policy-bundle path: - project guide creation -- immutable guide-source snapshot from real Termius guide, reviewer, task, and +- immutable guide-source snapshot from real Terminal Benchmark guide, review program, task, and review packet material - guide sufficiency report - project `SubmissionArtifactPolicy` @@ -158,8 +158,8 @@ Live API sequence: - health check returned `ok` - project manager created project -- project manager created a project guide with full Termius submission program, - reviewer project guide, reviewer program, task TOML, and review packet content +- project manager created a project guide with full Terminal Benchmark submission program, + project guide, review program, task TOML, and review packet content - project manager created an immutable guide-source snapshot with source hashes and sanitized durable refs - `ProjectGuideSufficiencyAgent` endpoint returned `passed` @@ -191,9 +191,9 @@ Live IDs captured from local HTTP API responses: - agent-derived policy draft: `2838434c-7695-4037-a6d4-531f860a07a6` - admin exact policy: `dc2e054b-5ce1-49fe-8388-49eb0ec7f992` - effective project submission artifact policy hash: - `sha256:38213716e58f10f0916029f91a882681dc52136c9460a958bb4780b070da82f8` + `sha256:` - compiled pre-submit checker hash: - `sha256:1dc2e4b8e9a509e26f6fff8a6da68fbc7340654ecc135d025351173501265855` + `sha256:` - clean task: `9fd7be8f-5886-403b-8ce7-faba37705e72` - clean submission: `ad0d08f9-4b91-4363-85e9-d8a7b6e055a8` - clean checker run: `4e72cf39-3348-48b1-8d1a-b3ae17433c65` diff --git a/examples/terminal_benchmark/README.md b/examples/terminal_benchmark/README.md index fcf56985b..f2401084f 100644 --- a/examples/terminal_benchmark/README.md +++ b/examples/terminal_benchmark/README.md @@ -24,15 +24,15 @@ approved `.agent-loop` or `docs/internal_reviews` paths for that chunk. - `WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL`. - `WORKSTREAM_TERMINAL_BENCH_FIXTURE` pointing at one local Terminal Benchmark source-material directory. -- `WORKSTREAM_TERMIUS_REVIEWER_ROOT` when the source-material directory is not under a - Termius reviewer root containing `PROJECT_GUIDE.md` and +- `WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT` when the source-material directory is not under a + Terminal Benchmark reference root containing `PROJECT_GUIDE.md` and `REVIEWER_PROGRAM.md`. - Backend dependencies installed. The script fails closed unless `WORKSTREAM_DATABASE_URL` points to local async Postgres using `workstream_test` or `test_workstream`. -The source-material path should point at a local Termius reviewer directory containing +The source-material path should point at a local Terminal Benchmark reference directory containing `extracted/task.toml`, one `*_submission_*.zip`, one `review_packet_*.md`, `static_guard.txt`, `docker_build.log`, `oracle_test.log`, and `starter_m1_test.log`. Keep the concrete local path in your shell environment; @@ -46,7 +46,7 @@ runtime fallback. The authoritative proof for `WS-POL-001-06` was a live manual HTTP drill: 1. create a project; -2. create a project guide containing Termius submission, reviewer, task, and +2. create a project guide containing Terminal Benchmark submission, review, task, and review packet material; 3. create a guide-source snapshot with source hashes and excerpts; 4. run the guide sufficiency agent endpoint; @@ -66,6 +66,6 @@ WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:543 OPENAI_API_KEY="$OPENAI_API_KEY" \ WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL="${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:?set model}" \ WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/terminal-benchmark-source-material \ -WORKSTREAM_TERMIUS_REVIEWER_ROOT=/path/to/termius_reviewer \ +WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root \ .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py ``` diff --git a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py index cc930c091..043bdda9d 100644 --- a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py +++ b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py @@ -1,7 +1,7 @@ """Run real Terminal Benchmark source material through the current API contracts. This is an example drill, not Workstream runtime code and not a required CI -test. It expects a local reviewer source-material path through +test. It expects a local reference source-material path through ``WORKSTREAM_TERMINAL_BENCH_FIXTURE`` and writes only to a local test Postgres database. """ @@ -54,7 +54,7 @@ ) FIXTURE_ENV_VAR = "WORKSTREAM_TERMINAL_BENCH_FIXTURE" -REVIEWER_ROOT_ENV_VAR = "WORKSTREAM_TERMIUS_REVIEWER_ROOT" +GUIDE_ROOT_ENV_VAR = "WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT" LOCAL_DATABASE_HOSTS = {"localhost", "127.0.0.1", "::1"} LOCAL_DATABASE_NAMES = {"workstream_test", "test_workstream"} ASYNC_POSTGRES_SCHEMES = {"postgresql+asyncpg"} @@ -67,7 +67,7 @@ @dataclass(frozen=True) class FixtureFile: - """Real file from the Terminal Benchmark reviewer fixture.""" + """Real file from the Terminal Benchmark reference fixture.""" artifact_name: str path: Path @@ -106,15 +106,15 @@ def fixture_root() -> Path: ) return root.resolve() raise RuntimeError( - f"{FIXTURE_ENV_VAR} is required. Point it at one Terminal Benchmark reviewer " - "source-material directory, for example a Termius review folder containing extracted/task.toml, " + f"{FIXTURE_ENV_VAR} is required. Point it at one Terminal Benchmark " + "source-material directory, for example a prepared fixture directory containing extracted/task.toml, " "one *_submission_*.zip, one review_packet_*.md, static_guard.txt, and verifier logs." ) -def reviewer_root(fixture_root_path: Path) -> Path: - """Resolve the Termius reviewer root containing real guide/program material.""" - configured = os.environ.get(REVIEWER_ROOT_ENV_VAR) +def guide_root(fixture_root_path: Path) -> Path: + """Resolve the Terminal Benchmark reference root containing guide/program material.""" + configured = os.environ.get(GUIDE_ROOT_ENV_VAR) candidates = [] if configured: candidates.append(Path(configured).expanduser()) @@ -126,8 +126,8 @@ def reviewer_root(fixture_root_path: Path) -> Path: if project_guide.is_file() and reviewer_program.is_file(): return candidate.resolve() raise RuntimeError( - f"could not find PROJECT_GUIDE.md and REVIEWER_PROGRAM.md. Set {REVIEWER_ROOT_ENV_VAR} " - "to the local Termius reviewer root." + f"could not find PROJECT_GUIDE.md and REVIEWER_PROGRAM.md. Set {GUIDE_ROOT_ENV_VAR} " + "to the local Terminal Benchmark reference root." ) @@ -200,10 +200,10 @@ def assert_strict_local_database_url(database_url: str) -> None: def load_fixture(root: Path) -> TerminalBenchmarkFixture: - """Load and validate a Terminal Benchmark reviewer fixture. + """Load and validate a Terminal Benchmark reference fixture. Args: - root: Fixture directory copied from the Termius reviewer workspace. + root: Prepared fixture directory copied from Terminal Benchmark reference material. Returns: Parsed fixture paths and metadata. @@ -224,12 +224,12 @@ def load_fixture(root: Path) -> TerminalBenchmarkFixture: with task_toml.open("rb") as file: task_config = tomllib.load(file) - termius_root = reviewer_root(root) + guide_material_root = guide_root(root) return TerminalBenchmarkFixture( root=root, fixture_id=sanitized_fixture_id(task_toml, submission_zip), - project_guide=termius_root / "PROJECT_GUIDE.md", - reviewer_program=termius_root / "REVIEWER_PROGRAM.md", + project_guide=guide_material_root / "PROJECT_GUIDE.md", + reviewer_program=guide_material_root / "REVIEWER_PROGRAM.md", task_toml=task_toml, submission_zip=submission_zip, static_guard=root / "static_guard.txt", @@ -292,7 +292,7 @@ def evidence_entry(file: FixtureFile, fixture: TerminalBenchmarkFixture) -> dict return { "type": "log", "label": file.label, - "uri": f"local://termius/{fixture.fixture_id}/{file.artifact_name}", + "uri": f"local://terminal-benchmark/{fixture.fixture_id}/{file.artifact_name}", "hash": sha256_token(file.path), "size_bytes": file.path.stat().st_size, "metadata": { @@ -311,7 +311,7 @@ def fixture_files(fixture: TerminalBenchmarkFixture) -> list[FixtureFile]: "submission.zip", fixture.submission_zip, "original submission zip", - "original reviewer-side submission archive", + "original submission archive", ), FixtureFile( "task.toml", @@ -323,13 +323,13 @@ def fixture_files(fixture: TerminalBenchmarkFixture) -> list[FixtureFile]: "static_guard.txt", fixture.static_guard, "platform static guard output", - "static guard output captured by the reviewer", + "static guard output captured with the fixture", ), FixtureFile( "review_packet.md", fixture.review_packet, "automated review packet", - "AutoEval and reviewer packet evidence", + "AutoEval and review packet evidence", ), FixtureFile( "docker_build.log", @@ -361,7 +361,7 @@ def task_payload(fixture: TerminalBenchmarkFixture, run_id: str, suffix: str) -> return { "title": f"Terminal Benchmark {fixture.fixture_id} {suffix}", "description": ( - "Real Terminal Benchmark reviewer fixture with " + "Real Terminal Benchmark reference fixture with " f"{milestone_count} milestones, languages={metadata['languages']}, " f"category={metadata['category']}." ), @@ -394,9 +394,9 @@ def guide_payload(fixture: TerminalBenchmarkFixture, run_id: str) -> dict: "content_markdown": ( f"# Terminal Benchmark Guide {run_id}\n\n" f"Fixture: `{fixture.fixture_id}`\n\n" - "## Termius Project Guide\n\n" + "## Terminal Benchmark Project Guide\n\n" f"{project_guide}\n\n" - "## Termius Reviewer Program\n\n" + "## Terminal Benchmark Reference Program\n\n" f"{reviewer_program}\n\n" "## Selected Terminal Benchmark Task TOML\n\n" "```toml\n" @@ -452,13 +452,13 @@ def submission_payload( files = [file for file in files if file.artifact_name != "static_guard.txt"] summary = ( f"Terminal Benchmark {fixture.fixture_id} packet {suffix} from real " - "reviewer-side fixture evidence." + "reference fixture evidence." ) if low_quality_signal: summary += " Placeholder sample output requires reviewer revision." return { "summary": summary, - "package_uri": f"local://termius/{fixture.fixture_id}/submission.zip", + "package_uri": f"local://terminal-benchmark/{fixture.fixture_id}/submission.zip", "package_hash": sha256_token(fixture.submission_zip), "artifact_hash_manifest": [artifact_entry(file) for file in files], "worker_attestation": STRONG_ATTESTATION, From a0662dad2a8307be838405ac568611d71f01d409 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 04:20:16 +0100 Subject: [PATCH 05/17] docs: harden terminal benchmark evidence redaction --- ...ge-loop-memory-internal-review-evidence.md | 4 +- ...01-16-terminal-benchmark-live-api-drill.md | 57 +- .../WS-POL-001-14-external-review-response.md | 2 +- .../WS-POL-001-14-internal-review-evidence.md | 2 +- .../reviews/WS-POL-001-14-pr-trust-bundle.md | 2 +- .../WS-POL-001-15-internal-review-evidence.md | 2 +- .../reviews/WS-POL-001-15-pr-trust-bundle.md | 2 +- .../WS-POL-001-16-internal-review-evidence.md | 22 +- .../WS-POL-001-16-live-api-drill-evidence.md | 1773 +++++++++-------- .../reviews/WS-POL-001-16-pr-trust-bundle.md | 26 +- docs/review_closure.md | 2 +- ...view_process_baseline_operations_review.md | 2 +- docs/review_systems_architecture_review.md | 2 +- .../LOCAL_VALIDATION_NOTES.md | 26 +- 14 files changed, 998 insertions(+), 926 deletions(-) diff --git a/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md b/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md index 5e90b372a..54fd7a79e 100644 --- a/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md @@ -34,7 +34,7 @@ After reviewed SHA `f4fe5f3c4fbdd626bbc6d3f837aeca1cceb6e9ca`, the only committe ## Valid Findings Addressed -- Local Workstream directory confusion: identified `/home/abiorh/flow/workstream` as a separate dirty feature branch, not `main`, and left unrelated checker/test changes untouched. +- Local Workstream directory confusion: identified `` as a separate dirty feature branch, not `main`, and left unrelated checker/test changes untouched. - Stale merged-loop memory: updated `.agent-loop/LOOP_STATE.md`, initiative `STATUS.md`, `WORK_QUEUE.md`, and `REVIEW_LOG.md` to reflect that PR #23 is merged. - Missing main enforcement: added the verified workflow path `.github/workflows/loop-memory.yml` so merged loop memory is checked on pushes to `main`. - Over-broad local-state test risk: changed loop-memory regression tests to use fixture files instead of the live repository state. @@ -54,4 +54,4 @@ git diff --check HEAD~1..HEAD ## Remaining Risks -- `/home/abiorh/flow/workstream` remains dirty on `codex/submission-artifact-policy-docs` with unrelated checker/revision testing changes. Those changes were not modified here because they are outside PR #24. +- `` remains dirty on `codex/submission-artifact-policy-docs` with unrelated checker/revision testing changes. Those changes were not modified here because they are outside PR #24. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md index 8ca550efa..b46411f7e 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md @@ -75,6 +75,12 @@ concrete finding instead of broadening implementation scope silently. values, signed URLs, query credentials, and local secret paths must never be committed, printed in evidence, or included in request/response transcripts. - Evidence must redact credential-shaped values as ``. +- Public PR evidence must also redact local source-material fingerprints when + the fixture comes from private operator material. This includes exact fixture + ids, local database UUIDs, exact source-material hashes, exact package hashes, + exact artifact byte counts, and source-specific task identifiers. The + evidence must state this boundary clearly and must not replace sensitive + values with plausible fake literals. ## Authorization Boundary @@ -120,6 +126,35 @@ docs/roadmap_status.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-external-review-response.md ``` +## Privacy Scrub Amendment + +After human review identified that earlier evidence and the standalone example +still exposed private/local source identifiers, this chunk permits a bounded +privacy scrub in addition to the original drill evidence scope. + +Additional files allowed only for this scrub: + +```text +examples/terminal_benchmark/README.md +examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md +examples/terminal_benchmark/terminal_benchmark_api_e2e.py +docs/review_closure.md +docs/review_process_baseline_operations_review.md +docs/review_process_pattern_baseline_review.md +docs/review_systems_architecture_review.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-pr-trust-bundle.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md +``` + +This amendment does not allow backend, API, migration, test, CI, auth, +payment, reputation, or product behavior changes. + ## Not Allowed ```text @@ -127,7 +162,7 @@ backend/alembic/versions/** backend/app/** backend/tests/** backend/scripts/** -examples/terminal_benchmark/** +examples/terminal_benchmark/** except the privacy-scrub files listed above backend/app/adapters/auth/** backend/app/adapters/project_agents/openai_agent_sdk.py backend/app/core/config.py @@ -143,13 +178,19 @@ public API/schema behavior changes without a new approved implementation chunk ## Acceptance Criteria -- The chunk records the exact Terminal Benchmark source material used for the - project guide/source snapshot using sanitized durable refs, fixture ids, - relative/public-safe labels, content hashes, and API-visible source snapshot - id/hash only. +- The chunk records the Terminal Benchmark source-material flow used for the + project guide/source snapshot using sanitized durable refs and + relative/public-safe labels. Because the source fixture came from private + local operator material, public PR evidence must redact exact fixture ids, + local database UUIDs, source-material hashes, package hashes, artifact byte + counts, and source-specific task identifiers. - Persisted snapshots and review evidence contain no raw local filesystem paths, signed URLs, credential-bearing refs, token-bearing refs, or unsafe source refs. +- Redacted fields in public evidence use explicit placeholders such as + ``, ``, ``, and + `sha256:`; they must not be presented as literal replayable API + values. - The drill shows each API request body and response body for the human review path with credentials and local secret paths redacted. - The drill shows sufficiency-agent input and output. @@ -194,8 +235,10 @@ The formal live-drill transcript must be committed to: Required sections: - local stack and environment summary, with secret values redacted -- source-material manifest with sanitized durable refs, relative/public-safe - labels, content hashes, fixture id, and API-visible source snapshot id/hash +- source-material manifest with sanitized durable refs and relative/public-safe + labels; public evidence must redact exact content hashes, exact fixture ids, + local UUIDs, and exact byte counts when they fingerprint private local source + material - ordered HTTP request/response transcript for project creation, guide creation, source snapshot capture, setup-run polling, sufficiency result, warning acknowledgement when applicable, derived policy visibility, policy approval, diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md index 3cb0ce933..5be7e1cf4 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md @@ -31,7 +31,7 @@ cd backend && .venv/bin/ruff check app/modules/tasks/repository.py cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=local reference workspace/terminal-benchmark-reference/terminal-benchmark-reference-task; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md index c15138034..a67ffe7d2 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md @@ -67,7 +67,7 @@ cd backend && .venv/bin/ruff check app/modules/tasks/repository.py app/modules/t cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=local reference workspace/terminal-benchmark-reference/terminal-benchmark-reference-task; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md index baa077db6..f81aa4745 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md @@ -150,7 +150,7 @@ cd backend && .venv/bin/ruff check app/modules/tasks/repository.py app/modules/t cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=local reference workspace/terminal-benchmark-reference/terminal-benchmark-reference-task; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md index d43f07994..aa223b255 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md @@ -59,7 +59,7 @@ Scope: cd backend && .venv/bin/pytest tests/test_projects.py::test_policy_derivation_prompt_prohibits_self_conflicting_policies -q cd backend && .venv/bin/pytest tests/test_projects.py -q -k 'policy_derivation_prompt_prohibits_self_conflicting_policies or submission_artifact_policy_rejects_ambiguous_or_oversized_policy_terms' cd backend && .venv/bin/pytest tests/test_projects.py -q -bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=local reference workspace/terminal-benchmark-reference/terminal-benchmark-reference-task; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py git diff --check diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md index ca2752135..a8440fc35 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md @@ -54,7 +54,7 @@ Passed: cd backend && .venv/bin/pytest tests/test_projects.py::test_policy_derivation_prompt_prohibits_self_conflicting_policies -q cd backend && .venv/bin/pytest tests/test_projects.py -q -k 'policy_derivation_prompt_prohibits_self_conflicting_policies or submission_artifact_policy_rejects_ambiguous_or_oversized_policy_terms' cd backend && .venv/bin/pytest tests/test_projects.py -q -bash -lc 'set -a; source /home/abiorh/flow/jarvis-live-agent-proof/.env; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=local reference workspace/terminal-benchmark-reference/terminal-benchmark-reference-task; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py git diff --check diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md index f0aee95c4..df9e7897d 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md @@ -16,20 +16,27 @@ Reviewed at: 2026-07-09T01:21:17Z Reviewer run IDs: senior-engineering-initial-019f4468-0149-7331-8432-375a955e4617, senior-engineering-rerun-019f446e-568e-7c00-9728-3e15f65b28a6, senior-engineering-final-019f4472-4bd5-7693-a477-1fae8be3b573, qa-test-initial-019f4468-085b-7bd1-ab51-7bb5a1c6242b, qa-test-rerun-019f446e-4dd4-7c80-a020-799f61f45c37, security-auth-initial-019f4468-146c-7c40-a44a-327b5e619453, security-auth-rerun-019f446e-5f86-7b50-90af-2e7bb3144a09, product-ops-initial-019f4468-22bf-7b81-aff1-82f91df7f853, product-ops-rerun-019f446e-6b96-7df3-a525-7894302969e6, architecture-initial-019f4468-2fb0-7aa3-a3f7-3f08a4efc3ea, architecture-rerun-019f446e-7dc0-7963-949d-da760eaa0779, docs-initial-019f4468-397a-7752-ab7f-e536b304ecd8, docs-rerun-019f446e-8b52-73e1-a1cb-50e7acd11abe, reuse-dedup-019f4472-4ff2-70e1-8a06-32fcfecdd4b5, test-delta-019f4472-5431-7a41-af36-00f19813b272 -After the reviewed SHA, only allowed review evidence, PR trust-bundle, status, and loop-state files may change. +After the reviewed SHA, only allowed review evidence, PR trust-bundle, status, +loop-state files, and the documented privacy-scrub amendment files may change. ## Reviewed Change Scope: - Recorded the final clean Terminal Benchmark live API drill evidence for `WS-POL-001-16`. -- Captured sanitized source snapshot material, source hashes, setup-run status, sufficiency output, derived submission artifact policy, effective project policy, and compiled project pre-submit checker policy. -- Added explicit sufficiency-agent input and submission-policy-derivation input summaries using the real `GuideSourceMaterial` envelope and source snapshot hashes. +- Captured sanitized source snapshot material, setup-run status, sufficiency output, derived submission artifact policy, effective project policy, and compiled project pre-submit checker policy. +- Added explicit sufficiency-agent input and submission-policy-derivation input summaries using the real `GuideSourceMaterial` envelope, with public source-material fingerprints redacted. - Added a redacted HTTP body appendix for every final-run API request and response body, including all 14 setup-run polls. - Proved blocked pre-submit with `pre_submission_checker_failed`, empty task submission list, and audit-event evidence; checker-run visibility is proven only after a submission id exists because checker-run list/get APIs are submission-scoped. - Proved successful pre-submit, submission creation, manager finalization, automatic checker run, durable checker results, audit events, and final `review_pending` task state without database inspection as lifecycle proof. - Updated initiative and loop status to show this chunk is evidence complete and awaiting PR/human checkpoint. - Repaired the chunk contract wording for blocked-intake checker-run evidence so it matches the existing submission-scoped checker-run API design. +- Added a privacy-scrub amendment after human review found private/local source + identifiers in the standalone Terminal Benchmark example and older evidence. +- Scrubbed standalone example naming, older Terminal Benchmark evidence, local + secret-env paths, private fixture/source identifiers, exact source-material + hashes, exact byte counts, local drill UUIDs, and source-specific task tags + from public PR evidence. ## Reviewer Results @@ -48,12 +55,14 @@ Scope: - Added a redacted HTTP request/response body appendix for every human-review API step. - Added every setup-run poll response body from `03_setup_poll_01` through `03_setup_poll_14`. -- Added sufficiency-agent input and submission-policy-derivation input summaries tied to the source snapshot and content hashes. +- Added sufficiency-agent input and submission-policy-derivation input summaries tied to the source snapshot, with public source-material fingerprints redacted. - Expanded blocked pre-submit proof to include audit evidence and clarified why checker-run list/get is only valid after submission creation. - Repaired the chunk contract acceptance criterion for blocked intake to match the submission-scoped checker-run API design. - Moved roadmap wording from completed to under-review state for `WS-POL-001-16`. - Corrected the compact setup-poll summary so it matches the appendix body statuses. - Staged the formal live evidence file so it is no longer untracked. +- Added a public-evidence redaction boundary so reviewers can distinguish the + local live drill from the privacy-redacted public transcript. ## Commands Run @@ -80,7 +89,10 @@ Evidence gate: PASS. Scope: - Changed files stay inside the `WS-POL-001-16` allowed evidence/status scope. -- No backend, migration, script, test, CI, dependency, frontend, payment, reputation, blockchain, or auth behavior files changed. +- The privacy-scrub amendment explicitly allows the standalone example and + older evidence/doc files touched to remove private/local source identifiers. +- No backend, migration, backend script, test, CI, dependency, frontend, + payment, reputation, blockchain, or auth behavior files changed. - No Workstream default checker was weakened. - No task-specific checker generation was introduced. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md index 5e4f5ec2b..4a01ef87f 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md @@ -7,20 +7,26 @@ PASS. The final clean Terminal Benchmark drill ran through public/operator HTTP APIs without database inspection as lifecycle proof. +This is privacy-redacted public evidence. The source fixture came from private +local operator material, so exact fixture ids, local database UUIDs, +source-material hashes, package hashes, artifact byte counts, and +source-specific task identifiers are replaced with explicit redaction +placeholders. The placeholders are not replayable API literals. + Final state: ```text -project_id: 36331e8e-c849-484d-9e9e-c8ebc2f70130 -guide_id: fbe0b2ab-2793-4619-a414-ed083d9cc117 -source_snapshot_id: 2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b +project_id: +guide_id: +source_snapshot_id: source_snapshot_hash: sha256: sufficiency_status: passed submission_artifact_policy_hash: sha256: effective_policy_hash: sha256: pre_submit_checker_bundle_hash: sha256: -task_id: d8cfda33-6c7e-461a-bdcd-036a6cefeda3 -submission_id: ba25f15a-e36a-4925-9891-09d394eae2ec -checker_run_id: d7885348-fd08-4820-b209-36a704765a2b +task_id: +submission_id: +checker_run_id: final_task_status: review_pending ``` @@ -43,13 +49,13 @@ from HTTP responses. Fixture label: ```text -terminal-benchmark-reference-task +Terminal Benchmark reference fixture ``` Fixture id: ```text -terminal-benchmark-reference-fixture + ``` Before the final API run, source text was sanitized so raw local filesystem @@ -60,27 +66,28 @@ Guide body: ```text content_markdown_hash: sha256: -content_markdown_bytes: 138427 +content_markdown_bytes: ``` Source snapshot manifest: | Label | Durable ref | Hash | Bytes | |---|---|---:|---:| -| `PROJECT_GUIDE.md` | `import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md` | `sha256:` | 27143 | -| `REVIEWER_PROGRAM.md` | `import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md` | `sha256:` | 45121 | -| `task.toml` | `import:/fixtures/terminal-benchmark-reference-fixture/task.toml` | `sha256:` | 1562 | -| `review_packet.md` | `import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md` | `sha256:` | 36295 | -| `static_guard.txt` | `import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt` | `sha256:` | 612 | -| `docker_build.log` | `import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log` | `sha256:` | 31676 | -| `oracle_test.log` | `import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log` | `sha256:` | 3926 | -| `starter_m1_test.log` | `import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log` | `sha256:` | 11284 | +| `PROJECT_GUIDE.md` | `import:/fixtures//PROJECT_GUIDE.md` | `sha256:` | | +| `REVIEWER_PROGRAM.md` | `import:/fixtures//REVIEWER_PROGRAM.md` | `sha256:` | | +| `task.toml` | `import:/fixtures//task.toml` | `sha256:` | | +| `review_packet.md` | `import:/fixtures//review_packet.md` | `sha256:` | | +| `static_guard.txt` | `import:/fixtures//static_guard.txt` | `sha256:` | | +| `docker_build.log` | `import:/fixtures//docker_build.log` | `sha256:` | | +| `oracle_test.log` | `import:/fixtures//oracle_test.log` | `sha256:` | | +| `starter_m1_test.log` | `import:/fixtures//starter_m1_test.log` | `sha256:` | | ## HTTP Transcript -Large guide content is represented by stable hashes and source manifest rows -above. The table below is an ordered index; full redacted request and response -bodies for every step are recorded in the Redacted HTTP Body Appendix. +Large guide content, exact hashes, local identifiers, and exact byte counts are +redacted as source-material fingerprints. The table below is an ordered index; +full privacy-redacted request and response bodies for every step are recorded +in the Redacted HTTP Body Appendix. | Step | Method and path | HTTP | |---|---|---:| @@ -147,10 +154,10 @@ Sufficiency-agent input: ```json { "input_type": "GuideSourceMaterial", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "project_id": "", + "guide_id": "", "guide_version": "v1", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "source_snapshot_hash": "sha256:", "guide_material": { "content_markdown": { @@ -159,14 +166,14 @@ Sufficiency-agent input: } }, "source_items": [ - ["project_guide", "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", "sha256:"], - ["reviewer_program", "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", "sha256:"], - ["task_material", "import:/fixtures/terminal-benchmark-reference-fixture/task.toml", "sha256:"], - ["review_packet", "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", "sha256:"], - ["static_guard", "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", "sha256:"], - ["build_log", "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", "sha256:"], - ["test_log", "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", "sha256:"], - ["test_log", "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", "sha256:"] + ["project_guide", "import:/fixtures//PROJECT_GUIDE.md", "sha256:"], + ["reviewer_program", "import:/fixtures//REVIEWER_PROGRAM.md", "sha256:"], + ["task_material", "import:/fixtures//task.toml", "sha256:"], + ["review_packet", "import:/fixtures//review_packet.md", "sha256:"], + ["static_guard", "import:/fixtures//static_guard.txt", "sha256:"], + ["build_log", "import:/fixtures//docker_build.log", "sha256:"], + ["test_log", "import:/fixtures//oracle_test.log", "sha256:"], + ["test_log", "import:/fixtures//starter_m1_test.log", "sha256:"] ], "representative_task_material": { "items": [] @@ -263,13 +270,13 @@ Task creation request used the current task contract only: ```json { - "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", + "title": "Terminal Benchmark live-api", "task_type": "terminal_benchmark", "difficulty": "medium", - "skill_tags": ["rust", "json", "systems", "containers", "cli"], + "skill_tags": ["rust", "json", "", "containers", "cli"], "source_type": "manual", - "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", - "external_task_id": "terminal-benchmark-reference-fixture" + "source_ref": "terminal-benchmark//live-api/", + "external_task_id": "" } ``` @@ -369,7 +376,7 @@ Submission create: ```text HTTP: 201 -submission_id: ba25f15a-e36a-4925-9891-09d394eae2ec +submission_id: version: 1 ``` @@ -393,7 +400,7 @@ Checker run list and get both returned: ```json { - "id": "d7885348-fd08-4820-b209-36a704765a2b", + "id": "", "status": "completed", "routing_recommendation": "allow_review", "passed_count": 8, @@ -455,8 +462,8 @@ Request body: ```json { "description": "Real Terminal Benchmark fixture used as Workstream API evidence with sanitized source text.", - "name": "Terminal Benchmark Real API ws16-clean-cb1540ba", - "slug": "terminal-benchmark-real-api-ws16-clean-cb1540ba" + "name": "Terminal Benchmark Real API ", + "slug": "terminal-benchmark-real-api-" } ``` @@ -466,9 +473,9 @@ Response body: { "created_at": "2026-07-08T23:43:31.535968Z", "description": "Real Terminal Benchmark fixture used as Workstream API evidence with sanitized source text.", - "id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "name": "Terminal Benchmark Real API ws16-clean-cb1540ba", - "slug": "terminal-benchmark-real-api-ws16-clean-cb1540ba", + "id": "", + "name": "Terminal Benchmark Real API ", + "slug": "terminal-benchmark-real-api-", "status": "draft", "updated_at": "2026-07-08T23:43:31.535968Z" } @@ -483,7 +490,7 @@ Request body: ```json { "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": " bytes:138427>", + "content_markdown": " bytes:>", "payment_policy": { "accepted_payment_rule": "pay_on_acceptance", "base_amount": "25.00", @@ -529,72 +536,72 @@ Request body: "items": [ { "content_cid": null, - "content_excerpt": " bytes:6112>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", + "durable_ref": "import:/fixtures//PROJECT_GUIDE.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "project_guide" }, { "content_cid": null, - "content_excerpt": " bytes:6000>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", + "durable_ref": "import:/fixtures//REVIEWER_PROGRAM.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "reviewer_program" }, { "content_cid": null, - "content_excerpt": " bytes:1562>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/task.toml", + "durable_ref": "import:/fixtures//task.toml", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/toml", "source_kind": "task_material" }, { "content_cid": null, - "content_excerpt": " bytes:6184>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", + "durable_ref": "import:/fixtures//review_packet.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "review_packet" }, { "content_cid": null, - "content_excerpt": " bytes:612>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", + "durable_ref": "import:/fixtures//static_guard.txt", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": " bytes:6000>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", + "durable_ref": "import:/fixtures//docker_build.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": " bytes:3926>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", + "durable_ref": "import:/fixtures//oracle_test.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": " bytes:6000>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", + "durable_ref": "import:/fixtures//starter_m1_test.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" @@ -611,12 +618,12 @@ Response body: { "approved_by": null, "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": " bytes:138427>", + "content_markdown": " bytes:>", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "effective_at": null, - "id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "id": "", + "project_id": "", "status": "draft", "superseded_at": null, "updated_at": "2026-07-08T23:43:31.606777Z", @@ -638,21 +645,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "queued", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": null, - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": null, "status": "queued", "updated_at": "2026-07-08T23:43:31.799970Z" @@ -673,21 +680,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "guide_sufficiency", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": null, - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_sufficiency_agent", "updated_at": "2026-07-08T23:43:32.263663Z" @@ -708,21 +715,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "guide_sufficiency", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": null, - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_sufficiency_agent", "updated_at": "2026-07-08T23:43:32.263663Z" @@ -743,21 +750,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "guide_sufficiency", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, "output_sufficiency_report_id": null, - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_sufficiency_agent", "updated_at": "2026-07-08T23:43:32.263663Z" @@ -778,21 +785,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "submission_artifact_policy_derivation", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "output_sufficiency_report_id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", "updated_at": "2026-07-08T23:43:40.681014Z" @@ -813,21 +820,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "submission_artifact_policy_derivation", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "output_sufficiency_report_id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", "updated_at": "2026-07-08T23:43:40.681014Z" @@ -848,21 +855,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "submission_artifact_policy_derivation", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "output_sufficiency_report_id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", "updated_at": "2026-07-08T23:43:40.681014Z" @@ -883,21 +890,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "submission_artifact_policy_derivation", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "output_sufficiency_report_id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", "updated_at": "2026-07-08T23:43:40.681014Z" @@ -918,21 +925,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "submission_artifact_policy_derivation", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "output_sufficiency_report_id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", "updated_at": "2026-07-08T23:43:40.681014Z" @@ -953,21 +960,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "submission_artifact_policy_derivation", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "output_sufficiency_report_id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", "updated_at": "2026-07-08T23:43:40.681014Z" @@ -988,21 +995,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "submission_artifact_policy_derivation", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "output_sufficiency_report_id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", "updated_at": "2026-07-08T23:43:40.681014Z" @@ -1023,21 +1030,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "submission_artifact_policy_derivation", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "output_sufficiency_report_id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", "updated_at": "2026-07-08T23:43:40.681014Z" @@ -1058,21 +1065,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "submission_artifact_policy_derivation", "error_code": null, "error_summary": null, "finished_at": null, - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", + "id": "", "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "output_sufficiency_report_id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "running_policy_derivation_agent", "updated_at": "2026-07-08T23:43:40.681014Z" @@ -1093,21 +1100,21 @@ Response body: ```json { - "celery_task_id": "3ef70bda-0261-4008-9255-d6b4a0fd2351", + "celery_task_id": "", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "current_step": "submission_artifact_policy_derivation", "error_code": null, "error_summary": null, "finished_at": "2026-07-08T23:44:00.380059Z", - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "54b56346-0562-47b9-b2b1-1f7ec10f8805", - "output_submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", - "output_sufficiency_report_id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "id": "", + "output_submission_artifact_policy_id": "", + "output_sufficiency_report_id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "started_at": "2026-07-08T23:43:32.307172Z", "status": "policy_draft_ready", "updated_at": "2026-07-08T23:44:00.332149Z" @@ -1134,12 +1141,12 @@ Response body: "created_at": "2026-07-08T23:43:40.523990Z", "created_by": "workstream-system:project-setup-pipeline", "findings": [], - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "status": "passed", "summary": "The guide provides sufficient reviewer criteria and workflow direction for this Terminal Benchmark task review, including milestone structure, static guard handling, dependency pinning, Dockerfile requirements, test alignment, rubric rules, reward behavior, and category mapping.", "warnings_acknowledged_at": null, @@ -1171,9 +1178,9 @@ Response body: "derivation_agent_name": "SubmissionArtifactPolicyDerivationAgent", "derivation_agent_version": "workstream-policy-derivation-agent-v0.1", "derivation_source": "agent_derivation", - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "id": "", "lifecycle_status": "draft", "policy_body": { "allowed_storage_schemes": [ @@ -1403,20 +1410,20 @@ Response body: }, "policy_hash": "sha256:", "policy_version": "agent-9843f69ef5b7f7631f98a61d", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_material_refs": [ - "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", - "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", - "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", - "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", - "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", - "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", - "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", - "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", - "import:/fixtures/terminal-benchmark-reference-fixture/task.toml" + "import:/fixtures//docker_build.log", + "import:/fixtures//oracle_test.log", + "import:/fixtures//starter_m1_test.log", + "import:/fixtures//static_guard.txt", + "import:/fixtures//PROJECT_GUIDE.md", + "inline:/guides//v1", + "import:/fixtures//review_packet.md", + "import:/fixtures//REVIEWER_PROGRAM.md", + "import:/fixtures//task.toml" ], "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "superseded_at": null, "supersedes_policy_id": null, "updated_at": "2026-07-08T23:44:00.095072Z" @@ -1440,7 +1447,7 @@ Response body: ```json { "created_at": "2026-07-08T23:44:02.228409Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "effective_policy": { "allowed_storage_schemes": [ "local", @@ -2333,16 +2340,16 @@ Response body: } }, "effective_policy_hash": "sha256:", - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "id": "", "lifecycle_status": "approved", "merge_algorithm_version": "workstream_default_merge.v1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "submission_artifact_policy_hash": "sha256:", - "submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "submission_artifact_policy_id": "", "superseded_at": null, "supersedes_effective_policy_id": null } @@ -2363,7 +2370,7 @@ Response body: ```json { "created_at": "2026-07-08T23:44:02.228409Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "effective_policy": { "allowed_storage_schemes": [ "local", @@ -3256,16 +3263,16 @@ Response body: } }, "effective_policy_hash": "sha256:", - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "id": "", "lifecycle_status": "approved", "merge_algorithm_version": "workstream_default_merge.v1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "submission_artifact_policy_hash": "sha256:", - "submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "submission_artifact_policy_id": "", "superseded_at": null, "supersedes_effective_policy_id": null } @@ -3297,16 +3304,16 @@ Response body: "compiled_bundle_hash": "sha256:", "compiler_version": "workstream-pre-submit-compiler-v0.1", "created_at": "2026-07-08T23:44:02.228409Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "effective_policy_hash": "sha256:", - "effective_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "effective_policy_id": "", + "guide_id": "", "guide_version": "v1", - "id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "id": "", "lifecycle_status": "compiled", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "superseded_at": null, "supersedes_pre_submit_checker_policy_id": null } @@ -3328,7 +3335,7 @@ Response body: { "effective_submission_artifact_policy": { "created_at": "2026-07-08T23:44:02.228409Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "effective_policy": { "allowed_storage_schemes": [ "local", @@ -4221,28 +4228,28 @@ Response body: } }, "effective_policy_hash": "sha256:", - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "id": "", "lifecycle_status": "approved", "merge_algorithm_version": "workstream_default_merge.v1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "submission_artifact_policy_hash": "sha256:", - "submission_artifact_policy_id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "submission_artifact_policy_id": "", "superseded_at": null, "supersedes_effective_policy_id": null }, "guide": { - "approved_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "approved_by": "", "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": " bytes:138427>", + "content_markdown": " bytes:>", "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "effective_at": "2026-07-08T23:44:03.147622Z", - "id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "id": "", + "project_id": "", "status": "active", "superseded_at": null, "updated_at": "2026-07-08T23:44:02.875444Z", @@ -4251,163 +4258,163 @@ Response body: "guide_source_snapshot": { "bundle_hash": "sha256:", "captured_at": "2026-07-08T23:43:31.606777Z", - "captured_by": "5080787a-cb3b-591d-9948-6b38354788ab", - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "captured_by": "", + "guide_id": "", "guide_version": "v1", - "id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "id": "", "items": [ { "content_cid": null, "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", - "id": "c408d25e-6276-426f-a99e-ac6114db773b", + "durable_ref": "import:/fixtures//docker_build.log", + "id": "", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 0, "media_type": "text/plain", "source_kind": "checker_evidence", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + "source_snapshot_id": "" }, { "content_cid": null, "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", - "id": "8531f065-4575-43c1-bf39-e51e0ae3cd07", + "durable_ref": "import:/fixtures//oracle_test.log", + "id": "", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 1, "media_type": "text/plain", "source_kind": "checker_evidence", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + "source_snapshot_id": "" }, { "content_cid": null, "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", - "id": "45961844-d3cb-4418-b03f-3a3eeca32615", + "durable_ref": "import:/fixtures//starter_m1_test.log", + "id": "", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 2, "media_type": "text/plain", "source_kind": "checker_evidence", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + "source_snapshot_id": "" }, { "content_cid": null, "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", - "id": "49d53b1d-1a81-45e1-9d37-7f519478c654", + "durable_ref": "import:/fixtures//static_guard.txt", + "id": "", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 3, "media_type": "text/plain", "source_kind": "checker_evidence", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + "source_snapshot_id": "" }, { "content_cid": null, "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", - "id": "a23f68aa-b4d0-4dd5-aeba-d0d9a716f96c", + "durable_ref": "import:/fixtures//PROJECT_GUIDE.md", + "id": "", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 4, "media_type": "text/markdown", "source_kind": "project_guide", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + "source_snapshot_id": "" }, { "content_cid": null, "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", - "id": "f1b51900-4dac-47fd-9d93-97d975877cd8", + "durable_ref": "inline:/guides//v1", + "id": "", "ingestion_adapter": "workstream_project_guide", "item_order": 5, "media_type": "application/json", "source_kind": "project_guide", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + "source_snapshot_id": "" }, { "content_cid": null, "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", - "id": "61db2ff4-3495-49d4-80b3-78cc023f2e51", + "durable_ref": "import:/fixtures//review_packet.md", + "id": "", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 6, "media_type": "text/markdown", "source_kind": "review_packet", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + "source_snapshot_id": "" }, { "content_cid": null, "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", - "id": "87c64c15-33d9-48f2-85a6-cb0ee5ddd932", + "durable_ref": "import:/fixtures//REVIEWER_PROGRAM.md", + "id": "", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 7, "media_type": "text/markdown", "source_kind": "reviewer_program", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + "source_snapshot_id": "" }, { "content_cid": null, "content_hash": "sha256:", "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/task.toml", - "id": "316c8374-322d-4e49-a6d9-a581803cb32a", + "durable_ref": "import:/fixtures//task.toml", + "id": "", "ingestion_adapter": "manual_fixture_import_sanitized", "item_order": 8, "media_type": "text/toml", "source_kind": "task_material", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b" + "source_snapshot_id": "" } ], "manifest_json": { "items": [ { "content_cid": null, - "content_excerpt": " bytes:6000>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", + "durable_ref": "import:/fixtures//docker_build.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": " bytes:3926>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", + "durable_ref": "import:/fixtures//oracle_test.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": " bytes:6000>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", + "durable_ref": "import:/fixtures//starter_m1_test.log", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": " bytes:612>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", + "durable_ref": "import:/fixtures//static_guard.txt", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/plain", "source_kind": "checker_evidence" }, { "content_cid": null, - "content_excerpt": " bytes:6112>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", + "durable_ref": "import:/fixtures//PROJECT_GUIDE.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "project_guide" @@ -4416,34 +4423,34 @@ Response body: "content_cid": null, "content_excerpt": null, "content_hash": "sha256:", - "durable_ref": "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", + "durable_ref": "inline:/guides//v1", "ingestion_adapter": "workstream_project_guide", "media_type": "application/json", "source_kind": "project_guide" }, { "content_cid": null, - "content_excerpt": " bytes:6184>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", + "durable_ref": "import:/fixtures//review_packet.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "review_packet" }, { "content_cid": null, - "content_excerpt": " bytes:6000>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", + "durable_ref": "import:/fixtures//REVIEWER_PROGRAM.md", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/markdown", "source_kind": "reviewer_program" }, { "content_cid": null, - "content_excerpt": " bytes:1562>", + "content_excerpt": " bytes:>", "content_hash": "sha256:", - "durable_ref": "import:/fixtures/terminal-benchmark-reference-fixture/task.toml", + "durable_ref": "import:/fixtures//task.toml", "ingestion_adapter": "manual_fixture_import_sanitized", "media_type": "text/toml", "source_kind": "task_material" @@ -4452,7 +4459,7 @@ Response body: "schema_version": "guide_source_snapshot.v1" }, "manifest_schema_version": "guide_source_snapshot.v1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130" + "project_id": "" }, "guide_sufficiency_report": { "acknowledgement_note": null, @@ -4461,12 +4468,12 @@ Response body: "created_at": "2026-07-08T23:43:40.523990Z", "created_by": "workstream-system:project-setup-pipeline", "findings": [], - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "27cd37ac-638f-445a-8637-b8ced01d3ae1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "id": "", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "status": "passed", "summary": "The guide provides sufficient reviewer criteria and workflow direction for this Terminal Benchmark task review, including milestone structure, static guard handling, dependency pinning, Dockerfile requirements, test alignment, rubric rules, reward behavior, and category mapping.", "warnings_acknowledged_at": null, @@ -4479,9 +4486,9 @@ Response body: "created_at": "2026-07-08T23:43:31.606777Z", "currency": "USD", "guide_version": "v1", - "id": "9219d8bc-153c-4492-8884-571ec92a8264", + "id": "", "payout_type": "fixed", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "rejection_payment_rule": "no_payment_on_reject", "revision_payment_rule": "no_extra_payment_for_revisions" }, @@ -4492,9 +4499,9 @@ Response body: ], "created_at": "2026-07-08T23:43:31.606777Z", "guide_version": "v1", - "id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "id": "", "policy_hash": "sha256:", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "required_checkers": [ "check_policy_context_present", "check_low_quality_generated_artifacts" @@ -4644,16 +4651,16 @@ Response body: "compiled_bundle_hash": "sha256:", "compiler_version": "workstream-pre-submit-compiler-v0.1", "created_at": "2026-07-08T23:44:02.228409Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "effective_policy_hash": "sha256:", - "effective_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "effective_policy_id": "", + "guide_id": "", "guide_version": "v1", - "id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "id": "", "lifecycle_status": "compiled", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "superseded_at": null, "supersedes_pre_submit_checker_policy_id": null }, @@ -4665,12 +4672,12 @@ Response body: ], "created_at": "2026-07-08T23:43:31.606777Z", "guide_version": "v1", - "id": "ff2e72ce-efff-461a-9491-e88f3e61e259", + "id": "", "minimum_finding_fields": [ "issue", "required_fix" ], - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "requires_second_review": false, "sla_hours": 24 }, @@ -4681,15 +4688,15 @@ Response body: "auto_reject_after_limit": true, "created_at": "2026-07-08T23:43:31.606777Z", "guide_version": "v1", - "id": "17ddcb94-16e0-420d-8507-a8faba12fa8c", + "id": "", "max_revision_rounds": 7, - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "reviewer_reassignment_rule": "same_reviewer_preferred", "revision_deadline_hours": 48 }, "submission_artifact_policy": { "approved_at": "2026-07-08T23:44:02.420104Z", - "approved_by_actor": "5080787a-cb3b-591d-9948-6b38354788ab", + "approved_by_actor": "", "approved_by_role": "project_manager", "change_summary": null, "created_at": "2026-07-08T23:44:00.095072Z", @@ -4697,9 +4704,9 @@ Response body: "derivation_agent_name": "SubmissionArtifactPolicyDerivationAgent", "derivation_agent_version": "workstream-policy-derivation-agent-v0.1", "derivation_source": "agent_derivation", - "guide_id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "guide_id": "", "guide_version": "v1", - "id": "f81d05aa-8f7d-4498-b3da-1de9b453d450", + "id": "", "lifecycle_status": "approved", "policy_body": { "allowed_storage_schemes": [ @@ -4929,20 +4936,20 @@ Response body: }, "policy_hash": "sha256:", "policy_version": "agent-9843f69ef5b7f7631f98a61d", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "source_material_refs": [ - "import:/fixtures/terminal-benchmark-reference-fixture/docker_build.log", - "import:/fixtures/terminal-benchmark-reference-fixture/oracle_test.log", - "import:/fixtures/terminal-benchmark-reference-fixture/starter_m1_test.log", - "import:/fixtures/terminal-benchmark-reference-fixture/static_guard.txt", - "import:/fixtures/terminal-benchmark-reference-fixture/PROJECT_GUIDE.md", - "inline:/guides/fbe0b2ab-2793-4619-a414-ed083d9cc117/v1", - "import:/fixtures/terminal-benchmark-reference-fixture/review_packet.md", - "import:/fixtures/terminal-benchmark-reference-fixture/REVIEWER_PROGRAM.md", - "import:/fixtures/terminal-benchmark-reference-fixture/task.toml" + "import:/fixtures//docker_build.log", + "import:/fixtures//oracle_test.log", + "import:/fixtures//starter_m1_test.log", + "import:/fixtures//static_guard.txt", + "import:/fixtures//PROJECT_GUIDE.md", + "inline:/guides//v1", + "import:/fixtures//review_packet.md", + "import:/fixtures//REVIEWER_PROGRAM.md", + "import:/fixtures//task.toml" ], "source_snapshot_hash": "sha256:", - "source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "source_snapshot_id": "", "superseded_at": null, "supersedes_policy_id": null, "updated_at": "2026-07-08T23:44:02.228409Z" @@ -4962,20 +4969,20 @@ Request body: "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "external_task_id": "terminal-benchmark-reference-fixture", + "external_task_id": "", "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", "skill_tags": [ "rust", "json", - "systems", + "", "containers", "cli" ], "source_payload_hash": "sha256:", - "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", + "source_ref": "terminal-benchmark//live-api/", "source_type": "manual", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api" + "title": "Terminal Benchmark live-api" } ``` @@ -4985,27 +4992,27 @@ Response body: { "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", "created_at": "2026-07-08T23:44:03.452947Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "external_task_id": "terminal-benchmark-reference-fixture", - "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "external_task_id": "", + "id": "", + "project_id": "", "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", "skill_tags": [ "rust", "json", - "systems", + "", "containers", "cli" ], "source_payload_hash": "sha256:", - "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", + "source_ref": "terminal-benchmark//live-api/", "source_type": "manual", "status": "draft", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", + "title": "Terminal Benchmark live-api", "updated_at": "2026-07-08T23:44:03.452947Z" } ``` @@ -5029,39 +5036,39 @@ Response body: "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", "base_amount": "25.00", "created_at": "2026-07-08T23:44:03.452947Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "currency": "USD", "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "external_task_id": "terminal-benchmark-reference-fixture", - "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "external_task_id": "", + "id": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "payout_type": "fixed", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", "skill_tags": [ "rust", "json", - "systems", + "", "containers", "cli" ], "source_payload_hash": "sha256:", - "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", + "source_ref": "terminal-benchmark//live-api/", "source_type": "manual", "status": "screening", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", + "title": "Terminal Benchmark live-api", "updated_at": "2026-07-08T23:44:03.630101Z" } ``` @@ -5081,9 +5088,9 @@ Response body: ```json { "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_body_summary": { @@ -5119,14 +5126,14 @@ Response body: "warning_checkers": [] }, "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + "project_id": "", + "task_id": "" } ``` @@ -5149,39 +5156,39 @@ Response body: "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", "base_amount": "25.00", "created_at": "2026-07-08T23:44:03.452947Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "currency": "USD", "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "external_task_id": "terminal-benchmark-reference-fixture", - "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "external_task_id": "", + "id": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "payout_type": "fixed", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", "skill_tags": [ "rust", "json", - "systems", + "", "containers", "cli" ], "source_payload_hash": "sha256:", - "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", + "source_ref": "terminal-benchmark//live-api/", "source_type": "manual", "status": "ready", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", + "title": "Terminal Benchmark live-api", "updated_at": "2026-07-08T23:44:04.041939Z" } ``` @@ -5197,7 +5204,7 @@ Request body: "skill_tags": [ "rust", "json", - "systems", + "", "containers", "cli" ] @@ -5208,13 +5215,13 @@ Response body: ```json { - "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_id": "", "created_at": "2026-07-08T23:44:04.145081Z", "display_name": "Terminal Benchmark Worker Ws16 Clean Cb1540Ba", - "email": "terminal-benchmark-worker-ws16-clean-cb1540ba@flow.local", + "email": "terminal-benchmark-worker-@flow.local", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", - "id": "f67a061a-ff59-4416-bd5a-3fa8461e8b25", + "external_subject": "terminal-benchmark-worker-", + "id": "", "profile_metadata": { "source": "worker_profile_api" }, @@ -5224,7 +5231,7 @@ Response body: "skill_tags": [ "rust", "json", - "systems", + "", "containers", "cli" ], @@ -5252,11 +5259,11 @@ Response body: "assignment": { "accepted_at": "2026-07-08T23:44:04.575130Z", "assigned_at": "2026-07-08T23:44:04.503583Z", - "assigned_by": "d0c5c1f3-7689-5965-bba3-975bbac3c815", - "id": "47f47a44-cd98-41e6-859e-86ac232cd83b", + "assigned_by": "", + "id": "", "status": "active", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "task_id": "", + "worker_id": "" }, "task": { "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", @@ -5266,25 +5273,25 @@ Response body: "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "payout_type": "fixed", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", "skill_tags": [ "rust", "json", - "systems", + "", "containers", "cli" ], "source_type": "manual", "status": "claimed", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", + "title": "Terminal Benchmark live-api", "updated_at": "2026-07-08T23:44:04.503583Z" } } @@ -5313,25 +5320,25 @@ Response body: "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "payout_type": "fixed", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", "skill_tags": [ "rust", "json", - "systems", + "", "containers", "cli" ], "source_type": "manual", "status": "in_progress", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", + "title": "Terminal Benchmark live-api", "updated_at": "2026-07-08T23:44:04.727342Z" } ``` @@ -5351,9 +5358,9 @@ Response body: ```json { "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_body_summary": { @@ -5389,14 +5396,14 @@ Response body: "warning_checkers": [] }, "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + "project_id": "", + "task_id": "" } ``` @@ -5416,9 +5423,9 @@ Response body: { "guide": { "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": " bytes:138427>", + "content_markdown": " bytes:>", "effective_at": "2026-07-08T23:44:03.147622Z", - "id": "fbe0b2ab-2793-4619-a414-ed083d9cc117", + "id": "", "version": "v1" }, "lifecycle": { @@ -5439,9 +5446,9 @@ Response body: }, "project": { "description": "Real Terminal Benchmark fixture used as Workstream API evidence with sanitized source text.", - "id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", - "name": "Terminal Benchmark Real API ws16-clean-cb1540ba", - "slug": "terminal-benchmark-real-api-ws16-clean-cb1540ba" + "id": "", + "name": "Terminal Benchmark Real API ", + "slug": "terminal-benchmark-real-api-" }, "review_policy": { "guide_version": "v1" @@ -5457,21 +5464,21 @@ Response body: "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "id": "", "locked_guide_version": "v1", "payout_type": "fixed", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", "skill_tags": [ "rust", "json", - "systems", + "", "containers", "cli" ], "status": "in_progress", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", + "title": "Terminal Benchmark live-api", "updated_at": "2026-07-08T23:44:04.727342Z" } } @@ -5791,7 +5798,7 @@ Response body: "package_required": true }, "policy_schema_version": "effective_project_submission_artifact_policy.v1", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "required_artifacts": [ { "description": "container build definition for the task environment", @@ -5902,7 +5909,7 @@ Response body: "path_traversal_allowed": false, "query_strings_allowed": false }, - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + "task_id": "" } ``` @@ -5920,19 +5927,19 @@ Request body: "artifact": "environment/Dockerfile", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1327 + "size_bytes": "" }, { "artifact": "rubric.md", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 34 + "size_bytes": "" }, { "artifact": "task.toml", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1562 + "size_bytes": "" } ], "evidence_items": [ @@ -5940,95 +5947,95 @@ Request body: "hash": "sha256:", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "dependency_pinning_review" }, - "size_bytes": 40, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" }, { "hash": "sha256:", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "environment_hygiene_review" }, - "size_bytes": 41, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" }, { "hash": "sha256:", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "instructions_present" }, - "size_bytes": 35, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark//evidence/instructions_present.txt" }, { "hash": "sha256:", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "reward_footer_review" }, - "size_bytes": 35, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" }, { "hash": "sha256:", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "solution_present" }, - "size_bytes": 31, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" + "uri": "local://terminal-benchmark//evidence/solution_present.txt" }, { "hash": "sha256:", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "submission_explanations" }, - "size_bytes": 38, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" }, { "hash": "sha256:", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "test_alignment_review" }, - "size_bytes": 36, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" }, { "hash": "sha256:", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "tests_present" }, - "size_bytes": 28, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" + "uri": "local://terminal-benchmark//evidence/tests_present.txt" } ], "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", + "package_uri": "local://terminal-benchmark//submission.zip", "summary": "Blocked-path packet built from live requirements, missing environment/.dockerignore.", - "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>" + "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>" } } ``` @@ -6105,7 +6112,7 @@ Response body: } ], "status": "failed", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + "task_id": "" } ``` @@ -6122,19 +6129,19 @@ Request body: "artifact": "environment/Dockerfile", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1327 + "size_bytes": "" }, { "artifact": "rubric.md", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 34 + "size_bytes": "" }, { "artifact": "task.toml", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1562 + "size_bytes": "" } ], "evidence_items": [ @@ -6142,95 +6149,95 @@ Request body: "hash": "sha256:", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "dependency_pinning_review" }, - "size_bytes": 40, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" }, { "hash": "sha256:", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "environment_hygiene_review" }, - "size_bytes": 41, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" }, { "hash": "sha256:", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "instructions_present" }, - "size_bytes": 35, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark//evidence/instructions_present.txt" }, { "hash": "sha256:", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "reward_footer_review" }, - "size_bytes": 35, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" }, { "hash": "sha256:", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "solution_present" }, - "size_bytes": 31, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" + "uri": "local://terminal-benchmark//evidence/solution_present.txt" }, { "hash": "sha256:", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "submission_explanations" }, - "size_bytes": 38, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" }, { "hash": "sha256:", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "test_alignment_review" }, - "size_bytes": 36, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" }, { "hash": "sha256:", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "tests_present" }, - "size_bytes": 28, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" + "uri": "local://terminal-benchmark//evidence/tests_present.txt" } ], "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", + "package_uri": "local://terminal-benchmark//submission.zip", "summary": "Blocked-path packet built from live requirements, missing environment/.dockerignore.", - "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>" + "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>" } ``` @@ -6308,7 +6315,7 @@ Response body: } ], "status": "failed", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + "task_id": "" } } ``` @@ -6344,14 +6351,14 @@ Response body: ```json [ { - "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_id": "", "actor_roles": [ "project_manager" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:44:03.452947Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { "assigned_to": null, @@ -6372,181 +6379,181 @@ Response body: }, "event_type": "task_created", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-manager-", "from_status": null, - "id": "3c645ce6-9cf1-498c-bff2-b5a53e481c3d", + "id": "", "is_dev_auth": false, "reason": null, "to_status": "draft" }, { - "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_id": "", "actor_roles": [ "project_manager" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:44:03.630101Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { "assigned_to": null, "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1" }, "event_type": "task_status_changed", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-manager-", "from_status": "draft", - "id": "43563128-a38c-41ef-baad-f4a5ea77e153", + "id": "", "is_dev_auth": false, "reason": "Terminal Benchmark final clean live API screening; lock active guide and policy context.", "to_status": "screening" }, { - "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_id": "", "actor_roles": [ "project_manager" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:44:04.041939Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { "assigned_to": null, "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1" }, "event_type": "task_status_changed", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-manager-", "from_status": "screening", - "id": "b8264b10-3383-4138-ab3b-6071850aaff9", + "id": "", "is_dev_auth": false, "reason": "Terminal Benchmark final clean live API ready for worker claim.", "to_status": "ready" }, { - "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_id": "", "actor_roles": [ "worker" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:44:04.503583Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { - "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", - "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", + "assigned_to": "", + "assignment_id": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "worker_id": "" }, "event_type": "task_status_changed", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-worker-", "from_status": "ready", - "id": "b5a3091c-8506-41fe-800c-58dd1aadfb8a", + "id": "", "is_dev_auth": false, "reason": "Terminal Benchmark final clean live API worker claim.", "to_status": "claimed" }, { - "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_id": "", "actor_roles": [ "worker" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:44:04.727342Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { - "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", - "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", + "assigned_to": "", + "assignment_id": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "operator_override": false, - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "worker_id": "" }, "event_type": "task_status_changed", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-worker-", "from_status": "claimed", - "id": "3f3f1439-662a-4c42-b2bf-6e5543489d46", + "id": "", "is_dev_auth": false, "reason": "Terminal Benchmark final clean live API worker started work.", "to_status": "in_progress" }, { - "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_id": "", "actor_roles": [ "worker" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:45:17.452515Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { - "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "assigned_to": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "pre_submit_check": { @@ -6618,14 +6625,14 @@ Response body: } ], "status": "failed", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + "task_id": "" } }, "event_type": "pre_submission_check_failed", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-worker-", "from_status": "in_progress", - "id": "aaeaf9c7-4482-4bdf-956f-075f539175eb", + "id": "", "is_dev_auth": false, "reason": null, "to_status": "in_progress" @@ -6647,25 +6654,25 @@ Request body: "artifact": "environment/Dockerfile", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1327 + "size_bytes": "" }, { "artifact": "environment/.dockerignore", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 185 + "size_bytes": "" }, { "artifact": "rubric.md", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 34 + "size_bytes": "" }, { "artifact": "task.toml", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1562 + "size_bytes": "" } ], "evidence_items": [ @@ -6673,95 +6680,95 @@ Request body: "hash": "sha256:", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "dependency_pinning_review" }, - "size_bytes": 40, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" }, { "hash": "sha256:", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "environment_hygiene_review" }, - "size_bytes": 41, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" }, { "hash": "sha256:", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "instructions_present" }, - "size_bytes": 35, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark//evidence/instructions_present.txt" }, { "hash": "sha256:", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "reward_footer_review" }, - "size_bytes": 35, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" }, { "hash": "sha256:", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "solution_present" }, - "size_bytes": 31, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" + "uri": "local://terminal-benchmark//evidence/solution_present.txt" }, { "hash": "sha256:", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "submission_explanations" }, - "size_bytes": 38, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" }, { "hash": "sha256:", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "test_alignment_review" }, - "size_bytes": 36, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" }, { "hash": "sha256:", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "tests_present" }, - "size_bytes": 28, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" + "uri": "local://terminal-benchmark//evidence/tests_present.txt" } ], "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", - "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", - "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>" + "package_uri": "local://terminal-benchmark//submission.zip", + "summary": "Terminal Benchmark packet built from live submission requirements.", + "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>" } } ``` @@ -6838,7 +6845,7 @@ Response body: } ], "status": "passed", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + "task_id": "" } ``` @@ -6871,25 +6878,25 @@ Request body: "artifact": "environment/Dockerfile", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1327 + "size_bytes": "" }, { "artifact": "environment/.dockerignore", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 185 + "size_bytes": "" }, { "artifact": "rubric.md", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 34 + "size_bytes": "" }, { "artifact": "task.toml", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1562 + "size_bytes": "" } ], "evidence_items": [ @@ -6897,95 +6904,95 @@ Request body: "hash": "sha256:", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "dependency_pinning_review" }, - "size_bytes": 40, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" }, { "hash": "sha256:", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "environment_hygiene_review" }, - "size_bytes": 41, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" }, { "hash": "sha256:", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "instructions_present" }, - "size_bytes": 35, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark//evidence/instructions_present.txt" }, { "hash": "sha256:", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "reward_footer_review" }, - "size_bytes": 35, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" }, { "hash": "sha256:", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "solution_present" }, - "size_bytes": 31, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" + "uri": "local://terminal-benchmark//evidence/solution_present.txt" }, { "hash": "sha256:", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "submission_explanations" }, - "size_bytes": 38, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" }, { "hash": "sha256:", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "test_alignment_review" }, - "size_bytes": 36, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" }, { "hash": "sha256:", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "tests_present" }, - "size_bytes": 28, + "size_bytes": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" + "uri": "local://terminal-benchmark//evidence/tests_present.txt" } ], "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", - "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", - "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>" + "package_uri": "local://terminal-benchmark//submission.zip", + "summary": "Terminal Benchmark packet built from live submission requirements.", + "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>" } ``` @@ -6996,84 +7003,84 @@ Response body: "evidence_items": [ { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "0807ade0-2c5a-4128-a253-e3f6307c6e69", + "id": "", "label": "Dependency pinning review", "metadata": {}, - "size_bytes": 40, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "21e8b24f-51d8-4934-96dd-6608b9d54082", + "id": "", "label": "Environment hygiene review", "metadata": {}, - "size_bytes": 41, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "06f50e90-b055-485e-bda4-289ffa822025", + "id": "", "label": "Task instructions included", "metadata": {}, - "size_bytes": 35, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "f21c9ab2-cc6d-466b-a2fb-817ae8741918", + "id": "", "label": "Reward footer review", "metadata": {}, - "size_bytes": 35, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "40eb6111-adeb-48ba-9333-ddaa8340a768", + "id": "", "label": "Reference solution included", "metadata": {}, - "size_bytes": 31, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "d94c5f46-a286-44cc-a19b-2e4890be3ef8", + "id": "", "label": "Submission explanations", "metadata": {}, - "size_bytes": 38, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "f0d58929-efa4-446f-bb72-04c7a2c14a77", + "id": "", "label": "Test alignment review", "metadata": {}, - "size_bytes": 36, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "afdb97ca-4a8d-46de-9d7f-34f4c7468242", + "id": "", "label": "Verifier files included", "metadata": {}, - "size_bytes": 28, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" } ], - "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "id": "", "status": "submitted", "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "summary": "Terminal Benchmark packet built from live submission requirements.", + "task_id": "", "version": 1, - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "worker_id": "" } ``` @@ -7095,84 +7102,84 @@ Response body: "evidence_items": [ { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "0807ade0-2c5a-4128-a253-e3f6307c6e69", + "id": "", "label": "Dependency pinning review", "metadata": {}, - "size_bytes": 40, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "21e8b24f-51d8-4934-96dd-6608b9d54082", + "id": "", "label": "Environment hygiene review", "metadata": {}, - "size_bytes": 41, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "06f50e90-b055-485e-bda4-289ffa822025", + "id": "", "label": "Task instructions included", "metadata": {}, - "size_bytes": 35, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "f21c9ab2-cc6d-466b-a2fb-817ae8741918", + "id": "", "label": "Reward footer review", "metadata": {}, - "size_bytes": 35, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "40eb6111-adeb-48ba-9333-ddaa8340a768", + "id": "", "label": "Reference solution included", "metadata": {}, - "size_bytes": 31, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "d94c5f46-a286-44cc-a19b-2e4890be3ef8", + "id": "", "label": "Submission explanations", "metadata": {}, - "size_bytes": 38, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "f0d58929-efa4-446f-bb72-04c7a2c14a77", + "id": "", "label": "Test alignment review", "metadata": {}, - "size_bytes": 36, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" }, { "created_at": "2026-07-08T23:45:18.127472Z", - "id": "afdb97ca-4a8d-46de-9d7f-34f4c7468242", + "id": "", "label": "Verifier files included", "metadata": {}, - "size_bytes": 28, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log" } ], - "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "id": "", "status": "submitted", "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "summary": "Terminal Benchmark packet built from live submission requirements.", + "task_id": "", "version": 1, - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "worker_id": "" } ] ``` @@ -7214,25 +7221,25 @@ Response body: "artifact": "environment/Dockerfile", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1327 + "size_bytes": "" }, { "artifact": "environment/.dockerignore", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 185 + "size_bytes": "" }, { "artifact": "rubric.md", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 34 + "size_bytes": "" }, { "artifact": "task.toml", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1562 + "size_bytes": "" } ], "evidence_items": [ @@ -7240,144 +7247,144 @@ Response body: "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "0807ade0-2c5a-4128-a253-e3f6307c6e69", + "id": "", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "dependency_pinning_review" }, - "size_bytes": 40, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "21e8b24f-51d8-4934-96dd-6608b9d54082", + "id": "", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "environment_hygiene_review" }, - "size_bytes": 41, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "06f50e90-b055-485e-bda4-289ffa822025", + "id": "", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "instructions_present" }, - "size_bytes": 35, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark//evidence/instructions_present.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "f21c9ab2-cc6d-466b-a2fb-817ae8741918", + "id": "", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "reward_footer_review" }, - "size_bytes": 35, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "40eb6111-adeb-48ba-9333-ddaa8340a768", + "id": "", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "solution_present" }, - "size_bytes": 31, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" + "uri": "local://terminal-benchmark//evidence/solution_present.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "d94c5f46-a286-44cc-a19b-2e4890be3ef8", + "id": "", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "submission_explanations" }, - "size_bytes": 38, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "f0d58929-efa4-446f-bb72-04c7a2c14a77", + "id": "", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "test_alignment_review" }, - "size_bytes": 36, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "afdb97ca-4a8d-46de-9d7f-34f4c7468242", + "id": "", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "tests_present" }, - "size_bytes": 28, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" + "uri": "local://terminal-benchmark//evidence/tests_present.txt" } ], "finalized_at": "2026-07-08T23:45:18.750577Z", - "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "id": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", + "package_uri": "local://terminal-benchmark//submission.zip", "status": "submitted", "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "summary": "Terminal Benchmark packet built from live submission requirements.", + "task_id": "", "version": 1, - "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>", - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>", + "worker_id": "" } ``` @@ -7400,25 +7407,25 @@ Response body: "artifact": "environment/Dockerfile", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1327 + "size_bytes": "" }, { "artifact": "environment/.dockerignore", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 185 + "size_bytes": "" }, { "artifact": "rubric.md", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 34 + "size_bytes": "" }, { "artifact": "task.toml", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1562 + "size_bytes": "" } ], "evidence_items": [ @@ -7426,144 +7433,144 @@ Response body: "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "0807ade0-2c5a-4128-a253-e3f6307c6e69", + "id": "", "label": "Dependency pinning review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "dependency_pinning_review" }, - "size_bytes": 40, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/dependency_pinning_review.txt" + "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "21e8b24f-51d8-4934-96dd-6608b9d54082", + "id": "", "label": "Environment hygiene review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "environment_hygiene_review" }, - "size_bytes": 41, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/environment_hygiene_review.txt" + "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "06f50e90-b055-485e-bda4-289ffa822025", + "id": "", "label": "Task instructions included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "instructions_present" }, - "size_bytes": 35, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/instructions_present.txt" + "uri": "local://terminal-benchmark//evidence/instructions_present.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "f21c9ab2-cc6d-466b-a2fb-817ae8741918", + "id": "", "label": "Reward footer review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "reward_footer_review" }, - "size_bytes": 35, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/reward_footer_review.txt" + "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "40eb6111-adeb-48ba-9333-ddaa8340a768", + "id": "", "label": "Reference solution included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "solution_present" }, - "size_bytes": 31, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/solution_present.txt" + "uri": "local://terminal-benchmark//evidence/solution_present.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "d94c5f46-a286-44cc-a19b-2e4890be3ef8", + "id": "", "label": "Submission explanations", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "submission_explanations" }, - "size_bytes": 38, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/submission_explanations.txt" + "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "f0d58929-efa4-446f-bb72-04c7a2c14a77", + "id": "", "label": "Test alignment review", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "test_alignment_review" }, - "size_bytes": 36, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/test_alignment_review.txt" + "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" }, { "created_at": "2026-07-08T23:45:18.127472Z", "finalized_at": "2026-07-08T23:45:18.750577Z", "hash": "sha256:", - "id": "afdb97ca-4a8d-46de-9d7f-34f4c7468242", + "id": "", "label": "Verifier files included", "metadata": { - "fixture_id": "terminal-benchmark-reference-fixture", + "fixture_id": "", "required_evidence_key": "tests_present" }, - "size_bytes": 28, - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "size_bytes": "", + "submission_id": "", "type": "log", - "uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/evidence/tests_present.txt" + "uri": "local://terminal-benchmark//evidence/tests_present.txt" } ], "finalized_at": "2026-07-08T23:45:18.750577Z", - "id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "id": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark/terminal-benchmark-reference-fixture/submission.zip", + "package_uri": "local://terminal-benchmark//submission.zip", "status": "submitted", "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark terminal-benchmark-reference-fixture packet built from live submission requirements.", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "summary": "Terminal Benchmark packet built from live submission requirements.", + "task_id": "", "version": 1, - "worker_attestation": " bytes:752 prefix:'I attest this submission is original_work, produced under human_accountability_f'>", - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>", + "worker_id": "" } ``` @@ -7587,40 +7594,40 @@ Response body: "artifact": "environment/Dockerfile", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1327 + "size_bytes": "" }, { "artifact": "environment/.dockerignore", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 185 + "size_bytes": "" }, { "artifact": "rubric.md", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 34 + "size_bytes": "" }, { "artifact": "task.toml", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1562 + "size_bytes": "" } ], "artifact_manifest_hash": "sha256:", "attempt_number": 1, - "audit_event_id": "b79137c1-398e-4826-9147-9179aa07eb00", + "audit_event_id": "", "blocking_count": 0, "completed_at": "2026-07-08T23:45:18.864215Z", "created_at": "2026-07-08T23:45:18.592353Z", "failed_count": 0, - "id": "d7885348-fd08-4820-b209-36a704765a2b", + "id": "", "is_current_for_submission": true, "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -7632,15 +7639,15 @@ Response body: { "blocks_review": false, "checker_name": "check_submission_packet", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "881d313f-729e-442b-9d2a-9e7b41ced497", + "id": "", "message": "Submission packet contains required fields.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission packet contains required fields.", "worker_visible": true @@ -7648,15 +7655,15 @@ Response body: { "blocks_review": false, "checker_name": "check_policy_context_present", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "5e9e4ea6-b300-4860-b543-4539c227f755", + "id": "", "message": "Submission has locked guide and policy context.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission has locked guide and policy context.", "worker_visible": true @@ -7664,15 +7671,15 @@ Response body: { "blocks_review": false, "checker_name": "check_evidence_present", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "981f41b2-59b3-4a4d-b9b3-a368719de2a5", + "id": "", "message": "Submission includes required evidence references.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission includes required evidence references.", "worker_visible": true @@ -7680,9 +7687,9 @@ Response body: { "blocks_review": false, "checker_name": "check_evidence_integrity", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "95dda22a-9486-4e2f-9ada-1ff6def7c0cc", + "id": "", "message": "Artifact manifest and evidence references are structurally valid.", "metadata": { "artifact_count": 4, @@ -7690,8 +7697,8 @@ Response body: }, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Artifact manifest and evidence references are structurally valid.", "worker_visible": true @@ -7699,15 +7706,15 @@ Response body: { "blocks_review": false, "checker_name": "check_required_files", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "e5d0538a-79c2-40a7-90c5-56ef67538dd2", + "id": "", "message": "Submission includes required artifact files.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission includes required artifact files.", "worker_visible": true @@ -7715,15 +7722,15 @@ Response body: { "blocks_review": false, "checker_name": "check_forbidden_files", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "183eeb53-03f2-4c7d-8f9c-9b4544241bd2", + "id": "", "message": "Submission does not include default forbidden paths.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission does not include default forbidden paths.", "worker_visible": true @@ -7731,15 +7738,15 @@ Response body: { "blocks_review": false, "checker_name": "check_confidentiality_attestation", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "ec9e8111-1128-4a34-a576-27afb8d5f664", + "id": "", "message": "Submission includes the required confidentiality attestation.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission includes the required confidentiality attestation.", "worker_visible": true @@ -7747,15 +7754,15 @@ Response body: { "blocks_review": false, "checker_name": "check_low_quality_generated_artifacts", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "024d7ea5-69f8-4c68-a457-b0c24c8c4eca", + "id": "", "message": "Submission does not contain obvious generated-output placeholder signals.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission does not contain obvious generated-output placeholder signals.", "worker_visible": true @@ -7764,9 +7771,9 @@ Response body: "routing_recommendation": "allow_review", "started_at": "2026-07-08T23:45:18.864215Z", "status": "completed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_id": "", "submission_version": 1, - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "task_id": "", "trigger_auth_source": "workstream_system", "trigger_reason": "submission finalized pre-review gate", "trigger_source": "submission_finalized", @@ -7797,40 +7804,40 @@ Response body: "artifact": "environment/Dockerfile", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1327 + "size_bytes": "" }, { "artifact": "environment/.dockerignore", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 185 + "size_bytes": "" }, { "artifact": "rubric.md", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 34 + "size_bytes": "" }, { "artifact": "task.toml", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1562 + "size_bytes": "" } ], "artifact_manifest_hash": "sha256:", "attempt_number": 1, - "audit_event_id": "b79137c1-398e-4826-9147-9179aa07eb00", + "audit_event_id": "", "blocking_count": 0, "completed_at": "2026-07-08T23:45:18.864215Z", "created_at": "2026-07-08T23:45:18.592353Z", "failed_count": 0, - "id": "d7885348-fd08-4820-b209-36a704765a2b", + "id": "", "is_current_for_submission": true, "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", @@ -7842,15 +7849,15 @@ Response body: { "blocks_review": false, "checker_name": "check_submission_packet", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "881d313f-729e-442b-9d2a-9e7b41ced497", + "id": "", "message": "Submission packet contains required fields.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission packet contains required fields.", "worker_visible": true @@ -7858,15 +7865,15 @@ Response body: { "blocks_review": false, "checker_name": "check_policy_context_present", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "5e9e4ea6-b300-4860-b543-4539c227f755", + "id": "", "message": "Submission has locked guide and policy context.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission has locked guide and policy context.", "worker_visible": true @@ -7874,15 +7881,15 @@ Response body: { "blocks_review": false, "checker_name": "check_evidence_present", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "981f41b2-59b3-4a4d-b9b3-a368719de2a5", + "id": "", "message": "Submission includes required evidence references.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission includes required evidence references.", "worker_visible": true @@ -7890,9 +7897,9 @@ Response body: { "blocks_review": false, "checker_name": "check_evidence_integrity", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "95dda22a-9486-4e2f-9ada-1ff6def7c0cc", + "id": "", "message": "Artifact manifest and evidence references are structurally valid.", "metadata": { "artifact_count": 4, @@ -7900,8 +7907,8 @@ Response body: }, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Artifact manifest and evidence references are structurally valid.", "worker_visible": true @@ -7909,15 +7916,15 @@ Response body: { "blocks_review": false, "checker_name": "check_required_files", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "e5d0538a-79c2-40a7-90c5-56ef67538dd2", + "id": "", "message": "Submission includes required artifact files.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission includes required artifact files.", "worker_visible": true @@ -7925,15 +7932,15 @@ Response body: { "blocks_review": false, "checker_name": "check_forbidden_files", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "183eeb53-03f2-4c7d-8f9c-9b4544241bd2", + "id": "", "message": "Submission does not include default forbidden paths.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission does not include default forbidden paths.", "worker_visible": true @@ -7941,15 +7948,15 @@ Response body: { "blocks_review": false, "checker_name": "check_confidentiality_attestation", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "ec9e8111-1128-4a34-a576-27afb8d5f664", + "id": "", "message": "Submission includes the required confidentiality attestation.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission includes the required confidentiality attestation.", "worker_visible": true @@ -7957,15 +7964,15 @@ Response body: { "blocks_review": false, "checker_name": "check_low_quality_generated_artifacts", - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "created_at": "2026-07-08T23:45:18.592353Z", - "id": "024d7ea5-69f8-4c68-a457-b0c24c8c4eca", + "id": "", "message": "Submission does not contain obvious generated-output placeholder signals.", "metadata": {}, "severity": "info", "status": "passed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "submission_id": "", + "task_id": "", "worker_evidence_refs": [], "worker_message": "Submission does not contain obvious generated-output placeholder signals.", "worker_visible": true @@ -7974,9 +7981,9 @@ Response body: "routing_recommendation": "allow_review", "started_at": "2026-07-08T23:45:18.864215Z", "status": "completed", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_id": "", "submission_version": 1, - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "task_id": "", "trigger_auth_source": "workstream_system", "trigger_reason": "submission finalized pre-review gate", "trigger_source": "submission_finalized", @@ -8002,14 +8009,14 @@ Response body: ```json [ { - "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_id": "", "actor_roles": [ "project_manager" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:44:03.452947Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { "assigned_to": null, @@ -8030,181 +8037,181 @@ Response body: }, "event_type": "task_created", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-manager-", "from_status": null, - "id": "3c645ce6-9cf1-498c-bff2-b5a53e481c3d", + "id": "", "is_dev_auth": false, "reason": null, "to_status": "draft" }, { - "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_id": "", "actor_roles": [ "project_manager" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:44:03.630101Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { "assigned_to": null, "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1" }, "event_type": "task_status_changed", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-manager-", "from_status": "draft", - "id": "43563128-a38c-41ef-baad-f4a5ea77e153", + "id": "", "is_dev_auth": false, "reason": "Terminal Benchmark final clean live API screening; lock active guide and policy context.", "to_status": "screening" }, { - "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_id": "", "actor_roles": [ "project_manager" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:44:04.041939Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { "assigned_to": null, "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1" }, "event_type": "task_status_changed", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-manager-", "from_status": "screening", - "id": "b8264b10-3383-4138-ab3b-6071850aaff9", + "id": "", "is_dev_auth": false, "reason": "Terminal Benchmark final clean live API ready for worker claim.", "to_status": "ready" }, { - "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_id": "", "actor_roles": [ "worker" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:44:04.503583Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { - "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", - "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", + "assigned_to": "", + "assignment_id": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "worker_id": "" }, "event_type": "task_status_changed", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-worker-", "from_status": "ready", - "id": "b5a3091c-8506-41fe-800c-58dd1aadfb8a", + "id": "", "is_dev_auth": false, "reason": "Terminal Benchmark final clean live API worker claim.", "to_status": "claimed" }, { - "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_id": "", "actor_roles": [ "worker" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:44:04.727342Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { - "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", - "assignment_id": "47f47a44-cd98-41e6-859e-86ac232cd83b", + "assigned_to": "", + "assignment_id": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "operator_override": false, - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "worker_id": "" }, "event_type": "task_status_changed", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-worker-", "from_status": "claimed", - "id": "3f3f1439-662a-4c42-b2bf-6e5543489d46", + "id": "", "is_dev_auth": false, "reason": "Terminal Benchmark final clean live API worker started work.", "to_status": "in_progress" }, { - "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_id": "", "actor_roles": [ "worker" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:45:17.452515Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { - "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "assigned_to": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "pre_submit_check": { @@ -8276,27 +8283,27 @@ Response body: } ], "status": "failed", - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3" + "task_id": "" } }, "event_type": "pre_submission_check_failed", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-worker-", "from_status": "in_progress", - "id": "aaeaf9c7-4482-4bdf-956f-075f539175eb", + "id": "", "is_dev_auth": false, "reason": null, "to_status": "in_progress" }, { - "actor_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "actor_id": "", "actor_roles": [ "worker" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:45:18.127472Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { "artifact_hash_manifest": [ @@ -8304,66 +8311,66 @@ Response body: "artifact": "environment/Dockerfile", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1327 + "size_bytes": "" }, { "artifact": "environment/.dockerignore", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 185 + "size_bytes": "" }, { "artifact": "rubric.md", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 34 + "size_bytes": "" }, { "artifact": "task.toml", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1562 + "size_bytes": "" } ], - "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "assigned_to": "", "finalized_at": null, "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "package_hash": "sha256:", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_id": "", "submission_version": 1, "supersedes_submission_id": null, - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "worker_id": "" }, "event_type": "submission_created", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-worker-", "from_status": "in_progress", - "id": "6eb6b53f-01c1-421b-806c-2a9e23b2117a", + "id": "", "is_dev_auth": false, "reason": null, "to_status": "submitted" }, { - "actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "actor_id": "", "actor_roles": [ "project_manager" ], "auth_source": "flow", "claim_snapshot": {}, "created_at": "2026-07-08T23:45:18.592353Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { "artifact_hash_manifest": [ @@ -8371,53 +8378,53 @@ Response body: "artifact": "environment/Dockerfile", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1327 + "size_bytes": "" }, { "artifact": "environment/.dockerignore", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 185 + "size_bytes": "" }, { "artifact": "rubric.md", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 34 + "size_bytes": "" }, { "artifact": "task.toml", "hash": "sha256:", "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": 1562 + "size_bytes": "" } ], - "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "assigned_to": "", "finalized_at": "2026-07-08T23:45:18.750577+00:00", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "package_hash": "sha256:", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_id": "", "submission_version": 1, "supersedes_submission_id": null, - "worker_id": "d0c5c1f3-7689-5965-bba3-975bbac3c815" + "worker_id": "" }, "event_type": "submission_finalized", "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "external_subject": "terminal-benchmark-manager-", "from_status": "submitted", - "id": "a6843c8e-dc22-45db-9fd2-de16877fde01", + "id": "", "is_dev_auth": false, "reason": null, "to_status": "submitted" @@ -8430,30 +8437,30 @@ Response body: "auth_source": "workstream_system", "claim_snapshot": {}, "created_at": "2026-07-08T23:45:18.592353Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", - "requester_actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "requester_actor_id": "", "requester_auth_source": "flow", "requester_external_issuer": "https://auth.flow.local/e2e", - "requester_external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "requester_external_subject": "terminal-benchmark-manager-", + "submission_id": "", "submission_version": 1, - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "task_id": "", "trigger_source": "submission_finalized" }, "event_type": "pre_review_gate_started", "external_issuer": "workstream", "external_subject": "workstream-system:pre-review-gate", "from_status": "submitted", - "id": "f6d7a015-51cd-4419-9b3b-c502a10681bc", + "id": "", "is_dev_auth": false, "reason": "submission finalized pre-review gate", "to_status": "evaluation_pending" @@ -8466,29 +8473,29 @@ Response body: "auth_source": "workstream_system", "claim_snapshot": {}, "created_at": "2026-07-08T23:45:18.592353Z", - "entity_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "entity_id": "", "entity_type": "task", "event_payload": { "blocking_count": 0, - "checker_run_id": "d7885348-fd08-4820-b209-36a704765a2b", + "checker_run_id": "", "failed_count": 0, "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "30095d84-e5c5-46e3-a292-3788bd34699f", + "locked_post_submit_checker_policy_id": "", "locked_post_submit_checker_policy_version": "v1", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "outcome_source": "none", - "requester_actor_id": "5080787a-cb3b-591d-9948-6b38354788ab", + "requester_actor_id": "", "requester_auth_source": "flow", "requester_external_issuer": "https://auth.flow.local/e2e", - "requester_external_subject": "terminal-benchmark-manager-ws16-clean-cb1540ba", + "requester_external_subject": "terminal-benchmark-manager-", "review_decision_id": null, "routing_recommendation": "allow_review", - "submission_id": "ba25f15a-e36a-4925-9891-09d394eae2ec", + "submission_id": "", "submission_version": 1, - "task_id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "task_id": "", "trigger_source": "submission_finalized", "warning_count": 0 }, @@ -8496,7 +8503,7 @@ Response body: "external_issuer": "workstream", "external_subject": "workstream-system:pre-review-gate", "from_status": "evaluation_pending", - "id": "fef7e1c4-78b8-4c4e-a740-bbdcb046c2ae", + "id": "", "is_dev_auth": false, "reason": "submission finalized pre-review gate", "to_status": "review_pending" @@ -8519,42 +8526,42 @@ Response body: ```json { "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", - "assigned_to": "d0c5c1f3-7689-5965-bba3-975bbac3c815", + "assigned_to": "", "base_amount": "25.00", "created_at": "2026-07-08T23:44:03.452947Z", - "created_by": "5080787a-cb3b-591d-9948-6b38354788ab", + "created_by": "", "currency": "USD", "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", "difficulty": "medium", "estimated_time_minutes": 75, - "external_task_id": "terminal-benchmark-reference-fixture", - "id": "d8cfda33-6c7e-461a-bdcd-036a6cefeda3", + "external_task_id": "", + "id": "", "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "40acb2dd-b1a4-4a8f-90cf-038e6b5941e3", + "locked_effective_project_submission_artifact_policy_id": "", "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b", + "locked_guide_source_snapshot_id": "", "locked_guide_version": "v1", "locked_payment_policy_version": "v1", "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "f9b527da-6831-40d5-b834-b3fb3a6471fe", + "locked_pre_submit_checker_policy_id": "", "locked_review_policy_version": "v1", "locked_revision_policy_version": "v1", "payout_type": "fixed", - "project_id": "36331e8e-c849-484d-9e9e-c8ebc2f70130", + "project_id": "", "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", "skill_tags": [ "rust", "json", - "systems", + "", "containers", "cli" ], "source_payload_hash": "sha256:", - "source_ref": "terminal-benchmark/terminal-benchmark-reference-fixture/live-api/ws16-clean-cb1540ba", + "source_ref": "terminal-benchmark//live-api/", "source_type": "manual", "status": "review_pending", "task_type": "terminal_benchmark", - "title": "Terminal Benchmark terminal-benchmark-reference-fixture live-api", + "title": "Terminal Benchmark live-api", "updated_at": "2026-07-08T23:45:18.592353Z" } ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md index cde293677..f9f514aa7 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md @@ -17,12 +17,15 @@ Changed: - `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md` - `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md` - `docs/roadmap_status.md` +- Privacy scrub amendment: standalone Terminal Benchmark example docs/script, + older Terminal Benchmark evidence references, and review-process docs were + scrubbed to remove private/local source identifiers and local secret paths. Not changed: - No backend code. - No migrations. -- No tests or scripts. +- No backend tests or production scripts. - No CI/workflow files. - No frontend/demo work. - No auth, payment, reputation, settlement, or blockchain behavior. @@ -48,7 +51,8 @@ ProjectGuide The evidence records: -- sanitized Terminal Benchmark source material and source snapshot hashes; +- sanitized Terminal Benchmark source material with public redaction of source + fingerprints; - automatic Celery setup status from queued through `policy_draft_ready`; - sufficiency-agent and submission-policy-derivation inputs and outputs; - policy approval, effective policy, checker policy, and guide activation; @@ -81,19 +85,25 @@ Key results: ## Live Drill Result +The live drill values below are privacy-redacted for public PR evidence. Exact +fixture ids, local UUIDs, source-material hashes, package hashes, byte counts, +and source-specific task identifiers are not committed because they fingerprint +private local source material. Redaction placeholders are not replayable API +literals. + Final clean run: ```text -project_id: 36331e8e-c849-484d-9e9e-c8ebc2f70130 -guide_id: fbe0b2ab-2793-4619-a414-ed083d9cc117 -source_snapshot_id: 2b6592db-ae88-4fd8-b9d0-c16bd9dbf09b +project_id: +guide_id: +source_snapshot_id: source_snapshot_hash: sha256: submission_artifact_policy_hash: sha256: effective_policy_hash: sha256: pre_submit_checker_bundle_hash: sha256: -task_id: d8cfda33-6c7e-461a-bdcd-036a6cefeda3 -submission_id: ba25f15a-e36a-4925-9891-09d394eae2ec -checker_run_id: d7885348-fd08-4820-b209-36a704765a2b +task_id: +submission_id: +checker_run_id: final_task_status: review_pending ``` diff --git a/docs/review_closure.md b/docs/review_closure.md index 155adc525..bbf819aa2 100644 --- a/docs/review_closure.md +++ b/docs/review_closure.md @@ -2,7 +2,7 @@ ## Scope -Planning package in `/home/abiorh/flow/workstream`. +Planning package in ``. ## Review Passes Completed diff --git a/docs/review_process_baseline_operations_review.md b/docs/review_process_baseline_operations_review.md index 8a42e31d0..f32bec234 100644 --- a/docs/review_process_baseline_operations_review.md +++ b/docs/review_process_baseline_operations_review.md @@ -4,7 +4,7 @@ Reviewer role: Operations and Review Workflow Reviewer. Scope: -- markdown docs in `/home/abiorh/flow/workstream` +- markdown docs in `` - metadata-level process patterns under `local reference workspace` - no task content, private data, or confidential project details copied diff --git a/docs/review_systems_architecture_review.md b/docs/review_systems_architecture_review.md index 33e5a7725..14d5ff3e1 100644 --- a/docs/review_systems_architecture_review.md +++ b/docs/review_systems_architecture_review.md @@ -1,6 +1,6 @@ # Systems Architecture Review -Review scope: markdown docs in `/home/abiorh/flow/workstream`. +Review scope: markdown docs in ``. Reviewer role: Systems Architecture Reviewer. diff --git a/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md b/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md index 1385c8924..855b260b6 100644 --- a/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md +++ b/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md @@ -184,23 +184,23 @@ Live API sequence: Live IDs captured from local HTTP API responses: -- project: `6e87e2c2-91a1-4140-8f66-6d0c5bd4b966` -- guide: `b2857abb-6bb0-4e27-89e8-bfb3bfedb8f2` -- guide-source snapshot: `185e80bb-5676-4370-a09f-1c51853bd400` -- sufficiency report: `8368e1c5-cbd6-4503-94f8-74e647a15550` -- agent-derived policy draft: `2838434c-7695-4037-a6d4-531f860a07a6` -- admin exact policy: `dc2e054b-5ce1-49fe-8388-49eb0ec7f992` +- project: `` +- guide: `` +- guide-source snapshot: `` +- sufficiency report: `` +- agent-derived policy draft: `` +- admin exact policy: `` - effective project submission artifact policy hash: `sha256:` - compiled pre-submit checker hash: `sha256:` -- clean task: `9fd7be8f-5886-403b-8ce7-faba37705e72` -- clean submission: `ad0d08f9-4b91-4363-85e9-d8a7b6e055a8` -- clean checker run: `4e72cf39-3348-48b1-8d1a-b3ae17433c65` -- revision-path task: `3ae5db8a-eb40-49bb-8a2a-87ccb1f6594f` -- revision v1 submission: `77a5614b-d0cd-4875-abe2-6e4a83d213cb` -- revision v1 checker run: `b4c9fb23-bf83-48f2-a9ca-5e145aaa707d` -- fixed v2 submission: `a233eefd-598e-4c1b-89c5-c1a93b077682` +- clean task: `` +- clean submission: `` +- clean checker run: `` +- revision-path task: `` +- revision v1 submission: `` +- revision v1 checker run: `` +- fixed v2 submission: `` Runtime issue found and fixed: From ecc7e3c99cd08e305738afc54a27a1979fab040d Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 04:26:43 +0100 Subject: [PATCH 06/17] docs: complete terminal benchmark evidence scrub scope --- .../WS-POL-001-16-terminal-benchmark-live-api-drill.md | 4 ++++ .../reviews/WS-POL-001-14-internal-review-evidence.md | 2 +- .../reviews/WS-POL-001-16-live-api-drill-evidence.md | 2 +- .../reviews/WS-POL-001-16-pr-trust-bundle.md | 6 ++++-- 4 files changed, 10 insertions(+), 4 deletions(-) diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md index b46411f7e..af568022a 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md @@ -135,6 +135,10 @@ privacy scrub in addition to the original drill evidence scope. Additional files allowed only for this scrub: ```text +.agent-loop/LOOP_STATE.md +.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/CHUNK_MAP.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md examples/terminal_benchmark/README.md examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md examples/terminal_benchmark/terminal_benchmark_api_e2e.py diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md index a67ffe7d2..31251f3a5 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md @@ -85,7 +85,7 @@ Results: - Final CodeRabbit docstring-nitpick Ruff: passed for `backend/app/modules/tasks/repository.py`. - Task/checker suite: 133 passed in 1666.46s. - API contract real API E2E: passed and exercised `/finalize`, checker-run reads, audit-event reads, and scoped access. -- Terminal Benchmark real API E2E: passed using the real OpenAI Agents SDK adapter and fixture `terminal-benchmark-reference-task`. +- Terminal Benchmark real API E2E: passed using the real OpenAI Agents SDK adapter and fixture ``. - Terminal Benchmark scenario summary: `complete_packet=review_pending`, `missing_static_guard=pre_submit_blocked_no_submission`, `low_quality_v1=needs_revision`, `fixed_low_quality_v2=review_pending`, `worker_profile_setup=canonical_worker_profile_api`. - Markdown link check: passed for 27 changed Markdown files. - Diff whitespace check: passed. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md index 4a01ef87f..04d495472 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md @@ -162,7 +162,7 @@ Sufficiency-agent input: "guide_material": { "content_markdown": { "hash": "sha256:", - "bytes": 138427 + "bytes": "" } }, "source_items": [ diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md index f9f514aa7..8b99c4f48 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md @@ -18,8 +18,10 @@ Changed: - `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md` - `docs/roadmap_status.md` - Privacy scrub amendment: standalone Terminal Benchmark example docs/script, - older Terminal Benchmark evidence references, and review-process docs were - scrubbed to remove private/local source identifiers and local secret paths. + older Terminal Benchmark evidence references, WS-ENG memory evidence, + chunk-map/status/loop files, and review-process docs were scrubbed or amended + to remove private/local source identifiers, local secret paths, and stale + scope claims. Not changed: From e5c03e8ae57691a4d96846b1ace6aa7d60578dc6 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 04:28:36 +0100 Subject: [PATCH 07/17] docs: use explicit redaction markers for local fixture paths --- .../WS-POL-001-06-terminal-benchmark-real-fixture-drill.md | 2 +- .../chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md | 1 + .../reviews/WS-POL-001-09-internal-review-evidence.md | 4 ++-- .../reviews/WS-POL-001-14-external-review-response.md | 2 +- .../reviews/WS-POL-001-14-internal-review-evidence.md | 2 +- .../reviews/WS-POL-001-14-pr-trust-bundle.md | 2 +- .../reviews/WS-POL-001-15-internal-review-evidence.md | 2 +- .../reviews/WS-POL-001-15-pr-trust-bundle.md | 2 +- examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md | 2 +- examples/terminal_benchmark/README.md | 4 ++-- 10 files changed, 12 insertions(+), 11 deletions(-) diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md index 63c8e33dc..6becb8613 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md @@ -153,7 +153,7 @@ cd backend && .venv/bin/python -m pytest tests/test_projects.py -k 'openai_agent cd backend && .venv/bin/python -m pytest tests/test_projects.py cd backend && .venv/bin/python -m pytest tests/test_tasks.py cd backend && .venv/bin/python -m pytest tests/test_alembic.py -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py +cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test WORKSTREAM_TERMINAL_BENCH_FIXTURE= .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py ``` The fixture path may be changed to another local Terminal Benchmark reference fixture that diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md index af568022a..17bc95db4 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md @@ -149,6 +149,7 @@ docs/review_systems_architecture_review.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-pr-trust-bundle.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md index 6000a5e2b..0081b491f 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md @@ -61,8 +61,8 @@ Scope: old production deny path. Strengthened selector tests to run in `test`, assert the exact OpenAI model configuration error, and prove valid model settings still build `OpenAIAgentSdkProjectGuideRuntime`. -- Docs review found one stale `/path/to/terminal-benchmark-fixture` placeholder. - Updated it to `/path/to/terminal-benchmark-source-material`. +- Docs review found one stale `` placeholder. + Updated it to ``. - CodeRabbit found repeated deterministic runtime monkeypatch boilerplate in project-agent tests. Extracted `deterministic_project_agent_runtime` as a test-local fixture, kept custom failing/spoofing/capturing runtime patches diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md index 5be7e1cf4..411e108e3 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md @@ -31,7 +31,7 @@ cd backend && .venv/bin/ruff check app/modules/tasks/repository.py cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md index 31251f3a5..b37e695f7 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md @@ -67,7 +67,7 @@ cd backend && .venv/bin/ruff check app/modules/tasks/repository.py app/modules/t cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md index f81aa4745..c6aa4dbe4 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md @@ -150,7 +150,7 @@ cd backend && .venv/bin/ruff check app/modules/tasks/repository.py app/modules/t cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md index aa223b255..df31cc8dc 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md @@ -59,7 +59,7 @@ Scope: cd backend && .venv/bin/pytest tests/test_projects.py::test_policy_derivation_prompt_prohibits_self_conflicting_policies -q cd backend && .venv/bin/pytest tests/test_projects.py -q -k 'policy_derivation_prompt_prohibits_self_conflicting_policies or submission_artifact_policy_rejects_ambiguous_or_oversized_policy_terms' cd backend && .venv/bin/pytest tests/test_projects.py -q -bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py git diff --check diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md index a8440fc35..f471ad780 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md @@ -54,7 +54,7 @@ Passed: cd backend && .venv/bin/pytest tests/test_projects.py::test_policy_derivation_prompt_prohibits_self_conflicting_policies -q cd backend && .venv/bin/pytest tests/test_projects.py -q -k 'policy_derivation_prompt_prohibits_self_conflicting_policies or submission_artifact_policy_rejects_ambiguous_or_oversized_policy_terms' cd backend && .venv/bin/pytest tests/test_projects.py -q -bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/local/terminal-benchmark-fixture; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py git diff --check diff --git a/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md b/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md index 855b260b6..8844bd4a5 100644 --- a/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md +++ b/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md @@ -75,7 +75,7 @@ cd backend && .venv/bin/python -m ruff check app tests scripts cd backend && .venv/bin/docstr-coverage app scripts --config .docstr.yaml git diff --check cd backend && .venv/bin/python -m pytest tests/test_checkers.py -k 'pre_submit_check_allows_worker_revision_packet_feedback or pre_submit_check_returns_feedback_without_durable_run' -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/terminal-benchmark-source-material .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py +cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test WORKSTREAM_TERMINAL_BENCH_FIXTURE= .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py cd backend && .venv/bin/python -m pytest ``` diff --git a/examples/terminal_benchmark/README.md b/examples/terminal_benchmark/README.md index f2401084f..0082a1fd8 100644 --- a/examples/terminal_benchmark/README.md +++ b/examples/terminal_benchmark/README.md @@ -65,7 +65,7 @@ cd backend WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test \ OPENAI_API_KEY="$OPENAI_API_KEY" \ WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL="${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:?set model}" \ -WORKSTREAM_TERMINAL_BENCH_FIXTURE=/path/to/terminal-benchmark-source-material \ -WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=/path/to/terminal-benchmark-guide-root \ +WORKSTREAM_TERMINAL_BENCH_FIXTURE= \ +WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT= \ .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py ``` From d7c288bd1114350af8a3840e496702b12b7a6974 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 04:29:42 +0100 Subject: [PATCH 08/17] docs: align terminal benchmark redaction wording --- .../reviews/WS-POL-001-16-live-api-drill-evidence.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md index 04d495472..b87186d8a 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md @@ -452,7 +452,7 @@ pre_review_gate_passed: evaluation_pending -> review_pending ## Redacted HTTP Body Appendix -Every step below records the HTTP method/path, request body, and response body from the final clean run. `null` request body means the call had no JSON body. Large guide/source text is redacted to hash and byte count; credentials were not recorded. +Every step below records the HTTP method/path, request body, and response body from the final clean run. `null` request body means the call had no JSON body. Large guide/source text and source-material fingerprints are redacted to explicit placeholders; credentials were not recorded. ### 01_project_create `POST /api/v1/projects` -> HTTP `201` From 1a80be7cd04ef742ddee7844caf9c4978c6c6dd3 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 04:36:00 +0100 Subject: [PATCH 09/17] docs: keep terminal benchmark example output public-safe --- .../WS-POL-001-16-internal-review-evidence.md | 2 +- .../reviews/WS-POL-001-16-pr-trust-bundle.md | 3 +- examples/terminal_benchmark/README.md | 4 ++ .../terminal_benchmark_api_e2e.py | 47 +++++++++++++++---- 4 files changed, 45 insertions(+), 11 deletions(-) diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md index df9e7897d..f645ef4b9 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md @@ -77,7 +77,7 @@ git diff --cached --check Results: - Stale wording check: passed. -- Markdown link check: passed for 6 changed Markdown files. +- Markdown link check: passed for 25 changed Markdown files. - Focused backend tests: `342 passed in 4305.43s (1:11:45)`. - API contract drill: `API contract real API e2e passed`. - Diff whitespace check: passed. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md index 8b99c4f48..10147e7b7 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md @@ -16,7 +16,6 @@ Changed: - `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md` - `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md` - `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md` -- `docs/roadmap_status.md` - Privacy scrub amendment: standalone Terminal Benchmark example docs/script, older Terminal Benchmark evidence references, WS-ENG memory evidence, chunk-map/status/loop files, and review-process docs were scrubbed or amended @@ -82,7 +81,7 @@ Key results: - `342 passed in 4305.43s (1:11:45)` for focused backend tests. - `API contract real API e2e passed`. - Stale wording check passed. -- Markdown link check passed for 6 changed Markdown files. +- Markdown link check passed for 25 changed Markdown files. - Diff whitespace check passed. ## Live Drill Result diff --git a/examples/terminal_benchmark/README.md b/examples/terminal_benchmark/README.md index 0082a1fd8..d2e24dcc8 100644 --- a/examples/terminal_benchmark/README.md +++ b/examples/terminal_benchmark/README.md @@ -32,6 +32,10 @@ approved `.agent-loop` or `docs/internal_reviews` paths for that chunk. The script fails closed unless `WORKSTREAM_DATABASE_URL` points to local async Postgres using `workstream_test` or `test_workstream`. +The script redacts fixture-derived identifiers and local Workstream UUIDs in +stdout by default so copied output is safe for public PR evidence. Set +`WORKSTREAM_TERMINAL_BENCH_PRINT_RAW_LOCAL_IDS=1` only for local debugging. + The source-material path should point at a local Terminal Benchmark reference directory containing `extracted/task.toml`, one `*_submission_*.zip`, one `review_packet_*.md`, `static_guard.txt`, `docker_build.log`, `oracle_test.log`, and diff --git a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py index 043bdda9d..d4be6e3cb 100644 --- a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py +++ b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py @@ -55,6 +55,7 @@ FIXTURE_ENV_VAR = "WORKSTREAM_TERMINAL_BENCH_FIXTURE" GUIDE_ROOT_ENV_VAR = "WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT" +PRINT_RAW_LOCAL_IDS_ENV_VAR = "WORKSTREAM_TERMINAL_BENCH_PRINT_RAW_LOCAL_IDS" LOCAL_DATABASE_HOSTS = {"localhost", "127.0.0.1", "::1"} LOCAL_DATABASE_NAMES = {"workstream_test", "test_workstream"} ASYNC_POSTGRES_SCHEMES = {"postgresql+asyncpg"} @@ -177,6 +178,13 @@ def safe_label(value: str) -> str: return re.sub(r"[^a-zA-Z0-9_.-]+", "-", value).strip("-")[:120] or "terminal-benchmark" +def public_evidence_value(value: str, placeholder: str, env: dict[str, str]) -> str: + """Return raw local ids only when explicitly requested for local debugging.""" + if env.get(PRINT_RAW_LOCAL_IDS_ENV_VAR) == "1": + return value + return placeholder + + def assert_strict_local_database_url(database_url: str) -> None: """Fail closed unless the drill targets local async Postgres test databases only.""" parsed = urlparse(database_url) @@ -1236,14 +1244,37 @@ async def exercise_terminal_benchmark_api(base_url: str, env: dict[str, str]) -> print("Terminal Benchmark real API e2e passed") print("scenario_summary:") - print(f"fixture_id={fixture.fixture_id}") - print(f"fixture_label={safe_label(fixture.root.name)}") - print(f"project_id={project['id']}") - print(f"complete_task_id={complete_task['id']}") - print(f"complete_submission_id={complete_submission['id']}") - print(f"revision_task_id={revision_task['id']}") - print(f"revision_v1_submission_id={first_submission['id']}") - print(f"revision_v2_submission_id={second_submission['id']}") + print( + "redaction=" + + public_evidence_value( + "raw_local_ids_enabled", + "public_evidence_safe_by_default", + env, + ) + ) + print( + "fixture_id=" + + public_evidence_value(fixture.fixture_id, "", env) + ) + print( + "fixture_label=" + + public_evidence_value(safe_label(fixture.root.name), "", env) + ) + print("project_id=" + public_evidence_value(project["id"], "", env)) + print("complete_task_id=" + public_evidence_value(complete_task["id"], "", env)) + print( + "complete_submission_id=" + + public_evidence_value(complete_submission["id"], "", env) + ) + print("revision_task_id=" + public_evidence_value(revision_task["id"], "", env)) + print( + "revision_v1_submission_id=" + + public_evidence_value(first_submission["id"], "", env) + ) + print( + "revision_v2_submission_id=" + + public_evidence_value(second_submission["id"], "", env) + ) print("complete_packet=review_pending") print("missing_static_guard=pre_submit_blocked_no_submission") print("low_quality_v1=needs_revision") From b7e4d892879daa49b3a7aef452c0c2423c58db4d Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 04:42:07 +0100 Subject: [PATCH 10/17] docs: suppress raw terminal benchmark progress output --- examples/terminal_benchmark/README.md | 5 +++-- .../terminal_benchmark/terminal_benchmark_api_e2e.py | 12 +++++++++++- 2 files changed, 14 insertions(+), 3 deletions(-) diff --git a/examples/terminal_benchmark/README.md b/examples/terminal_benchmark/README.md index d2e24dcc8..3dd9a106a 100644 --- a/examples/terminal_benchmark/README.md +++ b/examples/terminal_benchmark/README.md @@ -32,8 +32,9 @@ approved `.agent-loop` or `docs/internal_reviews` paths for that chunk. The script fails closed unless `WORKSTREAM_DATABASE_URL` points to local async Postgres using `workstream_test` or `test_workstream`. -The script redacts fixture-derived identifiers and local Workstream UUIDs in -stdout by default so copied output is safe for public PR evidence. Set +The script suppresses raw per-request progress paths and redacts fixture-derived +identifiers plus local Workstream UUIDs in stdout by default, so copied output +is safe for public PR evidence. Set `WORKSTREAM_TERMINAL_BENCH_PRINT_RAW_LOCAL_IDS=1` only for local debugging. The source-material path should point at a local Terminal Benchmark reference directory containing diff --git a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py index d4be6e3cb..45bbc53d9 100644 --- a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py +++ b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py @@ -11,7 +11,9 @@ from __future__ import annotations import asyncio +import contextlib import hashlib +import io import os import re import subprocess @@ -39,7 +41,7 @@ find_free_port, flow_settings, issue_flow_token, - request_json, + request_json as api_contract_request_json, wait_for_health, ) from week2_api_e2e import ( @@ -185,6 +187,14 @@ def public_evidence_value(value: str, placeholder: str, env: dict[str, str]) -> return placeholder +async def request_json(*args, **kwargs) -> dict: + """Call the shared API helper without leaking raw request paths by default.""" + if os.environ.get(PRINT_RAW_LOCAL_IDS_ENV_VAR) == "1": + return await api_contract_request_json(*args, **kwargs) + with contextlib.redirect_stdout(io.StringIO()): + return await api_contract_request_json(*args, **kwargs) + + def assert_strict_local_database_url(database_url: str) -> None: """Fail closed unless the drill targets local async Postgres test databases only.""" parsed = urlparse(database_url) From 1997816d08335d4e57fb0c9a167a83b28c994199 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 04:46:10 +0100 Subject: [PATCH 11/17] docs: suppress checker polling progress output --- examples/terminal_benchmark/terminal_benchmark_api_e2e.py | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py index 45bbc53d9..0f99df3c7 100644 --- a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py +++ b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py @@ -820,7 +820,11 @@ async def submit_finalize_and_wait( f"/api/v1/submissions/{submission['id']}/finalize", manager_token, ) - run = await wait_for_submission_checker_run(client, manager_token, submission["id"]) + if os.environ.get(PRINT_RAW_LOCAL_IDS_ENV_VAR) == "1": + run = await wait_for_submission_checker_run(client, manager_token, submission["id"]) + else: + with contextlib.redirect_stdout(io.StringIO()): + run = await wait_for_submission_checker_run(client, manager_token, submission["id"]) return submission, locked, run From ad9ef18590192c0f8919f2b62752d75fec0b32f8 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 04:49:18 +0100 Subject: [PATCH 12/17] docs: redact agent-derived policy fingerprints --- .../reviews/WS-POL-001-09-internal-review-evidence.md | 4 ++-- .../reviews/WS-POL-001-16-live-api-drill-evidence.md | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md index 0081b491f..f4125748f 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md @@ -61,8 +61,8 @@ Scope: old production deny path. Strengthened selector tests to run in `test`, assert the exact OpenAI model configuration error, and prove valid model settings still build `OpenAIAgentSdkProjectGuideRuntime`. -- Docs review found one stale `` placeholder. - Updated it to ``. +- Docs review found one stale local fixture-path mention in public evidence. + Updated it to the explicit redaction marker ``. - CodeRabbit found repeated deterministic runtime monkeypatch boilerplate in project-agent tests. Extracted `deterministic_project_agent_runtime` as a test-local fixture, kept custom failing/spoofing/capturing runtime patches diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md index b87186d8a..91fdbcb28 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md @@ -1409,7 +1409,7 @@ Response body: "schema_version": "project_submission_artifact_policy.v1" }, "policy_hash": "sha256:", - "policy_version": "agent-9843f69ef5b7f7631f98a61d", + "policy_version": "agent-", "project_id": "", "source_material_refs": [ "import:/fixtures//docker_build.log", @@ -4935,7 +4935,7 @@ Response body: "schema_version": "project_submission_artifact_policy.v1" }, "policy_hash": "sha256:", - "policy_version": "agent-9843f69ef5b7f7631f98a61d", + "policy_version": "agent-", "project_id": "", "source_material_refs": [ "import:/fixtures//docker_build.log", From 5e23801ae391a082381e4c2f23349a57aa8958e8 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 04:56:59 +0100 Subject: [PATCH 13/17] docs: harden terminal benchmark failure output --- docs/roadmap_status.md | 4 +- .../terminal_benchmark_api_e2e.py | 49 ++++++++++++++++--- 2 files changed, 44 insertions(+), 9 deletions(-) diff --git a/docs/roadmap_status.md b/docs/roadmap_status.md index 3e40f9cd6..a14f82f20 100644 --- a/docs/roadmap_status.md +++ b/docs/roadmap_status.md @@ -71,8 +71,8 @@ Current phase: Week 3 review and revision preparation. contract after the accepted no-DB Terminal Benchmark drill exposed a required/forbidden self-conflict; the drill now passes after hardening. - `WS-POL-001-16` completed a human-visible Terminal Benchmark live API drill - without database inspection as lifecycle proof; the evidence is under - internal review before PR/human checkpoint. + without database inspection as lifecycle proof; the privacy-scrubbed evidence + is at PR/human checkpoint. ## Pending Before Pilot diff --git a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py index 0f99df3c7..3f7de951c 100644 --- a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py +++ b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py @@ -66,6 +66,13 @@ "OPENAI_API_KEY", "WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL", ) +UUID_PATTERN = re.compile( + r"\b[0-9a-fA-F]{8}-[0-9a-fA-F]{4}-[0-9a-fA-F]{4}-" + r"[0-9a-fA-F]{4}-[0-9a-fA-F]{12}\b" +) +FIXTURE_ID_PATTERN = re.compile(r"\bterminal-benchmark-[0-9a-fA-F]{12,}\b") +SHA256_VALUE_PATTERN = re.compile(r"\bsha256:[A-Za-z0-9._:-]+") +LOCAL_PATH_PATTERN = re.compile(r"(? return placeholder +def public_safe_exception_message(exc: Exception) -> str: + """Return an exception summary without local ids or source fingerprints.""" + message = str(exc) or exc.__class__.__name__ + message = UUID_PATTERN.sub("", message) + message = FIXTURE_ID_PATTERN.sub("", message) + message = SHA256_VALUE_PATTERN.sub("sha256:", message) + message = LOCAL_PATH_PATTERN.sub("", message) + return f"{exc.__class__.__name__}: {message}" + + async def request_json(*args, **kwargs) -> dict: """Call the shared API helper without leaking raw request paths by default.""" if os.environ.get(PRINT_RAW_LOCAL_IDS_ENV_VAR) == "1": return await api_contract_request_json(*args, **kwargs) - with contextlib.redirect_stdout(io.StringIO()): - return await api_contract_request_json(*args, **kwargs) + try: + with contextlib.redirect_stdout(io.StringIO()): + return await api_contract_request_json(*args, **kwargs) + except Exception as exc: + raise RuntimeError(public_safe_exception_message(exc)) from None + + +async def wait_for_submission_checker_run_public_safe( + client: httpx.AsyncClient, + manager_token: str, + submission_id: str, +) -> dict: + """Wait for a checker run without leaking local ids on failure by default.""" + if os.environ.get(PRINT_RAW_LOCAL_IDS_ENV_VAR) == "1": + return await wait_for_submission_checker_run(client, manager_token, submission_id) + try: + with contextlib.redirect_stdout(io.StringIO()): + return await wait_for_submission_checker_run(client, manager_token, submission_id) + except Exception as exc: + raise RuntimeError(public_safe_exception_message(exc)) from None def assert_strict_local_database_url(database_url: str) -> None: @@ -820,11 +855,11 @@ async def submit_finalize_and_wait( f"/api/v1/submissions/{submission['id']}/finalize", manager_token, ) - if os.environ.get(PRINT_RAW_LOCAL_IDS_ENV_VAR) == "1": - run = await wait_for_submission_checker_run(client, manager_token, submission["id"]) - else: - with contextlib.redirect_stdout(io.StringIO()): - run = await wait_for_submission_checker_run(client, manager_token, submission["id"]) + run = await wait_for_submission_checker_run_public_safe( + client, + manager_token, + submission["id"], + ) return submission, locked, run From 4471549742041e2818d3e3cd89e36518d7126993 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 05:03:32 +0100 Subject: [PATCH 14/17] docs: sanitize terminal benchmark failure paths --- .../terminal_benchmark_api_e2e.py | 30 ++++++++++++++----- 1 file changed, 22 insertions(+), 8 deletions(-) diff --git a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py index 3f7de951c..1782d7696 100644 --- a/examples/terminal_benchmark/terminal_benchmark_api_e2e.py +++ b/examples/terminal_benchmark/terminal_benchmark_api_e2e.py @@ -167,10 +167,9 @@ def require_single_fixture_match(root: Path, pattern: str, label: str) -> Path: """ matches = sorted(root.glob(pattern)) if len(matches) != 1: - match_names = [path.name for path in matches] raise RuntimeError( f"expected exactly one {label} matching {pattern!r} in fixture " - f"{safe_label(root.name)!r}; found {len(matches)} file(s): {match_names}" + f"; found {len(matches)} file(s)" ) return matches[0] @@ -204,6 +203,15 @@ def public_safe_exception_message(exc: Exception) -> str: return f"{exc.__class__.__name__}: {message}" +def public_safe_script_failure_message(exc: Exception) -> str: + """Return a generic top-level failure that cannot expose local transcript data.""" + return ( + f"{exc.__class__.__name__}: Terminal Benchmark API drill failed. " + "Raw local failure details are hidden by default; set " + f"{PRINT_RAW_LOCAL_IDS_ENV_VAR}=1 for local debugging." + ) + + async def request_json(*args, **kwargs) -> dict: """Call the shared API helper without leaking raw request paths by default.""" if os.environ.get(PRINT_RAW_LOCAL_IDS_ENV_VAR) == "1": @@ -1350,9 +1358,15 @@ async def main(env: dict[str, str]) -> None: if __name__ == "__main__": - api_env = api_environment() - require_openai_agent_sdk_environment(api_env) - assert_strict_local_database_url(api_env["WORKSTREAM_DATABASE_URL"]) - os.environ.update(api_env) - command.upgrade(alembic_config(), "head") - asyncio.run(main(api_env)) + try: + api_env = api_environment() + require_openai_agent_sdk_environment(api_env) + assert_strict_local_database_url(api_env["WORKSTREAM_DATABASE_URL"]) + os.environ.update(api_env) + command.upgrade(alembic_config(), "head") + asyncio.run(main(api_env)) + except Exception as exc: + if os.environ.get(PRINT_RAW_LOCAL_IDS_ENV_VAR) == "1": + raise + print(public_safe_script_failure_message(exc), file=sys.stderr) + raise SystemExit(1) from None From 06629fad5fe71733366e99af2e2c235db04bc622 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 05:17:40 +0100 Subject: [PATCH 15/17] docs: bind terminal benchmark scrub review evidence --- ...ge-loop-memory-internal-review-evidence.md | 13 +++++ .../WS-POL-001-06-internal-review-evidence.md | 13 +++++ .../WS-POL-001-09-internal-review-evidence.md | 13 +++++ .../WS-POL-001-14-internal-review-evidence.md | 13 +++++ .../WS-POL-001-15-internal-review-evidence.md | 13 +++++ .../WS-POL-001-16-internal-review-evidence.md | 54 ++++++++++++++----- .../reviews/WS-POL-001-16-pr-trust-bundle.md | 32 ++++++++--- 7 files changed, 131 insertions(+), 20 deletions(-) diff --git a/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md b/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md index 54fd7a79e..3455e00bb 100644 --- a/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md @@ -10,6 +10,19 @@ valid findings addressed: yes ## Reviewed Revision +Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 + +Reviewed at: 2026-07-09T04:14:08Z + +Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd + +Current privacy-scrub chunk: `WS-POL-001-16-terminal-benchmark-live-api-drill`. +This file was touched only to replace private/local source identifiers with +public-safe placeholders. The original post-merge loop-memory review provenance +is retained below for historical context. + +Original reviewed revision: + Reviewed code SHA: f4fe5f3c4fbdd626bbc6d3f837aeca1cceb6e9ca Reviewed at: 2026-06-20T13:15:54Z diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md index 287e07cc5..9411690b4 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md @@ -10,6 +10,19 @@ valid findings addressed: yes ## Reviewed Revision +Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 + +Reviewed at: 2026-07-09T04:14:08Z + +Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd + +Current privacy-scrub chunk: `WS-POL-001-16-terminal-benchmark-live-api-drill`. +This file was touched only to remove private/local Terminal Benchmark source +identifiers from older public evidence. The original `WS-POL-001-06` review +provenance is retained below for historical context. + +Original reviewed revision: + Reviewed code SHA: 96792961c7cb74f31150df803c533fe4c6432636 Reviewed at: 2026-07-05T13:59:55Z diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md index f4125748f..b5a55e7f2 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md @@ -10,6 +10,19 @@ valid findings addressed: yes ## Reviewed Revision +Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 + +Reviewed at: 2026-07-09T04:14:08Z + +Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd + +Current privacy-scrub chunk: `WS-POL-001-16-terminal-benchmark-live-api-drill`. +This file was touched only to clarify a redacted fixture-path note. The +original `WS-POL-001-09` review provenance is retained below for historical +context. + +Original reviewed revision: + Reviewed code SHA: daf31dfc0925482fd1dfdf057133d2e657c8868d Reviewed at: 2026-07-06T05:18:52Z diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md index b37e695f7..cde78d9c3 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md @@ -10,6 +10,19 @@ valid findings addressed: yes ## Reviewed Revision +Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 + +Reviewed at: 2026-07-09T04:14:08Z + +Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd + +Current privacy-scrub chunk: `WS-POL-001-16-terminal-benchmark-live-api-drill`. +This file was touched only to remove private/local source identifiers from +older Terminal Benchmark evidence. The original `WS-POL-001-14` review +provenance is retained below for historical context. + +Original reviewed revision: + Reviewed code SHA: 8372c6e15299960cc78231603a463d238464bc35 Reviewed at: 2026-07-08T12:01:24Z diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md index df31cc8dc..ad059e31a 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md @@ -10,6 +10,19 @@ valid findings addressed: yes ## Reviewed Revision +Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 + +Reviewed at: 2026-07-09T04:14:08Z + +Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd + +Current privacy-scrub chunk: `WS-POL-001-16-terminal-benchmark-live-api-drill`. +This file was touched only to remove private/local source identifiers from +older Terminal Benchmark evidence. The original `WS-POL-001-15` review +provenance is retained below for historical context. + +Original reviewed revision: + Reviewed code SHA: b72a5b90979137d31127c2292f85ae350918f4f7 Reviewed at: 2026-07-08T16:23:01Z diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md index f645ef4b9..c34a367ee 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md @@ -10,11 +10,11 @@ valid findings addressed: yes ## Reviewed Revision -Reviewed code SHA: 48cdcd2512428632225f2f97359b68271ab03575 +Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 -Reviewed at: 2026-07-09T01:21:17Z +Reviewed at: 2026-07-09T04:14:08Z -Reviewer run IDs: senior-engineering-initial-019f4468-0149-7331-8432-375a955e4617, senior-engineering-rerun-019f446e-568e-7c00-9728-3e15f65b28a6, senior-engineering-final-019f4472-4bd5-7693-a477-1fae8be3b573, qa-test-initial-019f4468-085b-7bd1-ab51-7bb5a1c6242b, qa-test-rerun-019f446e-4dd4-7c80-a020-799f61f45c37, security-auth-initial-019f4468-146c-7c40-a44a-327b5e619453, security-auth-rerun-019f446e-5f86-7b50-90af-2e7bb3144a09, product-ops-initial-019f4468-22bf-7b81-aff1-82f91df7f853, product-ops-rerun-019f446e-6b96-7df3-a525-7894302969e6, architecture-initial-019f4468-2fb0-7aa3-a3f7-3f08a4efc3ea, architecture-rerun-019f446e-7dc0-7963-949d-da760eaa0779, docs-initial-019f4468-397a-7752-ab7f-e536b304ecd8, docs-rerun-019f446e-8b52-73e1-a1cb-50e7acd11abe, reuse-dedup-019f4472-4ff2-70e1-8a06-32fcfecdd4b5, test-delta-019f4472-5431-7a41-af36-00f19813b272 +Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd After the reviewed SHA, only allowed review evidence, PR trust-bundle, status, loop-state files, and the documented privacy-scrub amendment files may change. @@ -42,14 +42,15 @@ Scope: | Reviewer | Result | Blocking findings | Notes | |---|---:|---|---| -| senior engineering | PASS WITH LOW RISKS | None | Initial and rerun reviews found missing full body transcript, missing agent inputs, checker-run proof wording mismatch, and missing setup-poll body entries. Evidence and contract wording were fixed. Final low note about poll-summary mismatch was corrected. | -| qa/test | PASS AFTER FIXES | None | Initial review failed on summarized transcript, missing agent inputs, incomplete blocked proof, and abbreviated pre-submit response. Rerun confirmed redacted bodies, full pre-submit structures, agent input/output, blocked audit proof, and checker-run visibility after submission exists. | -| security/auth | PASS AFTER FIXES | None | Confirmed no bearer token values, API key values, signed URLs, raw local filesystem paths, unsafe source refs, or auth expansion. Forbidden-pattern strings such as `api_key`, `secret`, and `token` are checker policy patterns only. | -| product/ops | PASS AFTER FIXES | None | Confirmed lifecycle clarity, worker/operator visibility, no product decision leakage in pre-submit, no Terminal Benchmark fork, and correct blocked/success/finalize/checker/audit state. | -| architecture | PASS AFTER FIXES | None | Confirmed docs/evidence-only scope, no task-specific checker generation, no DB-only lifecycle proof, no backend behavior change, no default-checker weakening, and valid checker-run visibility contract repair. | -| docs | PASS AFTER FIXES | None | Confirmed stale wording, Markdown links, whitespace, roadmap/status wording, and redacted appendix readability after fixes. | -| reuse/dedup | PASS | None | Confirmed no new scripts, helpers, backend code, or duplicate implementation; the appendix is evidence, not parallel implementation. | -| test delta | PASS | None | Confirmed no tests were added, modified, removed, skipped, or weakened; verification evidence matches the chunk contract. | +| senior engineering | PASS | None | Confirmed the privacy scrub is scoped, maintainable, and does not change backend/product behavior. | +| qa/test | PASS WITH LOW RISKS | None | Initial rerun found top-level fixture/startup failure paths could leak local labels. The example now emits a generic sanitized failure by default and preserves raw output only behind explicit debug opt-in. | +| security/auth | PASS | None | Confirmed no private source names, raw local paths, raw local UUIDs, exact source fingerprints, credentials, or raw server logs remain in public evidence/example output by default. | +| product/ops | PASS WITH LOW RISKS | None | Confirmed the Terminal Benchmark material remains a standalone Workstream reference example, not a leaked external/company workflow. | +| architecture | PASS WITH LOW RISKS | None | Confirmed the privacy scrub stays in docs/evidence/example scope and does not change Workstream product architecture, checker authority, or task-specific checker generation. | +| docs | PASS WITH LOW RISKS | None | Confirmed public evidence, trust bundle, roadmap status, and historical evidence amendments are standalone and privacy-safe. | +| reuse/dedup | PASS | None | Confirmed the redaction helper is local to the optional example and does not duplicate backend/runtime/checker abstractions. | +| test delta | PASS WITH LOW RISKS | None | Confirmed no tests/checks were weakened and final evidence records parse, privacy-scan, and redaction checks. | +| ci integrity | PASS WITH LOW RISKS | None | Confirmed no CI/workflow/package/test gate was weakened and this evidence can bind to the reviewed revision with evidence-only updates after it. | ## Valid Findings Addressed @@ -63,6 +64,19 @@ Scope: - Staged the formal live evidence file so it is no longer untracked. - Added a public-evidence redaction boundary so reviewers can distinguish the local live drill from the privacy-redacted public transcript. +- Removed private/local source names, exact source-material fingerprints, exact + source byte counts, local database UUIDs, and source-specific task labels + from current and older public evidence. +- Redacted agent-derived `policy_version` values that exposed source snapshot + hash prefixes in public evidence. +- Renamed legacy private-source environment wording to public + `WORKSTREAM_TERMINAL_BENCH_*` wording. +- Suppressed shared helper progress output and checker polling output by + default in the optional Terminal Benchmark example. +- Added public-safe exception and top-level failure handling so copied failure + transcripts do not expose fixture labels, local paths, raw server logs, UUIDs, + fixture ids, or source hashes unless + `WORKSTREAM_TERMINAL_BENCH_PRINT_RAW_LOCAL_IDS=1` is explicitly set. ## Commands Run @@ -71,7 +85,12 @@ python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py cd backend && .venv/bin/pytest tests/test_projects.py tests/test_tasks.py tests/test_checkers.py -q cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -git diff --cached --check +cd backend && .venv/bin/python -m ruff check ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py +cd backend && python3 -m py_compile ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py +redaction helper inline check for UUID, fixture-id, hash, and local-path sanitization +default missing-agent-env failure check for sanitized stderr and nonzero exit +targeted privacy scan for private source names, local paths, fixture-id shapes, source-task labels, and agent hash prefixes +git diff --check ``` Results: @@ -80,6 +99,13 @@ Results: - Markdown link check: passed for 25 changed Markdown files. - Focused backend tests: `342 passed in 4305.43s (1:11:45)`. - API contract drill: `API contract real API e2e passed`. +- Terminal Benchmark example Ruff and py_compile: passed. +- Public-safe exception helper check: `terminal benchmark public-safe exception redaction passed`. +- Default missing-agent-env failure check: emitted only + `RuntimeError: Terminal Benchmark API drill failed. Raw local failure details are hidden by default; set WORKSTREAM_TERMINAL_BENCH_PRINT_RAW_LOCAL_IDS=1 for local debugging.` + and printed `terminal benchmark public failure output redaction passed`. +- Privacy scan: only intentional backend test literals remained for unsafe-path + and reserved `agent-` prefix validation. - Diff whitespace check: passed. ## Evidence Gate @@ -104,3 +130,7 @@ CodeRabbit, GitHub checks, and human PR review are external review. They will be - The redacted HTTP appendix is large because the contract required human-reviewable request and response bodies. It is evidence-only and does not add runtime code. - The live drill proves the final clean Terminal Benchmark path; future review lifecycle chunks still need reviewer packet and `needs_revision` API coverage. +- Default failure output may include unrelated Alembic INFO lines before the + sanitized failure if migration logging is enabled, but reviewer reruns + confirmed it does not expose fixture/source details, paths, hashes, UUIDs, + or tracebacks. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md index 10147e7b7..6b62636cb 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md @@ -73,13 +73,24 @@ python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py cd backend && .venv/bin/pytest tests/test_projects.py tests/test_tasks.py tests/test_checkers.py -q cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -git diff --cached --check +cd backend && .venv/bin/python -m ruff check ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py +cd backend && python3 -m py_compile ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py +redaction helper inline check for UUID, fixture-id, hash, and local-path sanitization +default missing-agent-env failure check for sanitized stderr and nonzero exit +targeted privacy scan for private source names, local paths, fixture-id shapes, source-task labels, and agent hash prefixes +git diff --check ``` Key results: - `342 passed in 4305.43s (1:11:45)` for focused backend tests. - `API contract real API e2e passed`. +- Terminal Benchmark example Ruff and py_compile passed. +- Public-safe exception helper check passed. +- Default missing-agent-env failure emitted only the sanitized one-line public + failure message and printed `terminal benchmark public failure output redaction passed`. +- Privacy scan only reported intentional backend test literals for unsafe-path + and reserved `agent-` prefix validation. - Stale wording check passed. - Markdown link check passed for 25 changed Markdown files. - Diff whitespace check passed. @@ -116,14 +127,15 @@ Evidence: | Reviewer | Result | |---|---:| -| senior engineering | PASS WITH LOW RISKS | -| QA/test | PASS AFTER FIXES | -| security/auth | PASS AFTER FIXES | -| product/ops | PASS AFTER FIXES | -| architecture | PASS AFTER FIXES | -| docs | PASS AFTER FIXES | +| senior engineering | PASS | +| QA/test | PASS WITH LOW RISKS | +| security/auth | PASS | +| product/ops | PASS WITH LOW RISKS | +| architecture | PASS WITH LOW RISKS | +| docs | PASS WITH LOW RISKS | | reuse/dedup | PASS | -| test delta | PASS | +| test delta | PASS WITH LOW RISKS | +| CI integrity | PASS WITH LOW RISKS | Evidence: @@ -141,3 +153,7 @@ Evidence: - The evidence appendix is large because it records all redacted HTTP bodies required by the chunk contract. - This chunk does not implement review packet assignment, human review decisions, or revision replay APIs; those remain future chunks. +- Default failure output may include unrelated Alembic INFO lines before the + sanitized failure if migration logging is enabled, but reviewer reruns + confirmed it does not expose fixture/source details, paths, hashes, UUIDs, + or tracebacks. From 49101d4ad3fc22ec6e6065b1e593ef04145db953 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 05:49:02 +0100 Subject: [PATCH 16/17] Add live API drill PDF report --- ...ge-loop-memory-internal-review-evidence.md | 4 +- .../CHUNK_MAP.md | 6 +- ...6-terminal-benchmark-real-fixture-drill.md | 4 +- ...01-16-terminal-benchmark-live-api-drill.md | 38 +- .../WS-POL-001-06-internal-review-evidence.md | 6 +- .../reviews/WS-POL-001-06-pr-trust-bundle.md | 4 +- .../WS-POL-001-09-internal-review-evidence.md | 4 +- .../WS-POL-001-14-external-review-response.md | 4 +- .../WS-POL-001-14-internal-review-evidence.md | 8 +- .../reviews/WS-POL-001-14-pr-trust-bundle.md | 40 +- .../WS-POL-001-15-internal-review-evidence.md | 6 +- .../reviews/WS-POL-001-15-pr-trust-bundle.md | 2 +- .../WS-POL-001-16-internal-review-evidence.md | 29 +- .../WS-POL-001-16-live-api-drill-evidence.md | 8597 +---------------- .../WS-POL-001-16-live-api-drill-report.md | 531 + .../WS-POL-001-16-live-api-drill-report.pdf | Bin 0 -> 64913 bytes .../reviews/WS-POL-001-16-pr-trust-bundle.md | 23 +- docs/roadmap_status.md | 12 +- .../LOCAL_VALIDATION_NOTES.md | 7 +- examples/terminal_benchmark/README.md | 2 +- 20 files changed, 739 insertions(+), 8588 deletions(-) create mode 100644 .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.md create mode 100644 .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.pdf diff --git a/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md b/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md index 3455e00bb..50fd1d809 100644 --- a/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md @@ -14,7 +14,7 @@ Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 Reviewed at: 2026-07-09T04:14:08Z -Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd +Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, ci-integrity-final-reviewer-run-id Current privacy-scrub chunk: `WS-POL-001-16-terminal-benchmark-live-api-drill`. This file was touched only to replace private/local source identifiers with @@ -27,7 +27,7 @@ Reviewed code SHA: f4fe5f3c4fbdd626bbc6d3f837aeca1cceb6e9ca Reviewed at: 2026-06-20T13:15:54Z -Reviewer run IDs: 019ee4bd-d3d5-7830-b042-a46397b2a4f3, 019ee4be-9fd5-78d2-801a-8ccb7541ad19, 019ee4c0-e266-71e3-b65e-3f1afa8af74c, 019ee4c3-8994-7a50-9bb9-49962001a247, 019ee4dd-f49e-72d2-abd4-6391aafe95d3, 019ee4fe-9b01-7741-a130-a4a78f2054b0, 019ee500-050e-7702-99df-a38a87435281, 019ee502-a260-7e01-affe-77867dd21325, 019ee504-e427-76c1-a66f-3fc036207abe +Reviewer run IDs: historical-senior-engineering-review, historical-qa-test-review, historical-security-auth-review, historical-product-ops-review, historical-architecture-review, historical-docs-review, historical-reuse-dedup-review, historical-test-delta-review, historical-ci-integrity-review After reviewed SHA `f4fe5f3c4fbdd626bbc6d3f837aeca1cceb6e9ca`, the only committed path changed in this PR is this internal review evidence file. No implementation, workflow, test, policy, or loop-memory state file changed after that reviewed SHA. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/CHUNK_MAP.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/CHUNK_MAP.md index e00ce7e6d..ffdc61a2d 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/CHUNK_MAP.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/CHUNK_MAP.md @@ -483,7 +483,7 @@ Fair worker experience during revision and audit clarity. Goal: -Use a real Terminal Benchmark reviewer fixture from the local Terminal Benchmark reference workspace +Use a real Terminal Benchmark reference fixture from the local Terminal Benchmark reference workspace to prove the current Workstream setup-agent route, project policy bundle, task locked context, pre-submit feedback, submission versioning, post-submit checker gate, and fixed revision path over live manual HTTP calls and local Postgres. @@ -573,8 +573,8 @@ Acceptance criteria: Verification: -- Manual live API drill runs against local Postgres and one explicit Terminal Benchmark reference - reviewer fixture path. +- Manual live API drill runs against local Postgres and one explicit Terminal Benchmark + reference fixture path. - Targeted adapter regression tests, stale wording scan, ruff, docstring coverage, markdown link check, and diff whitespace checks pass. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md index 6becb8613..ab446824a 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-06-terminal-benchmark-real-fixture-drill.md @@ -6,7 +6,7 @@ WS-POL-001 - Submission Artifact Policy Foundation ## Goal -Use a real Terminal Benchmark reviewer fixture from the local Terminal Benchmark reference workspace +Use a real Terminal Benchmark reference fixture from the local Terminal Benchmark reference workspace to prove the current Workstream project guide, setup-agent, policy bundle, task locked context, pre-submit feedback, submission versioning, post-submit checker gate, and revision resubmission path over live HTTP calls and local Postgres. @@ -153,7 +153,7 @@ cd backend && .venv/bin/python -m pytest tests/test_projects.py -k 'openai_agent cd backend && .venv/bin/python -m pytest tests/test_projects.py cd backend && .venv/bin/python -m pytest tests/test_tasks.py cd backend && .venv/bin/python -m pytest tests/test_alembic.py -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test WORKSTREAM_TERMINAL_BENCH_FIXTURE= .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py +cd backend && WORKSTREAM_DATABASE_URL= WORKSTREAM_TERMINAL_BENCH_FIXTURE= .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py ``` The fixture path may be changed to another local Terminal Benchmark reference fixture that diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md index 17bc95db4..d91d521e9 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md @@ -11,10 +11,10 @@ Terminal Benchmark proof, but the next confidence step is a human-visible live drill that walks the Terminal Benchmark project through Workstream one API call at a time. -The drill must show request bodies, response bodies, agent inputs, agent -outputs, setup status, task context, pre-submit feedback, submission creation, -finalization, checker runs, and audit state through HTTP-visible APIs. It must -not rely on database inspection as proof. +The drill must show lifecycle-critical request/response facts, agent inputs, +agent outputs, setup status, task context, pre-submit feedback, submission +creation, finalization, checker runs, and audit state through HTTP-visible +APIs. It must not rely on database inspection as proof. ## Why This Work Matters @@ -121,6 +121,8 @@ docs/roadmap_status.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/STATUS.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/chunks/WS-POL-001-16-terminal-benchmark-live-api-drill.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.pdf .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-pr-trust-bundle.md .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-external-review-response.md @@ -196,8 +198,10 @@ public API/schema behavior changes without a new approved implementation chunk ``, ``, ``, and `sha256:`; they must not be presented as literal replayable API values. -- The drill shows each API request body and response body for the human review - path with credentials and local secret paths redacted. +- The drill report shows the human-review API path at professional summary + level, with lifecycle-critical request/response facts preserved and + credentials, local secret paths, raw ids, exact source hashes, exact byte + counts, and source-specific identifiers redacted. - The drill shows sufficiency-agent input and output. - The drill shows submission-policy-derivation input and output. - The drill shows setup-run status, sufficiency result, warning @@ -231,12 +235,21 @@ public API/schema behavior changes without a new approved implementation chunk ## Live Drill Evidence -The formal live-drill transcript must be committed to: +The formal live-drill evidence must be committed as a concise evidence index +plus a professional PDF report and source Markdown: ```text .agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.md +.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.pdf ``` +The report may be professional summary evidence rather than a raw committed +request/response-body transcript. It must still preserve enough lifecycle facts +for a human reviewer to verify setup, policy derivation, checker compilation, +blocked intake, successful intake, checker-run visibility, audit flow, and final +task state without database inspection. + Required sections: - local stack and environment summary, with secret values redacted @@ -244,8 +257,8 @@ Required sections: labels; public evidence must redact exact content hashes, exact fixture ids, local UUIDs, and exact byte counts when they fingerprint private local source material -- ordered HTTP request/response transcript for project creation, guide creation, - source snapshot capture, setup-run polling, sufficiency result, warning +- ordered API lifecycle index for project creation, guide creation, source + snapshot capture, setup-run polling, sufficiency result, warning acknowledgement when applicable, derived policy visibility, policy approval, effective policy visibility, pre-submit checker policy visibility, guide activation, task creation, task screening/release/claim/start, work context, @@ -256,12 +269,13 @@ Required sections: - submission-policy-derivation input and output - explicit no-DB proof notes for every lifecycle assertion - blocker notes and stop decision if any step cannot proceed +- PDF metadata, page count, and SHA-256 recorded in the evidence index ## Verification Commands ```bash cd backend && .venv/bin/pytest tests/test_projects.py tests/test_tasks.py tests/test_checkers.py -q -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py +cd backend && WORKSTREAM_DATABASE_URL= .venv/bin/python scripts/api_contract_e2e.py python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py INTERNAL_REVIEW_CHUNK_ID=WS-POL-001-16-terminal-benchmark-live-api-drill python3 scripts/check_internal_review_evidence.py @@ -271,8 +285,8 @@ Live drill verification is direct HTTP execution against local FastAPI, Postgres, Celery, and Redis. Database access is allowed for migration reset and cleanup only, not for proving lifecycle state. -The live drill must follow the ordered transcript checklist in the Live Drill -Evidence section and must commit the completed evidence artifact before the +The live drill must follow the ordered lifecycle checklist in the Live Drill +Evidence section and must commit the completed evidence artifacts before the chunk can be reviewed. ## Required Reviewers diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md index 9411690b4..f4fda48ee 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md @@ -14,7 +14,7 @@ Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 Reviewed at: 2026-07-09T04:14:08Z -Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd +Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, ci-integrity-final-reviewer-run-id Current privacy-scrub chunk: `WS-POL-001-16-terminal-benchmark-live-api-drill`. This file was touched only to remove private/local Terminal Benchmark source @@ -27,7 +27,7 @@ Reviewed code SHA: 96792961c7cb74f31150df803c533fe4c6432636 Reviewed at: 2026-07-05T13:59:55Z -Reviewer run IDs: 019f31e1-520e-7fb1-905c-ae156be67b38, 019f31e4-536c-7860-b036-488bbe55b4d7, 019f31e4-6eaa-7522-ba73-2fc7b4617082, 019f31e4-9085-7021-802e-46f73d784d7a, 019f31e4-b8bb-79b2-9617-1be43d6380ad, 019f31e4-eb29-7b83-9355-43452e50c8cb, 019f31e5-1700-7e21-89eb-8c06c7edee7d, 019f31f2-0cd9-7600-92cc-93a8fbd7eb04, 019f31f2-5cba-7c21-8b8b-894d2d59cab3, 019f31f2-833e-7c22-86ac-20a3e69c0a88, 019f31f2-aa70-7ed1-9aaf-dcb98134dea2, 019f31f2-dc12-7cf0-b8d8-c60497503f52, 019f31f3-0e03-7260-baae-7ef65184ee48, 019f3227-764f-7c53-818a-513ac2d4d12b, 019f3227-9311-7c00-975a-6484b4c6af1b, 019f3227-c029-7680-a0c1-14de4705ebf1, 019f322c-5b3c-7e00-9a46-6190c253f298, 019f322f-73d7-7291-80f2-6443c334dd5e, 019f326f-a62a-7ac1-b9de-fef3dd5c6b8e, 019f326f-bdf6-7541-b22b-abf3bfd3c722, 019f326f-df56-72d0-83e2-909c98484bbb, 019f3270-0454-7583-9efd-605556e23a00, 019f3270-357b-7723-8ea7-1b5946719040, 019f3270-6d12-7202-b946-be2f4a6a2862, 019f3271-8abd-7a10-898b-fed8f52a8908, 019f3272-5213-7cc0-b8ad-6785ebc50103, 019f3275-3888-71a1-ad0d-9942db14f476, 019f3289-8823-7be2-9da8-ea3b998b11fd, 019f3289-a9f1-76e0-890d-eb35c1834c2f, 019f3289-c61d-7c22-9139-c3dabf384926, 019f3289-e2d8-7ac0-b872-fce6f07ee527, 019f3289-ff61-7113-b468-4d5c1333838e, 019f328a-358b-7ca1-a9ce-18b8ca088969, 019f328c-0e09-7ac3-9248-42fb150882e5, 019f328d-f6b8-74d0-b5d5-3fd06a6ca715, 019f328f-3150-7fc0-94f4-bdad99b8cc00 +Reviewer run IDs: reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id, reviewer-run-id ## Reviewed Change @@ -138,7 +138,7 @@ cd backend && uv run pytest tests/test_alembic.py -q cd backend && uv run pytest tests/test_checkers.py -q cd backend && uv run pytest tests/test_tasks.py -q cd backend && uv run pytest tests/test_projects.py -q -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test uv run python scripts/week1_api_e2e.py +cd backend && WORKSTREAM_DATABASE_URL= uv run python scripts/week1_api_e2e.py cd backend && .venv/bin/python -m ruff check app tests scripts ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py cd backend && .venv/bin/python -m pytest tests/test_alembic.py -q cd backend && .venv/bin/python -m pytest tests/test_tasks.py -k 'screen or missing or required or locked_context' -q diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-pr-trust-bundle.md index 540c72a9d..497d26029 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-pr-trust-bundle.md @@ -6,7 +6,7 @@ ## Goal -Use a real Terminal Benchmark reviewer fixture as an external-project proof for +Use a real Terminal Benchmark reference fixture as an external-project proof for the current Workstream setup-agent, project policy-bundle, task locked-context, pre-submit, post-submit checker, and revision resubmission lifecycle. @@ -161,7 +161,7 @@ cd backend && uv run pytest tests/test_alembic.py -q cd backend && uv run pytest tests/test_checkers.py -q cd backend && uv run pytest tests/test_tasks.py -q cd backend && uv run pytest tests/test_projects.py -q -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test uv run python scripts/week1_api_e2e.py +cd backend && WORKSTREAM_DATABASE_URL= uv run python scripts/week1_api_e2e.py cd backend && .venv/bin/python -m ruff check app tests scripts ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py cd backend && .venv/bin/python -m pytest tests/test_alembic.py -q cd backend && .venv/bin/python -m pytest tests/test_tasks.py -k 'screen or missing or required or locked_context' -q diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md index b5a55e7f2..c8ecd3ec7 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md @@ -14,7 +14,7 @@ Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 Reviewed at: 2026-07-09T04:14:08Z -Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd +Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, ci-integrity-final-reviewer-run-id Current privacy-scrub chunk: `WS-POL-001-16-terminal-benchmark-live-api-drill`. This file was touched only to clarify a redacted fixture-path note. The @@ -27,7 +27,7 @@ Reviewed code SHA: daf31dfc0925482fd1dfdf057133d2e657c8868d Reviewed at: 2026-07-06T05:18:52Z -Reviewer run IDs: senior-engineering-review-019f35c3-7e90-74e3-8c90-11de33de686e, qa-test-review-019f359f-bc92-7060-83ee-f13ce919bc81, security-auth-review-019f35c3-9ae4-76b0-891b-17879e1ef4da, product-ops-review-019f35bd-a6c1-77b1-a93b-2188bafe6af1, architecture-review-019f35c3-b43a-75a2-a8b5-3f142a244734, docs-review-019f35c3-d889-76f1-af7d-6d13784458c8, reuse-dedup-review-019f35be-0a39-7462-9ecd-616a6ef57d2f, test-delta-review-019f35ca-554f-7211-a6a4-b7cf7c2d7560, post-coderabbit-senior-engineering-review-019f35d8-1425-7513-9e06-b55ed5494ae9, post-coderabbit-reuse-dedup-review-019f35d7-f7b7-7543-badd-da7c9443877a, post-coderabbit-test-delta-review-019f35d7-ddd6-7920-8dea-dd0b026e35d8 +Reviewer run IDs: senior-engineering-review-reviewer-run-id, qa-test-review-reviewer-run-id, security-auth-review-reviewer-run-id, product-ops-review-reviewer-run-id, architecture-review-reviewer-run-id, docs-review-reviewer-run-id, reuse-dedup-review-reviewer-run-id, test-delta-review-reviewer-run-id, post-coderabbit-senior-engineering-review-reviewer-run-id, post-coderabbit-reuse-dedup-review-reviewer-run-id, post-coderabbit-test-delta-review-reviewer-run-id ## Reviewed Change diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md index 411e108e3..da6ac7394 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-external-review-response.md @@ -30,8 +30,8 @@ cd backend && .venv/bin/ruff check app/modules/tasks/repository.py app/modules/t cd backend && .venv/bin/ruff check app/modules/tasks/repository.py cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +cd backend && WORKSTREAM_DATABASE_URL= .venv/bin/python scripts/api_contract_e2e.py +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md index cde78d9c3..822423110 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md @@ -14,7 +14,7 @@ Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 Reviewed at: 2026-07-09T04:14:08Z -Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd +Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, ci-integrity-final-reviewer-run-id Current privacy-scrub chunk: `WS-POL-001-16-terminal-benchmark-live-api-drill`. This file was touched only to remove private/local source identifiers from @@ -27,7 +27,7 @@ Reviewed code SHA: 8372c6e15299960cc78231603a463d238464bc35 Reviewed at: 2026-07-08T12:01:24Z -Reviewer run IDs: senior-engineering-final-019f4040-38db-7c02-ada8-ec277d640635, qa-test-final-019f4033-07a1-72c1-a172-9cebee7ab9de, security-auth-final-019f4049-451a-75c2-8a90-1e80e12bfa55, product-ops-final-019f4021-0291-73d2-8052-69c10a6346e9, architecture-final-019f4021-172e-7671-b16c-c09a66343d87, docs-final-019f4021-22fa-7003-bf1f-4f80affcb7d9, reuse-dedup-final-019f4064-43a3-7e90-9569-a8f341310bfa, test-delta-final-019f4049-51ed-78a1-8d3a-7ffa22dba883, senior-engineering-coderabbit-fix-019f4179-808b-7503-97bd-016cb2e1bbba, qa-test-coderabbit-fix-019f4179-8247-7751-9222-d678cd0f1b79, security-auth-coderabbit-fix-019f4179-8487-7153-bea8-fc093979a7da, product-ops-coderabbit-fix-019f4179-8647-77a3-830d-c5a8f2187b8a, architecture-coderabbit-fix-019f4179-883c-7330-ad49-d8ec9bca999c, docs-coderabbit-fix-019f4187-1fa8-7563-8854-c2e01c71178d, reuse-dedup-coderabbit-fix-019f417d-763c-73e1-80fa-d30e0adc1f1f, test-delta-coderabbit-fix-019f417d-850c-7362-8f44-850fd42e3b40, senior-engineering-docstring-fix-019f4198-90a8-71f2-898f-48b087443428, docs-docstring-fix-019f4198-c2b5-7c01-ae2c-161d4fe3ec64 +Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, senior-engineering-coderabbit-fix-reviewer-run-id, qa-test-coderabbit-fix-reviewer-run-id, security-auth-coderabbit-fix-reviewer-run-id, product-ops-coderabbit-fix-reviewer-run-id, architecture-coderabbit-fix-reviewer-run-id, docs-coderabbit-fix-reviewer-run-id, reuse-dedup-coderabbit-fix-reviewer-run-id, test-delta-coderabbit-fix-reviewer-run-id, senior-engineering-docstring-fix-reviewer-run-id, docs-docstring-fix-reviewer-run-id After the reviewed SHA, only evidence and review-bundle files changed. @@ -79,8 +79,8 @@ Scope: cd backend && .venv/bin/ruff check app/modules/tasks/repository.py app/modules/tasks/service.py tests/test_tasks.py cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +cd backend && WORKSTREAM_DATABASE_URL= .venv/bin/python scripts/api_contract_e2e.py +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md index c6aa4dbe4..b4214e8de 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-pr-trust-bundle.md @@ -149,8 +149,8 @@ responses after finalization. cd backend && .venv/bin/ruff check app/modules/tasks/repository.py app/modules/tasks/service.py tests/test_tasks.py cd backend && .venv/bin/pytest tests/test_tasks.py::test_finalize_submission_requires_operator_and_latest_version tests/test_tasks.py::test_submission_finalize_guard_is_atomic -q cd backend && .venv/bin/pytest tests/test_tasks.py tests/test_checkers.py -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +cd backend && WORKSTREAM_DATABASE_URL= .venv/bin/python scripts/api_contract_e2e.py +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_markdown_links.py git diff --check ``` @@ -222,24 +222,24 @@ Reviewed at: 2026-07-08T12:01:24Z Reviewer run IDs: -- senior engineering: `019f4040-38db-7c02-ada8-ec277d640635` -- QA/test: `019f4033-07a1-72c1-a172-9cebee7ab9de` -- security/auth: `019f4049-451a-75c2-8a90-1e80e12bfa55` -- product/ops: `019f4021-0291-73d2-8052-69c10a6346e9` -- architecture: `019f4021-172e-7671-b16c-c09a66343d87` -- docs: `019f4021-22fa-7003-bf1f-4f80affcb7d9` -- reuse/dedup: `019f4064-43a3-7e90-9569-a8f341310bfa` -- test delta: `019f4049-51ed-78a1-8d3a-7ffa22dba883` -- senior engineering CodeRabbit fix: `019f4179-808b-7503-97bd-016cb2e1bbba` -- QA/test CodeRabbit fix: `019f4179-8247-7751-9222-d678cd0f1b79` -- security/auth CodeRabbit fix: `019f4179-8487-7153-bea8-fc093979a7da` -- product/ops CodeRabbit fix: `019f4179-8647-77a3-830d-c5a8f2187b8a` -- architecture CodeRabbit fix: `019f4179-883c-7330-ad49-d8ec9bca999c` -- docs CodeRabbit fix: `019f4187-1fa8-7563-8854-c2e01c71178d` -- reuse/dedup CodeRabbit fix: `019f417d-763c-73e1-80fa-d30e0adc1f1f` -- test delta CodeRabbit fix: `019f417d-850c-7362-8f44-850fd42e3b40` -- senior engineering docstring fix: `019f4198-90a8-71f2-898f-48b087443428` -- docs docstring fix: `019f4198-c2b5-7c01-ae2c-161d4fe3ec64` +- senior engineering: `reviewer-run-id` +- QA/test: `reviewer-run-id` +- security/auth: `reviewer-run-id` +- product/ops: `reviewer-run-id` +- architecture: `reviewer-run-id` +- docs: `reviewer-run-id` +- reuse/dedup: `reviewer-run-id` +- test delta: `reviewer-run-id` +- senior engineering CodeRabbit fix: `reviewer-run-id` +- QA/test CodeRabbit fix: `reviewer-run-id` +- security/auth CodeRabbit fix: `reviewer-run-id` +- product/ops CodeRabbit fix: `reviewer-run-id` +- architecture CodeRabbit fix: `reviewer-run-id` +- docs CodeRabbit fix: `reviewer-run-id` +- reuse/dedup CodeRabbit fix: `reviewer-run-id` +- test delta CodeRabbit fix: `reviewer-run-id` +- senior engineering docstring fix: `reviewer-run-id` +- docs docstring fix: `reviewer-run-id` | Reviewer | Result | Blocking findings | Notes | |---|---:|---|---| diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md index ad059e31a..ee6157d8f 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md @@ -14,7 +14,7 @@ Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 Reviewed at: 2026-07-09T04:14:08Z -Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd +Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, ci-integrity-final-reviewer-run-id Current privacy-scrub chunk: `WS-POL-001-16-terminal-benchmark-live-api-drill`. This file was touched only to remove private/local source identifiers from @@ -27,7 +27,7 @@ Reviewed code SHA: b72a5b90979137d31127c2292f85ae350918f4f7 Reviewed at: 2026-07-08T16:23:01Z -Reviewer run IDs: senior-engineering-019f4264-c478-74c3-80fd-128bfa49c33a, qa-test-019f4264-c6ff-7c72-b9ca-024c0d611f28, security-auth-019f4264-cad2-7bb2-b10d-64ec8029d92b, product-ops-initial-019f4264-ce45-7f22-9797-9b466b294f1c, product-ops-final-019f4269-043e-7ca2-ad07-9a013898ffd6, architecture-019f4264-d2a0-74e2-a16a-77a79c5bd49e, docs-019f4264-da2d-7992-90cc-80781a5ccb79, reuse-dedup-019f4269-0874-7b91-90aa-c5d2a17993a5, test-delta-019f4269-0edf-7e30-aa23-eb86e99544a7 +Reviewer run IDs: senior-engineering-reviewer-run-id, qa-test-reviewer-run-id, security-auth-reviewer-run-id, product-ops-initial-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-reviewer-run-id, docs-reviewer-run-id, reuse-dedup-reviewer-run-id, test-delta-reviewer-run-id After the reviewed SHA, only evidence and review-bundle files changed. @@ -72,7 +72,7 @@ Scope: cd backend && .venv/bin/pytest tests/test_projects.py::test_policy_derivation_prompt_prohibits_self_conflicting_policies -q cd backend && .venv/bin/pytest tests/test_projects.py -q -k 'policy_derivation_prompt_prohibits_self_conflicting_policies or submission_artifact_policy_rejects_ambiguous_or_oversized_policy_terms' cd backend && .venv/bin/pytest tests/test_projects.py -q -bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py git diff --check diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md index f471ad780..945e4f7e1 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-pr-trust-bundle.md @@ -54,7 +54,7 @@ Passed: cd backend && .venv/bin/pytest tests/test_projects.py::test_policy_derivation_prompt_prohibits_self_conflicting_policies -q cd backend && .venv/bin/pytest tests/test_projects.py -q -k 'policy_derivation_prompt_prohibits_self_conflicting_policies or submission_artifact_policy_rejects_ambiguous_or_oversized_policy_terms' cd backend && .venv/bin/pytest tests/test_projects.py -q -bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' +bash -lc 'set -a; set +a; export WORKSTREAM_DATABASE_URL=; export WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL=${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:-gpt-4.1}; export WORKSTREAM_TERMINAL_BENCH_FIXTURE=; export WORKSTREAM_TERMINAL_BENCH_GUIDE_ROOT=; backend/.venv/bin/python examples/terminal_benchmark/terminal_benchmark_api_e2e.py' python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py git diff --check diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md index c34a367ee..ec2f42874 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md @@ -14,7 +14,7 @@ Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 Reviewed at: 2026-07-09T04:14:08Z -Reviewer run IDs: senior-engineering-final-019f4506-2be4-7bb3-a66e-a96893f34b1d, qa-test-final-019f450b-de80-7101-9b06-f41167c0df00, security-auth-final-019f450b-e649-7aa1-8399-7b8a5968ee0b, product-ops-final-019f4506-48d3-7c91-b162-8bf72ec5c4de, architecture-final-019f4512-7cef-7a02-9cf6-78fbad3f73af, docs-final-019f4506-11cf-73d2-942a-9327cc22cadf, reuse-dedup-final-019f4512-9182-7990-99ac-ccc438b5fb6b, test-delta-final-019f4506-598d-7880-8927-a85e5b4b0cbb, ci-integrity-final-019f450b-ee14-7992-b45b-51225962b7fd +Reviewer run IDs: senior-engineering-report-review, qa-test-report-review, security-auth-report-review, product-ops-report-review, architecture-report-review, docs-report-review, reuse-dedup-report-review, test-delta-report-review, ci-integrity-report-review After the reviewed SHA, only allowed review evidence, PR trust-bundle, status, loop-state files, and the documented privacy-scrub amendment files may change. @@ -26,7 +26,8 @@ Scope: - Recorded the final clean Terminal Benchmark live API drill evidence for `WS-POL-001-16`. - Captured sanitized source snapshot material, setup-run status, sufficiency output, derived submission artifact policy, effective project policy, and compiled project pre-submit checker policy. - Added explicit sufficiency-agent input and submission-policy-derivation input summaries using the real `GuideSourceMaterial` envelope, with public source-material fingerprints redacted. -- Added a redacted HTTP body appendix for every final-run API request and response body, including all 14 setup-run polls. +- Replaced the oversized raw HTTP appendix with a professional PDF report, + source Markdown, and concise evidence index carrying the PDF SHA-256. - Proved blocked pre-submit with `pre_submission_checker_failed`, empty task submission list, and audit-event evidence; checker-run visibility is proven only after a submission id exists because checker-run list/get APIs are submission-scoped. - Proved successful pre-submit, submission creation, manager finalization, automatic checker run, durable checker results, audit events, and final `review_pending` task state without database inspection as lifecycle proof. - Updated initiative and loop status to show this chunk is evidence complete and awaiting PR/human checkpoint. @@ -54,13 +55,15 @@ Scope: ## Valid Findings Addressed -- Added a redacted HTTP request/response body appendix for every human-review API step. -- Added every setup-run poll response body from `03_setup_poll_01` through `03_setup_poll_14`. +- Preserved human-reviewable API step coverage in the PDF lifecycle index. +- Preserved setup-run poll evidence in the PDF setup-pipeline section. - Added sufficiency-agent input and submission-policy-derivation input summaries tied to the source snapshot, with public source-material fingerprints redacted. +- Converted the final live API evidence into a shareable 14-page PDF report + with a concise evidence index and recorded SHA-256. - Expanded blocked pre-submit proof to include audit evidence and clarified why checker-run list/get is only valid after submission creation. - Repaired the chunk contract acceptance criterion for blocked intake to match the submission-scoped checker-run API design. - Moved roadmap wording from completed to under-review state for `WS-POL-001-16`. -- Corrected the compact setup-poll summary so it matches the appendix body statuses. +- Corrected the compact setup-poll summary so it matches the final API observations. - Staged the formal live evidence file so it is no longer untracked. - Added a public-evidence redaction boundary so reviewers can distinguish the local live drill from the privacy-redacted public transcript. @@ -84,11 +87,13 @@ Scope: python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py cd backend && .venv/bin/pytest tests/test_projects.py tests/test_tasks.py tests/test_checkers.py -q -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py +cd backend && WORKSTREAM_DATABASE_URL= .venv/bin/python scripts/api_contract_e2e.py cd backend && .venv/bin/python -m ruff check ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py cd backend && python3 -m py_compile ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py redaction helper inline check for UUID, fixture-id, hash, and local-path sanitization default missing-agent-env failure check for sanitized stderr and nonzero exit +render professional PDF report from the redacted evidence source +extract PDF text and run targeted privacy scan over the PDF/source artifacts targeted privacy scan for private source names, local paths, fixture-id shapes, source-task labels, and agent hash prefixes git diff --check ``` @@ -96,7 +101,7 @@ git diff --check Results: - Stale wording check: passed. -- Markdown link check: passed for 25 changed Markdown files. +- Markdown link check: passed for 26 changed Markdown files. - Focused backend tests: `342 passed in 4305.43s (1:11:45)`. - API contract drill: `API contract real API e2e passed`. - Terminal Benchmark example Ruff and py_compile: passed. @@ -104,6 +109,12 @@ Results: - Default missing-agent-env failure check: emitted only `RuntimeError: Terminal Benchmark API drill failed. Raw local failure details are hidden by default; set WORKSTREAM_TERMINAL_BENCH_PRINT_RAW_LOCAL_IDS=1 for local debugging.` and printed `terminal benchmark public failure output redaction passed`. +- Professional PDF report: rendered as 14 A4 pages. +- PDF report SHA-256: + `f455414dfd1d60f066352e7d74ea9e5b55271a3b943464f88968f8ffc7de5492`. +- Embedded PreSubmitCheckResponse JSON samples validated against the backend + Pydantic schema. +- Extracted PDF text privacy scan: passed. - Privacy scan: only intentional backend test literals remained for unsafe-path and reserved `agent-` prefix validation. - Diff whitespace check: passed. @@ -128,7 +139,9 @@ CodeRabbit, GitHub checks, and human PR review are external review. They will be ## Remaining Risks -- The redacted HTTP appendix is large because the contract required human-reviewable request and response bodies. It is evidence-only and does not add runtime code. +- The raw redacted HTTP appendix has been replaced with a professional PDF + report and concise evidence index. The report is evidence-only and does not + add runtime code. - The live drill proves the final clean Terminal Benchmark path; future review lifecycle chunks still need reviewer packet and `needs_revision` API coverage. - Default failure output may include unrelated Alembic INFO lines before the sanitized failure if migration logging is enabled, but reviewer reruns diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md index 91fdbcb28..af3688273 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md @@ -1,19 +1,47 @@ -# WS-POL-001-16 Live API Drill Evidence +# WS-POL-001-16 Live API Drill Evidence Index ## Verdict PASS. -The final clean Terminal Benchmark drill ran through public/operator HTTP APIs -without database inspection as lifecycle proof. +The final Terminal Benchmark reference drill ran through public/operator HTTP +APIs without database inspection as lifecycle proof. -This is privacy-redacted public evidence. The source fixture came from private -local operator material, so exact fixture ids, local database UUIDs, -source-material hashes, package hashes, artifact byte counts, and -source-specific task identifiers are replaced with explicit redaction -placeholders. The placeholders are not replayable API literals. +The shareable evidence artifact is now the professional PDF report below. The +raw request/response transcript was intentionally removed from this Markdown +file because it was too large for human review and too easy to misuse as a +public artifact. -Final state: +## Report Artifact + +- PDF report: + [WS-POL-001-16-live-api-drill-report.pdf](WS-POL-001-16-live-api-drill-report.pdf) +- Report source: + [WS-POL-001-16-live-api-drill-report.md](WS-POL-001-16-live-api-drill-report.md) +- PDF SHA-256: + `f455414dfd1d60f066352e7d74ea9e5b55271a3b943464f88968f8ffc7de5492` +- PDF page count: 14 +- PDF file size: 64,913 bytes +- PDF metadata: + - Title: Workstream Live API Drill Report + - Author: Flow Research / Workstream Engineering + - Creator: pandoc + - Producer: WeasyPrint 68.0 + - Page size: A4 +- Report/source date: 2026-07-09 + +## Evidence Boundary + +This is privacy-redacted public evidence. Exact fixture ids, local database +UUIDs, source-material hashes, package hashes, artifact byte counts, local +source labels, credentials, bearer tokens, and source-specific task identifiers +are not committed. + +Redaction placeholders are evidence labels, not replayable API literals. The +Terminal Benchmark reference fixture is used only to test Workstream's API +lifecycle; it is not Workstream product source material. + +## Final State ```text project_id: @@ -30,388 +58,55 @@ checker_run_id: final_task_status: review_pending ``` -## Local Stack - -- FastAPI: `127.0.0.1:8008` -- Postgres: local Docker Compose service, `workstream_test` -- Redis: local Docker Compose service -- Celery: `app.workers.celery_app`, queue `celery` -- Auth: local Flow-compatible HMAC tokens, values not printed or committed -- Agent runtime: OpenAI Agents SDK adapter with `gpt-5.5` -- Secrets: all bearer tokens and API keys redacted; no token value appears in - this evidence. - -Database access was used only for migration reset. Lifecycle proof below comes -from HTTP responses. - -## Source Material - -Fixture label: - -```text -Terminal Benchmark reference fixture -``` - -Fixture id: - -```text - -``` - -Before the final API run, source text was sanitized so raw local filesystem -paths were not sent to Workstream. The clean request/response capture was -scanned for `/home/` and passed. - -Guide body: - -```text -content_markdown_hash: sha256: -content_markdown_bytes: -``` - -Source snapshot manifest: - -| Label | Durable ref | Hash | Bytes | -|---|---|---:|---:| -| `PROJECT_GUIDE.md` | `import:/fixtures//PROJECT_GUIDE.md` | `sha256:` | | -| `REVIEWER_PROGRAM.md` | `import:/fixtures//REVIEWER_PROGRAM.md` | `sha256:` | | -| `task.toml` | `import:/fixtures//task.toml` | `sha256:` | | -| `review_packet.md` | `import:/fixtures//review_packet.md` | `sha256:` | | -| `static_guard.txt` | `import:/fixtures//static_guard.txt` | `sha256:` | | -| `docker_build.log` | `import:/fixtures//docker_build.log` | `sha256:` | | -| `oracle_test.log` | `import:/fixtures//oracle_test.log` | `sha256:` | | -| `starter_m1_test.log` | `import:/fixtures//starter_m1_test.log` | `sha256:` | | - -## HTTP Transcript - -Large guide content, exact hashes, local identifiers, and exact byte counts are -redacted as source-material fingerprints. The table below is an ordered index; -full privacy-redacted request and response bodies for every step are recorded -in the Redacted HTTP Body Appendix. - -| Step | Method and path | HTTP | -|---|---|---:| -| `01_project_create` | `POST /api/v1/projects` | 201 | -| `02_guide_create` | `POST /api/v1/projects/{project_id}/guides` | 201 | -| `03_setup_poll_01..14` | `GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` | 200 | -| `04_sufficiency_report` | `GET /api/v1/projects/{project_id}/guides/{guide_id}/sufficiency-reports/{report_id}` | 200 | -| `05_submission_artifact_policy` | `GET /api/v1/projects/{project_id}/guides/{guide_id}/submission-artifact-policies/{policy_id}` | 200 | -| `06_approve_policy` | `POST /api/v1/projects/{project_id}/guides/{guide_id}/submission-artifact-policies/{policy_id}/approve` | 200 | -| `07_effective_policy` | `GET /api/v1/projects/{project_id}/guides/{guide_id}/effective-submission-artifact-policy` | 200 | -| `08_pre_submit_checker_policy` | `GET /api/v1/projects/{project_id}/guides/{guide_id}/pre-submit-checker-policy` | 200 | -| `09_activate_guide` | `POST /api/v1/projects/{project_id}/guides/{guide_id}/activate` | 200 | -| `10_task_create` | `POST /api/v1/projects/{project_id}/tasks` | 201 | -| `11_task_screen` | `POST /api/v1/tasks/{task_id}/screen` | 200 | -| `12_locked_context_after_screen` | `GET /api/v1/tasks/{task_id}/locked-context` | 200 | -| `13_task_release` | `POST /api/v1/tasks/{task_id}/release` | 200 | -| `14_worker_profile` | `POST /api/v1/workers/me/profile` | 200 | -| `15_task_claim` | `POST /api/v1/tasks/{task_id}/claim` | 200 | -| `16_task_start` | `POST /api/v1/tasks/{task_id}/start` | 200 | -| `17_locked_context_after_start` | `GET /api/v1/tasks/{task_id}/locked-context` | 200 | -| `18_work_context` | `GET /api/v1/tasks/{task_id}/work-context` | 200 | -| `19_submission_requirements` | `GET /api/v1/tasks/{task_id}/submission-requirements` | 200 | -| `20_precheck_blocked` | `POST /api/v1/tasks/{task_id}/submission-precheck` | 200 | -| `21_submission_blocked_create` | `POST /api/v1/tasks/{task_id}/submissions` | 422 | -| `22_submissions_after_blocked` | `GET /api/v1/tasks/{task_id}/submissions` | 200 | -| `23_audit_after_blocked` | `GET /api/v1/tasks/{task_id}/audit-events` | 200 | -| `24_precheck_success` | `POST /api/v1/tasks/{task_id}/submission-precheck` | 200 | -| `25_submissions_after_success_precheck` | `GET /api/v1/tasks/{task_id}/submissions` | 200 | -| `26_submission_success_create` | `POST /api/v1/tasks/{task_id}/submissions` | 201 | -| `27_submissions_after_success_create` | `GET /api/v1/tasks/{task_id}/submissions` | 200 | -| `28_submission_finalize_worker_forbidden` | `POST /api/v1/submissions/{submission_id}/finalize` | 403 | -| `29_submission_finalize_manager` | `POST /api/v1/submissions/{submission_id}/finalize` | 200 | -| `30_submission_get_after_finalize` | `GET /api/v1/submissions/{submission_id}` | 200 | -| `31_checker_runs_after_finalize` | `GET /api/v1/submissions/{submission_id}/checker-runs` | 200 | -| `32_checker_run_get` | `GET /api/v1/checker-runs/{checker_run_id}` | 200 | -| `33_audit_after_finalize` | `GET /api/v1/tasks/{task_id}/audit-events` | 200 | -| `34_task_get_after_finalize` | `GET /api/v1/tasks/{task_id}` | 200 | - -## Setup Run - -Setup poll statuses: - -```json -[ - {"poll": 1, "status": "queued"}, - {"poll": 2, "status": "running_sufficiency_agent"}, - {"poll": 3, "status": "running_sufficiency_agent"}, - {"poll": 4, "status": "running_sufficiency_agent"}, - {"poll": 5, "status": "running_policy_derivation_agent"}, - {"poll": 6, "status": "running_policy_derivation_agent"}, - {"poll": 7, "status": "running_policy_derivation_agent"}, - {"poll": 8, "status": "running_policy_derivation_agent"}, - {"poll": 9, "status": "running_policy_derivation_agent"}, - {"poll": 10, "status": "running_policy_derivation_agent"}, - {"poll": 11, "status": "running_policy_derivation_agent"}, - {"poll": 12, "status": "running_policy_derivation_agent"}, - {"poll": 13, "status": "running_policy_derivation_agent"}, - {"poll": 14, "status": "policy_draft_ready"} -] -``` - -Sufficiency-agent input: - -```json -{ - "input_type": "GuideSourceMaterial", - "project_id": "", - "guide_id": "", - "guide_version": "v1", - "source_snapshot_id": "", - "source_snapshot_hash": "sha256:", - "guide_material": { - "content_markdown": { - "hash": "sha256:", - "bytes": "" - } - }, - "source_items": [ - ["project_guide", "import:/fixtures//PROJECT_GUIDE.md", "sha256:"], - ["reviewer_program", "import:/fixtures//REVIEWER_PROGRAM.md", "sha256:"], - ["task_material", "import:/fixtures//task.toml", "sha256:"], - ["review_packet", "import:/fixtures//review_packet.md", "sha256:"], - ["static_guard", "import:/fixtures//static_guard.txt", "sha256:"], - ["build_log", "import:/fixtures//docker_build.log", "sha256:"], - ["test_log", "import:/fixtures//oracle_test.log", "sha256:"], - ["test_log", "import:/fixtures//starter_m1_test.log", "sha256:"] - ], - "representative_task_material": { - "items": [] - } -} -``` - -Sufficiency-agent output: - -```text -status: passed -agent_name: ProjectGuideSufficiencyAgent -source_snapshot_hash: sha256: -``` - -Submission-policy-derivation input: - -```json -{ - "guide_source_material": "same GuideSourceMaterial envelope shown above", - "sufficiency_report": { - "status": "guide_sufficient", - "findings": [], - "summary_hash": "sha256:", - "agent_name": "ProjectGuideSufficiencyAgent", - "agent_version": "workstream-sufficiency-agent-v0.1" - } -} -``` - -Submission-policy-derivation output: - -```text -derivation_source: agent_derivation -policy_hash: sha256: -``` - -Final live submission requirements: - -```json -{ - "required_artifacts": [ - "environment/Dockerfile", - "environment/.dockerignore", - "rubric.md", - "task.toml" - ], - "required_evidence": [ - "dependency_pinning_review", - "environment_hygiene_review", - "instructions_present", - "reward_footer_review", - "solution_present", - "submission_explanations", - "test_alignment_review", - "tests_present" - ], - "attestation_terms": [ - "all_or_nothing_reward", - "confidential_data_exclusion", - "container_bases_digest_pinned", - "credentials_and_secret_exclusion", - "dependencies_pinned", - "hashes_sha256", - "human_accountability_for_agent_assisted_work", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "original_work", - "task_layout_matches_metadata" - ] -} -``` - -Compiled project pre-submit checker policy: - -```text -compiled_bundle_hash: sha256: -checker_names: -- check_submission_packet -- check_forbidden_files -- check_confidentiality_attestation -- check_required_files -- check_evidence_present -- check_evidence_integrity -- check_low_quality_generated_artifacts -``` - -## Task Context - -Task creation request used the current task contract only: - -```json -{ - "title": "Terminal Benchmark live-api", - "task_type": "terminal_benchmark", - "difficulty": "medium", - "skill_tags": ["rust", "json", "", "containers", "cli"], - "source_type": "manual", - "source_ref": "terminal-benchmark//live-api/", - "external_task_id": "" -} -``` - -Locked task context after screening included: - -```text -locked_guide_version: v1 -locked_guide_source_snapshot_hash: sha256: -locked_effective_project_submission_artifact_policy_hash: sha256: -locked_pre_submit_checker_bundle_hash: sha256: -``` - -Worker work context reported: - -```text -status: in_progress -assigned_to_current_actor: true -can_run_pre_submit_check: true -can_submit: true -``` - -## Blocked Pre-Submit Path +## API Lifecycle Proved -Blocked request intentionally omitted `environment/.dockerignore` from -`artifact_hash_manifest` while preserving the required evidence and -attestation. - -Pre-submit response: - -```json -{ - "authoritative": false, - "status": "failed", - "eligible_to_submit": false, - "failed_checkers": ["check_required_files"] -} -``` - -Submission creation response: - -```json -{ - "code": "pre_submission_checker_failed", - "details": { - "authoritative": false, - "status": "failed", - "eligible_to_submit": false, - "failed_checkers": ["check_required_files"] - } -} -``` - -No-side-effect proof: +The PDF report records the full API sequence at a professional summary level: ```text -GET /tasks/{task_id}/submissions after blocked create: [] -GET /tasks/{task_id}/audit-events after blocked create: -- pre_submission_check_failed is present -- submission_created is absent -- pre_review_gate_started is absent -``` - -There is no valid checker-run list endpoint before a submission id exists. -Durable checker-run visibility is submission-scoped by API design, so the -blocked create proof uses the task submission list plus task audit events. The -successful create and finalize path then proves checker-run list/get visibility -once a submission id exists. - -## Successful Submission Path - -Success pre-submit response: - -```json -{ - "authoritative": false, - "status": "passed", - "eligible_to_submit": true, - "results": [ - ["check_submission_packet", "passed"], - ["check_forbidden_files", "passed"], - ["check_confidentiality_attestation", "passed"], - ["check_required_files", "passed"], - ["check_evidence_present", "passed"], - ["check_evidence_integrity", "passed"], - ["check_low_quality_generated_artifacts", "passed"] - ] -} +ProjectGuide +-> GuideSourceSnapshot +-> GuideSufficiencyReport +-> SubmissionArtifactPolicy +-> EffectiveProjectSubmissionArtifactPolicy +-> project PreSubmitCheckerPolicy +-> task locked context +-> deterministic pre-submit +-> submission finalization +-> durable checker run +-> review_pending ``` -Non-authoritative proof: +The drill proved: -```text -GET /tasks/{task_id}/submissions after success precheck: [] -``` +- automatic setup-run progress from `queued` to `policy_draft_ready`; +- sufficiency-agent and submission-policy-derivation inputs and outputs; +- policy approval, effective project policy, compiled project checker, and + guide activation; +- task screening and locked policy context; +- blocked submission creation after failed pre-submit with + `pre_submission_checker_failed` and no submission + side effect; +- checker-run list/get APIs are submission-scoped, so blocked intake before a + submission id exists is proved through the empty submission list and task + audit events rather than a checker-run endpoint; +- successful pre-submit, submission creation, manager finalization, durable + checker-run visibility, audit events, and final `review_pending` task state. -Submission create: +## Checker Evidence -```text -HTTP: 201 -submission_id: -version: 1 -``` - -Worker finalize attempt: +Compiled project pre-submit checker bundle: ```text -HTTP: 403 -detail: actor lacks required role +check_submission_packet +check_forbidden_files +check_confidentiality_attestation +check_required_files +check_evidence_present +check_evidence_integrity +check_low_quality_generated_artifacts ``` -Project manager finalize: - -```text -HTTP: 200 -finalized_at: present -``` - -## Checker Runs - -Checker run list and get both returned: - -```json -{ - "id": "", - "status": "completed", - "routing_recommendation": "allow_review", - "passed_count": 8, - "warning_count": 0, - "failed_count": 0, - "blocking_count": 0, - "triggered_by": "workstream-system:pre-review-gate" -} -``` - -Durable checker results: +Durable checker results after finalization: ```text check_submission_packet: passed @@ -424,16 +119,7 @@ check_confidentiality_attestation: passed check_low_quality_generated_artifacts: passed ``` -Final task response: - -```text -status: review_pending -locked_guide_source_snapshot_hash: sha256: -locked_effective_project_submission_artifact_policy_hash: sha256: -locked_pre_submit_checker_bundle_hash: sha256: -``` - -## Audit Events +## Audit Evidence Final task audit event sequence: @@ -450,8131 +136,24 @@ pre_review_gate_started: submitted -> evaluation_pending pre_review_gate_passed: evaluation_pending -> review_pending ``` -## Redacted HTTP Body Appendix - -Every step below records the HTTP method/path, request body, and response body from the final clean run. `null` request body means the call had no JSON body. Large guide/source text and source-material fingerprints are redacted to explicit placeholders; credentials were not recorded. -### 01_project_create - -`POST /api/v1/projects` -> HTTP `201` - -Request body: - -```json -{ - "description": "Real Terminal Benchmark fixture used as Workstream API evidence with sanitized source text.", - "name": "Terminal Benchmark Real API ", - "slug": "terminal-benchmark-real-api-" -} -``` - -Response body: - -```json -{ - "created_at": "2026-07-08T23:43:31.535968Z", - "description": "Real Terminal Benchmark fixture used as Workstream API evidence with sanitized source text.", - "id": "", - "name": "Terminal Benchmark Real API ", - "slug": "terminal-benchmark-real-api-", - "status": "draft", - "updated_at": "2026-07-08T23:43:31.535968Z" -} -``` - -### 02_guide_create - -`POST /api/v1/projects/{project_id}/guides` -> HTTP `201` - -Request body: - -```json -{ - "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": " bytes:>", - "payment_policy": { - "accepted_payment_rule": "pay_on_acceptance", - "base_amount": "25.00", - "currency": "USD", - "payout_type": "fixed", - "rejection_payment_rule": "no_payment_on_reject", - "revision_payment_rule": "no_extra_payment_for_revisions" - }, - "post_submit_checker_policy": { - "blocking_severities": [ - "high", - "medium" - ], - "required_checkers": [ - "check_policy_context_present", - "check_low_quality_generated_artifacts" - ], - "warning_checkers": [] - }, - "review_policy": { - "allowed_decisions": [ - "accept", - "needs_revision", - "reject" - ], - "minimum_finding_fields": [ - "issue", - "required_fix" - ], - "requires_second_review": false, - "sla_hours": 24 - }, - "revision_policy": { - "allowed_resubmission_states": [ - "needs_revision" - ], - "auto_reject_after_limit": true, - "max_revision_rounds": 7, - "reviewer_reassignment_rule": "same_reviewer_preferred", - "revision_deadline_hours": 48 - }, - "source_snapshot": { - "items": [ - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//PROJECT_GUIDE.md", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/markdown", - "source_kind": "project_guide" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//REVIEWER_PROGRAM.md", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/markdown", - "source_kind": "reviewer_program" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//task.toml", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/toml", - "source_kind": "task_material" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//review_packet.md", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/markdown", - "source_kind": "review_packet" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//static_guard.txt", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/plain", - "source_kind": "checker_evidence" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//docker_build.log", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/plain", - "source_kind": "checker_evidence" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//oracle_test.log", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/plain", - "source_kind": "checker_evidence" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//starter_m1_test.log", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/plain", - "source_kind": "checker_evidence" - } - ] - }, - "version": "v1" -} -``` - -Response body: - -```json -{ - "approved_by": null, - "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": " bytes:>", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "effective_at": null, - "id": "", - "project_id": "", - "status": "draft", - "superseded_at": null, - "updated_at": "2026-07-08T23:43:31.606777Z", - "version": "v1" -} -``` - -### 03_setup_poll_01 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "queued", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": null, - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": null, - "status": "queued", - "updated_at": "2026-07-08T23:43:31.799970Z" -} -``` - -### 03_setup_poll_02 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "guide_sufficiency", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": null, - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_sufficiency_agent", - "updated_at": "2026-07-08T23:43:32.263663Z" -} -``` - -### 03_setup_poll_03 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "guide_sufficiency", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": null, - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_sufficiency_agent", - "updated_at": "2026-07-08T23:43:32.263663Z" -} -``` - -### 03_setup_poll_04 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "guide_sufficiency", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": null, - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_sufficiency_agent", - "updated_at": "2026-07-08T23:43:32.263663Z" -} -``` - -### 03_setup_poll_05 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "submission_artifact_policy_derivation", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_policy_derivation_agent", - "updated_at": "2026-07-08T23:43:40.681014Z" -} -``` - -### 03_setup_poll_06 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "submission_artifact_policy_derivation", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_policy_derivation_agent", - "updated_at": "2026-07-08T23:43:40.681014Z" -} -``` - -### 03_setup_poll_07 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "submission_artifact_policy_derivation", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_policy_derivation_agent", - "updated_at": "2026-07-08T23:43:40.681014Z" -} -``` - -### 03_setup_poll_08 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "submission_artifact_policy_derivation", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_policy_derivation_agent", - "updated_at": "2026-07-08T23:43:40.681014Z" -} -``` - -### 03_setup_poll_09 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "submission_artifact_policy_derivation", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_policy_derivation_agent", - "updated_at": "2026-07-08T23:43:40.681014Z" -} -``` - -### 03_setup_poll_10 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "submission_artifact_policy_derivation", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_policy_derivation_agent", - "updated_at": "2026-07-08T23:43:40.681014Z" -} -``` - -### 03_setup_poll_11 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "submission_artifact_policy_derivation", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_policy_derivation_agent", - "updated_at": "2026-07-08T23:43:40.681014Z" -} -``` - -### 03_setup_poll_12 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "submission_artifact_policy_derivation", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_policy_derivation_agent", - "updated_at": "2026-07-08T23:43:40.681014Z" -} -``` - -### 03_setup_poll_13 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "submission_artifact_policy_derivation", - "error_code": null, - "error_summary": null, - "finished_at": null, - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": null, - "output_sufficiency_report_id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "running_policy_derivation_agent", - "updated_at": "2026-07-08T23:43:40.681014Z" -} -``` - -### 03_setup_poll_14 - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/setup-runs/latest` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "celery_task_id": "", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "current_step": "submission_artifact_policy_derivation", - "error_code": null, - "error_summary": null, - "finished_at": "2026-07-08T23:44:00.380059Z", - "guide_id": "", - "guide_version": "v1", - "id": "", - "output_submission_artifact_policy_id": "", - "output_sufficiency_report_id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "started_at": "2026-07-08T23:43:32.307172Z", - "status": "policy_draft_ready", - "updated_at": "2026-07-08T23:44:00.332149Z" -} -``` - -### 04_sufficiency_report - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/sufficiency-reports/{report_id}` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "acknowledgement_note": null, - "agent_name": "ProjectGuideSufficiencyAgent", - "agent_version": "workstream-sufficiency-agent-v0.1", - "created_at": "2026-07-08T23:43:40.523990Z", - "created_by": "workstream-system:project-setup-pipeline", - "findings": [], - "guide_id": "", - "guide_version": "v1", - "id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "status": "passed", - "summary": "The guide provides sufficient reviewer criteria and workflow direction for this Terminal Benchmark task review, including milestone structure, static guard handling, dependency pinning, Dockerfile requirements, test alignment, rubric rules, reward behavior, and category mapping.", - "warnings_acknowledged_at": null, - "warnings_acknowledged_by_actor": null, - "warnings_acknowledged_by_role": null -} -``` - -### 05_submission_artifact_policy - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/submission-artifact-policies/{policy_id}` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "approved_at": null, - "approved_by_actor": null, - "approved_by_role": null, - "change_summary": null, - "created_at": "2026-07-08T23:44:00.095072Z", - "created_by": "workstream-system:project-setup-pipeline", - "derivation_agent_name": "SubmissionArtifactPolicyDerivationAgent", - "derivation_agent_version": "workstream-policy-derivation-agent-v0.1", - "derivation_source": "agent_derivation", - "guide_id": "", - "guide_version": "v1", - "id": "", - "lifecycle_status": "draft", - "policy_body": { - "allowed_storage_schemes": [ - "local", - "r2", - "s3" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "all_or_nothing_reward", - "container_bases_digest_pinned", - "dependencies_pinned", - "hashes_sha256", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "task_layout_matches_metadata" - ], - "forbidden_artifacts": [ - { - "pattern": "**/*.key", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pem", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pyc", - "reason": "compiled Python bytecode is a generated artifact", - "worker_facing_fix": "delete bytecode files before packaging" - }, - { - "pattern": "**/.DS_Store", - "reason": "operating system metadata is not part of the task submission", - "worker_facing_fix": "remove operating system metadata files" - }, - { - "pattern": "**/.env", - "reason": "local configuration files may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.env.*", - "reason": "local configuration variants may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.pytest_cache/**", - "reason": "generated test cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/__pycache__/**", - "reason": "generated Python cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/build/**", - "reason": "compiled or generated build outputs are not part of source intake by default", - "worker_facing_fix": "remove generated build directories unless explicitly required by the task" - }, - { - "pattern": "**/dist/**", - "reason": "compiled or generated distribution outputs are not part of source intake by default", - "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" - }, - { - "pattern": "**/docker_build.log", - "reason": "build logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/id_ed25519", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/id_rsa", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/node_modules/**", - "reason": "local dependency folders bloat submissions and reduce reproducibility", - "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" - }, - { - "pattern": "**/oracle_test.log", - "reason": "test logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/platform_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/platfrom_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/review_packet.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only packets before packaging" - }, - { - "pattern": "**/rubrics.txt", - "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", - "worker_facing_fix": "remove rubrics.txt and provide rubric.md" - }, - { - "pattern": "**/static_guard.txt", - "reason": "local checker output is not a worker submission artifact", - "worker_facing_fix": "remove checker logs before packaging" - }, - { - "pattern": "**/target/**", - "reason": "compiled Rust build outputs should not be submitted", - "worker_facing_fix": "remove build output directories before packaging" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "packaging": { - "allowed_package_formats": [ - "zip" - ], - "package_required": true - }, - "required_artifacts": [ - { - "description": "container build definition for the task environment", - "hash_required": true, - "key": "environment_dockerfile", - "path": "environment/Dockerfile", - "required": true - }, - { - "description": "build context hygiene exclusions", - "hash_required": true, - "key": "environment_dockerignore", - "path": "environment/.dockerignore", - "required": true - }, - { - "description": "task scoring criteria for agent traces", - "hash_required": true, - "key": "rubric", - "path": "rubric.md", - "required": true - }, - { - "description": "project task metadata and runtime configuration", - "hash_required": true, - "key": "task_config", - "path": "task.toml", - "required": true - } - ], - "required_evidence": [ - { - "description": "confirms language packages and container bases are pinned as required", - "hash_required": true, - "key": "dependency_pinning_review", - "label": "Dependency pinning review", - "required": true - }, - { - "description": "confirms build context, size limits, and runtime setup are acceptable", - "hash_required": true, - "key": "environment_hygiene_review", - "label": "Environment hygiene review", - "required": true - }, - { - "description": "root or milestone instruction files are included for the task layout", - "hash_required": true, - "key": "instructions_present", - "label": "Task instructions included", - "required": true - }, - { - "description": "confirms verifier runner writes only all-or-nothing reward output", - "hash_required": true, - "key": "reward_footer_review", - "label": "Reward footer review", - "required": true - }, - { - "description": "root or milestone solution scripts are included for validation", - "hash_required": true, - "key": "solution_present", - "label": "Reference solution included", - "required": true - }, - { - "description": "difficulty, solution, and verification explanations are provided", - "hash_required": true, - "key": "submission_explanations", - "label": "Submission explanations", - "required": true - }, - { - "description": "maps stated behavior to verifier coverage and strict assertions", - "hash_required": true, - "key": "test_alignment_review", - "label": "Test alignment review", - "required": true - }, - { - "description": "root or milestone verifier runner and test files are included for the task layout", - "hash_required": true, - "key": "tests_present", - "label": "Verifier files included", - "required": true - } - ], - "schema_version": "project_submission_artifact_policy.v1" - }, - "policy_hash": "sha256:", - "policy_version": "agent-", - "project_id": "", - "source_material_refs": [ - "import:/fixtures//docker_build.log", - "import:/fixtures//oracle_test.log", - "import:/fixtures//starter_m1_test.log", - "import:/fixtures//static_guard.txt", - "import:/fixtures//PROJECT_GUIDE.md", - "inline:/guides//v1", - "import:/fixtures//review_packet.md", - "import:/fixtures//REVIEWER_PROGRAM.md", - "import:/fixtures//task.toml" - ], - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "superseded_at": null, - "supersedes_policy_id": null, - "updated_at": "2026-07-08T23:44:00.095072Z" -} -``` - -### 06_approve_policy - -`POST /api/v1/projects/{project_id}/guides/{guide_id}/submission-artifact-policies/{policy_id}/approve` -> HTTP `200` - -Request body: - -```json -{ - "approval_note": "Approved agent-derived Terminal Benchmark intake contract for final clean live API drill." -} -``` - -Response body: - -```json -{ - "created_at": "2026-07-08T23:44:02.228409Z", - "created_by": "", - "effective_policy": { - "allowed_storage_schemes": [ - "local", - "r2", - "s3" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "all_or_nothing_reward", - "confidential_data_exclusion", - "container_bases_digest_pinned", - "credentials_and_secret_exclusion", - "dependencies_pinned", - "hashes_sha256", - "human_accountability_for_agent_assisted_work", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "original_work", - "task_layout_matches_metadata" - ], - "forbidden_artifacts": [ - { - "pattern": "**/*.key", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pem", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pyc", - "reason": "compiled Python bytecode is a generated artifact", - "worker_facing_fix": "delete bytecode files before packaging" - }, - { - "pattern": "**/.DS_Store", - "reason": "operating system metadata is not part of the task submission", - "worker_facing_fix": "remove operating system metadata files" - }, - { - "pattern": "**/.env", - "reason": "local configuration files may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.env.*", - "reason": "local configuration variants may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.pytest_cache/**", - "reason": "generated test cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/__pycache__/**", - "reason": "generated Python cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/build/**", - "reason": "compiled or generated build outputs are not part of source intake by default", - "worker_facing_fix": "remove generated build directories unless explicitly required by the task" - }, - { - "pattern": "**/dist/**", - "reason": "compiled or generated distribution outputs are not part of source intake by default", - "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" - }, - { - "pattern": "**/docker_build.log", - "reason": "build logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/id_ed25519", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/id_rsa", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/node_modules/**", - "reason": "local dependency folders bloat submissions and reduce reproducibility", - "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" - }, - { - "pattern": "**/oracle_test.log", - "reason": "test logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/platform_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/platfrom_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/review_packet.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only packets before packaging" - }, - { - "pattern": "**/rubrics.txt", - "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", - "worker_facing_fix": "remove rubrics.txt and provide rubric.md" - }, - { - "pattern": "**/static_guard.txt", - "reason": "local checker output is not a worker submission artifact", - "worker_facing_fix": "remove checker logs before packaging" - }, - { - "pattern": "**/target/**", - "reason": "compiled Rust build outputs should not be submitted", - "worker_facing_fix": "remove build output directories before packaging" - }, - { - "pattern": "*.env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.env.*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.pem", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".env*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".git", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".npmrc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".pypirc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credential*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credentials", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "node_modules", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secret*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secrets", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token*", - "severity": "blocking", - "source": "workstream_default" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "merge_algorithm_version": "workstream_default_merge.v1", - "packaging": { - "allowed_package_formats": [ - "zip" - ], - "package_required": true - }, - "project_policy": { - "allowed_storage_schemes": [ - "local", - "r2", - "s3" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "all_or_nothing_reward", - "container_bases_digest_pinned", - "dependencies_pinned", - "hashes_sha256", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "task_layout_matches_metadata" - ], - "forbidden_artifacts": [ - { - "pattern": "**/*.key", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pem", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pyc", - "reason": "compiled Python bytecode is a generated artifact", - "worker_facing_fix": "delete bytecode files before packaging" - }, - { - "pattern": "**/.DS_Store", - "reason": "operating system metadata is not part of the task submission", - "worker_facing_fix": "remove operating system metadata files" - }, - { - "pattern": "**/.env", - "reason": "local configuration files may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.env.*", - "reason": "local configuration variants may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.pytest_cache/**", - "reason": "generated test cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/__pycache__/**", - "reason": "generated Python cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/build/**", - "reason": "compiled or generated build outputs are not part of source intake by default", - "worker_facing_fix": "remove generated build directories unless explicitly required by the task" - }, - { - "pattern": "**/dist/**", - "reason": "compiled or generated distribution outputs are not part of source intake by default", - "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" - }, - { - "pattern": "**/docker_build.log", - "reason": "build logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/id_ed25519", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/id_rsa", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/node_modules/**", - "reason": "local dependency folders bloat submissions and reduce reproducibility", - "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" - }, - { - "pattern": "**/oracle_test.log", - "reason": "test logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/platform_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/platfrom_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/review_packet.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only packets before packaging" - }, - { - "pattern": "**/rubrics.txt", - "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", - "worker_facing_fix": "remove rubrics.txt and provide rubric.md" - }, - { - "pattern": "**/static_guard.txt", - "reason": "local checker output is not a worker submission artifact", - "worker_facing_fix": "remove checker logs before packaging" - }, - { - "pattern": "**/target/**", - "reason": "compiled Rust build outputs should not be submitted", - "worker_facing_fix": "remove build output directories before packaging" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "packaging": { - "allowed_package_formats": [ - "zip" - ], - "package_required": true - }, - "required_artifacts": [ - { - "description": "container build definition for the task environment", - "hash_required": true, - "key": "environment_dockerfile", - "path": "environment/Dockerfile", - "required": true - }, - { - "description": "build context hygiene exclusions", - "hash_required": true, - "key": "environment_dockerignore", - "path": "environment/.dockerignore", - "required": true - }, - { - "description": "task scoring criteria for agent traces", - "hash_required": true, - "key": "rubric", - "path": "rubric.md", - "required": true - }, - { - "description": "project task metadata and runtime configuration", - "hash_required": true, - "key": "task_config", - "path": "task.toml", - "required": true - } - ], - "required_evidence": [ - { - "description": "confirms language packages and container bases are pinned as required", - "hash_required": true, - "key": "dependency_pinning_review", - "label": "Dependency pinning review", - "required": true - }, - { - "description": "confirms build context, size limits, and runtime setup are acceptable", - "hash_required": true, - "key": "environment_hygiene_review", - "label": "Environment hygiene review", - "required": true - }, - { - "description": "root or milestone instruction files are included for the task layout", - "hash_required": true, - "key": "instructions_present", - "label": "Task instructions included", - "required": true - }, - { - "description": "confirms verifier runner writes only all-or-nothing reward output", - "hash_required": true, - "key": "reward_footer_review", - "label": "Reward footer review", - "required": true - }, - { - "description": "root or milestone solution scripts are included for validation", - "hash_required": true, - "key": "solution_present", - "label": "Reference solution included", - "required": true - }, - { - "description": "difficulty, solution, and verification explanations are provided", - "hash_required": true, - "key": "submission_explanations", - "label": "Submission explanations", - "required": true - }, - { - "description": "maps stated behavior to verifier coverage and strict assertions", - "hash_required": true, - "key": "test_alignment_review", - "label": "Test alignment review", - "required": true - }, - { - "description": "root or milestone verifier runner and test files are included for the task layout", - "hash_required": true, - "key": "tests_present", - "label": "Verifier files included", - "required": true - } - ], - "schema_version": "project_submission_artifact_policy.v1" - }, - "required_artifacts": [ - { - "description": "container build definition for the task environment", - "hash_required": true, - "key": "environment_dockerfile", - "path": "environment/Dockerfile", - "required": true - }, - { - "description": "build context hygiene exclusions", - "hash_required": true, - "key": "environment_dockerignore", - "path": "environment/.dockerignore", - "required": true - }, - { - "description": "task scoring criteria for agent traces", - "hash_required": true, - "key": "rubric", - "path": "rubric.md", - "required": true - }, - { - "description": "project task metadata and runtime configuration", - "hash_required": true, - "key": "task_config", - "path": "task.toml", - "required": true - } - ], - "required_evidence": [ - { - "description": "confirms language packages and container bases are pinned as required", - "hash_required": true, - "key": "dependency_pinning_review", - "label": "Dependency pinning review", - "required": true - }, - { - "description": "confirms build context, size limits, and runtime setup are acceptable", - "hash_required": true, - "key": "environment_hygiene_review", - "label": "Environment hygiene review", - "required": true - }, - { - "description": "root or milestone instruction files are included for the task layout", - "hash_required": true, - "key": "instructions_present", - "label": "Task instructions included", - "required": true - }, - { - "description": "confirms verifier runner writes only all-or-nothing reward output", - "hash_required": true, - "key": "reward_footer_review", - "label": "Reward footer review", - "required": true - }, - { - "description": "root or milestone solution scripts are included for validation", - "hash_required": true, - "key": "solution_present", - "label": "Reference solution included", - "required": true - }, - { - "description": "difficulty, solution, and verification explanations are provided", - "hash_required": true, - "key": "submission_explanations", - "label": "Submission explanations", - "required": true - }, - { - "description": "maps stated behavior to verifier coverage and strict assertions", - "hash_required": true, - "key": "test_alignment_review", - "label": "Test alignment review", - "required": true - }, - { - "description": "root or milestone verifier runner and test files are included for the task layout", - "hash_required": true, - "key": "tests_present", - "label": "Verifier files included", - "required": true - } - ], - "required_packet_fields": [ - "artifact_hash_manifest", - "summary", - "worker_attestation" - ], - "schema_version": "effective_project_submission_artifact_policy.v1", - "workstream_default_policy": { - "allowed_storage_schemes": [ - "local", - "s3", - "r2" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "original_work", - "confidential_data_exclusion", - "credentials_and_secret_exclusion", - "human_accountability_for_agent_assisted_work" - ], - "forbidden_artifacts": [ - { - "pattern": ".env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".env*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.env.*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".git", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credentials", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credential*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secrets", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secret*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".npmrc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".pypirc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.pem", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "node_modules", - "severity": "blocking", - "source": "workstream_default" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "packaging": {}, - "required_artifacts": [], - "required_evidence": [], - "required_packet_fields": [ - "summary", - "artifact_hash_manifest", - "worker_attestation" - ], - "schema_version": "workstream_default_submission_artifact_policy.v1" - } - }, - "effective_policy_hash": "sha256:", - "guide_id": "", - "guide_version": "v1", - "id": "", - "lifecycle_status": "approved", - "merge_algorithm_version": "workstream_default_merge.v1", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "submission_artifact_policy_hash": "sha256:", - "submission_artifact_policy_id": "", - "superseded_at": null, - "supersedes_effective_policy_id": null -} -``` - -### 07_effective_policy - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/effective-submission-artifact-policy` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "created_at": "2026-07-08T23:44:02.228409Z", - "created_by": "", - "effective_policy": { - "allowed_storage_schemes": [ - "local", - "r2", - "s3" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "all_or_nothing_reward", - "confidential_data_exclusion", - "container_bases_digest_pinned", - "credentials_and_secret_exclusion", - "dependencies_pinned", - "hashes_sha256", - "human_accountability_for_agent_assisted_work", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "original_work", - "task_layout_matches_metadata" - ], - "forbidden_artifacts": [ - { - "pattern": "**/*.key", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pem", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pyc", - "reason": "compiled Python bytecode is a generated artifact", - "worker_facing_fix": "delete bytecode files before packaging" - }, - { - "pattern": "**/.DS_Store", - "reason": "operating system metadata is not part of the task submission", - "worker_facing_fix": "remove operating system metadata files" - }, - { - "pattern": "**/.env", - "reason": "local configuration files may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.env.*", - "reason": "local configuration variants may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.pytest_cache/**", - "reason": "generated test cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/__pycache__/**", - "reason": "generated Python cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/build/**", - "reason": "compiled or generated build outputs are not part of source intake by default", - "worker_facing_fix": "remove generated build directories unless explicitly required by the task" - }, - { - "pattern": "**/dist/**", - "reason": "compiled or generated distribution outputs are not part of source intake by default", - "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" - }, - { - "pattern": "**/docker_build.log", - "reason": "build logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/id_ed25519", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/id_rsa", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/node_modules/**", - "reason": "local dependency folders bloat submissions and reduce reproducibility", - "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" - }, - { - "pattern": "**/oracle_test.log", - "reason": "test logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/platform_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/platfrom_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/review_packet.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only packets before packaging" - }, - { - "pattern": "**/rubrics.txt", - "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", - "worker_facing_fix": "remove rubrics.txt and provide rubric.md" - }, - { - "pattern": "**/static_guard.txt", - "reason": "local checker output is not a worker submission artifact", - "worker_facing_fix": "remove checker logs before packaging" - }, - { - "pattern": "**/target/**", - "reason": "compiled Rust build outputs should not be submitted", - "worker_facing_fix": "remove build output directories before packaging" - }, - { - "pattern": "*.env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.env.*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.pem", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".env*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".git", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".npmrc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".pypirc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credential*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credentials", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "node_modules", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secret*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secrets", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token*", - "severity": "blocking", - "source": "workstream_default" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "merge_algorithm_version": "workstream_default_merge.v1", - "packaging": { - "allowed_package_formats": [ - "zip" - ], - "package_required": true - }, - "project_policy": { - "allowed_storage_schemes": [ - "local", - "r2", - "s3" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "all_or_nothing_reward", - "container_bases_digest_pinned", - "dependencies_pinned", - "hashes_sha256", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "task_layout_matches_metadata" - ], - "forbidden_artifacts": [ - { - "pattern": "**/*.key", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pem", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pyc", - "reason": "compiled Python bytecode is a generated artifact", - "worker_facing_fix": "delete bytecode files before packaging" - }, - { - "pattern": "**/.DS_Store", - "reason": "operating system metadata is not part of the task submission", - "worker_facing_fix": "remove operating system metadata files" - }, - { - "pattern": "**/.env", - "reason": "local configuration files may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.env.*", - "reason": "local configuration variants may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.pytest_cache/**", - "reason": "generated test cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/__pycache__/**", - "reason": "generated Python cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/build/**", - "reason": "compiled or generated build outputs are not part of source intake by default", - "worker_facing_fix": "remove generated build directories unless explicitly required by the task" - }, - { - "pattern": "**/dist/**", - "reason": "compiled or generated distribution outputs are not part of source intake by default", - "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" - }, - { - "pattern": "**/docker_build.log", - "reason": "build logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/id_ed25519", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/id_rsa", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/node_modules/**", - "reason": "local dependency folders bloat submissions and reduce reproducibility", - "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" - }, - { - "pattern": "**/oracle_test.log", - "reason": "test logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/platform_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/platfrom_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/review_packet.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only packets before packaging" - }, - { - "pattern": "**/rubrics.txt", - "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", - "worker_facing_fix": "remove rubrics.txt and provide rubric.md" - }, - { - "pattern": "**/static_guard.txt", - "reason": "local checker output is not a worker submission artifact", - "worker_facing_fix": "remove checker logs before packaging" - }, - { - "pattern": "**/target/**", - "reason": "compiled Rust build outputs should not be submitted", - "worker_facing_fix": "remove build output directories before packaging" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "packaging": { - "allowed_package_formats": [ - "zip" - ], - "package_required": true - }, - "required_artifacts": [ - { - "description": "container build definition for the task environment", - "hash_required": true, - "key": "environment_dockerfile", - "path": "environment/Dockerfile", - "required": true - }, - { - "description": "build context hygiene exclusions", - "hash_required": true, - "key": "environment_dockerignore", - "path": "environment/.dockerignore", - "required": true - }, - { - "description": "task scoring criteria for agent traces", - "hash_required": true, - "key": "rubric", - "path": "rubric.md", - "required": true - }, - { - "description": "project task metadata and runtime configuration", - "hash_required": true, - "key": "task_config", - "path": "task.toml", - "required": true - } - ], - "required_evidence": [ - { - "description": "confirms language packages and container bases are pinned as required", - "hash_required": true, - "key": "dependency_pinning_review", - "label": "Dependency pinning review", - "required": true - }, - { - "description": "confirms build context, size limits, and runtime setup are acceptable", - "hash_required": true, - "key": "environment_hygiene_review", - "label": "Environment hygiene review", - "required": true - }, - { - "description": "root or milestone instruction files are included for the task layout", - "hash_required": true, - "key": "instructions_present", - "label": "Task instructions included", - "required": true - }, - { - "description": "confirms verifier runner writes only all-or-nothing reward output", - "hash_required": true, - "key": "reward_footer_review", - "label": "Reward footer review", - "required": true - }, - { - "description": "root or milestone solution scripts are included for validation", - "hash_required": true, - "key": "solution_present", - "label": "Reference solution included", - "required": true - }, - { - "description": "difficulty, solution, and verification explanations are provided", - "hash_required": true, - "key": "submission_explanations", - "label": "Submission explanations", - "required": true - }, - { - "description": "maps stated behavior to verifier coverage and strict assertions", - "hash_required": true, - "key": "test_alignment_review", - "label": "Test alignment review", - "required": true - }, - { - "description": "root or milestone verifier runner and test files are included for the task layout", - "hash_required": true, - "key": "tests_present", - "label": "Verifier files included", - "required": true - } - ], - "schema_version": "project_submission_artifact_policy.v1" - }, - "required_artifacts": [ - { - "description": "container build definition for the task environment", - "hash_required": true, - "key": "environment_dockerfile", - "path": "environment/Dockerfile", - "required": true - }, - { - "description": "build context hygiene exclusions", - "hash_required": true, - "key": "environment_dockerignore", - "path": "environment/.dockerignore", - "required": true - }, - { - "description": "task scoring criteria for agent traces", - "hash_required": true, - "key": "rubric", - "path": "rubric.md", - "required": true - }, - { - "description": "project task metadata and runtime configuration", - "hash_required": true, - "key": "task_config", - "path": "task.toml", - "required": true - } - ], - "required_evidence": [ - { - "description": "confirms language packages and container bases are pinned as required", - "hash_required": true, - "key": "dependency_pinning_review", - "label": "Dependency pinning review", - "required": true - }, - { - "description": "confirms build context, size limits, and runtime setup are acceptable", - "hash_required": true, - "key": "environment_hygiene_review", - "label": "Environment hygiene review", - "required": true - }, - { - "description": "root or milestone instruction files are included for the task layout", - "hash_required": true, - "key": "instructions_present", - "label": "Task instructions included", - "required": true - }, - { - "description": "confirms verifier runner writes only all-or-nothing reward output", - "hash_required": true, - "key": "reward_footer_review", - "label": "Reward footer review", - "required": true - }, - { - "description": "root or milestone solution scripts are included for validation", - "hash_required": true, - "key": "solution_present", - "label": "Reference solution included", - "required": true - }, - { - "description": "difficulty, solution, and verification explanations are provided", - "hash_required": true, - "key": "submission_explanations", - "label": "Submission explanations", - "required": true - }, - { - "description": "maps stated behavior to verifier coverage and strict assertions", - "hash_required": true, - "key": "test_alignment_review", - "label": "Test alignment review", - "required": true - }, - { - "description": "root or milestone verifier runner and test files are included for the task layout", - "hash_required": true, - "key": "tests_present", - "label": "Verifier files included", - "required": true - } - ], - "required_packet_fields": [ - "artifact_hash_manifest", - "summary", - "worker_attestation" - ], - "schema_version": "effective_project_submission_artifact_policy.v1", - "workstream_default_policy": { - "allowed_storage_schemes": [ - "local", - "s3", - "r2" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "original_work", - "confidential_data_exclusion", - "credentials_and_secret_exclusion", - "human_accountability_for_agent_assisted_work" - ], - "forbidden_artifacts": [ - { - "pattern": ".env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".env*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.env.*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".git", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credentials", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credential*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secrets", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secret*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".npmrc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".pypirc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.pem", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "node_modules", - "severity": "blocking", - "source": "workstream_default" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "packaging": {}, - "required_artifacts": [], - "required_evidence": [], - "required_packet_fields": [ - "summary", - "artifact_hash_manifest", - "worker_attestation" - ], - "schema_version": "workstream_default_submission_artifact_policy.v1" - } - }, - "effective_policy_hash": "sha256:", - "guide_id": "", - "guide_version": "v1", - "id": "", - "lifecycle_status": "approved", - "merge_algorithm_version": "workstream_default_merge.v1", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "submission_artifact_policy_hash": "sha256:", - "submission_artifact_policy_id": "", - "superseded_at": null, - "supersedes_effective_policy_id": null -} -``` - -### 08_pre_submit_checker_policy - -`GET /api/v1/projects/{project_id}/guides/{guide_id}/pre-submit-checker-policy` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "checker_names": [ - "check_submission_packet", - "check_forbidden_files", - "check_confidentiality_attestation", - "check_required_files", - "check_evidence_present", - "check_evidence_integrity", - "check_low_quality_generated_artifacts" - ], - "compiled_bundle_hash": "sha256:", - "compiler_version": "workstream-pre-submit-compiler-v0.1", - "created_at": "2026-07-08T23:44:02.228409Z", - "created_by": "", - "effective_policy_hash": "sha256:", - "effective_policy_id": "", - "guide_id": "", - "guide_version": "v1", - "id": "", - "lifecycle_status": "compiled", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "superseded_at": null, - "supersedes_pre_submit_checker_policy_id": null -} -``` - -### 09_activate_guide - -`POST /api/v1/projects/{project_id}/guides/{guide_id}/activate` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "effective_submission_artifact_policy": { - "created_at": "2026-07-08T23:44:02.228409Z", - "created_by": "", - "effective_policy": { - "allowed_storage_schemes": [ - "local", - "r2", - "s3" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "all_or_nothing_reward", - "confidential_data_exclusion", - "container_bases_digest_pinned", - "credentials_and_secret_exclusion", - "dependencies_pinned", - "hashes_sha256", - "human_accountability_for_agent_assisted_work", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "original_work", - "task_layout_matches_metadata" - ], - "forbidden_artifacts": [ - { - "pattern": "**/*.key", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pem", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pyc", - "reason": "compiled Python bytecode is a generated artifact", - "worker_facing_fix": "delete bytecode files before packaging" - }, - { - "pattern": "**/.DS_Store", - "reason": "operating system metadata is not part of the task submission", - "worker_facing_fix": "remove operating system metadata files" - }, - { - "pattern": "**/.env", - "reason": "local configuration files may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.env.*", - "reason": "local configuration variants may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.pytest_cache/**", - "reason": "generated test cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/__pycache__/**", - "reason": "generated Python cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/build/**", - "reason": "compiled or generated build outputs are not part of source intake by default", - "worker_facing_fix": "remove generated build directories unless explicitly required by the task" - }, - { - "pattern": "**/dist/**", - "reason": "compiled or generated distribution outputs are not part of source intake by default", - "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" - }, - { - "pattern": "**/docker_build.log", - "reason": "build logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/id_ed25519", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/id_rsa", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/node_modules/**", - "reason": "local dependency folders bloat submissions and reduce reproducibility", - "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" - }, - { - "pattern": "**/oracle_test.log", - "reason": "test logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/platform_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/platfrom_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/review_packet.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only packets before packaging" - }, - { - "pattern": "**/rubrics.txt", - "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", - "worker_facing_fix": "remove rubrics.txt and provide rubric.md" - }, - { - "pattern": "**/static_guard.txt", - "reason": "local checker output is not a worker submission artifact", - "worker_facing_fix": "remove checker logs before packaging" - }, - { - "pattern": "**/target/**", - "reason": "compiled Rust build outputs should not be submitted", - "worker_facing_fix": "remove build output directories before packaging" - }, - { - "pattern": "*.env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.env.*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.pem", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".env*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".git", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".npmrc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".pypirc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credential*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credentials", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "node_modules", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secret*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secrets", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token*", - "severity": "blocking", - "source": "workstream_default" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "merge_algorithm_version": "workstream_default_merge.v1", - "packaging": { - "allowed_package_formats": [ - "zip" - ], - "package_required": true - }, - "project_policy": { - "allowed_storage_schemes": [ - "local", - "r2", - "s3" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "all_or_nothing_reward", - "container_bases_digest_pinned", - "dependencies_pinned", - "hashes_sha256", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "task_layout_matches_metadata" - ], - "forbidden_artifacts": [ - { - "pattern": "**/*.key", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pem", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pyc", - "reason": "compiled Python bytecode is a generated artifact", - "worker_facing_fix": "delete bytecode files before packaging" - }, - { - "pattern": "**/.DS_Store", - "reason": "operating system metadata is not part of the task submission", - "worker_facing_fix": "remove operating system metadata files" - }, - { - "pattern": "**/.env", - "reason": "local configuration files may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.env.*", - "reason": "local configuration variants may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.pytest_cache/**", - "reason": "generated test cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/__pycache__/**", - "reason": "generated Python cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/build/**", - "reason": "compiled or generated build outputs are not part of source intake by default", - "worker_facing_fix": "remove generated build directories unless explicitly required by the task" - }, - { - "pattern": "**/dist/**", - "reason": "compiled or generated distribution outputs are not part of source intake by default", - "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" - }, - { - "pattern": "**/docker_build.log", - "reason": "build logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/id_ed25519", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/id_rsa", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/node_modules/**", - "reason": "local dependency folders bloat submissions and reduce reproducibility", - "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" - }, - { - "pattern": "**/oracle_test.log", - "reason": "test logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/platform_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/platfrom_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/review_packet.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only packets before packaging" - }, - { - "pattern": "**/rubrics.txt", - "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", - "worker_facing_fix": "remove rubrics.txt and provide rubric.md" - }, - { - "pattern": "**/static_guard.txt", - "reason": "local checker output is not a worker submission artifact", - "worker_facing_fix": "remove checker logs before packaging" - }, - { - "pattern": "**/target/**", - "reason": "compiled Rust build outputs should not be submitted", - "worker_facing_fix": "remove build output directories before packaging" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "packaging": { - "allowed_package_formats": [ - "zip" - ], - "package_required": true - }, - "required_artifacts": [ - { - "description": "container build definition for the task environment", - "hash_required": true, - "key": "environment_dockerfile", - "path": "environment/Dockerfile", - "required": true - }, - { - "description": "build context hygiene exclusions", - "hash_required": true, - "key": "environment_dockerignore", - "path": "environment/.dockerignore", - "required": true - }, - { - "description": "task scoring criteria for agent traces", - "hash_required": true, - "key": "rubric", - "path": "rubric.md", - "required": true - }, - { - "description": "project task metadata and runtime configuration", - "hash_required": true, - "key": "task_config", - "path": "task.toml", - "required": true - } - ], - "required_evidence": [ - { - "description": "confirms language packages and container bases are pinned as required", - "hash_required": true, - "key": "dependency_pinning_review", - "label": "Dependency pinning review", - "required": true - }, - { - "description": "confirms build context, size limits, and runtime setup are acceptable", - "hash_required": true, - "key": "environment_hygiene_review", - "label": "Environment hygiene review", - "required": true - }, - { - "description": "root or milestone instruction files are included for the task layout", - "hash_required": true, - "key": "instructions_present", - "label": "Task instructions included", - "required": true - }, - { - "description": "confirms verifier runner writes only all-or-nothing reward output", - "hash_required": true, - "key": "reward_footer_review", - "label": "Reward footer review", - "required": true - }, - { - "description": "root or milestone solution scripts are included for validation", - "hash_required": true, - "key": "solution_present", - "label": "Reference solution included", - "required": true - }, - { - "description": "difficulty, solution, and verification explanations are provided", - "hash_required": true, - "key": "submission_explanations", - "label": "Submission explanations", - "required": true - }, - { - "description": "maps stated behavior to verifier coverage and strict assertions", - "hash_required": true, - "key": "test_alignment_review", - "label": "Test alignment review", - "required": true - }, - { - "description": "root or milestone verifier runner and test files are included for the task layout", - "hash_required": true, - "key": "tests_present", - "label": "Verifier files included", - "required": true - } - ], - "schema_version": "project_submission_artifact_policy.v1" - }, - "required_artifacts": [ - { - "description": "container build definition for the task environment", - "hash_required": true, - "key": "environment_dockerfile", - "path": "environment/Dockerfile", - "required": true - }, - { - "description": "build context hygiene exclusions", - "hash_required": true, - "key": "environment_dockerignore", - "path": "environment/.dockerignore", - "required": true - }, - { - "description": "task scoring criteria for agent traces", - "hash_required": true, - "key": "rubric", - "path": "rubric.md", - "required": true - }, - { - "description": "project task metadata and runtime configuration", - "hash_required": true, - "key": "task_config", - "path": "task.toml", - "required": true - } - ], - "required_evidence": [ - { - "description": "confirms language packages and container bases are pinned as required", - "hash_required": true, - "key": "dependency_pinning_review", - "label": "Dependency pinning review", - "required": true - }, - { - "description": "confirms build context, size limits, and runtime setup are acceptable", - "hash_required": true, - "key": "environment_hygiene_review", - "label": "Environment hygiene review", - "required": true - }, - { - "description": "root or milestone instruction files are included for the task layout", - "hash_required": true, - "key": "instructions_present", - "label": "Task instructions included", - "required": true - }, - { - "description": "confirms verifier runner writes only all-or-nothing reward output", - "hash_required": true, - "key": "reward_footer_review", - "label": "Reward footer review", - "required": true - }, - { - "description": "root or milestone solution scripts are included for validation", - "hash_required": true, - "key": "solution_present", - "label": "Reference solution included", - "required": true - }, - { - "description": "difficulty, solution, and verification explanations are provided", - "hash_required": true, - "key": "submission_explanations", - "label": "Submission explanations", - "required": true - }, - { - "description": "maps stated behavior to verifier coverage and strict assertions", - "hash_required": true, - "key": "test_alignment_review", - "label": "Test alignment review", - "required": true - }, - { - "description": "root or milestone verifier runner and test files are included for the task layout", - "hash_required": true, - "key": "tests_present", - "label": "Verifier files included", - "required": true - } - ], - "required_packet_fields": [ - "artifact_hash_manifest", - "summary", - "worker_attestation" - ], - "schema_version": "effective_project_submission_artifact_policy.v1", - "workstream_default_policy": { - "allowed_storage_schemes": [ - "local", - "s3", - "r2" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "original_work", - "confidential_data_exclusion", - "credentials_and_secret_exclusion", - "human_accountability_for_agent_assisted_work" - ], - "forbidden_artifacts": [ - { - "pattern": ".env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".env*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.env", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.env.*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".git", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credentials", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "credential*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secrets", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "secret*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".npmrc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": ".pypirc", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "api-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "access-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private_key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "private-key*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_rsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_dsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ecdsa*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "id_ed25519*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service_account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "service-account*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "token*", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.pem", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "*.key", - "severity": "blocking", - "source": "workstream_default" - }, - { - "pattern": "node_modules", - "severity": "blocking", - "source": "workstream_default" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "packaging": {}, - "required_artifacts": [], - "required_evidence": [], - "required_packet_fields": [ - "summary", - "artifact_hash_manifest", - "worker_attestation" - ], - "schema_version": "workstream_default_submission_artifact_policy.v1" - } - }, - "effective_policy_hash": "sha256:", - "guide_id": "", - "guide_version": "v1", - "id": "", - "lifecycle_status": "approved", - "merge_algorithm_version": "workstream_default_merge.v1", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "submission_artifact_policy_hash": "sha256:", - "submission_artifact_policy_id": "", - "superseded_at": null, - "supersedes_effective_policy_id": null - }, - "guide": { - "approved_by": "", - "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": " bytes:>", - "created_at": "2026-07-08T23:43:31.606777Z", - "created_by": "", - "effective_at": "2026-07-08T23:44:03.147622Z", - "id": "", - "project_id": "", - "status": "active", - "superseded_at": null, - "updated_at": "2026-07-08T23:44:02.875444Z", - "version": "v1" - }, - "guide_source_snapshot": { - "bundle_hash": "sha256:", - "captured_at": "2026-07-08T23:43:31.606777Z", - "captured_by": "", - "guide_id": "", - "guide_version": "v1", - "id": "", - "items": [ - { - "content_cid": null, - "content_hash": "sha256:", - "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures//docker_build.log", - "id": "", - "ingestion_adapter": "manual_fixture_import_sanitized", - "item_order": 0, - "media_type": "text/plain", - "source_kind": "checker_evidence", - "source_snapshot_id": "" - }, - { - "content_cid": null, - "content_hash": "sha256:", - "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures//oracle_test.log", - "id": "", - "ingestion_adapter": "manual_fixture_import_sanitized", - "item_order": 1, - "media_type": "text/plain", - "source_kind": "checker_evidence", - "source_snapshot_id": "" - }, - { - "content_cid": null, - "content_hash": "sha256:", - "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures//starter_m1_test.log", - "id": "", - "ingestion_adapter": "manual_fixture_import_sanitized", - "item_order": 2, - "media_type": "text/plain", - "source_kind": "checker_evidence", - "source_snapshot_id": "" - }, - { - "content_cid": null, - "content_hash": "sha256:", - "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures//static_guard.txt", - "id": "", - "ingestion_adapter": "manual_fixture_import_sanitized", - "item_order": 3, - "media_type": "text/plain", - "source_kind": "checker_evidence", - "source_snapshot_id": "" - }, - { - "content_cid": null, - "content_hash": "sha256:", - "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures//PROJECT_GUIDE.md", - "id": "", - "ingestion_adapter": "manual_fixture_import_sanitized", - "item_order": 4, - "media_type": "text/markdown", - "source_kind": "project_guide", - "source_snapshot_id": "" - }, - { - "content_cid": null, - "content_hash": "sha256:", - "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "inline:/guides//v1", - "id": "", - "ingestion_adapter": "workstream_project_guide", - "item_order": 5, - "media_type": "application/json", - "source_kind": "project_guide", - "source_snapshot_id": "" - }, - { - "content_cid": null, - "content_hash": "sha256:", - "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures//review_packet.md", - "id": "", - "ingestion_adapter": "manual_fixture_import_sanitized", - "item_order": 6, - "media_type": "text/markdown", - "source_kind": "review_packet", - "source_snapshot_id": "" - }, - { - "content_cid": null, - "content_hash": "sha256:", - "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures//REVIEWER_PROGRAM.md", - "id": "", - "ingestion_adapter": "manual_fixture_import_sanitized", - "item_order": 7, - "media_type": "text/markdown", - "source_kind": "reviewer_program", - "source_snapshot_id": "" - }, - { - "content_cid": null, - "content_hash": "sha256:", - "created_at": "2026-07-08T23:43:31.606777Z", - "durable_ref": "import:/fixtures//task.toml", - "id": "", - "ingestion_adapter": "manual_fixture_import_sanitized", - "item_order": 8, - "media_type": "text/toml", - "source_kind": "task_material", - "source_snapshot_id": "" - } - ], - "manifest_json": { - "items": [ - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//docker_build.log", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/plain", - "source_kind": "checker_evidence" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//oracle_test.log", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/plain", - "source_kind": "checker_evidence" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//starter_m1_test.log", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/plain", - "source_kind": "checker_evidence" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//static_guard.txt", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/plain", - "source_kind": "checker_evidence" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//PROJECT_GUIDE.md", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/markdown", - "source_kind": "project_guide" - }, - { - "content_cid": null, - "content_excerpt": null, - "content_hash": "sha256:", - "durable_ref": "inline:/guides//v1", - "ingestion_adapter": "workstream_project_guide", - "media_type": "application/json", - "source_kind": "project_guide" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//review_packet.md", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/markdown", - "source_kind": "review_packet" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//REVIEWER_PROGRAM.md", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/markdown", - "source_kind": "reviewer_program" - }, - { - "content_cid": null, - "content_excerpt": " bytes:>", - "content_hash": "sha256:", - "durable_ref": "import:/fixtures//task.toml", - "ingestion_adapter": "manual_fixture_import_sanitized", - "media_type": "text/toml", - "source_kind": "task_material" - } - ], - "schema_version": "guide_source_snapshot.v1" - }, - "manifest_schema_version": "guide_source_snapshot.v1", - "project_id": "" - }, - "guide_sufficiency_report": { - "acknowledgement_note": null, - "agent_name": "ProjectGuideSufficiencyAgent", - "agent_version": "workstream-sufficiency-agent-v0.1", - "created_at": "2026-07-08T23:43:40.523990Z", - "created_by": "workstream-system:project-setup-pipeline", - "findings": [], - "guide_id": "", - "guide_version": "v1", - "id": "", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "status": "passed", - "summary": "The guide provides sufficient reviewer criteria and workflow direction for this Terminal Benchmark task review, including milestone structure, static guard handling, dependency pinning, Dockerfile requirements, test alignment, rubric rules, reward behavior, and category mapping.", - "warnings_acknowledged_at": null, - "warnings_acknowledged_by_actor": null, - "warnings_acknowledged_by_role": null - }, - "payment_policy": { - "accepted_payment_rule": "pay_on_acceptance", - "base_amount": "25.00", - "created_at": "2026-07-08T23:43:31.606777Z", - "currency": "USD", - "guide_version": "v1", - "id": "", - "payout_type": "fixed", - "project_id": "", - "rejection_payment_rule": "no_payment_on_reject", - "revision_payment_rule": "no_extra_payment_for_revisions" - }, - "post_submit_checker_policy": { - "blocking_severities": [ - "high", - "medium" - ], - "created_at": "2026-07-08T23:43:31.606777Z", - "guide_version": "v1", - "id": "", - "policy_hash": "sha256:", - "project_id": "", - "required_checkers": [ - "check_policy_context_present", - "check_low_quality_generated_artifacts" - ], - "warning_checkers": [] - }, - "pre_submit_checker_policy": { - "checker_configs": { - "enforce_storage_scheme": { - "schemes": [ - "local", - "r2", - "s3" - ] - }, - "forbid_artifact": { - "patterns": [ - "**/*.key", - "**/*.pem", - "**/*.pyc", - "**/.DS_Store", - "**/.env", - "**/.env.*", - "**/.pytest_cache/**", - "**/__pycache__/**", - "**/build/**", - "**/dist/**", - "**/docker_build.log", - "**/id_ed25519", - "**/id_rsa", - "**/node_modules/**", - "**/oracle_test.log", - "**/platform_review.md", - "**/platfrom_review.md", - "**/review_packet.md", - "**/rubrics.txt", - "**/static_guard.txt", - "**/target/**", - "*.env", - "*.env.*", - "*.key", - "*.pem", - ".env", - ".env*", - ".git", - ".npmrc", - ".pypirc", - "access-key", - "access-key*", - "access_key", - "access_key*", - "api-key", - "api-key*", - "api_key", - "api_key*", - "credential*", - "credentials", - "id_dsa", - "id_dsa*", - "id_ecdsa", - "id_ecdsa*", - "id_ed25519", - "id_ed25519*", - "id_rsa", - "id_rsa*", - "node_modules", - "private-key", - "private-key*", - "private_key", - "private_key*", - "secret*", - "secrets", - "service-account", - "service-account*", - "service_account", - "service_account*", - "token", - "token*" - ] - }, - "require_attestation": { - "terms": [ - "all_or_nothing_reward", - "confidential_data_exclusion", - "container_bases_digest_pinned", - "credentials_and_secret_exclusion", - "dependencies_pinned", - "hashes_sha256", - "human_accountability_for_agent_assisted_work", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "original_work", - "task_layout_matches_metadata" - ] - }, - "require_file": { - "artifact_keys": [ - "environment_dockerfile", - "environment_dockerignore", - "rubric", - "task_config" - ] - }, - "require_manifest_field": {}, - "require_minimum_evidence": { - "evidence_keys": [ - "dependency_pinning_review", - "environment_hygiene_review", - "instructions_present", - "reward_footer_review", - "solution_present", - "submission_explanations", - "test_alignment_review", - "tests_present" - ] - }, - "require_packaging": { - "allowed_package_formats": [ - "zip" - ], - "package_required": true - }, - "validate_submission_packet": { - "fields": [ - "artifact_hash_manifest", - "summary", - "worker_attestation" - ] - }, - "verify_hash": { - "algorithm": "sha256" - }, - "warn_low_quality_generated_artifact": {} - }, - "checker_names": [ - "check_submission_packet", - "check_forbidden_files", - "check_confidentiality_attestation", - "check_required_files", - "check_evidence_present", - "check_evidence_integrity", - "check_low_quality_generated_artifacts" - ], - "compiled_bundle_hash": "sha256:", - "compiler_version": "workstream-pre-submit-compiler-v0.1", - "created_at": "2026-07-08T23:44:02.228409Z", - "created_by": "", - "effective_policy_hash": "sha256:", - "effective_policy_id": "", - "guide_id": "", - "guide_version": "v1", - "id": "", - "lifecycle_status": "compiled", - "project_id": "", - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "superseded_at": null, - "supersedes_pre_submit_checker_policy_id": null - }, - "review_policy": { - "allowed_decisions": [ - "accept", - "needs_revision", - "reject" - ], - "created_at": "2026-07-08T23:43:31.606777Z", - "guide_version": "v1", - "id": "", - "minimum_finding_fields": [ - "issue", - "required_fix" - ], - "project_id": "", - "requires_second_review": false, - "sla_hours": 24 - }, - "revision_policy": { - "allowed_resubmission_states": [ - "needs_revision" - ], - "auto_reject_after_limit": true, - "created_at": "2026-07-08T23:43:31.606777Z", - "guide_version": "v1", - "id": "", - "max_revision_rounds": 7, - "project_id": "", - "reviewer_reassignment_rule": "same_reviewer_preferred", - "revision_deadline_hours": 48 - }, - "submission_artifact_policy": { - "approved_at": "2026-07-08T23:44:02.420104Z", - "approved_by_actor": "", - "approved_by_role": "project_manager", - "change_summary": null, - "created_at": "2026-07-08T23:44:00.095072Z", - "created_by": "workstream-system:project-setup-pipeline", - "derivation_agent_name": "SubmissionArtifactPolicyDerivationAgent", - "derivation_agent_version": "workstream-policy-derivation-agent-v0.1", - "derivation_source": "agent_derivation", - "guide_id": "", - "guide_version": "v1", - "id": "", - "lifecycle_status": "approved", - "policy_body": { - "allowed_storage_schemes": [ - "local", - "r2", - "s3" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "all_or_nothing_reward", - "container_bases_digest_pinned", - "dependencies_pinned", - "hashes_sha256", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "task_layout_matches_metadata" - ], - "forbidden_artifacts": [ - { - "pattern": "**/*.key", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pem", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pyc", - "reason": "compiled Python bytecode is a generated artifact", - "worker_facing_fix": "delete bytecode files before packaging" - }, - { - "pattern": "**/.DS_Store", - "reason": "operating system metadata is not part of the task submission", - "worker_facing_fix": "remove operating system metadata files" - }, - { - "pattern": "**/.env", - "reason": "local configuration files may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.env.*", - "reason": "local configuration variants may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.pytest_cache/**", - "reason": "generated test cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/__pycache__/**", - "reason": "generated Python cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/build/**", - "reason": "compiled or generated build outputs are not part of source intake by default", - "worker_facing_fix": "remove generated build directories unless explicitly required by the task" - }, - { - "pattern": "**/dist/**", - "reason": "compiled or generated distribution outputs are not part of source intake by default", - "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" - }, - { - "pattern": "**/docker_build.log", - "reason": "build logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/id_ed25519", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/id_rsa", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/node_modules/**", - "reason": "local dependency folders bloat submissions and reduce reproducibility", - "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" - }, - { - "pattern": "**/oracle_test.log", - "reason": "test logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/platform_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/platfrom_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/review_packet.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only packets before packaging" - }, - { - "pattern": "**/rubrics.txt", - "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", - "worker_facing_fix": "remove rubrics.txt and provide rubric.md" - }, - { - "pattern": "**/static_guard.txt", - "reason": "local checker output is not a worker submission artifact", - "worker_facing_fix": "remove checker logs before packaging" - }, - { - "pattern": "**/target/**", - "reason": "compiled Rust build outputs should not be submitted", - "worker_facing_fix": "remove build output directories before packaging" - } - ], - "manifest_required": true, - "maximum_file_size_bytes": null, - "maximum_package_size_bytes": null, - "packaging": { - "allowed_package_formats": [ - "zip" - ], - "package_required": true - }, - "required_artifacts": [ - { - "description": "container build definition for the task environment", - "hash_required": true, - "key": "environment_dockerfile", - "path": "environment/Dockerfile", - "required": true - }, - { - "description": "build context hygiene exclusions", - "hash_required": true, - "key": "environment_dockerignore", - "path": "environment/.dockerignore", - "required": true - }, - { - "description": "task scoring criteria for agent traces", - "hash_required": true, - "key": "rubric", - "path": "rubric.md", - "required": true - }, - { - "description": "project task metadata and runtime configuration", - "hash_required": true, - "key": "task_config", - "path": "task.toml", - "required": true - } - ], - "required_evidence": [ - { - "description": "confirms language packages and container bases are pinned as required", - "hash_required": true, - "key": "dependency_pinning_review", - "label": "Dependency pinning review", - "required": true - }, - { - "description": "confirms build context, size limits, and runtime setup are acceptable", - "hash_required": true, - "key": "environment_hygiene_review", - "label": "Environment hygiene review", - "required": true - }, - { - "description": "root or milestone instruction files are included for the task layout", - "hash_required": true, - "key": "instructions_present", - "label": "Task instructions included", - "required": true - }, - { - "description": "confirms verifier runner writes only all-or-nothing reward output", - "hash_required": true, - "key": "reward_footer_review", - "label": "Reward footer review", - "required": true - }, - { - "description": "root or milestone solution scripts are included for validation", - "hash_required": true, - "key": "solution_present", - "label": "Reference solution included", - "required": true - }, - { - "description": "difficulty, solution, and verification explanations are provided", - "hash_required": true, - "key": "submission_explanations", - "label": "Submission explanations", - "required": true - }, - { - "description": "maps stated behavior to verifier coverage and strict assertions", - "hash_required": true, - "key": "test_alignment_review", - "label": "Test alignment review", - "required": true - }, - { - "description": "root or milestone verifier runner and test files are included for the task layout", - "hash_required": true, - "key": "tests_present", - "label": "Verifier files included", - "required": true - } - ], - "schema_version": "project_submission_artifact_policy.v1" - }, - "policy_hash": "sha256:", - "policy_version": "agent-", - "project_id": "", - "source_material_refs": [ - "import:/fixtures//docker_build.log", - "import:/fixtures//oracle_test.log", - "import:/fixtures//starter_m1_test.log", - "import:/fixtures//static_guard.txt", - "import:/fixtures//PROJECT_GUIDE.md", - "inline:/guides//v1", - "import:/fixtures//review_packet.md", - "import:/fixtures//REVIEWER_PROGRAM.md", - "import:/fixtures//task.toml" - ], - "source_snapshot_hash": "sha256:", - "source_snapshot_id": "", - "superseded_at": null, - "supersedes_policy_id": null, - "updated_at": "2026-07-08T23:44:02.228409Z" - } -} -``` - -### 10_task_create - -`POST /api/v1/projects/{project_id}/tasks` -> HTTP `201` - -Request body: - -```json -{ - "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", - "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", - "difficulty": "medium", - "estimated_time_minutes": 75, - "external_task_id": "", - "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", - "skill_tags": [ - "rust", - "json", - "", - "containers", - "cli" - ], - "source_payload_hash": "sha256:", - "source_ref": "terminal-benchmark//live-api/", - "source_type": "manual", - "task_type": "terminal_benchmark", - "title": "Terminal Benchmark live-api" -} -``` - -Response body: - -```json -{ - "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", - "created_at": "2026-07-08T23:44:03.452947Z", - "created_by": "", - "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", - "difficulty": "medium", - "estimated_time_minutes": 75, - "external_task_id": "", - "id": "", - "project_id": "", - "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", - "skill_tags": [ - "rust", - "json", - "", - "containers", - "cli" - ], - "source_payload_hash": "sha256:", - "source_ref": "terminal-benchmark//live-api/", - "source_type": "manual", - "status": "draft", - "task_type": "terminal_benchmark", - "title": "Terminal Benchmark live-api", - "updated_at": "2026-07-08T23:44:03.452947Z" -} -``` - -### 11_task_screen - -`POST /api/v1/tasks/{task_id}/screen` -> HTTP `200` - -Request body: - -```json -{ - "reason": "Terminal Benchmark final clean live API screening; lock active guide and policy context." -} -``` - -Response body: - -```json -{ - "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", - "base_amount": "25.00", - "created_at": "2026-07-08T23:44:03.452947Z", - "created_by": "", - "currency": "USD", - "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", - "difficulty": "medium", - "estimated_time_minutes": 75, - "external_task_id": "", - "id": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "payout_type": "fixed", - "project_id": "", - "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", - "skill_tags": [ - "rust", - "json", - "", - "containers", - "cli" - ], - "source_payload_hash": "sha256:", - "source_ref": "terminal-benchmark//live-api/", - "source_type": "manual", - "status": "screening", - "task_type": "terminal_benchmark", - "title": "Terminal Benchmark live-api", - "updated_at": "2026-07-08T23:44:03.630101Z" -} -``` - -### 12_locked_context_after_screen - -`GET /api/v1/tasks/{task_id}/locked-context` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_body_summary": { - "blocking_severities": [ - "high", - "medium" - ], - "default_checkers": [ - "check_submission_packet", - "check_policy_context_present", - "check_evidence_present", - "check_evidence_integrity", - "check_required_files", - "check_forbidden_files", - "check_confidentiality_attestation", - "check_low_quality_generated_artifacts" - ], - "execution_checkers": [ - "check_submission_packet", - "check_policy_context_present", - "check_evidence_present", - "check_evidence_integrity", - "check_required_files", - "check_forbidden_files", - "check_confidentiality_attestation", - "check_low_quality_generated_artifacts" - ], - "required_checkers": [ - "check_policy_context_present", - "check_low_quality_generated_artifacts" - ], - "schema_version": "post_submit_checker_policy.v1", - "warning_checkers": [] - }, - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "project_id": "", - "task_id": "" -} -``` - -### 13_task_release - -`POST /api/v1/tasks/{task_id}/release` -> HTTP `200` - -Request body: - -```json -{ - "reason": "Terminal Benchmark final clean live API ready for worker claim." -} -``` - -Response body: - -```json -{ - "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", - "base_amount": "25.00", - "created_at": "2026-07-08T23:44:03.452947Z", - "created_by": "", - "currency": "USD", - "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", - "difficulty": "medium", - "estimated_time_minutes": 75, - "external_task_id": "", - "id": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "payout_type": "fixed", - "project_id": "", - "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", - "skill_tags": [ - "rust", - "json", - "", - "containers", - "cli" - ], - "source_payload_hash": "sha256:", - "source_ref": "terminal-benchmark//live-api/", - "source_type": "manual", - "status": "ready", - "task_type": "terminal_benchmark", - "title": "Terminal Benchmark live-api", - "updated_at": "2026-07-08T23:44:04.041939Z" -} -``` - -### 14_worker_profile - -`POST /api/v1/workers/me/profile` -> HTTP `200` - -Request body: - -```json -{ - "skill_tags": [ - "rust", - "json", - "", - "containers", - "cli" - ] -} -``` - -Response body: - -```json -{ - "actor_id": "", - "created_at": "2026-07-08T23:44:04.145081Z", - "display_name": "Terminal Benchmark Worker Ws16 Clean Cb1540Ba", - "email": "terminal-benchmark-worker-@flow.local", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-", - "id": "", - "profile_metadata": { - "source": "worker_profile_api" - }, - "profile_type": "worker", - "scope_id": "global", - "scope_type": "global", - "skill_tags": [ - "rust", - "json", - "", - "containers", - "cli" - ], - "status": "active", - "updated_at": "2026-07-08T23:44:04.240478Z" -} -``` - -### 15_task_claim - -`POST /api/v1/tasks/{task_id}/claim` -> HTTP `200` - -Request body: - -```json -{ - "reason": "Terminal Benchmark final clean live API worker claim." -} -``` - -Response body: - -```json -{ - "assignment": { - "accepted_at": "2026-07-08T23:44:04.575130Z", - "assigned_at": "2026-07-08T23:44:04.503583Z", - "assigned_by": "", - "id": "", - "status": "active", - "task_id": "", - "worker_id": "" - }, - "task": { - "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", - "base_amount": "25.00", - "created_at": "2026-07-08T23:44:03.452947Z", - "currency": "USD", - "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", - "difficulty": "medium", - "estimated_time_minutes": 75, - "id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "payout_type": "fixed", - "project_id": "", - "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", - "skill_tags": [ - "rust", - "json", - "", - "containers", - "cli" - ], - "source_type": "manual", - "status": "claimed", - "task_type": "terminal_benchmark", - "title": "Terminal Benchmark live-api", - "updated_at": "2026-07-08T23:44:04.503583Z" - } -} -``` - -### 16_task_start - -`POST /api/v1/tasks/{task_id}/start` -> HTTP `200` - -Request body: - -```json -{ - "reason": "Terminal Benchmark final clean live API worker started work." -} -``` - -Response body: - -```json -{ - "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", - "base_amount": "25.00", - "created_at": "2026-07-08T23:44:03.452947Z", - "currency": "USD", - "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", - "difficulty": "medium", - "estimated_time_minutes": 75, - "id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "payout_type": "fixed", - "project_id": "", - "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", - "skill_tags": [ - "rust", - "json", - "", - "containers", - "cli" - ], - "source_type": "manual", - "status": "in_progress", - "task_type": "terminal_benchmark", - "title": "Terminal Benchmark live-api", - "updated_at": "2026-07-08T23:44:04.727342Z" -} -``` - -### 17_locked_context_after_start - -`GET /api/v1/tasks/{task_id}/locked-context` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_body_summary": { - "blocking_severities": [ - "high", - "medium" - ], - "default_checkers": [ - "check_submission_packet", - "check_policy_context_present", - "check_evidence_present", - "check_evidence_integrity", - "check_required_files", - "check_forbidden_files", - "check_confidentiality_attestation", - "check_low_quality_generated_artifacts" - ], - "execution_checkers": [ - "check_submission_packet", - "check_policy_context_present", - "check_evidence_present", - "check_evidence_integrity", - "check_required_files", - "check_forbidden_files", - "check_confidentiality_attestation", - "check_low_quality_generated_artifacts" - ], - "required_checkers": [ - "check_policy_context_present", - "check_low_quality_generated_artifacts" - ], - "schema_version": "post_submit_checker_policy.v1", - "warning_checkers": [] - }, - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "project_id": "", - "task_id": "" -} -``` - -### 18_work_context - -`GET /api/v1/tasks/{task_id}/work-context` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "guide": { - "change_summary": "Initial Terminal Benchmark real-world guide from sanitized imported source snapshot bundle.", - "content_markdown": " bytes:>", - "effective_at": "2026-07-08T23:44:03.147622Z", - "id": "", - "version": "v1" - }, - "lifecycle": { - "assigned_to_current_actor": true, - "can_run_pre_submit_check": true, - "can_submit": true, - "next_actions": [ - "run_pre_submit_check", - "submit" - ], - "status": "in_progress" - }, - "payment_policy": { - "base_amount": "25.00", - "currency": "USD", - "guide_version": "v1", - "payout_type": "fixed" - }, - "project": { - "description": "Real Terminal Benchmark fixture used as Workstream API evidence with sanitized source text.", - "id": "", - "name": "Terminal Benchmark Real API ", - "slug": "terminal-benchmark-real-api-" - }, - "review_policy": { - "guide_version": "v1" - }, - "revision_policy": { - "guide_version": "v1" - }, - "task": { - "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", - "base_amount": "25.00", - "created_at": "2026-07-08T23:44:03.452947Z", - "currency": "USD", - "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", - "difficulty": "medium", - "estimated_time_minutes": 75, - "id": "", - "locked_guide_version": "v1", - "payout_type": "fixed", - "project_id": "", - "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", - "skill_tags": [ - "rust", - "json", - "", - "containers", - "cli" - ], - "status": "in_progress", - "task_type": "terminal_benchmark", - "title": "Terminal Benchmark live-api", - "updated_at": "2026-07-08T23:44:04.727342Z" - } -} -``` - -### 19_submission_requirements - -`GET /api/v1/tasks/{task_id}/submission-requirements` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "allowed_storage_schemes": [ - "local", - "r2", - "s3" - ], - "artifact_hash_algorithm": "sha256", - "artifact_hash_required": true, - "attestation_terms": [ - "all_or_nothing_reward", - "confidential_data_exclusion", - "container_bases_digest_pinned", - "credentials_and_secret_exclusion", - "dependencies_pinned", - "hashes_sha256", - "human_accountability_for_agent_assisted_work", - "manifest_complete", - "no_generated_caches", - "no_reviewer_only_material", - "no_sensitive_local_material", - "offline_verifier_dependencies", - "original_work", - "task_layout_matches_metadata" - ], - "forbidden_artifacts": [ - { - "pattern": "**/*.key", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pem", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file unless it is a non-sensitive public test fixture explicitly required by the task" - }, - { - "pattern": "**/*.pyc", - "reason": "compiled Python bytecode is a generated artifact", - "worker_facing_fix": "delete bytecode files before packaging" - }, - { - "pattern": "**/.DS_Store", - "reason": "operating system metadata is not part of the task submission", - "worker_facing_fix": "remove operating system metadata files" - }, - { - "pattern": "**/.env", - "reason": "local configuration files may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.env.*", - "reason": "local configuration variants may expose sensitive local settings", - "worker_facing_fix": "remove the file and submit only safe example configuration if needed" - }, - { - "pattern": "**/.pytest_cache/**", - "reason": "generated test cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/__pycache__/**", - "reason": "generated Python cache files are stale package artifacts", - "worker_facing_fix": "delete cache directories before packaging" - }, - { - "pattern": "**/build/**", - "reason": "compiled or generated build outputs are not part of source intake by default", - "worker_facing_fix": "remove generated build directories unless explicitly required by the task" - }, - { - "pattern": "**/dist/**", - "reason": "compiled or generated distribution outputs are not part of source intake by default", - "worker_facing_fix": "remove generated distribution directories unless explicitly required by the task" - }, - { - "pattern": "**/docker_build.log", - "reason": "build logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/id_ed25519", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/id_rsa", - "reason": "private authentication material must not be submitted", - "worker_facing_fix": "remove the file from the package" - }, - { - "pattern": "**/node_modules/**", - "reason": "local dependency folders bloat submissions and reduce reproducibility", - "worker_facing_fix": "remove local dependency folders and rely on pinned manifests or lockfiles" - }, - { - "pattern": "**/oracle_test.log", - "reason": "test logs are not source submission artifacts", - "worker_facing_fix": "remove local logs before packaging" - }, - { - "pattern": "**/platform_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/platfrom_review.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only notes before packaging" - }, - { - "pattern": "**/review_packet.md", - "reason": "review-only material must not be included in worker submissions", - "worker_facing_fix": "remove reviewer-only packets before packaging" - }, - { - "pattern": "**/rubrics.txt", - "reason": "rubrics must be supplied through the expected rubric artifact, not as this legacy packaged file", - "worker_facing_fix": "remove rubrics.txt and provide rubric.md" - }, - { - "pattern": "**/static_guard.txt", - "reason": "local checker output is not a worker submission artifact", - "worker_facing_fix": "remove checker logs before packaging" - }, - { - "pattern": "**/target/**", - "reason": "compiled Rust build outputs should not be submitted", - "worker_facing_fix": "remove build output directories before packaging" - }, - { - "pattern": "*.env", - "severity": "blocking" - }, - { - "pattern": "*.env.*", - "severity": "blocking" - }, - { - "pattern": "*.key", - "severity": "blocking" - }, - { - "pattern": "*.pem", - "severity": "blocking" - }, - { - "pattern": ".env", - "severity": "blocking" - }, - { - "pattern": ".env*", - "severity": "blocking" - }, - { - "pattern": ".git", - "severity": "blocking" - }, - { - "pattern": ".npmrc", - "severity": "blocking" - }, - { - "pattern": ".pypirc", - "severity": "blocking" - }, - { - "pattern": "access-key", - "severity": "blocking" - }, - { - "pattern": "access-key*", - "severity": "blocking" - }, - { - "pattern": "access_key", - "severity": "blocking" - }, - { - "pattern": "access_key*", - "severity": "blocking" - }, - { - "pattern": "api-key", - "severity": "blocking" - }, - { - "pattern": "api-key*", - "severity": "blocking" - }, - { - "pattern": "api_key", - "severity": "blocking" - }, - { - "pattern": "api_key*", - "severity": "blocking" - }, - { - "pattern": "credential*", - "severity": "blocking" - }, - { - "pattern": "credentials", - "severity": "blocking" - }, - { - "pattern": "id_dsa", - "severity": "blocking" - }, - { - "pattern": "id_dsa*", - "severity": "blocking" - }, - { - "pattern": "id_ecdsa", - "severity": "blocking" - }, - { - "pattern": "id_ecdsa*", - "severity": "blocking" - }, - { - "pattern": "id_ed25519", - "severity": "blocking" - }, - { - "pattern": "id_ed25519*", - "severity": "blocking" - }, - { - "pattern": "id_rsa", - "severity": "blocking" - }, - { - "pattern": "id_rsa*", - "severity": "blocking" - }, - { - "pattern": "node_modules", - "severity": "blocking" - }, - { - "pattern": "private-key", - "severity": "blocking" - }, - { - "pattern": "private-key*", - "severity": "blocking" - }, - { - "pattern": "private_key", - "severity": "blocking" - }, - { - "pattern": "private_key*", - "severity": "blocking" - }, - { - "pattern": "secret*", - "severity": "blocking" - }, - { - "pattern": "secrets", - "severity": "blocking" - }, - { - "pattern": "service-account", - "severity": "blocking" - }, - { - "pattern": "service-account*", - "severity": "blocking" - }, - { - "pattern": "service_account", - "severity": "blocking" - }, - { - "pattern": "service_account*", - "severity": "blocking" - }, - { - "pattern": "token", - "severity": "blocking" - }, - { - "pattern": "token*", - "severity": "blocking" - } - ], - "guide_version": "v1", - "manifest_required": true, - "merge_algorithm_version": "workstream_default_merge.v1", - "packaging": { - "allowed_package_formats": [ - "zip" - ], - "package_required": true - }, - "policy_schema_version": "effective_project_submission_artifact_policy.v1", - "project_id": "", - "required_artifacts": [ - { - "description": "container build definition for the task environment", - "hash_required": true, - "key": "environment_dockerfile", - "path": "environment/Dockerfile", - "required": true - }, - { - "description": "build context hygiene exclusions", - "hash_required": true, - "key": "environment_dockerignore", - "path": "environment/.dockerignore", - "required": true - }, - { - "description": "task scoring criteria for agent traces", - "hash_required": true, - "key": "rubric", - "path": "rubric.md", - "required": true - }, - { - "description": "project task metadata and runtime configuration", - "hash_required": true, - "key": "task_config", - "path": "task.toml", - "required": true - } - ], - "required_evidence": [ - { - "description": "confirms language packages and container bases are pinned as required", - "hash_required": true, - "key": "dependency_pinning_review", - "label": "Dependency pinning review", - "required": true - }, - { - "description": "confirms build context, size limits, and runtime setup are acceptable", - "hash_required": true, - "key": "environment_hygiene_review", - "label": "Environment hygiene review", - "required": true - }, - { - "description": "root or milestone instruction files are included for the task layout", - "hash_required": true, - "key": "instructions_present", - "label": "Task instructions included", - "required": true - }, - { - "description": "confirms verifier runner writes only all-or-nothing reward output", - "hash_required": true, - "key": "reward_footer_review", - "label": "Reward footer review", - "required": true - }, - { - "description": "root or milestone solution scripts are included for validation", - "hash_required": true, - "key": "solution_present", - "label": "Reference solution included", - "required": true - }, - { - "description": "difficulty, solution, and verification explanations are provided", - "hash_required": true, - "key": "submission_explanations", - "label": "Submission explanations", - "required": true - }, - { - "description": "maps stated behavior to verifier coverage and strict assertions", - "hash_required": true, - "key": "test_alignment_review", - "label": "Test alignment review", - "required": true - }, - { - "description": "root or milestone verifier runner and test files are included for the task layout", - "hash_required": true, - "key": "tests_present", - "label": "Verifier files included", - "required": true - } - ], - "required_packet_fields": [ - "summary", - "package_hash", - "artifact_hash_manifest", - "worker_attestation" - ], - "storage_reference_rules": { - "allowed_storage_schemes": [ - "local", - "r2", - "s3" - ], - "allowed_uri_prefixes": [ - "local://", - "r2://", - "s3://" - ], - "credentials_allowed": false, - "fragments_allowed": false, - "path_traversal_allowed": false, - "query_strings_allowed": false - }, - "task_id": "" -} -``` - -### 20_precheck_blocked - -`POST /api/v1/tasks/{task_id}/submission-precheck` -> HTTP `200` +## Validation -Request body: - -```json -{ - "submission": { - "artifact_hash_manifest": [ - { - "artifact": "environment/Dockerfile", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "rubric.md", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "task.toml", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - } - ], - "evidence_items": [ - { - "hash": "sha256:", - "label": "Dependency pinning review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "dependency_pinning_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" - }, - { - "hash": "sha256:", - "label": "Environment hygiene review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "environment_hygiene_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" - }, - { - "hash": "sha256:", - "label": "Task instructions included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "instructions_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/instructions_present.txt" - }, - { - "hash": "sha256:", - "label": "Reward footer review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "reward_footer_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" - }, - { - "hash": "sha256:", - "label": "Reference solution included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "solution_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/solution_present.txt" - }, - { - "hash": "sha256:", - "label": "Submission explanations", - "metadata": { - "fixture_id": "", - "required_evidence_key": "submission_explanations" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" - }, - { - "hash": "sha256:", - "label": "Test alignment review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "test_alignment_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" - }, - { - "hash": "sha256:", - "label": "Verifier files included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "tests_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/tests_present.txt" - } - ], - "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark//submission.zip", - "summary": "Blocked-path packet built from live requirements, missing environment/.dockerignore.", - "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>" - } -} -``` - -Response body: - -```json -{ - "authoritative": false, - "eligible_to_submit": false, - "results": [ - { - "checker_name": "check_submission_packet", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission packet satisfies locked project packet policy.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_forbidden_files", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission does not include default forbidden paths.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_confidentiality_attestation", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes the required confidentiality attestation.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_required_files", - "severity": "high", - "status": "failed", - "worker_evidence_refs": [], - "worker_message": "Submission is missing required artifact files.", - "worker_suggested_fix": "Add every file required by the task to the artifact hash manifest.", - "would_block_if_submitted": true - }, - { - "checker_name": "check_evidence_present", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes required evidence references.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_evidence_integrity", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Artifact manifest and evidence references are structurally valid.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_low_quality_generated_artifacts", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission does not contain obvious generated-output placeholder signals.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - } - ], - "status": "failed", - "task_id": "" -} -``` - -### 21_submission_blocked_create - -`POST /api/v1/tasks/{task_id}/submissions` -> HTTP `422` - -Request body: - -```json -{ - "artifact_hash_manifest": [ - { - "artifact": "environment/Dockerfile", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "rubric.md", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "task.toml", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - } - ], - "evidence_items": [ - { - "hash": "sha256:", - "label": "Dependency pinning review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "dependency_pinning_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" - }, - { - "hash": "sha256:", - "label": "Environment hygiene review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "environment_hygiene_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" - }, - { - "hash": "sha256:", - "label": "Task instructions included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "instructions_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/instructions_present.txt" - }, - { - "hash": "sha256:", - "label": "Reward footer review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "reward_footer_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" - }, - { - "hash": "sha256:", - "label": "Reference solution included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "solution_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/solution_present.txt" - }, - { - "hash": "sha256:", - "label": "Submission explanations", - "metadata": { - "fixture_id": "", - "required_evidence_key": "submission_explanations" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" - }, - { - "hash": "sha256:", - "label": "Test alignment review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "test_alignment_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" - }, - { - "hash": "sha256:", - "label": "Verifier files included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "tests_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/tests_present.txt" - } - ], - "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark//submission.zip", - "summary": "Blocked-path packet built from live requirements, missing environment/.dockerignore.", - "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>" -} -``` - -Response body: - -```json -{ - "code": "pre_submission_checker_failed", - "details": { - "authoritative": false, - "eligible_to_submit": false, - "results": [ - { - "checker_name": "check_submission_packet", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission packet satisfies locked project packet policy.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_forbidden_files", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission does not include default forbidden paths.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_confidentiality_attestation", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes the required confidentiality attestation.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_required_files", - "severity": "high", - "status": "failed", - "worker_evidence_refs": [], - "worker_message": "Submission is missing required artifact files.", - "worker_suggested_fix": "Add every file required by the task to the artifact hash manifest.", - "would_block_if_submitted": true - }, - { - "checker_name": "check_evidence_present", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes required evidence references.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_evidence_integrity", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Artifact manifest and evidence references are structurally valid.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_low_quality_generated_artifacts", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission does not contain obvious generated-output placeholder signals.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - } - ], - "status": "failed", - "task_id": "" - } -} -``` - -### 22_submissions_after_blocked - -`GET /api/v1/tasks/{task_id}/submissions` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -[] -``` - -### 23_audit_after_blocked - -`GET /api/v1/tasks/{task_id}/audit-events` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -[ - { - "actor_id": "", - "actor_roles": [ - "project_manager" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:44:03.452947Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": null, - "locked_effective_project_submission_artifact_policy_hash": null, - "locked_effective_project_submission_artifact_policy_id": null, - "locked_guide_source_snapshot_hash": null, - "locked_guide_source_snapshot_id": null, - "locked_guide_version": null, - "locked_payment_policy_version": null, - "locked_post_submit_checker_policy_hash": null, - "locked_post_submit_checker_policy_id": null, - "locked_post_submit_checker_policy_version": null, - "locked_pre_submit_checker_bundle_hash": null, - "locked_pre_submit_checker_policy_id": null, - "locked_review_policy_version": null, - "locked_revision_policy_version": null, - "source_type": "manual" - }, - "event_type": "task_created", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-", - "from_status": null, - "id": "", - "is_dev_auth": false, - "reason": null, - "to_status": "draft" - }, - { - "actor_id": "", - "actor_roles": [ - "project_manager" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:44:03.630101Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": null, - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1" - }, - "event_type": "task_status_changed", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-", - "from_status": "draft", - "id": "", - "is_dev_auth": false, - "reason": "Terminal Benchmark final clean live API screening; lock active guide and policy context.", - "to_status": "screening" - }, - { - "actor_id": "", - "actor_roles": [ - "project_manager" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:44:04.041939Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": null, - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1" - }, - "event_type": "task_status_changed", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-", - "from_status": "screening", - "id": "", - "is_dev_auth": false, - "reason": "Terminal Benchmark final clean live API ready for worker claim.", - "to_status": "ready" - }, - { - "actor_id": "", - "actor_roles": [ - "worker" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:44:04.503583Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": "", - "assignment_id": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "worker_id": "" - }, - "event_type": "task_status_changed", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-", - "from_status": "ready", - "id": "", - "is_dev_auth": false, - "reason": "Terminal Benchmark final clean live API worker claim.", - "to_status": "claimed" - }, - { - "actor_id": "", - "actor_roles": [ - "worker" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:44:04.727342Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": "", - "assignment_id": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "operator_override": false, - "worker_id": "" - }, - "event_type": "task_status_changed", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-", - "from_status": "claimed", - "id": "", - "is_dev_auth": false, - "reason": "Terminal Benchmark final clean live API worker started work.", - "to_status": "in_progress" - }, - { - "actor_id": "", - "actor_roles": [ - "worker" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:45:17.452515Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "pre_submit_check": { - "authoritative": false, - "eligible_to_submit": false, - "results": [ - { - "checker_name": "check_submission_packet", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission packet satisfies locked project packet policy.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_forbidden_files", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission does not include default forbidden paths.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_confidentiality_attestation", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes the required confidentiality attestation.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_required_files", - "severity": "high", - "status": "failed", - "worker_evidence_refs": [], - "worker_message": "Submission is missing required artifact files.", - "worker_suggested_fix": "Add every file required by the task to the artifact hash manifest.", - "would_block_if_submitted": true - }, - { - "checker_name": "check_evidence_present", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes required evidence references.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_evidence_integrity", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Artifact manifest and evidence references are structurally valid.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_low_quality_generated_artifacts", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission does not contain obvious generated-output placeholder signals.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - } - ], - "status": "failed", - "task_id": "" - } - }, - "event_type": "pre_submission_check_failed", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-", - "from_status": "in_progress", - "id": "", - "is_dev_auth": false, - "reason": null, - "to_status": "in_progress" - } -] -``` - -### 24_precheck_success - -`POST /api/v1/tasks/{task_id}/submission-precheck` -> HTTP `200` - -Request body: - -```json -{ - "submission": { - "artifact_hash_manifest": [ - { - "artifact": "environment/Dockerfile", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "environment/.dockerignore", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "rubric.md", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "task.toml", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - } - ], - "evidence_items": [ - { - "hash": "sha256:", - "label": "Dependency pinning review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "dependency_pinning_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" - }, - { - "hash": "sha256:", - "label": "Environment hygiene review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "environment_hygiene_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" - }, - { - "hash": "sha256:", - "label": "Task instructions included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "instructions_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/instructions_present.txt" - }, - { - "hash": "sha256:", - "label": "Reward footer review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "reward_footer_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" - }, - { - "hash": "sha256:", - "label": "Reference solution included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "solution_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/solution_present.txt" - }, - { - "hash": "sha256:", - "label": "Submission explanations", - "metadata": { - "fixture_id": "", - "required_evidence_key": "submission_explanations" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" - }, - { - "hash": "sha256:", - "label": "Test alignment review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "test_alignment_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" - }, - { - "hash": "sha256:", - "label": "Verifier files included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "tests_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/tests_present.txt" - } - ], - "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark//submission.zip", - "summary": "Terminal Benchmark packet built from live submission requirements.", - "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>" - } -} -``` - -Response body: - -```json -{ - "authoritative": false, - "eligible_to_submit": true, - "results": [ - { - "checker_name": "check_submission_packet", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission packet satisfies locked project packet policy.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_forbidden_files", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission does not include default forbidden paths.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_confidentiality_attestation", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes the required confidentiality attestation.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_required_files", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes required artifact files.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_evidence_present", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes required evidence references.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_evidence_integrity", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Artifact manifest and evidence references are structurally valid.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_low_quality_generated_artifacts", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission does not contain obvious generated-output placeholder signals.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - } - ], - "status": "passed", - "task_id": "" -} -``` - -### 25_submissions_after_success_precheck - -`GET /api/v1/tasks/{task_id}/submissions` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -[] -``` - -### 26_submission_success_create - -`POST /api/v1/tasks/{task_id}/submissions` -> HTTP `201` - -Request body: - -```json -{ - "artifact_hash_manifest": [ - { - "artifact": "environment/Dockerfile", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "environment/.dockerignore", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "rubric.md", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "task.toml", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - } - ], - "evidence_items": [ - { - "hash": "sha256:", - "label": "Dependency pinning review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "dependency_pinning_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" - }, - { - "hash": "sha256:", - "label": "Environment hygiene review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "environment_hygiene_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" - }, - { - "hash": "sha256:", - "label": "Task instructions included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "instructions_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/instructions_present.txt" - }, - { - "hash": "sha256:", - "label": "Reward footer review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "reward_footer_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" - }, - { - "hash": "sha256:", - "label": "Reference solution included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "solution_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/solution_present.txt" - }, - { - "hash": "sha256:", - "label": "Submission explanations", - "metadata": { - "fixture_id": "", - "required_evidence_key": "submission_explanations" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" - }, - { - "hash": "sha256:", - "label": "Test alignment review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "test_alignment_review" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" - }, - { - "hash": "sha256:", - "label": "Verifier files included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "tests_present" - }, - "size_bytes": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/tests_present.txt" - } - ], - "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark//submission.zip", - "summary": "Terminal Benchmark packet built from live submission requirements.", - "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>" -} -``` - -Response body: - -```json -{ - "evidence_items": [ - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Dependency pinning review", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Environment hygiene review", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Task instructions included", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Reward footer review", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Reference solution included", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Submission explanations", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Test alignment review", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Verifier files included", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - } - ], - "id": "", - "status": "submitted", - "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark packet built from live submission requirements.", - "task_id": "", - "version": 1, - "worker_id": "" -} -``` - -### 27_submissions_after_success_create - -`GET /api/v1/tasks/{task_id}/submissions` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -[ - { - "evidence_items": [ - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Dependency pinning review", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Environment hygiene review", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Task instructions included", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Reward footer review", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Reference solution included", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Submission explanations", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Test alignment review", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "id": "", - "label": "Verifier files included", - "metadata": {}, - "size_bytes": "", - "submission_id": "", - "type": "log" - } - ], - "id": "", - "status": "submitted", - "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark packet built from live submission requirements.", - "task_id": "", - "version": 1, - "worker_id": "" - } -] -``` - -### 28_submission_finalize_worker_forbidden - -`POST /api/v1/submissions/{submission_id}/finalize` -> HTTP `403` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "detail": "actor lacks required role" -} -``` - -### 29_submission_finalize_manager - -`POST /api/v1/submissions/{submission_id}/finalize` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "artifact_hash_manifest": [ - { - "artifact": "environment/Dockerfile", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "environment/.dockerignore", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "rubric.md", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "task.toml", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - } - ], - "evidence_items": [ - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Dependency pinning review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "dependency_pinning_review" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Environment hygiene review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "environment_hygiene_review" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Task instructions included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "instructions_present" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/instructions_present.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Reward footer review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "reward_footer_review" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Reference solution included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "solution_present" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/solution_present.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Submission explanations", - "metadata": { - "fixture_id": "", - "required_evidence_key": "submission_explanations" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Test alignment review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "test_alignment_review" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Verifier files included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "tests_present" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/tests_present.txt" - } - ], - "finalized_at": "2026-07-08T23:45:18.750577Z", - "id": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark//submission.zip", - "status": "submitted", - "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark packet built from live submission requirements.", - "task_id": "", - "version": 1, - "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>", - "worker_id": "" -} -``` - -### 30_submission_get_after_finalize - -`GET /api/v1/submissions/{submission_id}` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "artifact_hash_manifest": [ - { - "artifact": "environment/Dockerfile", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "environment/.dockerignore", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "rubric.md", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "task.toml", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - } - ], - "evidence_items": [ - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Dependency pinning review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "dependency_pinning_review" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/dependency_pinning_review.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Environment hygiene review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "environment_hygiene_review" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/environment_hygiene_review.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Task instructions included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "instructions_present" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/instructions_present.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Reward footer review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "reward_footer_review" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/reward_footer_review.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Reference solution included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "solution_present" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/solution_present.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Submission explanations", - "metadata": { - "fixture_id": "", - "required_evidence_key": "submission_explanations" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/submission_explanations.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Test alignment review", - "metadata": { - "fixture_id": "", - "required_evidence_key": "test_alignment_review" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/test_alignment_review.txt" - }, - { - "created_at": "2026-07-08T23:45:18.127472Z", - "finalized_at": "2026-07-08T23:45:18.750577Z", - "hash": "sha256:", - "id": "", - "label": "Verifier files included", - "metadata": { - "fixture_id": "", - "required_evidence_key": "tests_present" - }, - "size_bytes": "", - "submission_id": "", - "type": "log", - "uri": "local://terminal-benchmark//evidence/tests_present.txt" - } - ], - "finalized_at": "2026-07-08T23:45:18.750577Z", - "id": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "package_hash": "sha256:", - "package_uri": "local://terminal-benchmark//submission.zip", - "status": "submitted", - "submitted_at": "2026-07-08T23:45:18.127472Z", - "summary": "Terminal Benchmark packet built from live submission requirements.", - "task_id": "", - "version": 1, - "worker_attestation": " bytes: prefix:'I attest this submission is original_work, produced under human_accountability_f'>", - "worker_id": "" -} -``` - -### 31_checker_runs_after_finalize - -`GET /api/v1/submissions/{submission_id}/checker-runs` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -[ - { - "artifact_hash_manifest": [ - { - "artifact": "environment/Dockerfile", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "environment/.dockerignore", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "rubric.md", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "task.toml", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - } - ], - "artifact_manifest_hash": "sha256:", - "attempt_number": 1, - "audit_event_id": "", - "blocking_count": 0, - "completed_at": "2026-07-08T23:45:18.864215Z", - "created_at": "2026-07-08T23:45:18.592353Z", - "failed_count": 0, - "id": "", - "is_current_for_submission": true, - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "outcome_source": "none", - "package_hash": "sha256:", - "passed_count": 8, - "queued_at": "2026-07-08T23:45:18.592353Z", - "results": [ - { - "blocks_review": false, - "checker_name": "check_submission_packet", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission packet contains required fields.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission packet contains required fields.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_policy_context_present", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission has locked guide and policy context.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission has locked guide and policy context.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_evidence_present", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission includes required evidence references.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission includes required evidence references.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_evidence_integrity", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Artifact manifest and evidence references are structurally valid.", - "metadata": { - "artifact_count": 4, - "artifact_manifest_hash": "sha256:" - }, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Artifact manifest and evidence references are structurally valid.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_required_files", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission includes required artifact files.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission includes required artifact files.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_forbidden_files", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission does not include default forbidden paths.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission does not include default forbidden paths.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_confidentiality_attestation", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission includes the required confidentiality attestation.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission includes the required confidentiality attestation.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_low_quality_generated_artifacts", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission does not contain obvious generated-output placeholder signals.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission does not contain obvious generated-output placeholder signals.", - "worker_visible": true - } - ], - "routing_recommendation": "allow_review", - "started_at": "2026-07-08T23:45:18.864215Z", - "status": "completed", - "submission_id": "", - "submission_version": 1, - "task_id": "", - "trigger_auth_source": "workstream_system", - "trigger_reason": "submission finalized pre-review gate", - "trigger_source": "submission_finalized", - "triggered_by": "workstream-system:pre-review-gate", - "triggered_by_issuer": "workstream", - "triggered_by_subject": "workstream-system:pre-review-gate", - "warning_count": 0 - } -] -``` - -### 32_checker_run_get - -`GET /api/v1/checker-runs/{checker_run_id}` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "artifact_hash_manifest": [ - { - "artifact": "environment/Dockerfile", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "environment/.dockerignore", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "rubric.md", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "task.toml", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - } - ], - "artifact_manifest_hash": "sha256:", - "attempt_number": 1, - "audit_event_id": "", - "blocking_count": 0, - "completed_at": "2026-07-08T23:45:18.864215Z", - "created_at": "2026-07-08T23:45:18.592353Z", - "failed_count": 0, - "id": "", - "is_current_for_submission": true, - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "outcome_source": "none", - "package_hash": "sha256:", - "passed_count": 8, - "queued_at": "2026-07-08T23:45:18.592353Z", - "results": [ - { - "blocks_review": false, - "checker_name": "check_submission_packet", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission packet contains required fields.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission packet contains required fields.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_policy_context_present", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission has locked guide and policy context.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission has locked guide and policy context.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_evidence_present", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission includes required evidence references.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission includes required evidence references.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_evidence_integrity", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Artifact manifest and evidence references are structurally valid.", - "metadata": { - "artifact_count": 4, - "artifact_manifest_hash": "sha256:" - }, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Artifact manifest and evidence references are structurally valid.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_required_files", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission includes required artifact files.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission includes required artifact files.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_forbidden_files", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission does not include default forbidden paths.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission does not include default forbidden paths.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_confidentiality_attestation", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission includes the required confidentiality attestation.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission includes the required confidentiality attestation.", - "worker_visible": true - }, - { - "blocks_review": false, - "checker_name": "check_low_quality_generated_artifacts", - "checker_run_id": "", - "created_at": "2026-07-08T23:45:18.592353Z", - "id": "", - "message": "Submission does not contain obvious generated-output placeholder signals.", - "metadata": {}, - "severity": "info", - "status": "passed", - "submission_id": "", - "task_id": "", - "worker_evidence_refs": [], - "worker_message": "Submission does not contain obvious generated-output placeholder signals.", - "worker_visible": true - } - ], - "routing_recommendation": "allow_review", - "started_at": "2026-07-08T23:45:18.864215Z", - "status": "completed", - "submission_id": "", - "submission_version": 1, - "task_id": "", - "trigger_auth_source": "workstream_system", - "trigger_reason": "submission finalized pre-review gate", - "trigger_source": "submission_finalized", - "triggered_by": "workstream-system:pre-review-gate", - "triggered_by_issuer": "workstream", - "triggered_by_subject": "workstream-system:pre-review-gate", - "warning_count": 0 -} -``` - -### 33_audit_after_finalize - -`GET /api/v1/tasks/{task_id}/audit-events` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -[ - { - "actor_id": "", - "actor_roles": [ - "project_manager" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:44:03.452947Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": null, - "locked_effective_project_submission_artifact_policy_hash": null, - "locked_effective_project_submission_artifact_policy_id": null, - "locked_guide_source_snapshot_hash": null, - "locked_guide_source_snapshot_id": null, - "locked_guide_version": null, - "locked_payment_policy_version": null, - "locked_post_submit_checker_policy_hash": null, - "locked_post_submit_checker_policy_id": null, - "locked_post_submit_checker_policy_version": null, - "locked_pre_submit_checker_bundle_hash": null, - "locked_pre_submit_checker_policy_id": null, - "locked_review_policy_version": null, - "locked_revision_policy_version": null, - "source_type": "manual" - }, - "event_type": "task_created", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-", - "from_status": null, - "id": "", - "is_dev_auth": false, - "reason": null, - "to_status": "draft" - }, - { - "actor_id": "", - "actor_roles": [ - "project_manager" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:44:03.630101Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": null, - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1" - }, - "event_type": "task_status_changed", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-", - "from_status": "draft", - "id": "", - "is_dev_auth": false, - "reason": "Terminal Benchmark final clean live API screening; lock active guide and policy context.", - "to_status": "screening" - }, - { - "actor_id": "", - "actor_roles": [ - "project_manager" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:44:04.041939Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": null, - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1" - }, - "event_type": "task_status_changed", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-", - "from_status": "screening", - "id": "", - "is_dev_auth": false, - "reason": "Terminal Benchmark final clean live API ready for worker claim.", - "to_status": "ready" - }, - { - "actor_id": "", - "actor_roles": [ - "worker" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:44:04.503583Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": "", - "assignment_id": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "worker_id": "" - }, - "event_type": "task_status_changed", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-", - "from_status": "ready", - "id": "", - "is_dev_auth": false, - "reason": "Terminal Benchmark final clean live API worker claim.", - "to_status": "claimed" - }, - { - "actor_id": "", - "actor_roles": [ - "worker" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:44:04.727342Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": "", - "assignment_id": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "operator_override": false, - "worker_id": "" - }, - "event_type": "task_status_changed", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-", - "from_status": "claimed", - "id": "", - "is_dev_auth": false, - "reason": "Terminal Benchmark final clean live API worker started work.", - "to_status": "in_progress" - }, - { - "actor_id": "", - "actor_roles": [ - "worker" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:45:17.452515Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "assigned_to": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "pre_submit_check": { - "authoritative": false, - "eligible_to_submit": false, - "results": [ - { - "checker_name": "check_submission_packet", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission packet satisfies locked project packet policy.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_forbidden_files", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission does not include default forbidden paths.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_confidentiality_attestation", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes the required confidentiality attestation.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_required_files", - "severity": "high", - "status": "failed", - "worker_evidence_refs": [], - "worker_message": "Submission is missing required artifact files.", - "worker_suggested_fix": "Add every file required by the task to the artifact hash manifest.", - "would_block_if_submitted": true - }, - { - "checker_name": "check_evidence_present", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission includes required evidence references.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_evidence_integrity", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Artifact manifest and evidence references are structurally valid.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - }, - { - "checker_name": "check_low_quality_generated_artifacts", - "severity": "info", - "status": "passed", - "worker_evidence_refs": [], - "worker_message": "Submission does not contain obvious generated-output placeholder signals.", - "worker_suggested_fix": null, - "would_block_if_submitted": false - } - ], - "status": "failed", - "task_id": "" - } - }, - "event_type": "pre_submission_check_failed", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-", - "from_status": "in_progress", - "id": "", - "is_dev_auth": false, - "reason": null, - "to_status": "in_progress" - }, - { - "actor_id": "", - "actor_roles": [ - "worker" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:45:18.127472Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "artifact_hash_manifest": [ - { - "artifact": "environment/Dockerfile", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "environment/.dockerignore", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "rubric.md", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "task.toml", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - } - ], - "assigned_to": "", - "finalized_at": null, - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "package_hash": "sha256:", - "submission_id": "", - "submission_version": 1, - "supersedes_submission_id": null, - "worker_id": "" - }, - "event_type": "submission_created", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-worker-", - "from_status": "in_progress", - "id": "", - "is_dev_auth": false, - "reason": null, - "to_status": "submitted" - }, - { - "actor_id": "", - "actor_roles": [ - "project_manager" - ], - "auth_source": "flow", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:45:18.592353Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "artifact_hash_manifest": [ - { - "artifact": "environment/Dockerfile", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "environment/.dockerignore", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "rubric.md", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - }, - { - "artifact": "task.toml", - "hash": "sha256:", - "notes": "Required by locked Terminal Benchmark project policy.", - "size_bytes": "" - } - ], - "assigned_to": "", - "finalized_at": "2026-07-08T23:45:18.750577+00:00", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "package_hash": "sha256:", - "submission_id": "", - "submission_version": 1, - "supersedes_submission_id": null, - "worker_id": "" - }, - "event_type": "submission_finalized", - "external_issuer": "https://auth.flow.local/e2e", - "external_subject": "terminal-benchmark-manager-", - "from_status": "submitted", - "id": "", - "is_dev_auth": false, - "reason": null, - "to_status": "submitted" - }, - { - "actor_id": "workstream-system:pre-review-gate", - "actor_roles": [ - "workstream_system" - ], - "auth_source": "workstream_system", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:45:18.592353Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "requester_actor_id": "", - "requester_auth_source": "flow", - "requester_external_issuer": "https://auth.flow.local/e2e", - "requester_external_subject": "terminal-benchmark-manager-", - "submission_id": "", - "submission_version": 1, - "task_id": "", - "trigger_source": "submission_finalized" - }, - "event_type": "pre_review_gate_started", - "external_issuer": "workstream", - "external_subject": "workstream-system:pre-review-gate", - "from_status": "submitted", - "id": "", - "is_dev_auth": false, - "reason": "submission finalized pre-review gate", - "to_status": "evaluation_pending" - }, - { - "actor_id": "workstream-system:pre-review-gate", - "actor_roles": [ - "workstream_system" - ], - "auth_source": "workstream_system", - "claim_snapshot": {}, - "created_at": "2026-07-08T23:45:18.592353Z", - "entity_id": "", - "entity_type": "task", - "event_payload": { - "blocking_count": 0, - "checker_run_id": "", - "failed_count": 0, - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_post_submit_checker_policy_hash": "sha256:", - "locked_post_submit_checker_policy_id": "", - "locked_post_submit_checker_policy_version": "v1", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "outcome_source": "none", - "requester_actor_id": "", - "requester_auth_source": "flow", - "requester_external_issuer": "https://auth.flow.local/e2e", - "requester_external_subject": "terminal-benchmark-manager-", - "review_decision_id": null, - "routing_recommendation": "allow_review", - "submission_id": "", - "submission_version": 1, - "task_id": "", - "trigger_source": "submission_finalized", - "warning_count": 0 - }, - "event_type": "pre_review_gate_passed", - "external_issuer": "workstream", - "external_subject": "workstream-system:pre-review-gate", - "from_status": "evaluation_pending", - "id": "", - "is_dev_auth": false, - "reason": "submission finalized pre-review gate", - "to_status": "review_pending" - } -] -``` - -### 34_task_get_after_finalize - -`GET /api/v1/tasks/{task_id}` -> HTTP `200` - -Request body: - -```json -null -``` - -Response body: - -```json -{ - "acceptance_criteria": "Submission packet must satisfy the locked project submission requirements and pre-submit checker policy.", - "assigned_to": "", - "base_amount": "25.00", - "created_at": "2026-07-08T23:44:03.452947Z", - "created_by": "", - "currency": "USD", - "description": "Real Terminal Benchmark reference fixture with 3 milestones, languages=['rust', 'json'], category=software-engineering.", - "difficulty": "medium", - "estimated_time_minutes": 75, - "external_task_id": "", - "id": "", - "locked_effective_project_submission_artifact_policy_hash": "sha256:", - "locked_effective_project_submission_artifact_policy_id": "", - "locked_guide_source_snapshot_hash": "sha256:", - "locked_guide_source_snapshot_id": "", - "locked_guide_version": "v1", - "locked_payment_policy_version": "v1", - "locked_pre_submit_checker_bundle_hash": "sha256:", - "locked_pre_submit_checker_policy_id": "", - "locked_review_policy_version": "v1", - "locked_revision_policy_version": "v1", - "payout_type": "fixed", - "project_id": "", - "rejection_criteria": "Missing required artifacts, evidence, hashes, or attestation blocks submission intake.", - "skill_tags": [ - "rust", - "json", - "", - "containers", - "cli" - ], - "source_payload_hash": "sha256:", - "source_ref": "terminal-benchmark//live-api/", - "source_type": "manual", - "status": "review_pending", - "task_type": "terminal_benchmark", - "title": "Terminal Benchmark live-api", - "updated_at": "2026-07-08T23:45:18.592353Z" -} -``` +Validation performed before report publication: +- PDF rendered successfully with A4 page layout. +- PDF metadata confirmed 14 pages. +- Embedded PreSubmitCheckResponse JSON samples validated against the backend + Pydantic schema. +- PDF SHA-256 recorded above. +- Extracted PDF text was inspected for readability. +- Targeted privacy scan passed against the report source and extracted PDF + text. +- Stale wording scan passed. +- Markdown link check passed. +- Internal review evidence gate passed after the report-format change. ## Notes -- The first construction pass was discarded because the imported reviewer - material contained raw local path text. The final run sanitized source text - before guide creation and passed a request/response scan for `/home/`. -- A later construction pass was discarded because the worker packet was built - before reading the live `submission-requirements` response. The final run - built the packet from the live requirements before pre-submit calls. - No Workstream default checker was weakened. - No task-specific checker generation was introduced. - No product review decision token leaked into pre-submit output. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.md new file mode 100644 index 000000000..41f2d26af --- /dev/null +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.md @@ -0,0 +1,531 @@ +--- +title: "Workstream Live API Drill Report" +subtitle: "WS-POL-001-16 Terminal Benchmark Reference Flow" +author: "Flow Research / Workstream Engineering" +date: "2026-07-09" +--- + +
+ +| Field | Value | +|---|---| +| Report status | PASS | +| Evidence class | Privacy-redacted live API evidence | +| Initiative | WS-POL-001 Submission Artifact Policy Foundation | +| Chunk | WS-POL-001-16 Terminal Benchmark live API drill | +| Review boundary | HTTP-visible lifecycle proof, no database inspection | +| Public redaction | Exact fixture ids, local ids, hashes, byte counts, source labels, credentials | + +
+ +
+ +## Executive Summary + +This report proves that the current Workstream project setup and submission intake lifecycle works through public/operator HTTP APIs using a Terminal Benchmark reference fixture. The drill used a local Workstream stack, Flow-compatible tokens, Celery-backed setup execution, and the OpenAI Agents SDK adapter for setup-agent execution. + +The lifecycle reached the intended final state: + +```text +ProjectGuide +-> GuideSourceSnapshot +-> GuideSufficiencyReport +-> SubmissionArtifactPolicy +-> EffectiveProjectSubmissionArtifactPolicy +-> project PreSubmitCheckerPolicy +-> task locked context +-> deterministic pre-submit +-> submission finalization +-> durable checker run +-> review_pending +``` + +The drill specifically proved four controls that were previously hard to see without database inspection: + +| Control | Result | +|---|---| +| Automatic setup pipeline | Setup moved from queued to policy_draft_ready through Celery and setup agents. | +| Project-scoped checker authority | One compiled project PreSubmitCheckerPolicy was locked and reused by the task. | +| Blocked intake side effect | Failed submission creation after pre-submit failure returned pre_submission_checker_failed and created no submission. | +| Durable pre-review gate | Finalization created a checker run and moved the task to review_pending. | + +## Evidence Boundary + +This PDF is the shareable evidence report. The corresponding Markdown evidence index records the PDF hash and validation outcomes; the internal review evidence and PR trust bundle record the exact local validation commands. The previous raw transcript was intentionally replaced because it was too large and too difficult to review safely. + +The report does not include bearer tokens, API keys, raw local filesystem paths, raw database UUIDs, exact source-material hashes, source artifact byte counts, or source-specific task identifiers. Redaction placeholders are evidence labels, not replayable API literals. + +The Terminal Benchmark fixture is used as a reference workload to test Workstream. Workstream is not becoming a Terminal Benchmark product fork, and no private source workflow is represented as a Workstream-owned product contract. + +## System Under Test + +| Component | Runtime used in drill | +|---|---| +| API | FastAPI on local loopback | +| Database | Local Postgres test database | +| Queue | Redis plus Celery worker | +| Auth | Flow-compatible HMAC tokens | +| Setup agents | OpenAI Agents SDK adapter | +| Proof method | API request/response observations | + +Database access was used only for migration reset before the drill. Lifecycle assertions in this report come from HTTP responses. + +## Source Material Snapshot + +The project guide was created from a privacy-clean source snapshot bundle. The bundle represented the project guide, reviewer program material, task metadata, review packet material, static-check evidence, build evidence, and test evidence. + +| Snapshot item | Source kind | Sanitized durable reference | +|---|---|---| +| source-item-1 | project_guide | public-fixture://source-item-1 | +| source-item-2 | reviewer_program | public-fixture://source-item-2 | +| source-item-3 | task_material | public-fixture://source-item-3 | +| source-item-4 | review_packet | public-fixture://source-item-4 | +| source-item-5 | checker_evidence | public-fixture://source-item-5 | +| source-item-6 | checker_evidence | public-fixture://source-item-6 | +| source-item-7 | checker_evidence | public-fixture://source-item-7 | +| source-item-8 | checker_evidence | public-fixture://source-item-8 | + +The durable references above are public-safe placeholders. They prove that the +snapshot used multiple named source items without exposing local paths, +customer/source-system identifiers, or replayable object-storage locators. + +The guide source snapshot produced: + +```text +guide_version: v1 +source_snapshot_id: +source_snapshot_hash: sha256: +``` + +## Setup Pipeline Evidence + +After guide creation, Workstream automatically started the setup pipeline. The setup run advanced through the expected asynchronous states: + +| Phase | Observed status | +|---|---| +| Queue admission | queued | +| Guide sufficiency | running_sufficiency_agent | +| Policy derivation | running_policy_derivation_agent | +| Draft policy ready | policy_draft_ready | + +The sufficiency agent received the guide source material envelope, including the guide version, source snapshot id, source snapshot hash, and source items. It returned: + +```text +agent_name: ProjectGuideSufficiencyAgent +status: passed +source_snapshot_hash: sha256: +``` + +The submission artifact policy derivation agent received the same guide source material plus the sufficiency report. It returned an agent-derived SubmissionArtifactPolicy draft for Workstream review: + +```text +derivation_source: agent_derivation +policy_hash: sha256: +``` + +## Draft and Approved Submission Artifact Policy + +The submission-policy derivation agent produced a draft intake contract from the +guide source snapshot. A project manager then approved an exact project policy +for this drill. The effective policy and compiled checker came from that +approved exact policy plus Workstream defaults, not from an unreviewed agent +draft. + +The agent-derived draft proposed project-level artifact classes such as task +metadata, environment definition, rubric material, and verifier evidence. The +approved exact policy bound those classes to the following public-safe artifact +and evidence names: + +Approved required artifacts, shown as public-safe display names: + +| Required artifact | +|---| +| submission archive | +| task metadata | +| static guard output | +| review packet | +| container build evidence | +| verifier run evidence A | +| verifier run evidence B | + +Approved required evidence, shown as public-safe display names: + +| Required evidence | +|---| +| task configuration | +| platform static guard output | +| automated review packet | +| docker build log | +| verifier execution log A | +| verifier execution log B | + +Required attestation terms: + +| Attestation term | +|---| +| all_or_nothing_reward | +| confidentiality and sensitive-data exclusion | +| container base images digest pinned | +| credentials and secret exclusion | +| dependencies pinned | +| SHA-256 hashes | +| human accountability for agent-assisted work | +| complete manifest | +| no generated caches | +| no reviewer-only material | +| no sensitive local material | +| offline verifier dependencies | +| original work | +| task layout matches metadata | + +## Compiled Project Checker + +The approved exact project policy was merged with Workstream defaults into an +EffectiveProjectSubmissionArtifactPolicy. Workstream then compiled the +deterministic project PreSubmitCheckerPolicy. + +```text +effective_policy_hash: sha256: +compiled_bundle_hash: sha256: +``` + +Compiled project checker bundle: + +| Checker | Purpose | +|---|---| +| check_submission_packet | Validate packet shape and required top-level data. | +| check_forbidden_files | Block files that must not enter the intake pipeline. | +| check_confidentiality_attestation | Require submitter accountability for sensitive-data exclusion. | +| check_required_files | Require project-specific files from the effective policy. | +| check_evidence_present | Require policy-derived evidence records. | +| check_evidence_integrity | Validate evidence structure and hash coverage. | +| check_low_quality_generated_artifacts | Warn or block obvious low-quality generated packets according to policy. | + +No task-specific checker was generated. The task locked references to the project guide snapshot, effective project submission artifact policy hash, and compiled project checker bundle hash. + +## API Lifecycle Index + +The live drill used the following public/operator API sequence. + +| Step | API operation | HTTP | +|---|---|---:| +| 1 | Create project | 201 | +| 2 | Create guide with source snapshot and policies | 201 | +| 3 | Poll setup run through queued, sufficiency, derivation, and ready states | 200 | +| 4 | Read sufficiency report | 200 | +| 5 | Read submission artifact policy | 200 | +| 6 | Approve submission artifact policy | 200 | +| 7 | Read effective submission artifact policy | 200 | +| 8 | Read project pre-submit checker policy | 200 | +| 9 | Activate guide | 200 | +| 10 | Create task | 201 | +| 11 | Screen task and lock policy context | 200 | +| 12 | Read locked context after screening | 200 | +| 13 | Release task | 200 | +| 14 | Activate worker profile | 200 | +| 15 | Claim task | 200 | +| 16 | Start task | 200 | +| 17 | Read locked context after start | 200 | +| 18 | Read worker work context | 200 | +| 19 | Read submission requirements | 200 | +| 20 | Run intentionally blocked pre-submit check | 200 | +| 21 | Attempt blocked submission create | 422 | +| 22 | Confirm no submission exists after blocked create | 200 | +| 23 | Read audit trail after blocked create | 200 | +| 24 | Run successful pre-submit check | 200 | +| 25 | Confirm successful pre-submit alone created no submission | 200 | +| 26 | Create submission | 201 | +| 27 | Confirm submission list contains created submission | 200 | +| 28 | Confirm worker cannot finalize submission | 403 | +| 29 | Finalize submission as project manager | 200 | +| 30 | Read finalized submission | 200 | +| 31 | List checker runs for submission | 200 | +| 32 | Read checker run details | 200 | +| 33 | Read final audit trail | 200 | +| 34 | Read final task state | 200 | + +## Task Locking Evidence + +The task was screened into the worker pipeline only after the project guide and policy context were ready. + +Locked context after screening: + +```text +locked_guide_version: v1 +locked_guide_source_snapshot_id: +locked_guide_source_snapshot_hash: sha256: +locked_effective_project_submission_artifact_policy_hash: sha256: +locked_pre_submit_checker_bundle_hash: sha256: +locked_review_policy_version: v1 +locked_revision_policy_version: v1 +locked_payment_policy_version: v1 +``` + +The worker work context later reported: + +```text +status: in_progress +assigned_to_current_actor: true +can_run_pre_submit_check: true +can_submit: true +``` + +## Blocked Intake Proof + +The blocked packet intentionally omitted the static guard artifact. Because the +approved exact policy also requires that source item as evidence, the same +payload failed both the required-file and required-evidence gates. + +Pre-submit response: + +```json +{ + "task_id": "api-drill-task", + "authoritative": false, + "status": "failed", + "eligible_to_submit": false, + "results": [ + { + "checker_name": "check_required_files", + "status": "failed", + "severity": "high", + "would_block_if_submitted": true, + "worker_message": "Required artifact is missing.", + "worker_suggested_fix": "Add the required artifact and rerun pre-submit.", + "worker_evidence_refs": [] + }, + { + "checker_name": "check_evidence_present", + "status": "failed", + "severity": "high", + "would_block_if_submitted": true, + "worker_message": "Required evidence is missing.", + "worker_suggested_fix": "Attach the required evidence and rerun pre-submit.", + "worker_evidence_refs": [] + }, + { + "checker_name": "check_submission_packet", + "status": "passed", + "severity": "info", + "would_block_if_submitted": false, + "worker_message": "Submission packet shape is valid.", + "worker_suggested_fix": null, + "worker_evidence_refs": [] + } + ] +} +``` + +Submission creation response: + +```json +{ + "code": "pre_submission_checker_failed", + "details": { + "task_id": "api-drill-task", + "authoritative": false, + "status": "failed", + "eligible_to_submit": false, + "results": [ + { + "checker_name": "check_required_files", + "status": "failed", + "severity": "high", + "would_block_if_submitted": true, + "worker_message": "Required artifact is missing.", + "worker_suggested_fix": "Add the required artifact and rerun pre-submit.", + "worker_evidence_refs": [] + }, + { + "checker_name": "check_evidence_present", + "status": "failed", + "severity": "high", + "would_block_if_submitted": true, + "worker_message": "Required evidence is missing.", + "worker_suggested_fix": "Attach the required evidence and rerun pre-submit.", + "worker_evidence_refs": [] + } + ] + } +} +``` + +No-side-effect proof: + +| Check | Result | +|---|---| +| Task submission list after blocked create | Empty | +| Audit event pre_submission_check_failed | Present | +| Audit event submission_created | Absent | +| Audit event pre_review_gate_started | Absent | + +Checker-run list/get APIs are submission-scoped. Before a submission id exists, +there is no valid checker-run endpoint for the blocked intake proof; the +HTTP-visible proof is the empty submission list plus task audit events. + +This confirms that failed pre-submit intake is not a product review decision. It blocks submission creation before a review packet exists. + +## Successful Submission Proof + +The successful packet passed all non-authoritative pre-submit checks: + +| Checker | Result | +|---|---| +| check_submission_packet | passed | +| check_forbidden_files | passed | +| check_confidentiality_attestation | passed | +| check_required_files | passed | +| check_evidence_present | passed | +| check_evidence_integrity | passed | +| check_low_quality_generated_artifacts | passed | + +The successful pre-submit response preserved the preflight contract: + +```json +{ + "task_id": "api-drill-task", + "authoritative": false, + "status": "passed", + "eligible_to_submit": true, + "results": [ + { + "checker_name": "check_submission_packet", + "status": "passed", + "severity": "info", + "would_block_if_submitted": false, + "worker_message": "Submission packet shape is valid.", + "worker_suggested_fix": null, + "worker_evidence_refs": [] + }, + { + "checker_name": "check_required_files", + "status": "passed", + "severity": "info", + "would_block_if_submitted": false, + "worker_message": "Required artifacts are present.", + "worker_suggested_fix": null, + "worker_evidence_refs": ["artifact-manifest"] + } + ] +} +``` + +The successful pre-submit call did not create a submission by itself. Submission creation was a separate API call and returned: + +```text +HTTP: 201 +submission_version: 1 +submission_id: +``` + +The worker finalize attempt correctly failed: + +```text +HTTP: 403 +detail: actor lacks required role +``` + +Project-manager finalization succeeded and started the pre-review gate: + +```text +HTTP: 200 +finalized_at: present +``` + +## Durable Checker Run Evidence + +After finalization, Workstream created a durable checker run for the submission. Checker-run list and get both returned: + +```text +status: completed +routing_recommendation: allow_review +passed_count: 8 +warning_count: 0 +failed_count: 0 +blocking_count: 0 +triggered_by: workstream-system:pre-review-gate +``` + +Durable checker results: + +| Checker | Result | +|---|---| +| check_submission_packet | passed | +| check_policy_context_present | passed | +| check_evidence_present | passed | +| check_evidence_integrity | passed | +| check_required_files | passed | +| check_forbidden_files | passed | +| check_confidentiality_attestation | passed | +| check_low_quality_generated_artifacts | passed | + +## Audit Trail + +The final task audit event sequence was: + +| Event | State transition | +|---|---| +| task_created | null -> draft | +| task_status_changed | draft -> screening | +| task_status_changed | screening -> ready | +| task_status_changed | ready -> claimed | +| task_status_changed | claimed -> in_progress | +| pre_submission_check_failed | in_progress -> in_progress | +| submission_created | in_progress -> submitted | +| submission_finalized | submitted -> submitted | +| pre_review_gate_started | submitted -> evaluation_pending | +| pre_review_gate_passed | evaluation_pending -> review_pending | + +The final task response confirmed: + +```text +status: review_pending +locked_guide_source_snapshot_hash: sha256: +locked_effective_project_submission_artifact_policy_hash: sha256: +locked_pre_submit_checker_bundle_hash: sha256: +``` + +## Verification Summary + +Local validation passed before this report was prepared. + +| Verification | Result | +|---|---| +| Stale wording scan | PASS | +| Markdown link check | PASS | +| Focused backend tests | PASS | +| API contract drill | PASS | +| Terminal Benchmark example lint | PASS | +| Terminal Benchmark example bytecode compile | PASS | +| Public-safe failure output check | PASS | +| Targeted privacy scan | PASS, only intentional backend test literals remained | +| Diff whitespace check | PASS | + +## Internal Review Summary + +Required internal reviewers passed after the privacy scrub. + +| Reviewer track | Result | +|---|---| +| Senior engineering | PASS | +| QA/test | PASS WITH LOW RISKS | +| Security/auth | PASS | +| Product/ops | PASS WITH LOW RISKS | +| Architecture | PASS WITH LOW RISKS | +| Docs | PASS WITH LOW RISKS | +| Reuse/dedup | PASS | +| Test delta | PASS WITH LOW RISKS | +| CI integrity | PASS WITH LOW RISKS | + +## Final Assessment + +The live API drill proves the current Workstream v0.1 setup and intake spine for this reference project: + +- Project setup ran asynchronously and produced a sufficiency report plus derived submission policy. +- The effective project policy compiled into a deterministic project checker bundle. +- The task locked the active guide, policy, checker, review, revision, and payment context. +- Failed pre-submit did not create a submission. +- Successful submission creation and finalization created a durable checker run. +- The final task reached `review_pending` through the automated pre-review gate. + +The evidence supports closing this chunk at the human checkpoint for PR #84. The next L1 chunk should not begin until the user explicitly approves that transition. diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.pdf b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.pdf new file mode 100644 index 0000000000000000000000000000000000000000..e5f3ddf26c1151f7b778f2933afa08eefaf763dd GIT binary patch literal 64913 zcma&NV~{A_vaZ{AlC476-eBzL(fMNlmG^!T<07Es*WbfV@~PR0)SbfQ-JPR7EqAL0=P<*F=}#y z;1pfgyg0t+L+_)OBmjbP_41q$gCQD7IP3yKyGcdF~@I-@d3W zMw;im#_^e;Br;e+oq~Se3cDQe>uOgkCDG>iko-Zw{OHC!ZL%R?sbI|4pkg*5t3&W zy`N@klHu@^@uPg;iOV>XeDB$f8mPoKyf^#aQsC&ENK-m5zd^TF(h4u~? zgj5#chE`Pqr8weBUla$eu0PfO`}dGQ8@B%K8+}r<84vr#XAc332)p2ZbpC962CviaZk9vr6 z@gCrFhlegKx_BkO7E359^VYjATKow)J z{1ydt$C(Vk-dXtgpzD5+h`qn;`wW<&5>|1d)Um|Dfdg>z$gLp@gB4BIh-M*6Q*ql#Z)-O)zjnuc->+cA}VP%j6$ji6j%Gwi7}DJJ#35f z5%Ul^#<9b~3d#(DQgh=VQZm=j(z}CzBcgSVj?)Wc&zP1pA2bKIBrl)jmUZd|u%>VV zVHVC+b|KCT&gElz2yNoEN#Wr62jk=lUZVHyzy;wG_fFjZGNC`ru8 zIPA~*lAOkrV)O3%oDWf!yG$2)RHXNl7(H*m{jVrT%fgKOex^BIl~FN%ULc2CzanO> zR_>Xgb0TcK{Wplw>HRQ5kpTG;9s>H5Bn{8H?ce^kIq;Ntlmer?MhF6;$*jGzx1qJZ zKJPalsqoSB(~rk@@39IQhl%y)7SD-RbS<5ImOrVNbU9wAf1sZP*R_kzY5y$vy4>(Z zzWIAe{$yc%b0*H734fW|^{4L32szbv$8F46e660mhYsfEY947pD*;J~%275UwEP~W z#y735LrrqUap?8>d^#`1%Vb3~gjpa2;0pFAOB!0i$d;Gy@hXF92k@c)K?$$t<%ykc z{&E9;!LSZ?&$ly&TD3E+Wz3?FPggkr2X(3&1BU26hpaX^&7(!Ak4SGmH z%AgNjvw8|{Br`X_!Nh*-*j5{i6<8{-`@zsU6nMMO~wxy|nV6=4!_T1hC#E|<; zBW*~MaMII(nv(#L2=eg)9l!2U?lFf5lW^oJZ->p|xK65g7RANMHy?EIm9o4W>D> zvLy%xNo}SO*sPivcNwt_6MzwmkReJGe-uE8&QvUt?KH-?9jP|fX&j@~gJG8bBPSYr z6r|CDR(DS|c?gb4fqD(73{|^Qdg6$yiU`bdieT2^G{e+F1)nEuDrXCf%YhnSyqQsM z=n3I*u7{@6Z;QdE2ds}Vk#-C6eK$ommP9?PAmkF*kcnDCG`^*EARPkH?tRJ_$>nb-SF6KgI+jb+m%fbmg@A9l zdu%fLdi79{DWo;}Id=kvEmo;`dM?qx75#}vbJ=Y_BXSuq7^yU)_hWl|i-U%v9Ctr4deGzfTFgUkt}(s^T8c-yDEj;AJ_@H!Ko4)5oo z)W!BNE73g60c76#mc2S>|I-zBPFP0(SCwD?%I6!B)Z|nN%Gk!}-xl%j)jzJ1?LTvu z9PAALyStqJ>n@2}fAw6do>}!-_u%o<_hG_C4V5;Np@WOUC2&6&llf%}efz9km^4Oc z8#OM&=)v#JCoNTts>&v4_?YaUTH=16BI9K}u9Q7qA3lAA!>aJ@XzOr~-H%4_pX|Ij zx{+|03TC&f1j^}H_@+1@tVmGI`gY~+$o#;`dO7X`bN#&J)-{~^N5fKi9;dTEKH~LW z>)6en-j>eppS~s{xadVm>h}xnKMKHAa{CHiY*XEM;7{NTy)}jHx3SKEFk~$aRNet;WGIs7@tfD=r6*1+>;z)Nz7`8cEo=;)_G3Kc(|f|&{q zy?&G+#s`4r=ba%E=ugLeYC;_Vn#(<5;5;&NHmV5T8dM2EKquG{iU+BQ0V0}e#v;bj z#R>rV0yPax8C^j3W2px? zI^;&&I@FM=X{5<>1;9?XAb71yCIAr)dzCW+OnoP(AJ~eb6UnWLapV7^PYU3~)Pr2v z1a~$nFdLP8hErt>5zcUd!~Fa1ft+4g+kwT6>aT$u0-A$=6iXco4qvV`p6w zyw#&79XEJXBr`c|$nIeP>zTstU#l<@lmjfW);R0jCsV3GC<3=b`4eJIa&VXY1Z{QY!z&c~!u;98eL zLOfFDI!D|;S=fhXHYge@_U6wB)(=Vz@I?>b7F_`Tt_CHLGlqjO8X|%8WiPqj+_kPU zttKuceT$Jtl^hqL#a=N?gERGNIqN=sE{mXeKz!O?zF zf+=-0z}FiGg}IPdfbIn4)Mm+vxtyA6EEpp|q@4vG*7tk=@if#RmplKRT_xm zEvG}emoz;+2$Q^P;xl!M1~^D5pP!xq`hD{Ae2C;bm>OyKaMDv`(2$6mx|e`rE}THq zjW|3wSBaN1Xpic0csVYc$Wv7ZS?E_d<7+z#p~tsmAB(AOc0A0312h7P_$PU^AoLc* z`cm?er_VPK9}^!rOmL~teGt3I?qMXoan)+iQk1jOO8{=)J}=FP`*3D8R@QUI`|#$G zmAMt+GZkZ?zZbjEuVAFOsjp)4h}J;pk>3SVRMT#HD;HlP7bu7rATa?t_^%xVf!h{( z)zTynWnhHpgf#n7{@xVOB){LyVT0cLv3uSd5l=0n6G$5T*Q}rV9t5l*?#s48`-2`F zsz?e3*e8uE{eZLTFq()Qd|NVX?1Gak4e$nQ5O#$&z@l3W6vcV%z%1+LW;4!2i$c=` z?gG`_yZV<`f}zDLM{`60&GDce+>b#^X);pfwtC&*gl!=5z(U!AO4@8E0@A73+Q##8 zOC!;fJDAT~*#}vL8E7Ai)|(31Q4U5-Vx>IpJZwVaYPtedm{DJ7&nU3*uQ6zN)#`U{ zq?V3^ipU%*DlZK3EMDyOfe`B0ezhadpMMFARANcJ}v zpK4WJ=vJw{UPoM<`)+5#h6HTY73Te!n!WFIKeGMup$G$%HKIToIm!woZYA-?!3V?j`j|Hcs_a+Ul&g>Ek) z7*9%7VcZx<%JnC0heY{}QU~{)X+ZgeUCB-ISdb*b&}5QWGba`eg7}ydwgXAQ*p$;oNo!+$T~(lJ@`r* z_Y1Jr$$}AtYkA}og%@OM+m?^wa31|AerKd2R41>+H4GJ33+NDPt$Rq3AhdSrgy-yv zuE_**6DptTVZEl1PAU{d?{+6lgE-9L?rjx6^&;ZVAdXQJ@R(ir@ll8AZMR!K!eXt#rr?BUHwd-92 zCk@D7n;-q^fv#klmc^_}%V9b}MaNYRFy~3|EhO#xN<)el+mD(vI_W)3OYbbYCuIed zaIi2ZzLGgxn~g@-;wjhD5swT@`PqaSN{c zxI1X%$~X6UY|7uG<&{$=qy$y#IuzPvYY9!mLph#n;LylN30gxjWgeB*MWC57X6*!a zxn988vimd%%0yhLPKP4u9)gUeWgmfqs6 z-IQE<>%c!b1`6EHVg~|g2YaqO*pXC5v31&e0#DU-ZESOFL?-T$5JQMvh%3webL7To zlsX)2jS>s6xLDjmX9|~oNVL``SGST~%wM-C%bj zJPTg{Xjs6v@3WW4YU4C$2Thd@Q55D%P_BbjiD?VhQ_Oa+H9HP~hC9X3(n>mdjqowfMdJ&VQ#9ttfRxFf66s7BHm_J*A zLKSSUf+32Z?55SZ!U;+oyuPaUr>gU_$1`Xzw4$+x8GSp9ovlveeVxO~rN`UNmbzy* zr2V3MteeB}Z=)zgGWFtz{|l__$EG3|F0hMuC^E((!Hg?<%T4 zl;o_ZU8ks??(|i#@stt@7-Pd1Qta_kru9y={&dJn(7C(6bnwXVZvfN2l+*575X|Cu zH26fbD{^x>+x7AI*w5Vsz0ix&*AHi3($;Ov*-L4@L|9(6?aC~5G zFzR5&*u>um{^K>(L#`@8;v!|NKDyt{?@sGAoxQh8~tF^tbQ@t#j-a^z#Linmp^ zlux$6zU1fnshF%354>T1!xLjhAx$(;Wh6V7up5vlkmN{Aa3w9uMBu5@R_2Gp+mjB< z{`;_39+@usnKj}d**~w7j`iE|wD+4|v9ruS3FvA4Voo@L%@i~`nev4 zYL+kS=-t=tw-KCd_x!+sS!}6p%pJgS`go4V^Oj(D;NN_AXmUJf?10upP!-S!Hymbx zRkZx=x~>{R1CYz82<>r<_qGJ_OKIph-D?d4q|J|qcY#W6g6^0kk5Xk&pw*A;3g1`u z$$$mHrXCZb1!ZaMj=8W2q{;pf<2B!5$pAG?YYI4@b*4C^o!pA48@p8vUaCfqY8FDu zU$Y8Afc(Xs6pbn%J`$yWt~yU#v|JVl>CR&r;x@8{EJ$Gpcrh{^|7k?r;P2ZWOx-{p z^@M3U{Tey(X#=flNCAomFH&?XActs{0r#2$i7-myK!%?c=-bIG%8XzGK=YCAMo$&! z(q4QhfVQNneY7h;^Z#NWqfrS2NP6=uK&$k(i(KZftIiV*Da9xz$&0q%wooQB?4zb{ zPXiaUcJ0DFDX5!%a@aE9p>GeU<|d*CwW%ir$zMB7*Q$aLrBwkDY7HR7DCUKf>cc`a z0gxv%#OJ2(PJqUfE1&Q z5i;t&@(_$Lurh%G0X0l#il|U^)XdGw4ecUztHB0o zR)GargR(GkPm|LCT1Q=Oq;p~boA{3pb0b(7B0vsmA-AOK#AsH5ld9Gwn}U?|(WnIB zBY$uw{*`)cI707CMUJ>|iOe6;?PGvpX&fB_UW(2nU~W^DN{b#Z9@NCL^p z5FdxASaJ~Ii(#R2$xB8|N-8W=CgftVkp^`f(<}*kFoE!i{gqz~`|vjbPxO({5^8zi zn7zez7$`>}dZUmq|DzylqSy)lQPt}ZOlDZ4u+a@zk>$;f=tPcC?KVLt}uHP&~yz)=o7;kkoC8 zQh-!_fRukcg`VKa*gWPS;o{vGvzf&rI|G>*p`eL@shbfdZaNqd(>V{rAnC!?Ru5PR z9TxgSa8&V{?B|3JG4CU`yCZ`{oHhliAP>z5y_^o(;iZ9>c9f=Pp_YB1q0~nQR}byj zDyX`rfCAgqCa!AA`K5!Gc1-Q${hEW50t-Q(7YE@35dko1p*q6X8j1O($imMBjrsTb zwB-V=k8)3Kk?S&@eqmd~S;kW|(+y@E+^fV05udm$nE5YdP%M1xIM3I=zdo`KvnX~B z;o%#f;|O@9bv9yTyEv}e3@}%lr?UQh_TvES0b_Y|Q6XsDv3u?LDG4M+)Y zZJxMGwbX+_Y-rf&o=~)!47-s7L+I754du3M@OE}NN|$ss^L%BRIW6tIGbl}i>@zv_ zy%UVQo_4ZY3 zIGNP!HiWN5<`i6B;#8;b``K0^W=yhid^}&jzv%eHEDi<3xL%FGL){gV6WvZ=$Eef3 zarihlESg5y<#r7#NgLT?hI#5kNgCA#co~kc|CUSp#;rlzMISQ={iX45u#3%i#nJeR z@#WeP%$Z-B@nv)XZ04ecvN(V+it-7vi0y&mRS^YR5$r#*1np;-xRcHJW;&egdNJ9H zELYdw_WYh=&8|$rpN%D7`N2E_d=bT3NV>`7mSI|^=jB9(U8fe7a@j?5F!FH7f@m9& znqjol<(Z997nWGUkEsvG?)Kx=-Q4u%meU ztgd9s5Xh4(i^4{C>(b?}*G?7V)CL87gfD265c+v>Hx8M%nntSwjg-M=Ih-)4iapS2 zUi^+THf@==^1?wr@6%yo0rrJebw=Dr8^iQkyn2)N%~lu$^-NdlW5SA!=zxEj;QXQt zk+9^3N}eSO*yaZz8Wbfg-FNe7y6_MUO5OM9-1ji^i#t;H3k@{1r{8IC<}CZiN?1A zFrXMz1%eo1rvpaN2S#9^#1O4tJQ{tf_j8o~%;J3qJqy?#TRaxkM zjVX&EG}_!}Df^fd0g4GRA2wzQDbMbpSxmE)#yPEDo|V<|Dv``uWG0p821!;@5bP$< z2Sd=Ra7tKXNm4?AG}t${MbQVVN!KYDNM@nVuOu{NMul0u_bI5> z=U9l@ii{;~!h=ldMh;+*jCOCI4tE|YiZy_Dt2L(nxbWKgQ*>K@yyG_m@1)r(+rk82 z)trAu-i~FS!#AhgRJM|-Gj!9d!9+T9Xo`92yM25IwYue8gbuucg{K9=c6@j&L#ek! zYS!~-7+Uw%nD$pV`Y|@e!7Ec6PsE617qUV%yZcUey(%-iqw?C9lo?aqPJkqBBd!k=Pi!L{a593S75CYPnq^2$!$q)hCCr*D=&h;2N;1S|cq-Dt ziVX?VDXby1+92N8lJnzgr8S;;^y)xq)bmb@Z(MrLrc#XRi$`o|JWMLF0HQT`J;1pkY6(XW_u8rC~Ahefk4C zqJ#8*Cp-)c|53)n$jre0e`Y*KEx-QBc>cD|Q1?KBKv!k=)x9>oU?%Ft4@!A@(lG&E zVL!Yodc^&c@u;+tS`Iz{sB~r+#N+jPNLaH|ettmj^%ew^jv#mO zWw$3Io#;!`r&d=($r+=qKrU^L#*_@KA&M-aq>8jy)rhkP381Xbr15~D1ga?=9Ngax zdtZ&6D?2>>*;_Bl%a(RyrJzi7dL^(pjOq0*shB|CDFG9i$KjdCdf>(O{aBjrG^k$K$b~!z@j-=5yPvK4B`(OQ9&^09D2e z4^%O(vhI@&iVBb@$tyr+j-y~F2QDOmvWO4pkh#pr6IDq11qGLpB`!dwP$zL|5{VlS z;dg1y_V!cRpWBNGW8JZZHg8a#U2hz=!p6!pXJ%T>Rlh!^K({_^#n#9dm_9wk6eka_ zNc|etlDT1HQ7ILj-$Pn7{?dxIVPn>ruPj8RYf%?1T>@|JY^yxQUuzJM29{+_88s*l z*5UFC?K&D7+xc2E^Xf<`d)1v;TQgZXxU5lF9h?7%vv>#H1!9MkRT$t;Z z0%rvVC#8f~5Y-|>0f1z|6((4x)J;lzc zRcyfRu=5z0yXJcj){c#vFXCWkqzC>WUP<1Kye(VL_S+3JZ^U;-85!1*ja%pbb%<;9 zKE_e@in)=SvIGm}P_e`%vT)bL-GxfQ>_?5V#b!KE;7^nCMR9#dR5ge5nXSE_dQJ2f zP5n-R5V}qJ$^k+bthI|(;({3ZN~gsD%b_DmOr)D9Mi*W$SKoav2y%hnF|F{o*W0-$ zjuBGJ1-XG`W}dd|A2y4#m9$hzC8hT-PACQT82`K_&YUA%r5Rd)1q2c&hTlSZCzy`&uRc z6`Vq_inD<|PaojSy2`fbpV$g`X5=v69tPgRK5Q!2T5`_F3=b(T4~f!*B^KO@*0X5RA)!f=)UY zWLCUJr;o=eO_f=$3+Arpz`zQ*eFFpAH>=cX1N@WR&z~!N8_1;TWn@(c2 zGq(}F+TTIMlD8r^y=F6Jc;Dh8^GmX6#_s$6=IbNZM|dbRPCuU5Jyv^*Mn|5pLmJbi%H9LTr~@{ma)_Qh6AEg$f95wxRWnt z4C-XO=BfDM-hRdY2FNgsSDSQjEWd*dVa$P;)u?JU;n&hKD}FgkCVEfL`~kxarfX#N zDeOj7!DuQ`MiA2UrjOU*!I9)gxHWs2iH@{GN_0nOo&S{~kSF#H@0Dajbz!S0_Cx3gse%c6mcVdS8(UI|AdLN)?E zWW$|$iokVv2XLU#N3TYMk`%dFTJpqIxxF8uRd{h=g@BHNv zjKZ`s;E4gfKIQR~`#Rz^W5#w0+v&d!pH0`2D+WtSXY3@qFflZOOn1Wj`<*|Dk)yme z$8qG57()4k{t-QwOx)wN<0oj1mH90kAyWYn7@zJ$Hns8kvFwy&30}so;8Wrauxi?Q}z`e z8IlUQ^ys?s8jvMNCnD9{Xz-tzUe45jr51(+*c=<4^BzTG*t8evxra%L?Uow7g}9K1 zi>&$RfCo25wqIn~lq-i>T>8!DfVH-L@z(DxvpJ0;>tI_{JnF{P$))L24oeR;lCstV zmEqn!Dl1H_K(-w}94T}6kdN7XIZ{y@iYYwiSnlw+YXN$}1Cq$j^==D!z|m~0tE>l? zNKBw_3z&Cf)NoZ|ElW647H<4VNO)u{?=zagN$uAl+`f40LfcqOY&k(PnEJ260^R(3 zd)A5A($&7PSay#LoRn3tK+S!0c!jpx*SJ}ouOVg+2;$sd}wSeoeQ( zxH7GrzgX87ZR#4LZwEKo?(lYfobGOzj_!B{D;|k|y^ZMZ-YcMC>HuHEc(xPzy0%|t zO48- z(*s!3VxG&9yBGW086mLsu=9ABe1=cQUriJ(_D({QB8h_&2@C<$bIC()$Fe%s z*Nc-I$0rnPC+i45ruPdASqxHzn>>aT$~kG2&!`Mfglw&GExfY6!_^iC)psgtz*{hRIIp zztQ@k#$64IgT}uRtMHkKudsL;Y8m8@Kdh09{Mu}kMEofazSz&{xg_-hQb#s<*Ttlj z?7^`>$@HwVoaFN=y!aIICY7+%tNfdGDtOmd*T^4mMHy9or)D_)s*3B{;J4RUOUb@j z<dWq8phQ zqi3uXgS3@Gb_d78C@-2A6M?Kf*kC?nAO1-lDFJOtN3J5vnE-W(ea{b6)LTQ}LXzzyD zjIskbRw$Wr!_0rnr()y_sZ_2XX!8%%zalGJtdnXZS5p4NoUkmK?Ol>1?K<8w0)pvt z(;^?zZ@5^pc~yA;H>k(=cU>^KSl7uu%EBpc^a}TwU96^-x+Y$UK-2dR3~X)`2Twev zr^}-$Z}p1wk~LUcv9pNYeX0Uxz747d)*7ENve^Eu1bSx6@LpGh>tT`-#Uk9y;99*i zW|kt7@>aiSzxmZ#iXs~E=waD|4|4p{nK}-lFX@5busC!ApSR;1&TOqpVA_cq2Y@XT z`pgh_szP9*M~-B-OSR~#PER_J^RVL@7nQOiOBPS9LzwtTKg|*Q3_z1%5reL030|N% zLzvc|Gc1J3C$I)cgTz`fT7!Fx;Gp9?TphaOw??UOc3o+f|qyxRLE|7 zMMV6iEhtGGb1S5w4AXKQ{c_QZ>%C#Y8=8)e zjV3DUW^T#&wvm5-`PJb5lpM9)sWJU+p!CDE!7U!iwzO1<(R#M;D=Wu7VQcX*C+GF) zXu;7LJelfpA0z6P>x@U_mg3K{ViN7BHP@NM&d$G{`8;?MPA7^=;pEv>%#bVYsy}q( z-Q~eG^3mZME0BTb4AXnMzdyb^SuMr$@$&FYvbg&-v-tA%*N?tMB5d$NycrL?O=g_0 zKBaQV`o>E};rT*J-$cHJyeE9-WPLk`yv-gS%7*sxl$2>f9i-hcD}*5HP$GEnP?m4) zS;g%{>wkT1f4ug7cEL=}&`#Y?webB~CCgV{mMqUL?VW-=i~~$db_bH__J)acTnA!k zY9=I26}vTor_I_Cf7$>)U$pht&OI~_AoiJ_KUVwA{T`yuraf=Pu2EV z)_vWaP&@2qF+`W2?3TMkk(hkVq6#tNnRe>P!)FfNZIpT~;YPD(^)+cd45SU{GO+ET zG-jwJK2PkaDYzm?5&NQ|z7|bo>O2I2n9R&VEB?pIEgDrr)1>%;h+>Y-mJ3rZT%)_? zw(Lj5t$pZf-7d-xRwH7SHA~Bc_9)fDf&*3JVdv@(6QqIxCgw2ez@o-)-AT^ELp`7x zyi6{F)>Jl4SlBNq)R!rH4F}L2`w;9xrXLZDVB{g~L3%TFD$*+K-(P(gKHiCJ=ZXTM zmKcE+m-3A>SX|FbhA=Hl${U>#ni&s&x)3J0{$9+CE}-kDS6U5OphKyEy% z8Fe)#Xtq0lYGsi!duUQ{)uW{q?-q9h`X0ao4HCI=;?FZocv83`$8(;zm{PaHfMp@deY&2?2Hz{r6DPE$HN}U5F z`}vpdCcAe?bK7uE7r~m&p_No>ZovZN&IN()q*x4A2@BCxC8jG}&pjn6_u%5KGN0TQ ziN{vu?yYWED9Ec4E$W8} z93p{Zt@q$$+4kcozVu2&m8ZJ`F-c2%$7%0YG!p50Se$GBSq*?buUz5Ov!H}4K|-U1 z{;D=6ExM(bWCU(E5EMEkI(>d0A|+Zuba&U?d+~3MLByfNe-`4DB;QB!AIe)70`*{} z=;)_3&L$2eK7(ySB}@`pP@&*uLPkSQX!5+$x$C={uJh z_k6h~k78gph^iDEYb{BK8P|H%rcTw$eDZ@ACqOGqVHC%ln2AZt<-<}jJq`Cfwas5y zpK`*%dw8uIlF|HN?3t=|{AygS!Ra)bG}h{7A`baQi*5K9DmHFuLM^=vW-=!9J4(7< z`;xWBleh7V4GMVgP95uGt;wdLrj1RDkD}}7_`Rc6z_Zh^56h`$tA)@WnHaA;m z2god&Rkr%ESj{~NTixjXJFmO?k6yI2sYkd596CbTdEuqmlEa#VrH3&#wWG>Rsup_D z54<1nNDBD*rD>IkR}&p&dX8M(@jUO8j^%b? zfjSr#CWR4JQdDlza`pWT_&P%K1P7r-58o}WtL`CEEqnvY^r>&bDZU{(8V@*5kcH9X z*P}(KfKKKvg*Yg|*;g_vdNf>I)>h4q&LHuTq2zvGLCRSm@r>{T& zTql1;M%x&9xnJJn{b&yH*RG>yN9_4I`4cBlYU-r=MqLB^jP0BxFj< z@*8a66ymWxPkYe6XJ4R-h}70~0BI(TqN-HUf0wKl2T86ZpWPMFELY&SLddVNjgDni zvV&{iLXpp&Kt&PBC3XWTym0I8bq>%o);dg~uCa1LO)QmP8iy@(afk}E=8pw)R9*&q zbL~SYv#Rz@FhUX?qJSlg7bnr%-DrQ7T`W0={TIX1|IASGmw`eQiBhTj5}}~ZHYT2< zbj*vcnN)hl=|S=LP{89y3KDI9C!?@LjxYZ~SZf6zFLLb}+JhFSyFw8ct0VPVyQP$vqL)}T$!cYbu=0h89Jt?iqztZOl?J7GQg8!HE0 zs4uWko{z!x;*=-dDtcxTJal*JEt@)VK+1UPp!Q^cb$b>b$1j7}IaE(U*HY;2~p@?i4c9}N(l-kr-00pj-SKOI{P@Fg4;odne1~Nn}bnd6f%|kK^3&fApXg|Ha_wQ3UIv< zF%iQ7S`J6QD(#&;I|czlJPXhUV=W0jLb`uA`d!M?eCy~n@`~C>~ zV#eVH#~@3vzqwCTXAfzPkVt6vGJ=g6KCzjYHZNj(2j2KDhG<`-4y-DBOjc7}4GG!% zmgvl%=r=|@e*+;JiE~<(CN*W#&9uQ|Sl48dPIfWkO^W~~qVZryEe^Mx9b9YnQAs8( zM~6*PSV+YXRL)uwJ+<>kB2DhX`Nst)8n{-OI&cu~LRsjqy+2Irz>C=Ct#v`aPw1gl zGuOk1%mpS#nvP&@@-3c*EA7i1-8eK$R%>u8DTk{if6h<94t_o~_Q0}A61cESJI`9U zL{tZyF9XfaCo0j1q$-Q=`};Bj=Mdu&d^{ZKhj3%xQRd2IvgEi2xpJuY@R#EQ4TsLo zb6mlO@eOsWtGZtT%*#J#IzVg?Ek~Qa&N<>5_gSN__SteJ_ee1}lW417hLYf1RwRb8 zhv=&9tu9-M^VeT6Hk*QvOO<|}c-eZxuXcPbF21EY&cFW@_@=WWg`e-Vf>$wFnGM2m3_^nvrS`u%5+<6V6V49MHavxWZ7%ffQ_B> zqkrN10Ti{yD*7Kb(*JBAh>3~yznz(FXKly)Ju?fwJ*D^qx`jHd3)l~2NlcHZyS}4` z1Ja&`I(6Fi1@%b1${v$b~rHE-@ zms%PN-^=Z^dRFSXik9g99`4PWNdS}jIf1$Od~@*ST<3i{IJ{wrSJ?dWa48Fai}#&~ z<@Ih>vweK}a}ood*gdp$zZX)|n>Ja?x4XHElgh{EmFer_PVe0jax_AfAI-A*DGG6p z!mzu2s12La7Km3f{-j?wM}EZ0YII38(9=5TS)&^;BhaNCC_WO3?0_)-$H(q4GVUib z^|r@{KJ_Ph_^NgIGcA!tYnoO4$LH;v1$Sgf)!W+(B7f4?Dye&6IIXy%HdZ~eoijB7 zDi8y#NVX z;+Mm@?tLK^-Dw8`ep*OCCzc>&i7!O@eoIH>{!>*4mvPXIVqQP(%m+_H)u@60^t2y{fwzWC@z92qlI{Z-D0a;`Zm^ zHPlX^);!>8%JvFi6T4x-Fu5vshR9(2c5;w;WdsFs7Rf#cTOCT>(4Iwg+Bo>S$!uhg z(Vnepx&pK-sHXyix=W+Vn6$fODgv4Et4i$}kT(*NzS@ukpbAYOQlCfIp(AjWXcXXf z{>~-vxlGeUdgtN08WWDrBA{!`^oj#xhhjzuxeC{MNn`w0eBk=zNpiOm4vhfTUZ?rX zD)c$fjA35C4eoH5)*kdt1JylLr#y8MRp&mK8a0St5iE2j^$5gh!T23ef>6aKkm&o( z?h3IztLhB@i}bI!!gOmWXCef8tK%v-4Et27f>{dds-0Spcajo*y09dmO06JLpC?%2 ztMHUmU=IE+4+Yg~LE1|g>s~vM^wCiO z`miJ+%WWgl-*a8#Vz8P^f{X~$OyP)(Lb6%nc9$rJeep3E7I^;+Dm--2CK^80N zQ9z)U$_|?IZ)NX$ z8J++ge_a$Hmn^GAMC5JWYMz|7?tsWO%dxMy7c|J?|@o3#g3%c)E&%3i#wscrZeq`n>@vw19&GM1BQ+q5K*R zAW^6N8oMgzt2plsFp2@$OJv%Uz^;KOSZFr|p$F-^684I_w8^Z?H0lVJFZr^>&rFv^O}Yw+k=WAaHlxj*0TPW1GAztvoC>q_%Yzm(mlxX!?Te<-11Z#liD#LUyB z*!ZrpZT8S!f2p>!%m-d}2Ko7n(0Z`3)VsVb^2zkHuj_T|aRps{UebwG=al-diXs?f zON8XHMFH?`0R6G;KDoRcLi)QfqPG6YGykHGhD z%f->>SIxt?|CP7Y0#_i=ug70Fc-GiMFj93vrL!RQ8M@p#G)9?`q9F=4 z&(=bfmE%Bfi>jXMx#ggnu3oh_+Y8u}7(Bdl#rEf9hgRBW<8m2S&QoMzl(*puHV^nh zl`IeV24BHN;|oYdh$x{f8H34H;5DYVfSxH@7 z;XUNjDdz(hmf$;NwI&Uu&6UEvg9(%3RK$9RRFfI9cSHYUO{Nd;dEkuzWX$-DBINzc zS;tcJ+-!mDriI25^{9Osr=;3~ME9BQ>=@bHC+32C?8KaUJ)v?V8xf`Ipvx#VTToXO9sbd|P6u+)d&fa(UbdcY&=`L;&-J_ zLYDBiC*~bCkKwQtp1Wf(B z#>cN!uMg|=+qq*SEiX-QFAXL!`F_Ih4X*i2tWX1L|GC}Nar zj+`77=icou!H?g0Jttb`wJp}=#7KHP-oG+@KRC2% z2!bxmd92=ENDI3*Q>O&iTb`E6>cx&_-&fep7P+%bKA#RO@73Xzqta^}motY?kH0;T z+hP7cwp;&UQWo3)66w~Fius44IP*hM1f2Kc126v4Aqb1`24!x?C8+T>m!4g9G$28_K!{oPylku zw2FT#lnr^?v;Dft$@`K0ODuQtDqrS1HE>io-Q%ii|Ci^dKN&hGStj4#+2n zZS{%VvnI*1)6pB;6xZF2l-4i;N5TtSRQ@ek?jaOlBiK>^fBTAG%?84df*w%n8AK3V zL`x+-YRM0My`#kAI)xd74Ekdr^7leQG!1h$J z1kuC2bq5zi^p6aL=$+x|3u~2)gBjfOlu;!n497tk!Qz+U6<5|Dj61p^JmWq9o(zOy zKhPVCF_GVvv;^HGH+VvfF|SlF9_?6Z)h?>2!!=SbS}Y6Y8inQTX$guXV)z!$D;DC?L?QM-yo=K z^MD!95XUV%ikNF1fZw35`VWQbv#6vZwX7lZ%U|3RRmrwk+?R?7B8{vh>9q>v7tiYY&-*gM<6D?cFT?+em{F)Y!+Z6SHmkG^) zo@cO{-uh7RQ>HizVi6sb+m4tkpCPWI22`hv`8LBH`Iw-VDXW75;Jlmh2d>uafOZ>dF%!*_px=e0dY;3%?C81{EW_i$3LE8-D6C`2bOVq>Z(wpt?P!Jcn~>!`;Y&;=u&B2Ao_!M%*)bwpw+h8|of3F| zVs3sDl6WO@;&7mz3w=P8DZ@UJc!V|y_>DBDgQVA7HZ-Xk`S{8 zrvgKf!1~2Lft!BUC+R;yarT`|PgSk?Elk)=i3Oideg|e}W?m>8%98Aq$Ly5uj5dfl zroVR&wF+CWG34~$L(3q9hIYNXi^AcFRHRKy?7hk{d_lnWkKN0!so-r1JfLT_{zMBU zwi~X)a3Z&~+;j#X({Q_nl7(ZNM=?%Ku!RsRpX=+qBSp__ZgcFf31M#Sc7yOy-bx$^ly6});v_Gp{=uC9CdC_6gs|T=6XxzsLTvcz-!x z2jkz~0c{;KN(zUKm!W062cT51^h8s+p$Yi@IGW11?#Uo5<+NOI2V`1Psc>wE$4slD zCw>a!ze5J2173fxLSB;vCzIfc@s+uy$ugF6V+ zVu+&H$GnR^$v9{7B7#M<+(sO4FI${fm17>%#cXc8(d9h4u?1mN%^2fR0B+5`5_gXv z`&%8JASg{0Ggu?!FRcK(c~K6#5(EfO#08NM&HH_qeZm3(>{rD|^)rBRoeT)gv&CPz zT`kxyu%mTihI`MGO`wN))s$6F=BG9#&I}O74-9Z|;0x*y7`Sr=kTY<+RG6I<`pm}i zDS!ePDMtQcq`cX9Iq5%OO_aRB{zR2ar7WLB`0g0kpbzamzBgt)vYq#lu4^D zGl#~9R4;xC0y8FXjYo^kku64^2-Ydc897;`8au#s2}_uORH6FG3iN_}gM+@sWoY7Y zNO}|tRL5{8DfeGeel{K;l_c6psWCH7j!#GU0=TA;$H%B#5n4p4 za>p$=a}n*nHFP>^z8utm4uoIa5d`dY)vn}*|A@*U_pf2M}WvFnBc!r=CIL|9`-1Qa# z@->WvKe!646mow0W=`TK4!9#UAvhTA2Tcbw{>3R9A0puDkS~b_qM+BBp9ke;MON#Y>8%y4I!nO{00ap$m&(H=QoEUa=PEU3Z(9_qj10cJu_u zglIm{9lX285R-bQ=mDXRuB{z6cgcu!?_;E)_?aa%Sc5B0!-mWHzFa15pZT&?SU>GFa9hz=d&NO#Z6Bv9q|Df9FI$tL zr3XVXNPTGJZQa%F@&&@aU5$?tg1Ui?se71C-?Z&>FU>l$T4|b~zzUBcEyZT2)^pl1 z{YVZg5I=_Ycm~jng-4R=0@5*^@9VJau(hgkWU<)Fm1m0u8;-mzyn*bOBR6;mG|uD4 zYOm@Lr5XPns-EmS!Sy7jQI;L;ZiD^&F+jOf&E;GD?_vAwio;(CS9XZsTJJMa5}O-( znxrd7pQ)FLTV9%;>@!UZ+(9z6oHbrWJFD0Z_p|2P;q zJedvbc-4Uw42{Yj_3sIk$0}=Dj+q=8OuM*6JKM#I<`t)yR1WZUzdfz@d}eXP(<7dxol)e98w5%S@tx@OK%It;p%2+1pc=XJmq zz>2JNkKRcRnm{{t-Rq_(Oz}PE9cVVTuG=}hI+-Ld7Qo`!AX^D>G|m9`K>=?tSXy@p zS_qj3pWS$r!A|8`dVjSGJ823dFBh}A@TJr;B~0Nd%~ma3Lmgm9wk1)fzDasL!T_vJ z4H(dtD&5r@+DcqJ8LxG%X>JzhjHiP3N;LKB3H9DBtN*br(Pgl zPM-OG=_WJtIje#8sA%$|O3+rbex9m~Wl^u(<)H*>Y5}Ia6)sb{@Qh>91wc~;#X$GvVbM*iEp}(#ye6vb(54$t%TPGN1+Uh5`B}nxydoW! z%Iu_P4gEgkxIfXJbBwX4+bomDJCSEmF|*n#K1^CV&+|Mqt5YC0tU;w=mf^FDnV{P+ znW#qEFkI9SzK7>`!`FkMlF`z?m&4!&%myI5_+I54xGVO13Duaz1I3Df_$2PUGPKI2(%@(1V6W7&oPS^X9p0D}v zFKEeV4J#hh}oyx@NuNpQfelr-Nk|jUYqjyB zTMv5m_6=NQ6(g3Ow2U1i=2D*kP$v^Z68|Qyuq}?PZu#|2bHnG)AB@md@Ob3@crHn0 z>$;7*eKEMHXPa1uprh^ih2zKC=wm`bo{xZ!=35x09;nco;`wLX zS@Ep;Y3JQCM$u;7IoZg-COy%I;Hql6V(G~5 zbQVi0ZiE~xYW89aB+%t^oo=xjTVyC-e;L9GKtx#k`^kLyCiT3f;`!rw*#RKh#zXgz zcP#6Svf99&mpScYfUQ#1#2Vl{z>o-76PcpR{$u32vdNkMj1%7()>Cnp)K(v0R64tw z4@hw&5T(LzkQ1N5a*eVkbZ_gdlS>P{unMT2Fln4s3bR!LbH&FIqC0$iro^K%#)k(# z)E_*Ah^`3Z42bTEL~4h|{}~nddZ7~B;4fXn7Lu3LjSiBRSkf2>7&wkWO$&WO2|3pr zQG#hV(ZaZDVR1(@x<7v@`A$S0tWnbXL<27H>(!Zbk92wrKk2j>zU{!n^3$fV;N%)l zIFk}D+TPZcp=n!$g-^E|WPH@t1;o-!&yTEm@SsZ&)2d!_hDu$MCD zv=^$JK2!1vx6#kr87m21Ep;cNt}Kw%mN{Ah;numIFvM0E%rDlR))&WcaM%tUtz5J> zI9si8vNGA*KG!vDh_LY4CNJ2nFWeYtI1pk^2-rCrp9yeU{H_PtM~al9&rZkM9i)E= zw@g{Jha4rrufd5uq>s$Nl?ysWik4!h-6e+`p;l~U%BBYY6Agm!GDYh|FEaidLv?bM zXo4dYPTI&>jhCag{ki``ll6T+$5bC1mHOS`vr+x^$W=AVW9C!$`&rQCTjH9}`YA{I zYYuYi3)F=U^LZPmx)C01ZbYb{G3BkH2k)cy9G$A?q;XXb^4tCIw=Un8vZJtmkC5Gt zj>F)z$qD8Ms^D8wHM)5B3IB5r0H5HOj%gE}GzHCB;&zX`7k@^@=g7#W^|_ZD!>5F8 zv=e9ylirA(!-4a7dTj}72)dsUy@>54XDwQ%b8TR6%(c(U=`~*^1{!)B)){^-eBhUI zt2MMXS#7b=E`>JNb=&|AaIFHeQxSvC5j(C)p--j zT(*4dInCx~{2J#Tp3nmV_rjreqHOQx^)^I=zhGu4S;qyNB1&SCm>)C;U3SGqlHrjB zr)$-K#gI7iKno0`=h@XXIPP4O2s-};d53uc>TV}3OSr0!c^pzN$yodJ`yrU(pA*H! zz5QNCIXY}| zL&`q%NNYDD*tM2FX7Q^pT5ujea)P;y0>3$JugywWL~}ZnCR{u0rXO?owL&TkT%PB! z|I{qrd=6D6+D#-3O=TkQ54YYV7VCGl7ND|estn>nv3NiY&0nuLvKoZv(UU0B`ewnJ zNqI>otFgPrQ!vVp!;u`{ulXFR$MhMYwtKbKQ7 z(_Zwl{WVbu<_)7vD#`K259P23fmcimMZRp#NSW=iyLFi6>- zUKleOf7wXdWBwV}4{rE)h^B-O-854C&nSdH_wxWQ4|y%~W$O@@jJba?zJ? zhbz8uI3cyqDs6LEMi?Bm;Nsw@;vVkU=QQ?c+Tk2=FQu;14qoU$U8Y#5ph-s}+x^IL z%wnX`vdb#?U{S{&;VzL8OOQ@zHiHrnXoOzYu*+hsnH+acrp(;q1b_B!9?0$Kg(l#U z@OQ&aGAN+XRRD%Z@}WsAnao5@JSHE}b#7SsbA}MX%7^L<5I#1mIhh#oCZP;DQWH*l z2BBEe9ED#yuHhEwR62R5Q5LTloZwoU%i3o{$Jmpj5Cpu98c9m|a0`3q!Z>jZS|A>r zapxjl%KwhoxoO;{}vFTh(&GDAetixP4;Hs)iYSE zWj*P${UC!e=z}nt$5^?EQ6#xlp%waaN`h^7c)*Pwsi zj!@#U0Zk-&b*FImgsRgdi#ko%_K7#4jEx8|)5$5wrLY7{s$0gMaYSu&sxoN$Dzj(r zS_*@>xgRt!=A)SeyXt5T-mEY|$T(ss7i2rL+j!O+t)@3!y@FbFj=bsMZLz^#z&`Ak zAo|(g=sYIw?E)gK0yp9Hei$IS>qzGFDes<$6z%NAS%LBuuh;6HN7iYvhU+W7yEw(J zH6SSW#fzaPpVC_oxgj#G`&^1#Q`!zZhF8+KzbhDuTFI)CIG9^r?6SFY47Sk1dl=-B z=eK8&HSzQ3y+_rGGmwiJfSle0WD9_NO@;{`&9j;zt@h8g;wPuTx<19njFE)pToBc+O%v~@3wLH@-6dtVSwY!)9(Qdl`h0xDK_vlbN zO~AO4W3>YPv(^7rG#|ZtK3p#KepK%d3?xU|z(hViQf;4vNN1z)p8NO>aTya;{;dF?u)x zXV%H*uFSXay?`q?yeXG!ZRE)h6ov$sm@Qu)vfhg{y`?|{+BUH)TE z)^*!#*tOds)ANaB+;h1#(1dC@B_7r3VlHm4HI(fvz82?J z2l+4ql0MjMG{p~WRyv*6ukU1NN}2zCdCUGE^5q!W|Cib!*iB0#GcBR`Qzf30t-dH9bwNIFp1`LVdNT`|{Yj7Tg0 z-KHZ*=!F8AeAFJR`qVGd$QF9yxQc@QAV43Nj^q_e<6XcF2#B~aEwuxU+KQOB?lWOF6=NPjvm zj%54kc%q;`)e-RP0@N~L@uvccE}sM;Ph`>CKLt>>{G6bc$ZZ3cv<>?`prw$yC@H1Y zL#>ALZmi;#$54I(Lg0JY27k3f@)LgsG5r4yg2^P8kIF`0oJEmcKVVQ!xUvpCD&PRG zC!iiZX*GiNAtUIw*{P8mRzQELU%34nIRUH#2g;1)vZT}HYenDRlLSdDfV28~3j(g= zt|sS>^nOIP&Df_OX{Xw21)%Mr;Ip8X$*c7hD;$S)oFpwQW}!cV>$j_u9YTXfU_=ax ze2^v>g8ow$I`}}89pzAPb^gUaF(3{EoN1v)yz`2|Ve;ykFy!3$PEbXrpPDg`CXt=} z@{=-_n+V%;3yZd4s?4BB%QJB&OM<=I!*dn~SpPB_=8$!5I+ZlK?Qd~HHQ`{$<5=NH zgQT=^VlE>>;;{-cfx-cG?K+Kdkvoq$GJO(v)D2-~F8I&gwQ=|0-Uy zJnhdOnupRd-*ZfqjffEXw_@{i%hMzr@a(oNFMKRrB$5!NE1y-XsDOq&AVSn@3 zxf>L5bq+8dNVx2?A!2u2C*bZ+GA;QcNJU$J!u@b0!BXUt){+L6+;A(7t<)V^tS7l} zu>&_GKsl4*uNod1xItyKEl#-%y%+fPK{AhA@sOFZ7V+Da(Lypp*{2G-X0_y8Xt-%rz^}9P7MeZjc z)?tW98Km;&F!+8s;6HNgixV^8zA7=289x$wJh1#zCFW~$ zq(ux)OAr3AotHNgzQ<=EmEIP;vsCUg;#?1G_n7ShZzL3N?j&UOWd#s}HDP3VrDKC&+fZ0HZexeWFHI%1$a)LiD;GS3$+6f163`Y^8 z{*(T^O!AVFO`fBW=ttwEs_>_@asx(*MlFSy?t`*G5c7Uci3iX^FIO%2w)3f`Upt{{2i*c!VzcxcGVx9D_FoHUOGQvTYfe z(tOLg$0BHrK(}JmX2*xlo!6K&I~9L+&6xO_4#S6}LXBp1-vA5&8|@mw?+$Ai%_CxC zvJQY$jCgGy%z_FzE2}K`ChQ8!p<~Tp0kqf(Sw)OCPz~0On08EQhM~9*jCS$PNw-X&F^Qv6M;Up~uSRWd$g=FN6vN@-TEIqzwR1`zrlMHlJ zb%-wLJ}Yt4%7j%?Fpt4>z+Ozz{X&L)E(#KqRzu_gBQNzd?U*41eTflcdb#GwC&l=1 z!)71r>l=JK6d~iUCb*eB%u+3&md%6{oP@OcMK~I)88sw=va3@~v1KsLidp3>c@L64{)f z9mkh+o2ToJ&X(5Tvn`_5&~#SoX|cpfmun}{!i+yfBF83!G^KmT_{Y5aR6`|vu#W7W z8MQDc;hpIDnLH^0>vw_~xuv>^%uZCpT-wMGm9yP&9be*s+lK-}-QVWgh)TOJ zuU(4t5<5ldJW*&1dbGPCBExQ0WXfrO|2jFJl1LjXg3L)sg5jRIhogNO2)WpN|2d{O z>@c(wgKsHUH$9s%uf83#dwA$qUmBkvd)%FRDWsS7D)VnrNKTW=@^vqFD^_+xO~p8$ zM1;z#n|YS&TvDVaE$jSp-ht=)aj$p8S-Me%CAq<6XIC8f7Bhfd6uGrL zW%RNWPcGxB_VlBno}{BY;QeA10J2PM!UG^7M^$ zZAhB|z}1C6DRx%toEwd0}Tv!q+Nf%%T@?(kvrr& z@E<2T>Iy&xQ!c~s^SXd);7g#t$t{E&6D*pv~9{$vA6+o%9)rdiYzx_(_h#_8|uL8ep zt>NQgF~5KH=8Cmi_caxR=0+#PZKMe<@(!lxb505oHZA7ds5vCmc~PTCly6?)xjJv4 z^zxXwxYy{?6|AQ+C8u7?jys~<%p~j2v zmyNVJR0F4nZ^M1xiN5$QI(z8pvN)Ch=WW>Vig~#bZ)5KGl}{y0Em9^$aNag{GY?E{ z(!#KWliDTA&8Cd!8VG=fCU|3enScg{VyFtc{wXf`0(ibSPAECeM=O+iUH}fE;akLT zB9tzZv4W&gV7$t(HwyNf6>Y!X=>yEZZp6)YKn=UIvKlv3q#oGrJ7?Xah;<{c#ub>| z@znCveYoG*?Mr$83l|p+M;So3!(n~q+1XA!PPZ&&`6p-g0@u2;ihQ#sMy+x+tBdkO zie9zzK~}dc``PT!dhnvStJ6S-R5$6CI#}TEzN=b%6|rA#o~+YuM6}mSwJFh%@s{nj zkJtAzUx<4Y15C&tm9>4W{p9ieF|rf0H8QG;COY{)zFNK@G(N&nv;vGuJ#wrs2QFJw zeTUey@ZX@R0*oF1`^JcYp8Y>N_-AMSZz;K#I_oyrZHV5>YLoXsdG1uYe*C>xM@Nr@ ze#kV5y`zEL=c{NGer(_HLEgU`$~)NSH;FXh^FiH2S*%oVZ!#(4=dCLOrTKj2Piyp( zAP786;YUg`YS1^wH zweA1f3`DxSS^u8H7OCkQW)@=*M|S=uH3JUa_BGVuz!G5uWhYMq%Pn9yx_M9O-lw^g zW5b)DQR4(emX>2fM}{dk%#}3ZW*PPQ)`5bKVkNihD-r+$=3KjqlJfQ9)7*iia2J$} z_Oy%=+vtmo9fczt42xxqR-HkbyAOIOwM5XJo-$ro!MOA>#ZpCpLZ>I zNsZ01zs z2ZNyAl``Xo-z6wZ77K4cUB*VrgnwjOM(qu^tnD7idoY2IXmJG$V^DzNTdC_Pb+p9RszbVoNXw0RBcHH7s79BvaswI{#|?AFbh7`4$F$k?NT-vS zLf&K!xKBtLm?>wS9Cs6S|`^jE;?!eAJ@2L{s>u|0&iwm}0 zXMYp0(eh~9Z`toj)L)_ULzB8r$!#uQ9$X%DE&7KgRgOzHO4|8PYriRmpQn^pw=WSR*LF(aV5Qyfr$kV1Cu9Ax^eMQTA9MKQu?4bfQgCAPZ2DCQ&N4CBYQMc z2tv4HLn)Y=pJiPMAPY;pgq;_Cr}%RgI5Pt)L$?OQl0`webf9Uj^9-u#$w12Y_8^fKYW z?iwWL6Ne397saqxoJEA?%|fGO)qWX`UDA52-vwzZ`O$*dY&0`65$)OGz*oRLQmPw( zGcr4EVUxxi2~03QwyrA*S(br~FiZ%?JSAr5Mb|BSkCsVC&p_XYXwnf|oi&mEnYou*7P_B%pQ~7}T*Hk|zVmlJ8(Gy3= zKpWGT+uv|IGe<}UP6)KdI~!j}cYM3Zf_Dc?eTLxAU*lfIqYArGJ71b|{Tc=!h4%dp zkOuQz#p#*GEKr|eQsZ$TUc~l%6^&7W3&UKG+T%~ctJT%;`+J`Oka zxBRt6t;D^*ZCG|vQtNhB7|a!0&XMotvXNePzhVhQj)GIynQzKYrxojc8|;Hqr|~Z7 z44MH=6Qp$78Ax5(`gHhSetzD@i+7pt6vrUdKb~OYHquA((beY+@gYevAE{vegdHSM z$S|Qe#c+xRsTnigsjPi7pp~jP&1)TDD0#I_3LY)r;NB42QN^9$R$T2H&B_pD&6?#o zH33__hbgZrmUK8kPjo%kUJZU60peO7bTTbxgZ+yUpMOroZ7-lh&er5j20|3MoM#1R z0=ndgL;@1-rOhw_x#@ z>6U#l2?KiuxW!Hht;EVx-87kTT5EQ5tVw%Zd#k-mocnX%3vdJ&M&)GbI3w@SSkf=~ zWE#01R{~@sIWRO9+iDusCrJpn*=a)aFdK))k;M-eK2o4|LRQmC)e8L1U)q|>Zc1`e zD*?6bc5b%YCwK^q!Yulg)el#5U+}5vJI0n4r2)6D5$Uo1eN7(r`DrTd?2E<9xB#3z z2qZleT8spVeQoyMDZ0}XR5Ip+aO}RK=W<6ang67q<60Klval97h)F)up71O+Uk7}= zm_>BCxMzyOLWR@>*ZIp8NZ?De?k!y2QHnkMIH(Gnai?;Sp=ve}1(L3U`u zj)|zyqO*ksd;HG#T_9|O2pGv_Dc zJ9?*`&RoTz2~^c_6NAu~(D`6G6ej_8Ro9|K#d2EsFRSIU)tXsQ)0RXJ(vWRA8cD&8 zXjh`XS-i{NAW%9=o=&SdL~bnHDWKf!*6f< zzC7n}{)8dY+DD;0Tb*~`vfjhr9hf~K`ZlwfwB|5K@8=S<*r#mK`dp*%h55el0@oI8 z|3B8)4F6g5fsuppzY8V)x0*gLl)QdJ0J1KK#Jn8#JJgXplZ`xWlOW4}X*rzrb0*!%VO(;7B3 zIP#-kJi6~oL~j8*$+YGisJ-sZ`Qa21j4qUSjsZK-hkk8r#wM^b)HsP6uMEWn5d+_m zjE{sk2!hzMKB_DZ2rS)>jwbBW5S1E>d8Ue2-Q=3C?kt3nYFlY3%oSTfY~axsKj>+7RIN2Rs zp<^woJ6@w?48}PR;n+j^0lgtkN77)JX-xODw7h!-Y(K|RE{=-*IGR1zK2>ggC%9s8 zPv-U0kEo8%Q*vEY%CJCAx2%l(zn-tEm+EBS-OvfV3sX*g6`*oTZ`vt@pQfFLUHnrk ziVzOXROgMeLEzw0l<`#IN1l;kF02#y6uVMn3%qL1aM&Y8oUx0PV^V#@hD7;fZaEE- z(zZ!}eFQT|;a7BzcO$cKSo3PYJdI-V&c8#qqcMPmS zkT|yWQKua*5VZ^kD~+HiYMbkDs$5iev_dFfjBT9$(a!Q!t>Nb8z_`4;CML}WNJ^V# zfs-Xa86xQd@I$VNb;x6RV|%np$xx1c9H6lSL5EcPXqiE<^_4QO=m8_a`p#7dg3V|l z(^-dq+n4$}K=qWtv`dIMO*aR-xKc~{Y{x0(XMz#j8=@xNm5oJJBJZfLdfCA(;#>uO zFm}615II?q*=1~HSR+XM{@`p85T0R;(C)k;94n$ncIVR1p{%h1`h(nQx6uDWt|2nu z;m@5Wf#Vrb2y@mOVmJTX`47PAJE1j;Mlv7a;*31J9a8I~Bc!z1g#PRKuy^sHe>@>; zug*0#{O#eCeYSJ|f!K#g{683T_`z7!{sdyXoL&iOY3nLjp4P}SwbSf!Sm!_l@qb5| zI2_aTh)B=L{BjyBr7f$VI3C(${>i!UmcJ96YOom$9wx978qG%MDflV{hz0x zi9b_k?-}VB{XUjx^KOCAN6;SqLQ|T?jpsxW;y#P)Oa_4G%D5(m2?$`CO_YNHt+%Kn z%vRWgFb;vCoHdYqFwNN_8iHjugUKlDAWR}97flHy3#z+hyv$!oUyz&SMi87u*R9Au zXWr=7>&Z}_+;of>=S1E}Q43$PsUirm2k8(&)34lYxJY!uo-^t2-lDV9QgzPoTBMP3 z!qXESg2GdB*15RRegE6|=!Q0c=Je?1?C9juVU`B<2%H1Y29DAaBIS8RGtOxNx?%{< zUtV%_GCOkSK(CpNPOoj6!*Y=nrQ)v8a+Da?BO9{8XryCOyIm+---f%^Q6BYhJyZhT z7>~N)*F`UD;W2r>Q>AKjqbdEK6rCyk9fdcAvEn^W72`yEWVB1d(oIIM*4KDoPL9!^ z7w@5uo)ORRVeq%X95~yfT1P#S9Kib-?%SO_qYtoF%9&R9?YeFSF}6AIdfy*c9oO4k zoRTc9eiM%D-QL`t-yI0!TaX{dxW#%tZ!FM!TND{Z0Iqx6BQ1PJhN}D?-iaC!;Vkk| z^yWbt-}?_^Q&8WptfFRy{OG9=qLO$*QMKon5JllN4<1I=Ft;howp$+$h8X#)@b(`? z7P_*CeyO}!D>TWF$0H<4#U*kk#&W>^Lzn#H1D<-N+HH(nI%dRf0_Xu?2m}0NsRZsxR~-Ny@|{bfI*wIOsOj zNC~@NPQ!%|d5Flt92Noi9B-@i5=|}BmAA{Eb9JLxHWKqPe&cSMfc?}?OPi{WRPC_m zvL$OgA&Kz|@SU2DOI9O#t?QV4CfK}QTC*Taf_^TCD(%V*MMlNRLAssn1uz)`W8g_6h5!)>~iE^nbWRyW&M#EASz z?RbQ)sxs)HWG6cfT#qSinT7ukYs}`iX{$`kwpwR09{P@2je=b%P9&>2SWlZc2Qsmo zhxO2%H%_tdflW=qE0jz{eNxlux6O~}g+1~&A|=_Oc1=cGYl`&$!`eFqi4sKHf^FNj zZQHhO+xBUkwr!oZZQHhOyLS7^6I&8 zrh!xJHZsduv7{y!h3_Cn+HBjtL!9lU1V-(P@TjsOr3mhXB9(3( z8S3er$PXP~?PY{jjO=FRY58l1bp{X8Z>%9bE^l0j69it{8wS#5fvV;1{SbU$TlguT@*CreyK>RB5TMS^Z{aFN0qo6FYh2StTSX%?EJ*=sRa9Uf5Ug- z96M63s-6aX{SD)DJ{&mT**PzoQ>$}vZSmdRhlZxCk|}*==G2=3Ccos2ZlYNoTuGDi zeYoh<0BTu){O6wKJO}&CHLu4Z|BcAyiI~pZIV*Wi@S*J0M(xRiytiv!fdVw&%1nFH z!syM%zbx1n*+e0^GPKKuWE9%<_Xib*~2NPQ8?C7rrDj zBQ&gJp#lTDO|ROJ?gh|y;-|@7uL;v);#=*msNp!>%gE7<3FIcmqRvNcY(pHkP_zw% zLj^nM|3RE7Im%}W)Mst2_3o9d@?TYarbHuTzwX%a5&2$`!7Kzvs3tVcTMnrvSk&!s zIvlD=JGT<|uFPilf3w;0kRlfS#LAxK>%C@-hI2QN;*med^Z1D;^!Kw$lykw@V_t}G z(2FZ=Ucil-g$0~!d-=0?z*AizB~pPYv8or1=}wA-J}o$Q2ttL6QQmO46m^zAPrz;_ z)9wV;!=+K44Re=vF2&rHtd2n<3Ijfw?mge1uJqrN zLx|7H^fOiAUi0%5%aL8b45bo}^!Yvgejgnio4mALt_CZ+!TJ2AqCAtk+Fa(8jIL4+ zPEql4N|zU$+jDp=JohVC2@U}>ZuZ|L?*C_f-%RXmjQ?|0{F08eJqbJ9|1jfJdGrH- z21YhPG;z)tgf_2R4c@AAPKS&;{LR}n;gcmIRJWGq!Q^0yHe8Y={P0ENEBi+q0&?j| zKj|?zLlC-{PbN+l?8zBDxW8P#m?9Qp)d^DOhM0X8l%Pzfwf+i%n*QOj=B2o4T0Ys) zmzOWq-;1fqIU<z}bF$9*Jd1YA1ByXwO$ zl)lulq9(ymZ*2?+Yet2EiRPCb|ua-t{=`#5Becs(7ghK z*fBI~xACtxK(UoKD=|LmM4B|qRN>ttBDU_`n^n1XIGc}Q|Nn?bO zkme6x#!W1`OpUbe1ox-%B6mqS)KJ6B$l+rR# zMCDAma;0Y?w`D|Qwk`qKw@99946C_bO{i=u0zy=-^Edq&__}wqu+h%Pl>lrz6m(D9 z9rV3nR8LA3yL*<6aUd$GI+Vh;GLX{k*jty`ke^!LkRtj`XJiW<^{xfH{3Z^{3 z#Th$1H(@y5gydf}&_d!OLq8L^cOy-Ibfjgh5tR`CO`4T!)qYW#RV3sEFVEOxy9tBg zR#eMqvrSV%q>6!O1>7JfO>t>4#Zg6T_8rhanwvls)8C?^t>|QRTy$&5jkt=U7~gv? zwZNe%E`+VxkIhcBU)=Ef!Tu8${>O50b0mx{jTua~g^?H)T_mnVz>(Oi2j%PxfJM!# zdg6|8$I11L%O`c@scOsYpq%dhO0JRyLtey5CD|JvbcFTdM&j+^xYX9-z|K%lAe_w*L5qNef zl+QE!^na`a0QPLA!jUVV4CF&^2KW2oyO-CE>TD!X=VB+sc)ETvJstKMH2pxOh;hM#YIl z2=*(FzA*WGF_I`luMVEBi|c}6j(IXNQ(E)=_ITwkk3WqB#5+uI`F3~pc+&%!e-O-i zYuO(h0B>Ci?;HqUmaBiVv-xRwEbY?`;-~x&=7aFV$^T7^T~Mf#!-^nGmK~WOdeqsT z?aypqkzm=?!yhxyl`7~oQYmI0^bhiv@=X-Wi6_+f*|tK z-`ih9-py-ljz*6}wm7HmG`7D7Ek+Ni@BUe3%X>{fn3e!Fl=c^X-K-P_vVKsq_nMrY zCgRW1w`CJbeL@=}C}Ol#&v)~gzv+kL59(l41kjL7yL+>&E=I}hvS^Cawf5h*8YNM< zxE5P+YvLORl%OH**x;c7H58IyS?vWVI-@Z-{ZB;}TuHKwtLbaWe<7kb&}}Z=bLUr+ z{dQHXKaL#B7&s${L2x#Mf-k8fj(SsiXnX{djE`!?qQCR4vKaRhbKHKmW{IF5sUtbCI^QeRAlhQ zsGJiOa!e69^I7IkynWsfm$*+Rk-%;n^s=Nv#W-LG#8~QdWRVo2;iaIPgcN*vF=K5_ zCjF*Aq0W^$gH5TkywO=!D9j94utB_LNk@fb8W~bM#I)e-94Hg;)bZ(&DEXH0KCB0h zI0k^@Wz(^}Pljbzzrkz%(rBdK8_^!hTRX??YDDhmn1G&3*d~RW#eqarda8czU(kyl zEP#z5nE{RRY7azVeow!hVe$;>fDw^_?9l3rJChwNYjb(-CfIR`HDMt1{j^;t=qOU{Ol!} zN)9w&bl1te+g($r{L9&Cfx~QXi^*s#bf&dwu|e%gh%2b&O=AUWM{vQu-Cs|;OD_yi z2)-E^j(23~okkV!<`|U0IBni#5`80Ji44aanW#TffY@l-Oj@aU>o2T~cn*a+Np>6W z0%y}riggW7qhWQ9btQOghZdURVA`}Pa)s7M$1qfo66Yoi1=9-iwU^7Hb*FVKVM-Mx z*+db+{;+R77LZD&&8EZ##*!Ai{Wm~7DoOfX%0X)OSZ0~r5^1FE`sAtiNN0aaZ~=gP zNb=8j4miMHNpQzxHwh2)-z-6jte#m7jK z?~JG{+&C{=*J1d9CW%09AJ&D5I%a&oNNhVZkteM#-NA)7vJFHO8Xb-Ts4Sy70*0(S zO_(Wuiq@{sZm1VXABgna7HOO}=eF*o(;WyTBre1O*;spZ$2605L$nz*OTM;C9zKfa z_`~BVJM)}2WGieA=b@Kvi2{fLhS+-xW8XDDIi*R=zYOy-gId#(Mlv_ekq~~*eR55> z%*PZtaC5|aA%BQsHAN0v_F2<`v#)3 zhMRVZvOm9i1B?D&duJd1zQFT+oa6=(DmlFTtsB%xj>QCP70ZiLOInQmorD_+8>v7N z?O1cMKfoOEVCMf#Ld^7k=GDl^!1-U@={5etogSw9L;Y1JPfHQ$3E(eiMq`+n{DxdS ziYPp{9ocUgz2pzS!aHH+<7^B$MI2r`aHZ{EB+>K4QTbV|cVFm7dT<8LR21QjE*5-j zYb3a;hY12ae|LEUn~y#F`TDtH0jS{=fVeYIhU3!>dHf9ZQm}GR0COCnh~g;=BoK)@ z-YypR8$3LG|F^c{V->09)f~F1n;p%Ig|1?8j@Vcpo=SW?j;23%)G_)uZBngKwsxNx zsyuXse~MtsF|%l72UMo)KB=_AO6zEyr^fV_Iw3CfCSQo&WzD#Y^`B%WwcODa8zNue z(&P|B$@dnja4!;EHYq`DzXMyU)I@$y#5EaNcd3btiKg~(d?db3(xn4kzAfbKRXT%Y zOHc%~y?UQlU5>f|f9sd8Jy5qyDhO_T`z%= zqjN!f{c5{d>5g%HV4G9L3O!7wED&+&e!9V1LY!-U$e#OhMZ=(29BFoQTh_U|KarG? zK$WroDi=>9Bv;)Yi6@`vr^OaRWcMMI;xy#SJsbP-9Gn_1W$P7ix85E^B$P)Q7*S4# zrPLQvVg&MdTJn$`=!CRij-1!rlC zRIdB@MK&UT)7+aUDAyq@JBb_5tT%`fy4u)~>3@2r+^>1tIYuPm-Bf#Se6lX`lcHSw z%b_&p6{df5DWkUuNpGXpU^tyc4~&;JP$y#oo_Xma}*# zW%*c2+N%A-rwu2I!l)tP!n!^*oq5s4Axoo*p;u?sNR4WzY^?$fE`1?Q@`OXNyo@Wt zXb`W8{kh@@8zYjyxP0$|iHKHJ#7%fsleYb&oh!Gf%5RaQ>Yt3F@t-C*sm_7&R-{IE z)d8T`(C)OY=~?q)DDC*`yto+M)=|bPB{Y0$JXENyD}=#<5Lc^*1!0IQ3kb1`+BmUg z` zqt#eQ>WBHAMei8tZRh!be(WplQLpkRrL|mAJ42YTzU~vuLvv*aXl9b<7|fcLhg*{U zLDG!ahCSBz{dwMN!I!Wyib@In$6hV}!l;iM`Q#9dWpxA_gnFX6J5q+cF)^li_>|6p z+DX&mHgCA4R`B7H@eKaVRS^3Fpkz8K{NHRwEdSGHBx7o4?qb16z|6wI#6d4+Y2#w* zL_jZQW9VWkVrpz}VoLu%M*I$7XZ@eC`jsxUi^|f{_Q$5Uk%yca6C)Ifa6lRnJTe(z zisB#wP)I;HWe>=x^F0xK+8{${+VP8^v~M*8k`F??5)1;Ukrt}>H`Zc#xCA0qkf_0u z7KBv?g%Fc-$;W1T$eX51(~p+Fy7~&&&PdnGruPe9=uvZr$#-B&4Y^R~A5P$aTa0gmZd)q3!8eTy ze@SbnSM*Km5p_HHNBVVg@>`p^*mwS)_a7Vrx>6o@+2l9YSH!N;Z-Nq{md@MdKKCjx zk4HqW;R>qkrEX*g{xyG*PH;xH=FjN0^cZ_}n2xU+1Y9T}{U^K}vTA+x+=h=$9@<99 zmN**0^K8z`F49~n>b1_<~3Rh@Ii(83BC|NZl^7RX?UP^ zS125hZ0*bM@CUl&t(rAGw0ZG5qs6`4SYgkmdARaiANi6M`Q2E(wC^yyK$JgGzEgnG zja{?(*UZ&xTAVbB=LFLh?n2-j$t0*@68W#;Vz#ChTDL+L&jQ^-Iwo9+qgxo|x`IyrVikHlK|8a&Ch6yFLP z&jjq-91P=a7l`1|(?1 zwSr+~O(P{JP`%vEuk9732jTlg@54|BvDbLPPJ(2tR#*Uh*`n99d-=6lT zsGLUq*`a@`%qhtM2TY@c`*Num=&aC;Z%J=@%ASq6r+?$*a=WGfaD|JThVA15#_G)1 z-|nCzsM2kZ0kttvu8U{);77pP-l?@@ajpi$O%dYyt3N_}I5-LBUHSAv?#0x3Ie~La zFCt=H8z+Dwgb^upivvmq{WF+*bcOE8Z9gC5B}YBib+Du|18HiL%Rqgs=swE>$7FemQu125$Uz;mwYAmp;^KbOXSDgdcaUvQM%HTbPV@4fw1F=@@cuI*q2I-R71Il# zH=s<}gZ^$~sb_+j?B|d7ET>&I!A?_Sx9*Miz~&#EaoP@u7O%kbsr^gja^1PIQE`1h zJq`_}_G}J{p~<*!=`rXXGpy}EeXJsd z+I?I9P@^CFjg(&Y>|-Qni=D7DKb~IDe2EBgf^7U85+#}=-km7%2_lk}X}-rnEH;8! zQ?+Nq(eYq-tu(5R^xt`4yYtWm{##8(Gj-1q`D;A+TY70uzo0d~m(7_xyN@e`v4aI} z`8wOT-Th+JpOzipLfSp!7kGcU`h&`-w@Bs%Cb2cLpXP_f7vn#^T2ESKb>HCi+sg5Gd zN`enSZTBm`<-UpLNVR_~p*SkEt3LAzKeP_f+R;A@7zvo4>H&g7++UTB0rz*&X-nu$R+D)-mo?P(4-HB9A=!i@B8mlQ z7G3Isrn)+NOT{rl=$&+!Rr~S%)ak3Sx3u)fGp%-WL!sxy>&2$DkFTa4wX1X;;z9jF zYeA5+m1pS-GNSb z%H7Z>dloQ5DBmu&a(Djl<`FSrc$rYu&TN!VcMS` zQx>)Ih=Spb*qZXn7EC@Z)W8v}rdjpTL{4$~gMHxETqjB)ZohJY9d8pIDc5!vWjYXS^W{q0aaXrysz%PrL$Y;_H7wq-7ijk0+x7O* zlSPTAijaC&xTgs1J`EWQD+SuGl1TS$o*9Ik5TS1?9eCK*@HC$JcW-^X?i@@&TDqn5 zSu=X2z-8}UZt-Sm`6v1v<# zkKq!Rd0!=wPGXft#+!&@0PpD4Q!J(gbcn;=uJ-5Jsy9A^?1UwzTvV7lEXIn8s9R_= zo0=+HWj54wKhKryk;U+sj>@*0A80q|G`{w0&*)tvOIgjRoT^`Q}zI8W%SPeDp#7AwX#i_0r3%ayv?!it%qe;!eOc>R&hsa?5S?6xT3K)wNQ z2>k+-=Y+DTj+4zTC(7)Nmtt@o7!<4~1&1|SZ(07WH!40k&X3zZxt$r>3O0#Jq8*KB zG!9#hGN}bCE(CS4gC~R6G1=JAF9j?u7Fy@Ay{h+<6*u?5c#OcSgsn9~RO{T2XrJXX z&VC22fN?3Er8nBlzr*&wXx1!+{hXqiCa@aK(0Agop8RTyi4uP)l}C6M`A_kczrV}{ z4z2gZVre3s@ih0x^V7e`vD_S_dfFfTd9PnsA}w|vzxljgLFawbS19}RyFV29c#R0Q z3%6Z+(^9vgfy-qweQz8~3=N5~`VuuCp@`2_8B1cjA}w6Ui2PfSXhBrrrsyC;gQ$L2 zdOhkFjQ?pPZ(jP0bn^^|pP7Cc%$vIhxjuT0(AB6AdTJH(@7xTl?N0=t#s~X)Z_HBA zkj=j_u1qJn$~bR7&23+R4h``oB|pRc_VrBT5m%Om*X|UxcvpzIq#?z{lcg`V3^gMX zt-A1;<0h+^QuVnHEeWRVOk2Atg3zwtT{K1VXYbgsdyxospOpJITd;x* zbR%kb-=u&xtd+F`u^PxaS5*JVuHC;7Du+HRia;WYP^b@L%%1;EuL3c@RT`Wj1x8mAc59@Qg>`1SkRKgS?UqRzp`N z1&=_xxJX%WzCTuH{;fw-rdW;g%v2Co@-We+dQLk(Ki)cuBGjua&lz>>P_c)U1YP(& z*@Sn+!`+tu1*?l=tWYX}{*~L_7;M`dQ}5UJTWUZF=q&}}*9fRa-?~2_c9{L;WxPPU|yX4x0n2Js7wp#c<2zu)=0M(~BCHe8DR5Te5^Xw@j%s z6%8;;kCh+l>J9+n*W>+v2lSZ!pB|3-xf#Y2Cvd9Q>5Ub;3FGX8nWq(N*2`tYux(wTy=kjvxlXS&%Ft zpm;D6Cco?|T|zJ`jvM0_zWQJwqJg-SuhJ8<&nN z{~T}u;=xZ!HW%k|w7IwqA^Qn%t!$2wkQj#rVLH_B`-175GE~}`=Zl$Nd_z#wmW*H? zj(dvCjJdrP#6|;%$MHSyOg#D!>U|S3_(%Gn=fM~9I+g&%&2G9AW1wr&KhQ3b1>$W= zmW4*vsY)n#&zIrWdy180`0eY{g;nSx5ZphPh2As23{tfB^>H>zS6oYhCM#2d)8aUAK3_L91(p_Fi>8ss zLUZu3}YMu$8J;E4m_WdZ-m@H{-1j zB9A>N9&whiV!ehvpS0$!Oz`{=nsUct$auQU6D-ShPlKpPiS~FKYO%l$6(inM*n`g< zT88{|0e~BATOJh?5H2aPjI2@jo0e`^`Kt3>dB6V9YY0N?i}(WwE>w`a>AvA(BNei2 z-~)vl?fKkAc<}#e9Q;5S{np3RJN$per@x?9G!O~6vogLIpa9He%T3)*NogRl+BA_- zkNGSvXCE@^y$}}*RJ0gpEEFzI9Xy@G40s~DFIiduyOgP3@YKL-0}-6a94WQIIjdQ zr7lTd0pGdlIlIQKOgH>h)pgd5FQXd^{#m~uUm9|`EDp#0!3gC4dhxEE)c?QU+aEmh z7scPmZDHq%a?_~%l<(mQQNdGUMT#RA(xA2g6}%`%Z?w}YKGR7?`=^?5DwsJ?H`5Ao z$?JRq!;^LG1sYp|Pj;Clm}zz?l{ez3!cjHMeDH_0QAeT_tTPzP$>NO-EBZlWBXq#& z7Veqd>>m3sx`6=uWggsM72Qehw8Sf;4tQee4{_ zV*#XQBCj;>aglXtMY;S_Rc}E0mUwJ(s~gv^+5V>Y`O!`syesmmIN}k87xoGUV(B1XqbHGU zp@}7%?BK}*Q!i#^U^NvHiP*pfd{**;2K4-4}YQNv!Yn<1XP!PnKHRV&*o;TbqF`)94L!b9+aJrHC!Q zevg2=`xk;Kif-OfzZ-|)Mr4$=8X-lRzgzN{+0La#D$ILIUbsHoq;-_M_`_~fe8dz7qd)U!?Y$g z#XpKZmN+(+#qs!r*g8=T<3;p^Y>x9ZPAsiKjnlOao{ec4>cbL2T~u)2%s)Bz)892O z_9NSm-d^PQ8bX8dYu@tN>)e*=t&0jm>`$kH_CJr%Ut1FucDH%LZEazlzJj?lak*8K zJ?xqO$(h4M$Q^G%Iz$@ai=K57vv7{&pcihJ8sM-SVSX51_1z=??$=W5L^i4w(zl0^ z?+)_up$g0I-GAx7>QAcr%KnYiZ>gKkXR43skg+drsFJ|2gj_J)s;oKF6YRH zz7^z}I8A|1BOuMl7<3IM|#h_II+2`L35^uS5IG?4;b{t<_r+3pJ~S0^Cu zR3()Ew$r%O+IQ86!e+NQF0l0l+Y5M zSrF4g=Ir9*z_{sUb^zMG16qY!miVAq4xmj*f1b;j$@{e56_EEzU!JR*t-�O5+q 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 GuideSourceSnapshot -> GuideSufficiencyReport --> ProjectSubmissionArtifactPolicy +-> SubmissionArtifactPolicy -> EffectiveProjectSubmissionArtifactPolicy -> project PreSubmitCheckerPolicy -> task locked context --> worker pre-submit +-> deterministic pre-submit -> submission finalization -> durable checker run -> review_pending @@ -72,11 +74,13 @@ Passed: python3 scripts/check_stale_workstream_wording.py python3 scripts/check_markdown_links.py cd backend && .venv/bin/pytest tests/test_projects.py tests/test_tasks.py tests/test_checkers.py -q -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py +cd backend && WORKSTREAM_DATABASE_URL= .venv/bin/python scripts/api_contract_e2e.py cd backend && .venv/bin/python -m ruff check ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py cd backend && python3 -m py_compile ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py redaction helper inline check for UUID, fixture-id, hash, and local-path sanitization default missing-agent-env failure check for sanitized stderr and nonzero exit +render professional PDF report from the redacted evidence source +extract PDF text and run targeted privacy scan over the PDF/source artifacts targeted privacy scan for private source names, local paths, fixture-id shapes, source-task labels, and agent hash prefixes git diff --check ``` @@ -89,10 +93,16 @@ Key results: - Public-safe exception helper check passed. - Default missing-agent-env failure emitted only the sanitized one-line public failure message and printed `terminal benchmark public failure output redaction passed`. +- Professional PDF report rendered as 14 A4 pages. +- PDF report SHA-256: + `f455414dfd1d60f066352e7d74ea9e5b55271a3b943464f88968f8ffc7de5492`. +- Embedded PreSubmitCheckResponse JSON samples validated against the backend + Pydantic schema. +- Extracted PDF text passed the targeted privacy scan. - Privacy scan only reported intentional backend test literals for unsafe-path and reserved `agent-` prefix validation. - Stale wording check passed. -- Markdown link check passed for 25 changed Markdown files. +- Markdown link check passed for 26 changed Markdown files. - Diff whitespace check passed. ## Live Drill Result @@ -122,6 +132,8 @@ final_task_status: review_pending Evidence: - `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-evidence.md` +- `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.pdf` +- `.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-live-api-drill-report.md` ## Internal Review @@ -151,7 +163,8 @@ Evidence: ## Remaining Risks -- The evidence appendix is large because it records all redacted HTTP bodies required by the chunk contract. +- The detailed live drill report is now a PDF artifact, with a concise Markdown + evidence index and source Markdown for reviewability. - This chunk does not implement review packet assignment, human review decisions, or revision replay APIs; those remain future chunks. - Default failure output may include unrelated Alembic INFO lines before the sanitized failure if migration logging is enabled, but reviewer reruns diff --git a/docs/roadmap_status.md b/docs/roadmap_status.md index a14f82f20..55a2571d8 100644 --- a/docs/roadmap_status.md +++ b/docs/roadmap_status.md @@ -86,7 +86,7 @@ Current phase: Week 3 review and revision preparation. Run from the backend directory against local Postgres: ```bash -WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py +WORKSTREAM_DATABASE_URL= .venv/bin/python scripts/api_contract_e2e.py ``` The script runs migrations forward and exercises project policy visibility plus task context APIs across the following flow: @@ -98,7 +98,7 @@ The script runs migrations forward and exercises project policy visibility plus Run from the backend directory against local Postgres: ```bash -WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/week2_api_e2e.py +WORKSTREAM_DATABASE_URL= .venv/bin/python scripts/week2_api_e2e.py ``` The script starts a real local API server, issues local Flow-compatible tokens, @@ -130,10 +130,10 @@ Week 2 closeout validation is not only this script. The full gate is: ```bash .venv/bin/python -m ruff check app tests scripts -WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/api_contract_e2e.py -WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python scripts/week2_api_e2e.py -WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python -m pytest tests/test_checkers.py tests/test_tasks.py -q -WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test .venv/bin/python -m pytest -q +WORKSTREAM_DATABASE_URL= .venv/bin/python scripts/api_contract_e2e.py +WORKSTREAM_DATABASE_URL= .venv/bin/python scripts/week2_api_e2e.py +WORKSTREAM_DATABASE_URL= .venv/bin/python -m pytest tests/test_checkers.py tests/test_tasks.py -q +WORKSTREAM_DATABASE_URL= .venv/bin/python -m pytest -q .venv/bin/docstr-coverage --config .docstr.yaml ``` diff --git a/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md b/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md index 8844bd4a5..d029dd5cb 100644 --- a/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md +++ b/examples/terminal_benchmark/LOCAL_VALIDATION_NOTES.md @@ -75,7 +75,7 @@ cd backend && .venv/bin/python -m ruff check app tests scripts cd backend && .venv/bin/docstr-coverage app scripts --config .docstr.yaml git diff --check cd backend && .venv/bin/python -m pytest tests/test_checkers.py -k 'pre_submit_check_allows_worker_revision_packet_feedback or pre_submit_check_returns_feedback_without_durable_run' -cd backend && WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test WORKSTREAM_TERMINAL_BENCH_FIXTURE= .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py +cd backend && WORKSTREAM_DATABASE_URL= WORKSTREAM_TERMINAL_BENCH_FIXTURE= .venv/bin/python ../examples/terminal_benchmark/terminal_benchmark_api_e2e.py cd backend && .venv/bin/python -m pytest ``` @@ -137,7 +137,8 @@ Results: - clean packet reached `review_pending` - missing static guard was blocked at pre-submit and created no submission - blocked pre-submit and blocked submission-create produced no durable - submission, evidence, checker-run, checker-result, or audit side effects + submission, evidence, checker-run, or checker-result side effects; task audit + recorded the blocked intake attempt - after a v2 guide and project checker became active, the already-started task still used its locked v1 checker bundle - checker-caused v1 reached `needs_revision` @@ -150,7 +151,7 @@ chunk evidence lives under `.agent-loop/`. Date: 2026-07-05 -The current proof was rerun manually over HTTP against a live local uvicorn +The 2026-07-05 proof was rerun manually over HTTP against a live local uvicorn server and local Postgres. The Python example scaffold was not used as the authoritative proof for this pass. diff --git a/examples/terminal_benchmark/README.md b/examples/terminal_benchmark/README.md index 3dd9a106a..57d594f1c 100644 --- a/examples/terminal_benchmark/README.md +++ b/examples/terminal_benchmark/README.md @@ -67,7 +67,7 @@ The authoritative proof for `WS-POL-001-06` was a live manual HTTP drill: ```bash cd backend -WORKSTREAM_DATABASE_URL=postgresql+asyncpg://workstream:workstream@localhost:5433/workstream_test \ +WORKSTREAM_DATABASE_URL= \ OPENAI_API_KEY="$OPENAI_API_KEY" \ WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL="${WORKSTREAM_PROJECT_AGENT_OPENAI_AGENT_SDK_MODEL:?set model}" \ WORKSTREAM_TERMINAL_BENCH_FIXTURE= \ From be2d5ec28b280e1a12c03362224e28afec3c6ed6 Mon Sep 17 00:00:00 2001 From: Abiorh001 Date: Thu, 9 Jul 2026 07:16:13 +0100 Subject: [PATCH 17/17] Bind live API drill review evidence --- ...ge-loop-memory-internal-review-evidence.md | 4 +-- .../WS-POL-001-06-internal-review-evidence.md | 4 +-- .../WS-POL-001-09-internal-review-evidence.md | 4 +-- .../WS-POL-001-14-internal-review-evidence.md | 4 +-- .../WS-POL-001-15-internal-review-evidence.md | 4 +-- .../WS-POL-001-16-internal-review-evidence.md | 33 ++++++++++++------- 6 files changed, 32 insertions(+), 21 deletions(-) diff --git a/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md b/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md index 50fd1d809..8a604d6af 100644 --- a/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-ENG-001-codex-zero-trust-loop-bootstrap/reviews/WS-ENG-001-post-merge-loop-memory-internal-review-evidence.md @@ -10,9 +10,9 @@ valid findings addressed: yes ## Reviewed Revision -Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 +Reviewed code SHA: 49101d4ad3fc22ec6e6065b1e593ef04145db953 -Reviewed at: 2026-07-09T04:14:08Z +Reviewed at: 2026-07-09T06:13:59Z Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, ci-integrity-final-reviewer-run-id diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md index f4fda48ee..bafb6a89f 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-06-internal-review-evidence.md @@ -10,9 +10,9 @@ valid findings addressed: yes ## Reviewed Revision -Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 +Reviewed code SHA: 49101d4ad3fc22ec6e6065b1e593ef04145db953 -Reviewed at: 2026-07-09T04:14:08Z +Reviewed at: 2026-07-09T06:13:59Z Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, ci-integrity-final-reviewer-run-id diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md index c8ecd3ec7..a2e69df60 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-09-internal-review-evidence.md @@ -10,9 +10,9 @@ valid findings addressed: yes ## Reviewed Revision -Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 +Reviewed code SHA: 49101d4ad3fc22ec6e6065b1e593ef04145db953 -Reviewed at: 2026-07-09T04:14:08Z +Reviewed at: 2026-07-09T06:13:59Z Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, ci-integrity-final-reviewer-run-id diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md index 822423110..14e429f0c 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-14-internal-review-evidence.md @@ -10,9 +10,9 @@ valid findings addressed: yes ## Reviewed Revision -Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 +Reviewed code SHA: 49101d4ad3fc22ec6e6065b1e593ef04145db953 -Reviewed at: 2026-07-09T04:14:08Z +Reviewed at: 2026-07-09T06:13:59Z Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, ci-integrity-final-reviewer-run-id diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md index ee6157d8f..3d4e283df 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-15-internal-review-evidence.md @@ -10,9 +10,9 @@ valid findings addressed: yes ## Reviewed Revision -Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 +Reviewed code SHA: 49101d4ad3fc22ec6e6065b1e593ef04145db953 -Reviewed at: 2026-07-09T04:14:08Z +Reviewed at: 2026-07-09T06:13:59Z Reviewer run IDs: senior-engineering-final-reviewer-run-id, qa-test-final-reviewer-run-id, security-auth-final-reviewer-run-id, product-ops-final-reviewer-run-id, architecture-final-reviewer-run-id, docs-final-reviewer-run-id, reuse-dedup-final-reviewer-run-id, test-delta-final-reviewer-run-id, ci-integrity-final-reviewer-run-id diff --git a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md index ec2f42874..c538a5980 100644 --- a/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md +++ b/.agent-loop/initiatives/WS-POL-001-submission-artifact-policy-foundation/reviews/WS-POL-001-16-internal-review-evidence.md @@ -10,9 +10,9 @@ valid findings addressed: yes ## Reviewed Revision -Reviewed code SHA: 4471549742041e2818d3e3cd89e36518d7126993 +Reviewed code SHA: 49101d4ad3fc22ec6e6065b1e593ef04145db953 -Reviewed at: 2026-07-09T04:14:08Z +Reviewed at: 2026-07-09T06:13:59Z Reviewer run IDs: senior-engineering-report-review, qa-test-report-review, security-auth-report-review, product-ops-report-review, architecture-report-review, docs-report-review, reuse-dedup-report-review, test-delta-report-review, ci-integrity-report-review @@ -43,15 +43,15 @@ Scope: | Reviewer | Result | Blocking findings | Notes | |---|---:|---|---| -| senior engineering | PASS | None | Confirmed the privacy scrub is scoped, maintainable, and does not change backend/product behavior. | -| qa/test | PASS WITH LOW RISKS | None | Initial rerun found top-level fixture/startup failure paths could leak local labels. The example now emits a generic sanitized failure by default and preserves raw output only behind explicit debug opt-in. | -| security/auth | PASS | None | Confirmed no private source names, raw local paths, raw local UUIDs, exact source fingerprints, credentials, or raw server logs remain in public evidence/example output by default. | -| product/ops | PASS WITH LOW RISKS | None | Confirmed the Terminal Benchmark material remains a standalone Workstream reference example, not a leaked external/company workflow. | -| architecture | PASS WITH LOW RISKS | None | Confirmed the privacy scrub stays in docs/evidence/example scope and does not change Workstream product architecture, checker authority, or task-specific checker generation. | -| docs | PASS WITH LOW RISKS | None | Confirmed public evidence, trust bundle, roadmap status, and historical evidence amendments are standalone and privacy-safe. | -| reuse/dedup | PASS | None | Confirmed the redaction helper is local to the optional example and does not duplicate backend/runtime/checker abstractions. | -| test delta | PASS WITH LOW RISKS | None | Confirmed no tests/checks were weakened and final evidence records parse, privacy-scan, and redaction checks. | -| ci integrity | PASS WITH LOW RISKS | None | Confirmed no CI/workflow/package/test gate was weakened and this evidence can bind to the reviewed revision with evidence-only updates after it. | +| senior engineering | PASS WITH LOW RISKS | None | Confirmed the final report is maintainable, reviewable, and operationally safe after correcting approved-policy and response-shape evidence. | +| qa/test | PASS | None | Confirmed the report matches the executed drill, including manager-approved exact policy, `check_required_files` and `check_evidence_present` failures, schema-valid severities, and embedded `PreSubmitCheckResponse` samples validated against backend schemas. | +| security/auth | PASS | None | Confirmed no private source names, raw local paths, raw reviewer UUIDs, local DB URLs, credentials, replayable locators, source-specific task identifiers, or sensitive IDs remain in the final report/evidence artifacts. | +| product/ops | PASS | None | Confirmed deterministic pre-submit, blocked submission creation, task audit visibility, successful finalization, durable checker run, and `review_pending` handoff are represented without confusing checker output with product review decisions. | +| architecture | PASS | None | Confirmed checker authority remains project-scoped, the deterministic checker boundary is preserved, and the report distinguishes agent-derived drafts from manager-approved exact/effective policy. | +| docs | PASS WITH LOW RISKS | None | Confirmed PDF/source/evidence metadata, public-safe durable refs, Markdown links, stale wording, and report/PDF consistency after moving report date out of PDF metadata. | +| reuse/dedup | PASS WITH LOW RISKS | None | Noted low-risk duplication of reviewer summary in the shareable PDF and durable evidence files; no required fix because the PDF is intentionally a standalone review packet. | +| test delta | PASS WITH LOW RISKS | None | Confirmed no tests or evidence assertions were weakened and independently validated the embedded response JSON samples against the backend schema. | +| ci integrity | PASS WITH LOW RISKS | None | Confirmed no CI/workflow/package/test gates were weakened and the evidence gate can pass after final reviewed-SHA binding. | ## Valid Findings Addressed @@ -67,6 +67,16 @@ Scope: - Staged the formal live evidence file so it is no longer untracked. - Added a public-evidence redaction boundary so reviewers can distinguish the local live drill from the privacy-redacted public transcript. +- Distinguished the agent-derived draft policy from the manager-approved exact + policy that produced the effective project policy and compiled checker. +- Corrected blocked pre-submit evidence to show both `check_required_files` and + `check_evidence_present` failures from the executed drill. +- Corrected embedded pre-submit response samples to use the actual backend + schema, including `results`, worker-facing fields, and valid severity tokens. +- Added public-safe durable reference placeholders for guide source snapshot + items and PDF metadata fields in the evidence index. +- Validated embedded `PreSubmitCheckResponse` JSON samples against the backend + Pydantic schema. - Removed private/local source names, exact source-material fingerprints, exact source byte counts, local database UUIDs, and source-specific task labels from current and older public evidence. @@ -94,6 +104,7 @@ redaction helper inline check for UUID, fixture-id, hash, and local-path sanitiz default missing-agent-env failure check for sanitized stderr and nonzero exit render professional PDF report from the redacted evidence source extract PDF text and run targeted privacy scan over the PDF/source artifacts +validate embedded report PreSubmitCheckResponse JSON snippets against backend Pydantic schemas targeted privacy scan for private source names, local paths, fixture-id shapes, source-task labels, and agent hash prefixes git diff --check ```