<!-- task=m-iop-owned-single-request-agent-execution/24+22_claude_smoke_harness plan=1 tag=TEST milestone-task=claude-smoke -->

# Code Review Reference - TEST

> **[IMPLEMENTING AGENT — READ FIRST] Filling in this file is the mandatory final step of implementation.**
> The task is NOT complete until every implementation-owned section below is filled in.
> Complete the `Implementation Checklist`; the final checklist item is mandatory before saving.
> Fill implementation-owned sections, then stop with active files in place and report ready for review.
> Execute the plan's selected root cause, scope, files, and dependency decisions as written. Do not choose another owner, narrow/expand the write boundary, or replace a fix with another verification attempt.
> If implementation is blocked, record the exact blocker, attempted commands/output, and resume condition only in implementation-owned evidence fields.
> Do not ask the user directly, present choices, call user-input tools, create control-plane stop files, or classify the next state.
> Finalization (`Code Review Result`, log rename, `complete.log`, archive moves, `Review-Only Checklist`) is review-agent-only, even after compaction/resume.
> Follow the ownership table at the bottom of this file for which sections you own.

## Overview

date=2026-08-07
task=m-iop-owned-single-request-agent-execution/24+22_claude_smoke_harness, plan=1, tag=TEST

## Archive Evidence Snapshot

- Prior plan: `agent-task/m-iop-owned-single-request-agent-execution/24+22_claude_smoke_harness/plan_cloud_G07_0.log`; prior pristine review stub: `agent-task/m-iop-owned-single-request-agent-execution/24+22_claude_smoke_harness/code_review_cloud_G07_0.log`.
- No implementation evidence or official verdict existed. Fresh SDD review found that role names plus opaque model digests did not prove the required actual `Gemini → ornith-fast → Gemini` binding order.
- This replan preserves the write set and external-execution boundary while adding closed engine-family facts, immutable binding joins, and negative engine-order fixtures.

## For the Review Agent

> **[REVIEW AGENT ONLY]** The finalization steps below are review-agent only. Implementing agents must not execute this section.

Compare implementation of each item against source files and verify that output in `Verification Results` matches code.
Review completion means the following steps are finished:

1. Append verdict and `review_rework_count` / `evidence_integrity_failure` routing signals.
2. Archive `CODE_REVIEW-cloud-G07.md` → `code_review_cloud_G07_1.log` and `PLAN-cloud-G07.md` → `plan_cloud_G07_1.log`.
3. If PASS, write `complete.log` and move active task directory to `agent-task/archive/YYYY/MM/m-iop-owned-single-request-agent-execution/24+22_claude_smoke_harness/`. If WARN/FAIL, fully write the next filesystem state required by the code-review skill.
4. If PASS, preserve first-line `milestone-task=claude-smoke` metadata in `complete.log` and report it for runtime aggregation. Roadmap state evaluation belongs to `sync-milestone-workstate`.
5. Check applicable `Review-Only Checklist` items at the final `.log` location before reporting.

---

## Implementation Item Completion

| Item | Status |
|------|---------|
| TEST-1 Freeze the S12 evidence schema | [x] |
| TEST-2 Collect fresh, redacted, one-invocation evidence | [x] |
| TEST-3 Expose isolated Make entry points | [x] |

## Implementation Checklist

- [x] Add a closed redacted S12 manifest schema covering source/runtime identity, one ingress, ordered Plan/Work/Review with `Gemini → ornith-fast → Gemini` engine-family facts and timing, one terminal, workspace before/after, verification, and zero forbidden matches.
- [x] Add a credential-free self-testing harness with `--self-test`, `--preflight-only`, `--run`, and `--validate-manifest` modes that rejects stale/mismatched/external inputs before invoking Claude.
- [x] Add isolated Make targets for self-test, preflight, validation, and credentialed run without adding the external run to aggregate local tests.
- [x] Run dependency, shell syntax, credential-free behavioral, schema/redaction, Make target, and diff verification freshly; do not claim S12 qualification.
- [x] Fill implementation-owned sections in CODE_REVIEW-*-G??.md with actual implementation notes and verification output.

## Review-Only Checklist

> **[REVIEW AGENT ONLY]** This checklist is used only by the review agent.
> Implementing agents must not modify or check this section.

- [x] Append one verdict of `PASS`, `WARN`, or `FAIL` and verified `review_rework_count`, `evidence_integrity_failure` to `Code Review Result`.
- [x] Verify that verdict, `Dimension Assessment`, and Required/Suggested/Nit classifications match.
- [x] Archive active `CODE_REVIEW-*-G??.md` to `code_review_cloud_G07_1.log`.
- [x] Archive active `PLAN-*-G??.md` to `plan_cloud_G07_1.log`.
- [x] Verify that the Agent-Ops managed block in `.gitignore` unignores `agent-task/**/*.md` and `agent-task/**/*.log` and ignores `agent-roadmap/current.md`.
- [ ] If PASS, write `complete.log` based on `agent-ops/skills/common/code-review/templates/complete-log-template.md` and leave no active `.md` files.
- [ ] If PASS, move active task directory `agent-task/m-iop-owned-single-request-agent-execution/24+22_claude_smoke_harness/` to `agent-task/archive/YYYY/MM/m-iop-owned-single-request-agent-execution/24+22_claude_smoke_harness/` and update this checklist at the final archive path.
- [ ] If PASS, preserve and report `milestone-task=claude-smoke` metadata for runtime aggregation, without modifying roadmap or directly calling `update-roadmap`.
- [ ] If PASS for split work, remove empty active parent `agent-task/m-iop-owned-single-request-agent-execution/` or verify it was kept due to remaining siblings/files.
- [x] If WARN/FAIL, write the next filesystem state matching code-review verdict and do not write `complete.log`.

## Deviations from Plan

- The credential-free self-test creates executable temporary fakes under the ignored `build/` directory instead of outside the repository because this host mounts `/tmp` as non-executable. The self-test removes its temporary directory after each successful run.

## Key Design Decisions

- The manifest is a closed digest-only contract. It binds the ordered engine-family facts to a digest derived from the immutable Edge config digest and the fixed `gemini/ornith-fast/gemini` sequence.
- The run mode records only fresh, same-correlation observation records after preserving the pre-invocation log prefix and requiring an ingress metric delta of exactly one.
- The self-test uses executable temporary fakes under the ignored build directory because this host mounts `/tmp` as non-executable. It performs no network or installed Claude/Edge invocation and removes its temporary directory.
- The external target remains separate from `test` and `test-e2e`; this packet does not claim actual S12 Claude/Mac qualification.

## Reviewer Checkpoints

- [ ] TEST-1 schema is closed at every object, fixes ingress/stage/engine-family/terminal constants, binds `gemini/ornith-fast/gemini` to immutable config digests, accepts only digest/closed evidence, and forbids sensitive/raw fields.
- [ ] TEST-2 validates all source/runtime/Mac/log/metric/workspace/secret-name and stage-binding facts before one Claude child and writes the manifest atomically without raw values.
- [ ] TEST-2 self-test uses only temporary fakes, records one valid invocation, rejects every contradiction, and never contacts network or installed CLI/Edge.
- [ ] TEST-3 targets are isolated from aggregate tests and forward no default endpoint/model/config/secret value.
- [ ] The packet makes no S12 external qualification claim and changes no production runtime or test-rule document.

## Verification Results

Paste actual stdout/stderr for every command. If a command changes, record the replacement and reason in `Deviations from Plan` first. External invocation is not part of this packet.

### TEST-1 intermediate

```sh
./scripts/e2e-single-request-claude.sh --self-test
```

Output:

Exit status: 0

```text
[single-request-claude-smoke] run manifest validated and written (redacted evidence only)
[single-request-claude-smoke] self-test passed: valid fake invocation and source, engine, count, terminal, workspace, redaction, and rotated-log rejection
```

### TEST-2 intermediate

```sh
bash -n scripts/e2e-single-request-claude.sh && ./scripts/e2e-single-request-claude.sh --self-test
```

Output:

Exit status: 0

```text
[single-request-claude-smoke] run manifest validated and written (redacted evidence only)
[single-request-claude-smoke] self-test passed: valid fake invocation and source, engine, count, terminal, workspace, redaction, and rotated-log rejection
```

### TEST-3 intermediate

```sh
make test-single-request-claude-smoke-self-test
```

Output:

Exit status: 0

```text
./scripts/e2e-single-request-claude.sh --self-test
[single-request-claude-smoke] run manifest validated and written (redacted evidence only)
[single-request-claude-smoke] self-test passed: valid fake invocation and source, engine, count, terminal, workspace, redaction, and rotated-log rejection
```

### Final 1 — dependency

```sh
bash -c 'set -euo pipefail; shopt -s nullglob; candidates=(agent-task/m-iop-owned-single-request-agent-execution/22_*/complete.log agent-task/m-iop-owned-single-request-agent-execution/22+*/complete.log agent-task/archive/*/*/m-iop-owned-single-request-agent-execution/22_*/complete.log agent-task/archive/*/*/m-iop-owned-single-request-agent-execution/22+*/complete.log); printf "%s\n" "${candidates[@]}"; ((${#candidates[@]} == 1))'
```

Output:

Exit status: 0

```text
agent-task/archive/2026/08/m-iop-owned-single-request-agent-execution/22+21_executor_activation/complete.log
```

### Final 2 — shell syntax

```sh
bash -n scripts/e2e-single-request-claude.sh
```

Output:

Exit status: 0; no stdout/stderr.

### Final 3 — credential-free behavior

```sh
./scripts/e2e-single-request-claude.sh --self-test
```

Output:

Exit status: 0

```text
[single-request-claude-smoke] run manifest validated and written (redacted evidence only)
[single-request-claude-smoke] self-test passed: valid fake invocation and source, engine, count, terminal, workspace, redaction, and rotated-log rejection
```

### Final 4 — Make entry point

```sh
make test-single-request-claude-smoke-self-test
```

Output:

Exit status: 0

```text
./scripts/e2e-single-request-claude.sh --self-test
[single-request-claude-smoke] run manifest validated and written (redacted evidence only)
[single-request-claude-smoke] self-test passed: valid fake invocation and source, engine, count, terminal, workspace, redaction, and rotated-log rejection
```

### Final 5 — target/input inventory

```sh
rg --sort path -n 'test-single-request-claude-smoke|IOP_SINGLE_REQUEST_SMOKE_' Makefile
```

Output:

Exit status: 0. The output listed all four `test-single-request-claude-smoke*` targets and only the documented caller-supplied `IOP_SINGLE_REQUEST_SMOKE_*` variables in `Makefile` lines 195-234.

### Final 6 — aggregate isolation

```sh
bash -c 'set -euo pipefail; if rg --sort path -n "test-single-request-claude-smoke([^:]*):.*test-single-request-claude-smoke$" Makefile; then exit 1; else test $? -eq 1; fi'
```

Output:

Exit status: 0; no stdout/stderr. No aggregate target depends on the credentialed run target.

### Final 7 — diff

```sh
git diff --check
```

Output:

Exit status: 0; no stdout/stderr.

---

> **[IMPLEMENTING AGENT — BEFORE SAVING] Have you filled in every implementation-owned section?**
> If anything is blank, go back and fill it in before saving this file.
> Leave review-agent-only sections unchanged.

## Section Ownership

| Section | Owner | Note |
|---------|-------|------|
| Header comment, Overview, Review Agent Instructions | Fixed at stub creation | Implementing agent must not modify or execute these (archive, complete.log, and task-directory archive move are review-agent only) |
| Archive Evidence Snapshot | Fixed at stub creation from plan when present | Implementing agent uses it as prior-loop context; read only the cited archive files when more detail is required |
| Implementation Item Completion (item names) | Fixed at stub creation | Implementing agent checks `[ ]` → `[x]` only |
| Implementation Checklist (item text/order) | Fixed at stub creation from plan | Implementing agent checks `[ ]` → `[x]` only |
| Review-Only Checklist | Review agent only | Implementing agent must not modify or check this section |
| Deviations from Plan, Key Design Decisions | Implementing agent | Replace placeholder text with actual content |
| Reviewer Checkpoints | Fixed at stub creation | Pre-filled from plan |
| Verification Results (section headings + commands) | Fixed at stub creation | Implementing agent fills in command output only; command changes require a `Deviations from Plan` entry |
| Code Review Result | Review agent appends | Not included in stub |

## Code Review Result

- Overall Verdict: FAIL
- Dimension Assessment:
  - Correctness: Fail — the harness does not bind the Claude child to the requested public model and synthesizes engine and verification facts that were not established by the run.
  - Completeness: Fail — required executable, config, Mac workspace-owner, listener, and fail-before-invocation preflight checks are absent.
  - Test Coverage: Fail — the self-test does not exercise the missing model/config binding, fixed workspace verification, preflight child fence, or failure-path cleanup invariants.
  - API Contract: Fail — a successful manifest does not prove that the one Anthropic ingress targeted the admitted fixed single-request preset described by the S12 contract.
  - Code Quality: Fail — failure paths leave raw Claude capture files in temporary directories.
  - Implementation Deviation: Fail — the implemented preflight and evidence collector omit mandatory current-plan facts and replace observed facts with constants.
  - Verification Trust: Fail — the reported commands pass, but the tested fake path cannot establish the claimed engine binding, workspace verification, or cleanup guarantees.
  - Spec Conformance: Fail — SDD S12 evidence remains insufficient to demonstrate the required actual `Gemini → ornith-fast → Gemini` binding and final workspace verification.
- Findings:
  - Required R1 — `scripts/e2e-single-request-claude.sh:69`: the requested `--model` is never bound to Claude's model-selection contract. The child at line 89 exports `IOP_SINGLE_REQUEST_SMOKE_MODEL` instead of `ANTHROPIC_MODEL`, while the stage binding is only a digest of the config digest plus hard-coded engine names and lines 82-85 copy those names into the manifest without decoding the selected preset or joining them to observed execution. A wrong public model, wrong preset, or wrong actual stage binding can therefore produce apparently valid evidence. Export the requested model through the actual Claude model input, validate the exact public preset and canonical stage bindings from the checked Edge config/runtime snapshot, join each observed stage to that immutable binding, and add negative tests for model/preset/config/engine mismatches.
  - Required R2 — `scripts/e2e-single-request-claude.sh:69`: `preflight` only checks file presence, caller-supplied digests, a metrics fetch, and a caller-authored `workspace_os="darwin"` field. It does not prove the declared runner controls the Mac workspace owner, require executable binaries, validate Claude version/required flags, run the Edge config check, verify the Messages listener, or prove the observation file is the live append-only target before invoking the child. Implement the plan's safe read-only runtime/config/listener checks and make every missing or mismatched fact fail while the fake invocation marker remains zero.
  - Required R3 — `scripts/e2e-single-request-claude.sh:85`: the manifest hard-codes `verification.exit_code=0`; line 89 only checks that `smoke-result.txt` exists and hashes it. A pre-existing arbitrary file with an unchanged workspace can pass without Claude performing or verifying the fixed task. Establish a deterministic before-state, require the expected workspace transition, run the fixed verification command after the child, derive the recorded exit status and result digest from that command, and cover pre-existing/unchanged/wrong-content/failed-verification cases.
  - Required R4 — `scripts/e2e-single-request-claude.sh:89`: raw Claude stdout/stderr are written under a default `mktemp -d`, but cleanup uses a `RETURN` trap while `fail` exits the shell. Fresh reviewer self-tests left multiple `/tmp/tmp.*/out`, `err`, `fresh`, and `manifest` files behind, so a real failure can retain raw provider output. The subsequent `mv` from the default temporary filesystem to an arbitrary output path is also not guaranteed to be atomic. Install cleanup that runs on every exit/signal for one validated exact temp directory, stage the redacted manifest in the destination directory and atomically rename it only after validation, and add success/failure/interruption cleanup plus same-directory publication tests.
- Routing Signals:
  - `review_rework_count=1`
  - `evidence_integrity_failure=false`
- Next Step: Invoke the plan skill with Required findings R1-R4, route the smallest repository-fixable follow-up, and do not write `complete.log`.
