test(harness): establish shared live E2E kernel for Codex and Claude - #2159
Conversation
Persist the completed intent, phase verification, elections, audit ledger, and refreshed CodeKB evidence.
|
Note Reviews pausedIt looks like this branch is under active development. To avoid overwhelming you with review comments due to an influx of new commits, CodeRabbit has automatically paused this review. You can configure this behavior by changing the Use the following commands to manage reviews:
Use the checkboxes below for quick actions:
📝 WalkthroughWalkthroughライブ専用E2E基盤を追加しました。CodexとClaudeの4アダプター、共通ライフサイクル、資格情報隔離、台帳永続化、契約検証、生成マトリックス、ローカル実行手順を実装しました。 ChangesライブE2E基盤
Estimated code review effort: 5 (Critical) | ~120 minutes Possibly related PRs
🚥 Pre-merge checks | ✅ 4 | ❌ 1❌ Failed checks (1 warning)
✅ Passed checks (4 passed)
Comment |
There was a problem hiding this comment.
Cursor Bugbot has reviewed your changes using default effort and found 1 potential issue.
❌ Bugbot Autofix is OFF. To automatically fix reported issues with cloud agents, enable autofix in the Cursor dashboard.
Reviewed by Cursor Bugbot for commit cd02a55. Configure here.
There was a problem hiding this comment.
Actionable comments posted: 47
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/harness-engineering/live-e2e.md`:
- Line 9: Rewrite the “Both adapters” sentence in the live adapter requirements
paragraph to explicitly name claude-print and claude-tui. Preserve the existing
requirements for Claude Code, measured flags, and dist/claude, while leaving the
separate claude-sdk requirements unchanged.
In `@tests/e2e/t-claude-print-kernel.serial.test.ts`:
- Around line 29-33: 共有のライブ journey
テストヘルパーを新設し、currentGitSha、leakCheck、LEDGER、nativeKeychainAvailable
の定義を1箇所へ集約して各テストからインポートする。tests/e2e/t-claude-print-kernel.serial.test.ts#29-33
は定義を移行し、tests/e2e/t-claude-sdk-kernel.serial.test.ts#29-33 と
tests/e2e/t-claude-tui-kernel.serial.test.ts#31-35
はローカル定義を削除して共有ヘルパーを利用する。codex版テストにも同一定義があれば同じ共有ヘルパーへ統合する。
In `@tests/e2e/t-exec-codex-kernel.serial.test.ts`:
- Line 22: Move the LEDGER path construction in the e2e test to a temporary
directory outside the repository, using os.tmpdir() or the project’s existing
temporary-directory utility instead of REPO_ROOT. Preserve the runs.jsonl
filename and existing ledger behavior while preventing live test runs from
modifying the working tree.
- Around line 39-40: Sanitize SKIP_REASON before using it in the test name to
prevent absolute paths from appearing in test-runner output. Reuse the existing
sanitizeText function from contract.ts when constructing the template literal in
the test.skipIf block, while preserving the current skip-reason text and
behavior.
In `@tests/harness/claude-print-live.ts`:
- Around line 40-48: The Claude CLI minimum version is duplicated instead of
using the registry value. In tests/harness/claude-print-live.ts lines 40-48,
call createClaudeFamilyContext() once, parse CAPABILITY.minimumVersion, and use
that parsed value for versionAtLeast and the error message; apply the same
change in tests/harness/claude-tui-live.ts lines 40-44, replacing both hardcoded
version references with CAPABILITY.minimumVersion-derived values.
- Around line 11-15: 重複する CAPABILITY
解決処理を共通化してください。tests/harness/live-e2e/registry.ts に requireCapability
を追加し、capabilityById の失敗時は ID を含むエラーを投げ、成功時は resolved.value
を返すようにします。tests/harness/claude-print-live.ts の CAPABILITY は
"claude-print"、tests/harness/claude-sdk-live.ts は
"claude-sdk"、tests/harness/claude-tui-live.ts は "claude-tui"
を渡すヘルパー呼び出しへ置き換えてください。codex-exec-live.ts も配列インデックス参照から同じヘルパー経由へ移行してください。
- Around line 49-56: Add a finite timeout to both synchronous Claude CLI probes:
the `spawnSync` call that checks `--version` near line 40 and the `spawnSync`
call for `--help` in the capability gate. Preserve the existing availability
checks while ensuring an unresponsive `claudeBin` cannot block module evaluation
indefinitely.
In `@tests/harness/claude-tui-live.ts`:
- Around line 38-48: Update the three spawnSync calls in the capability checks
around tmuxBin and claudeBin to set explicit timeout and maxBuffer options,
matching the established values used by claude-print-live.ts. Preserve the
existing status, version, and help-flag validation while ensuring hung processes
terminate and large output does not cause false “capability unavailable”
results.
In `@tests/harness/codex-exec-live.ts`:
- Around line 32-39: Replace the positional LIVE_CAPABILITIES[0] lookup in the
environment-building code with capabilityById("codex-exec"), matching the other
live harnesses and ensuring the Codex declaration is selected by identity. Also
update live-e2e/codex.ts so its capability property uses
capabilityById("codex-exec") instead of the array index.
- Around line 79-82: Remove the unused _legacyAuthHome parameter from
setupCodexExecHome and update all callers to pass only prefix. Remove the
authHome option from setupCodexExecProject and every caller’s authHome
configuration, along with the source-auth fixture and auth.json generation.
In `@tests/harness/live-e2e/adapter.ts`:
- Around line 118-127: LiveRunContext の env メンバーに readonly
を追加し、他のコンテキストメンバーと同様に再代入不可として型の一貫性を保ってください。
In `@tests/harness/live-e2e/claude-sdk-worker.ts`:
- Around line 99-104: Move the SIGUSR1 handler registration involving
abortController and onAbort to the beginning of main(), before stdin is read or
frame processing begins, while preserving the existing abort behavior and
environment-variable setup.
- Around line 113-114: Update the exit-code decision after emitResult(result) to
inspect the terminal result event’s isError value, matching the isError emitted
by emitTerminal, rather than treating any nonempty resultEvents array as
success. Return 0 only when a terminal event exists and is not an error;
otherwise return 1.
In `@tests/harness/live-e2e/claude-sdk.ts`:
- Around line 463-496: Update cleanup in the adapter to clear
`#supervisorFailures` immediately after copying it into failures, so subsequent
journeys start with no previous supervisor failures while preserving the current
failure aggregation behavior.
- Around line 202-213: Update lineLimitKind and its callers so the queue-event
limit uses the current number of unprocessed events, while event-count-limit
uses the cumulative emitted event count. Preserve the byte and single-event
checks, ensure event-count-limit remains reachable, and avoid rejecting normal
journeys solely because cumulative events exceed the queue capacity.
- Around line 301-316: Remove the ineffective `secret = ""` reassignment from
`credentialFrame`; retain the existing `payload.fill(0)` and `frame` handling
without adding replacement string-clearing logic.
In `@tests/harness/live-e2e/claude-tui.ts`:
- Around line 302-340: Reduce the default polling overhead in the loop that
calls `#privateCommand`("capture-pane") by increasing the fallback poll interval
from 50 ms to at least 250 ms. Preserve the existing pollIntervalMs override and
all abort, capture, pane-limit, and anchor-verification behavior.
- Around line 383-400: Update `#waitForReady` so non-empty pane output is not
sufficient for readiness; detect the stable input-prompt text emitted by the
Claude TUI before returning ok. Add a bounded retry count or deadline using the
existing polling flow, and return a failed execution when the readiness deadline
is exceeded while preserving signal-abort handling and pane/command error
handling.
In `@tests/harness/live-e2e/claude.ts`:
- Around line 420-457: Update the cleanup flow in the ClaudePrintAdapter class
to retain a ResourceRegistrar reference, matching the lifecycle used by
claude-tui.ts. After cleanup completes successfully, call the registrar’s
markReleased for the resources represented by target.registeredResources; do not
mark them released when any process, binding, or scratch-directory cleanup
fails.
- Around line 369-377: Native authentication is unsupported in the scratch
environment, so restrict Claude preflight and execution to the API-key path. In
tests/harness/live-e2e/claude.ts:369-377 and
tests/harness/live-e2e/claude-tui.ts:255-263, stop exposing native bindings as
supported credentials and skip the native route during preflight; in
tests/harness/live-e2e/claude-sdk-worker.ts:102-104, remove reliance on
nativeKeychainAvailable and probeClaudeNativeCredential so only API-key
authentication is passed to the SDK worker.
In `@tests/harness/live-e2e/codex.ts`:
- Around line 119-133: Remove the duplicated parseVersion and versionAtLeast
implementations from codex.ts, and reuse the shared versions from the utility
introduced for createClaudeFamilyContext in claude.ts. Update imports and call
sites as needed while preserving the existing parsing and comparison behavior.
- Around line 241-244: Replace the unbounded stdoutPromise/stderrPromise
collection in the Codex adapter with a shared collectBounded utility extracted
from claude.ts. Preserve the existing limits of 1 MiB for stdout and 256 KiB for
stderr, and update both adapters to use the shared implementation without
duplicating the helper.
- Line 136: Update the Codex adapter’s readonly capability initialization to
resolve the capability via capabilityById(...) using the registered codex-exec
ID from registry.ts, instead of indexing LIVE_CAPABILITIES[0]. Keep the
resulting capability selection consistent with the other adapters and
independent of registry array order.
- Around line 267-301: Update cleanup so waiting for this.#activeProcess.exited
uses the same 10-second timeout pattern as claude.ts, preventing cleanup from
hanging when the process ignores termination. In cleanup, call
registrar.markReleased consistently with the other harness implementations, and
populate retainedResourceIds with attempted when failures exist instead of
always returning an empty list; preserve attempted as releasedResourceIds only
when cleanup succeeds.
In `@tests/harness/live-e2e/contract.ts`:
- Around line 40-53: Update sanitizeText so the truncation digest is computed
from the sanitized redacted text rather than the original value. Replace the
digest input in sanitizeText while preserving the existing token/path redaction,
length limit, and suffix format.
In `@tests/harness/live-e2e/journey.ts`:
- Around line 56-83: Update the passed condition in the assertion around
terminal validation so it directly checks terminal !== undefined immediately
before accessing terminal.type, terminal.subtype, and terminal.isError. Do not
rely on terminals.length or the terminalLast variable to narrow terminal, while
preserving the existing runtime conditions and validation behavior.
In `@tests/harness/live-e2e/ledger.ts`:
- Around line 393-416: 確認対象は appendRunReceipt と recoverRunReceipt
です。両関数が呼び出し側の契約上 Promise を返す必要があるかを確認し、必要なら現状の async を維持してください。不要であれば async と
Promise 戻り値を同期形式へ変更し、同期 I/O とロック保持の挙動はそのまま維持してください。
- Around line 74-78: LedgerOwnerToken.startedAtMs is written and validated but
never affects liveness or reaping. Remove this unused field and its related
serialization, deserialization, and validation from readOwner and
reapLedgerLock, while preserving pid-based processIsAlive behavior.
- Around line 218-231: Separate successful lock-directory creation from
owner-file stamping in the retry loop: track whether mkdirSync(lockPath)
succeeded, and when writeFileSync fails after that, remove the lock directory
immediately and return the existing “write-failed” ledger error. Keep the
existing owner-token check for races where this process did not create the
directory, and preserve the current reap/retry behavior for other failures.
In `@tests/harness/live-e2e/lifecycle.ts`:
- Around line 256-262: Ensure the allocation failure path around
context.allocator.allocate(registrar) performs partial cleanup before returning
contract-invalid. In the catch block, use registrar.snapshot() to run the
established cleanup barrier for resources already registered, while preserving
the sanitized error and existing failure result.
- Around line 288-293: appendRunReceipt 呼び出しに LedgerOptions
を渡せるよう、LiveRunContext にロックリトライ設定と fsyncDirectory を追加し、context
経由でオプションを受け渡すよう更新してください。統合テストからロック競合や fsync を制御できる状態を維持し、既存の ledger-write-failed
処理は変更しないでください。
In `@tests/harness/live-e2e/project-matrix.ts`:
- Around line 8-16: Update the top-level DOCUMENT and LEDGER path resolution in
project-matrix.ts to derive paths from import.meta.dir rather than
process.cwd(), using the repository-relative depth that matches the actual
directory structure. Before readFileSync in runMatrixCommand, guard a missing
LEDGER with the same existsSync-based handling used by currentLedger in
ledger.ts, so initial check/render runs return the expected empty or diagnostic
result instead of throwing ENOENT.
In `@tests/harness/live-e2e/projector.ts`:
- Line 34: Update the table-row construction around the capability rendering
expression so every interpolated cell value is passed through escapeCell
consistently, including harness, transport, anchorKinds, minimumVersion,
measuredVersion, followUpIssue, and the existing isolationSummary value.
Preserve the current displayed values while ensuring embedded pipe characters
cannot break the table structure.
- Around line 72-76: Update updateCapabilityMatrix to replace the located block
by its string indices rather than passing expectedBlock as the
String.prototype.replace replacement argument, preserving the document content
before and after actual while inserting expectedBlock verbatim.
In `@tests/harness/live-e2e/testing/claude-print-contract.ts`:
- Around line 37-40: Update the --setting-sources validation in the contract
check to require exactly one occurrence in observation.args and ensure its
following value is "project". Preserve the existing exactSettings check, and add
SETTINGS_PROJECT_ONLY to failed whenever the flag is missing, duplicated, or has
any other value.
In `@tests/harness/live-e2e/testing/contract-case.ts`:
- Around line 47-50: Update validFaultPlan to reject any fault point not
included in FAULT_POINTS before evaluating the existing single-point or
cleanup/leak combination rules, so plans such as ["typo"] return false while
valid plans retain their current behavior.
In `@tests/harness/live-e2e/testing/evidence.ts`:
- Around line 21-33: Update the evidence validation around expectedAssertionIds
to reject an empty expectation, require the mutant’s actual assertion IDs to
match the expected set exactly, and populate failedAssertionIds from the actual
violations rather than copying expectedAssertionIds. Preserve the existing
baseline and mutant status checks while ensuring unexpected extra violations
invalidate the generated evidence.
In `@tests/harness/sdk-drive.ts`:
- Around line 124-127: Update the DriveResult fields resultEvents and
messageTypes to be required arrays, since the construction path always assigns
them. Remove the now-unnecessary nullish and optional chaining fallbacks in
consumers such as the Claude SDK worker, and update any other DriveResult
fixtures or constructions revealed by type errors to provide both fields.
In `@tests/integration/t-live-e2e-claude-print.integration.test.ts`:
- Around line 152-154: Replace the Bun.file(...).size cleanup assertions in
tests/integration/t-live-e2e-claude-print.integration.test.ts lines 152-154 for
observed.cwd, observed.home, and observed.tmpdir with
existsSync(...).toBe(false) checks. Apply the same replacement to
observed.codeHome and observed.cwd in
tests/integration/t-live-e2e-codex.integration.test.ts lines 113-114, and add
existsSync to that file’s node:fs import.
- Around line 137-147: Update the environment-key assertion around
observed.environmentKeys so it no longer requires an exact host-dependent list.
Assert that the required keys are present as a subset and that forbidden keys
such as __MISE_-prefixed variables and __CF_USER_TEXT_ENCODING are absent,
allowing unrelated variables injected by local tools or CI.
In `@tests/integration/t-live-e2e-claude-sdk.integration.test.ts`:
- Around line 64-66: Remove the redundant executable-permission configuration in
the worker setup: eliminate either the writeFileSync mode option or the
subsequent chmodSync(worker, 0o700) call, while preserving worker creation and
process.execPath-based execution.
- Around line 109-125: Update the adapter function’s overrides parameter to use
Partial<ClaudeSdkAdapterOptions>, importing ClaudeSdkAdapterOptions as a type
from the live-e2e Claude SDK harness so invalid option keys are caught by type
checking.
- Around line 35-44: Replace the hardcoded frameReads value in the fixture with
an actual second stdin read, record its byte length as secondReadLength, and
update the corresponding assertion to expect zero. Preserve the existing
first-read observations while ensuring the test verifies
SDK_CREDENTIAL_PIPE_SINGLE_USE prevents additional input.
In `@tests/unit/t-claude-sdk-live-gate.test.ts`:
- Around line 90-95: Update the mutant cases in the `mutant` array so each
mutation violates only one assertion: replace the `events.filter((event) =>
event.kind !== "assistant")` case with a mutation such as setting `byteLength`
to zero while preserving event order and ordinals, and replace the
duplicated-terminal case with a mutation that changes only one terminal property
without altering `terminals.length` and `terminalLast` together.
In `@tests/unit/t-claude-tui-live-gate.test.ts`:
- Around line 23-48: Extend the test around capabilityById("claude-tui") and
createClaudeTuiJourney().assert to verify the TUI capability’s minimumVersion
and add negative assertions for mutated structured results where anchorVerified
is false and inputCount is 2, confirming passed is false. Keep the existing
successful contract assertion unchanged and match the validation coverage of the
print and SDK live-gate tests.
In `@tests/unit/t-live-e2e-kernel.test.ts`:
- Around line 93-100: Update the test named “registry validation catches
duplicates and incomplete supported entries” so its name matches the assertions:
either add an assertion covering an incomplete supported entry or remove
“incomplete supported entries” from the test name, while preserving the existing
duplicate-id validation.
- Around line 38-49: Update the denied-value corpus in the test.each case for
evaluateLiveGate to include the whitespace-padded strings " 1" and "1 ",
matching t-claude-print-live-gate.test.ts and t-claude-sdk-live-gate.test.ts
while preserving the existing exact-string-one opt-in assertion.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 4c070ef5-201a-407a-a78e-dca026f417b7
⛔ Files ignored due to path filters (275)
amadeus/spaces/default/codekb/amadeus/re-scans/260803-harness-live-e2e.mdis excluded by!amadeus/spaces/*/codekb/**amadeus/spaces/default/elections/260803-e-hle-ad13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/ballots/subagent-1-amend.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/subagent-2-ballot.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/elections.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/intents/260803-harness-live-e2e/amadeus-state.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/audit/j5ik2o-mac-studio-lan-6c5247e7ede8.jsonlis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/ballot-subagent-1-bt13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/ballot-subagent-2-bt13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/build-and-test-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/build-instructions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/build-test-results.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/election-definition-bt13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/integration-test-instructions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/performance-test-instructions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/security-test-instructions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/unit-test-instructions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/code-generation/code-generation-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/code-generation/code-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/code-generation/code-generation-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/code-generation/code-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/code-generation/code-generation-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/code-generation/code-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/code-generation/code-generation-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/code-generation/code-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/functional-design/ballot-subagent-1-fd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/functional-design/ballot-subagent-2-fd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/functional-design/election-definition-fd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/functional-design/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/functional-design/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/code-generation/code-generation-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/code-generation/code-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/nfr-design/ballot-subagent-1-nd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/nfr-design/ballot-subagent-2-nd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/nfr-design/election-definition-nd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/nfr-design/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/nfr-design/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/intent-capture/intent-capture-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/intent-capture/intent-statement.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/intent-capture/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/intent-capture/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/intent-capture/stakeholder-map.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/scope-definition/intent-backlog.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/scope-definition/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/scope-definition/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/scope-definition/scope-definition-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/scope-definition/scope-document.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/application-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/component-dependency.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/component-methods.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/decisions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/election-definition-ad13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/services.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/bolt-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/delivery-planning-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/external-dependency-map.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/risk-and-sequencing-rationale.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/team-allocation.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/ballot-subagent-1-res13-zero.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/ballot-subagent-1-res13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/ballot-subagent-2-res13-zero.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/ballot-subagent-2-res13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/election-definition-res13-zero.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/election-definition-res13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/requirements-analysis-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/requirements.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/reverse-engineering/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/reverse-engineering/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/reverse-engineering/scan-notes.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/election-definition-ug13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/learnings-election-r2.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/learnings-election-r3.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/unit-of-work-dependency.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/unit-of-work-story-map.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/unit-of-work.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/units-generation-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/verification/phase-check-construction.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/verification/phase-check-ideation.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/verification/phase-check-inception.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/intents.jsonis excluded by!amadeus/spaces/*/intents/**
📒 Files selected for processing (46)
docs/harness-engineering/live-e2e.mdtests/e2e/t-claude-print-kernel.serial.test.tstests/e2e/t-claude-sdk-kernel.serial.test.tstests/e2e/t-claude-tui-kernel.serial.test.tstests/e2e/t-exec-codex-kernel.serial.test.tstests/harness/claude-print-live.tstests/harness/claude-sdk-live.tstests/harness/claude-tui-live.tstests/harness/codex-exec-live.tstests/harness/live-e2e/adapter.tstests/harness/live-e2e/claude-sdk-worker.tstests/harness/live-e2e/claude-sdk.tstests/harness/live-e2e/claude-tui.tstests/harness/live-e2e/claude.tstests/harness/live-e2e/codex.tstests/harness/live-e2e/contract.tstests/harness/live-e2e/journey.tstests/harness/live-e2e/ledger.tstests/harness/live-e2e/lifecycle.tstests/harness/live-e2e/policy.tstests/harness/live-e2e/project-matrix.tstests/harness/live-e2e/projector.tstests/harness/live-e2e/registry.tstests/harness/live-e2e/resources.tstests/harness/live-e2e/runs.jsonltests/harness/live-e2e/testing/claude-print-contract.tstests/harness/live-e2e/testing/claude-sdk-contract.tstests/harness/live-e2e/testing/contract-case.tstests/harness/live-e2e/testing/evidence.tstests/harness/live-e2e/testing/fakes.tstests/harness/live-e2e/testing/oracle.tstests/harness/sdk-drive.tstests/integration/t-codex-exec-live-helper.test.tstests/integration/t-live-e2e-claude-print.integration.test.tstests/integration/t-live-e2e-claude-sdk.integration.test.tstests/integration/t-live-e2e-claude-tui.integration.test.tstests/integration/t-live-e2e-codex.integration.test.tstests/integration/t-live-e2e-hardening-kit.integration.test.tstests/integration/t-live-e2e-lifecycle.integration.test.tstests/integration/t-live-e2e-runbook.test.tstests/unit/t-claude-print-live-gate.test.tstests/unit/t-claude-sdk-live-gate.test.tstests/unit/t-claude-tui-live-gate.test.tstests/unit/t-codex-exec-live-gate.test.tstests/unit/t-live-e2e-hardening-kit.test.tstests/unit/t-live-e2e-kernel.test.ts
There was a problem hiding this comment.
Actionable comments posted: 31
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tests/harness/claude-sdk-live.ts`:
- Around line 39-42: Unify the minimum-version source used by the availability
check around probeClaudeSdkVersion so CLAUDE_SDK_MINIMUM_VERSION is not
maintained separately from the registry minimumVersion. Reuse the registry’s
existing minimumVersion value for both isClaudeSdkVersionSupported and the
unavailable-message text, preserving the current behavior and message content.
In `@tests/harness/codex-exec-live.ts`:
- Around line 56-62: Update the spawnSync call in the probeEnvironment/version
detection flow to set an explicit timeout so an unresponsive codexBin cannot
block module evaluation indefinitely, and add a suitably small maxBuffer for the
--version output.
In `@tests/harness/live-e2e/claude-sdk-worker.ts`:
- Around line 115-119: Remove the `frame = { runNonce: "", generation: 0,
childKey: "", secret: "" }` reassignment from the `finally` block, since it does
not erase the immutable secret string and provides no protection. Keep the
SIGUSR1 cleanup and conditional `process.env` deletion unchanged; apply the same
removal to the corresponding `secret = ""` cleanup in `claude-sdk.ts`.
- Around line 122-137: Remove the hardcoded projectSettings and structuredResult
fields from the --probe output in the main entrypoint, and remove their
corresponding conditions from the supported evaluation in claude-sdk.ts. Keep
the probe limited to capabilities it actually verifies, such as
probeClaudeSdkVersion, query, and AbortController.
In `@tests/harness/live-e2e/claude-sdk.ts`:
- Line 426: Update the worker-group resource ID used by the registrar around
markCreated and the prepare flow to reference one shared module-level constant
instead of repeating the string literal. Promote the existing prepare-local
workerId value to that module constant, then reuse it wherever the worker ID is
needed.
- Around line 463-496:
3つのcleanup実装で、CleanupReceiptをfailures.lengthではなくResourceRegistrarの状態から導出する共通ヘルパーへ統一してください。tests/harness/live-e2e/claude-sdk.ts
463-496では、worker停止とbinding.release()成功時にregistrar.markReleased(...)を呼び、releasedResourceIdsをstate
=== "released"から算出してください。tests/harness/live-e2e/claude-tui.ts
343-349では、identityがundefinedの場合を未作成として扱い、tmuxリソースを無条件にreleasedResourceIdsへ含めないでください。tests/harness/live-e2e/codex.ts
267-301では同様にmarkReleased(...)を呼び、retainedResourceIdsを失敗時はattempted、成功時は空配列として算出してください。
In `@tests/harness/live-e2e/claude-tui.ts`:
- Around line 343-349: Update cleanup around ResourceRegistrar and
releasedResourceIds so only registeredResources entries whose state is
"released" are reported as released. Do not derive releasedResourceIds solely
from attempted resources, especially when `#identity` is undefined after prepare
fails; preserve failure reporting while keeping the receipt aligned with actual
resource state.
- Around line 254-271: In the prepare flow around credentialEnvironment, avoid
calling binding.expose() or storing the credential value in the prepared
environment. Defer credential resolution to resolveEnvironment, matching the
lazy behavior in codex.ts: build the base environment during prepare, then
expose and add the credential only when resolving the environment, while
preserving environmentKeys and non-credential variables.
In `@tests/harness/live-e2e/claude.ts`:
- Around line 410-417: Update the result object in the execution method
containing `AdapterExecution` so `timedOut` and `aborted` no longer expose
identical `signal.aborted` values. If timeout and explicit cancellation are
intentionally distinct, pass and use the cancellation reason from the caller;
otherwise remove the redundant field and update `AdapterExecution` consumers
accordingly.
- Around line 394-403: Update execute so the Bun.spawn cmd construction omits
the prompt argument entirely when run.prompt is undefined, while preserving the
existing prompt argument when it is defined. Use the surrounding execute method
and run.prompt handling as the change point rather than passing an empty
fallback value.
- Around line 235-268: Update probeClaudeCli and probeClaudeNativeCredential to
pass the harness timeout to every spawnSync call, including the --version and
--help probes, so unresponsive Claude processes cannot block preflight. Replace
the hard-coded [2, 1, 220] check and matching diagnostic in probeClaudeCli with
the minimum version from CAPABILITY.minimumVersion, parsing that registry value
through the existing version helpers; apply the same registry-based minimum
wherever the harness performs this Claude version check.
- Around line 199-208: Update initializeGit to accept the scratch home directory
and parent environment, and invoke it with homeDir and process.env from its
caller. For each spawnSync call, build the child environment via
buildChildEnvironment, overlay HOME with the scratch home, and explicitly set
commit.gpgsign=false so user Git configuration cannot affect the isolated
project.
In `@tests/harness/live-e2e/contract.ts`:
- Around line 71-77: Update the key sorting in stableJson to use deterministic
code-point ordering instead of localeCompare. Keep the existing Object.entries
sorting and serialization behavior unchanged so identical keys produce the same
output across environments.
- Around line 71-80: Update stableJson to produce valid JSON for undefined
values: omit object entries whose value is undefined, while serializing
undefined array elements as null. Preserve the existing stable key sorting and
recursive serialization behavior for all other values.
In `@tests/harness/live-e2e/policy.ts`:
- Around line 62-82: Move declaration-only validation from buildChildEnvironment
into validateCapabilityRegistry, including duplicate forbidden/allowed key
checks, so invalid registries are rejected during startup. Simplify
buildChildEnvironment to construct and return the child environment without a
runtime Result error path. Update codex-exec-live.ts, claude-print-live.ts,
claude-tui.ts, and claude.ts to consume the direct environment result and remove
isolated.ok branching.
In `@tests/harness/live-e2e/registry.ts`:
- Around line 93-117: Update validateCapabilityRegistry so status "unverified"
also requires followUpIssue, producing the existing missing-issue finding when
absent; retain the current unsupported validation and supported completeness
checks.
- Around line 26-91: LIVE_CAPABILITIES の measuredVersion
が実測値ではなく「最後に検証したバージョン」の参考値であることを、フィールド名または LiveCapability
の型定義コメントで明示してください。minimumVersion は契約値として維持し、preflight の
PreflightResult.measuredVersion とは別の意味だと区別できるようにしてください。
In `@tests/harness/live-e2e/testing/claude-print-contract.ts`:
- Around line 14-19: Extract SIDE_EFFECT_CALLS, BASE_ENVIRONMENT, and sameSet
into the shared module tests/harness/live-e2e/testing/contract-shared.ts,
preserving their existing values and behavior. In
tests/harness/live-e2e/testing/claude-print-contract.ts lines 14-19, remove the
local definitions and import the shared symbols; retain the authStrategy ===
"api-key" ANTHROPIC_API_KEY addition locally. In
tests/harness/live-e2e/testing/claude-sdk-contract.ts lines 25-30, remove
SIDE_EFFECT_CALLS, EXPECTED_ENV, and sameSet, import SIDE_EFFECT_CALLS,
BASE_ENVIRONMENT, and sameSet from the shared module, and use the shared
BASE_ENVIRONMENT in place of EXPECTED_ENV.
In `@tests/harness/live-e2e/testing/fakes.ts`:
- Around line 70-85: Update the timeout branch in execute to check
signal.aborted before registering the abort listener, and resolve the wait
immediately through the same abort/reap recording path when it is already
aborted. Preserve the existing listener behavior for signals that become aborted
later and continue returning the timeout execution result.
- Around line 63-64: In the relevant fake setup, bind the resolved binding key
to a local constant before constructing the environment configuration, using the
same fallback behavior in all cases. Update both environmentKeys and the
resolveEnvironment closure to reference that captured value rather than reading
this.#binding independently, so cleanup cannot make the two keys diverge.
In `@tests/harness/live-e2e/testing/oracle.ts`:
- Around line 4-16: Unify the canonical LiveCode source by defining the complete
LIVE_CODES array in contract.ts, rather than maintaining codes separately in
CANONICAL_LIVE_CODES and CLOSED_TAXONOMY. Update both CANONICAL_LIVE_CODES and
CLOSED_TAXONOMY to derive from LIVE_CODES, preserving the existing code order
and ensuring additions to LiveCode cannot leave either taxonomy out of sync.
In `@tests/harness/sdk-drive.ts`:
- Around line 352-356: Update the settings construction around shipped and
project so settingsAuthority "project-only" always loads project settings via
readClaudeSettings(projectSettingsPath). Do not reuse the shipped value when
projectSettingsPath equals SHIPPED_SETTINGS; preserve the existing
shipped-settings behavior for other authorities.
- Around line 459-461: Update the error-handling condition in driveAidlc’s catch
path to include the parent-abort state (parentAborted) alongside timedOut,
stoppedAfterAskUserQuestion, and stoppedAfterToolResult. Ensure an
already-aborted opts.abortSignal returns the partial result instead of
rethrowing the SDK error, while preserving existing handling for other stop
conditions.
In `@tests/integration/t-live-e2e-claude-tui.integration.test.ts`:
- Line 140: Update the assertion in the integration test to use existsSync for
the runs.jsonl path and expect false, so file creation is detected correctly;
also add existsSync to the existing node:fs import.
In `@tests/integration/t-live-e2e-codex.integration.test.ts`:
- Around line 113-114: Update the cleanup assertions in the live E2E test to
verify directory removal with existsSync rather than Bun.file(...).size. Import
existsSync from node:fs, and replace both assertions for observed.codeHome and
observed.cwd with existsSync(path).toBe(false).
In `@tests/integration/t-live-e2e-runbook.test.ts`:
- Around line 29-30: Replace the broad document assertions for "driver" and
"installer" in the runbook test with distinctive, context-specific phrases tied
to the relevant section, such as exact heading or instruction text under "##
Distribution change trigger". Keep the assertions validating the intended
runbook content rather than merely matching common words.
- Around line 8-9: DOCUMENT_PATH と LEDGER_PATH の CWD 依存をなくし、両方をリポジトリルートを示す既存の
REPO_ROOT 基準で解決するよう更新してください。その他のパス構成やテスト動作は変更しないでください。
In `@tests/unit/t-claude-print-live-gate.test.ts`:
- Around line 89-93:
テストコーパスに、同じ「--setting-sources」フラグを2回指定する変異ケースを追加してください。既存の「project-settings-only」ケースはそのまま維持し、adjudicateClaudePrintContract
が最初の一致だけを検証する欠陥を検出できるよう、重複指定を含む別の mutant を baseline() の引数に追加してください。
In `@tests/unit/t-codex-exec-live-gate.test.ts`:
- Around line 41-53: Update the test around codexExecLiveRequirementsSkipReason
so it verifies the allow-listed PATH behavior rather than only the
insufficient-version skip reason: use an absolute fixture executable that
reports version 0.146.0 and assert that changing PATH changes the result, or
rename the test to accurately describe the insufficient-version case if that is
the intended scope.
In `@tests/unit/t-live-e2e-hardening-kit.test.ts`:
- Line 78: テスト内の validateContractCase 呼び出しで validated()
の戻り値をスプレッドするのをやめ、validated: true を含まない素の ContractCase リテラルを渡してください。faults が
["cleanup", "leak"] のケースで検証結果が成功する既存の期待値は維持してください。
- Around line 93-99: Replace the positional LIVE_CAPABILITIES[0] argument in the
evaluateLiveGate test with the capability returned by
capabilityById("codex-exec"). Keep the existing propertyCase value and expected
decision assertions unchanged while removing the dependency on capability
registration order.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: af720d20-7ef7-4d3f-99fc-06d4a402eb57
⛔ Files ignored due to path filters (275)
amadeus/spaces/default/codekb/amadeus/re-scans/260803-harness-live-e2e.mdis excluded by!amadeus/spaces/*/codekb/**amadeus/spaces/default/elections/260803-e-hle-ad13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ad13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-fd13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ics13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13-zero/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ra13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/ballots/subagent-1-amend.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-res13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/subagent-2-ballot.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-sds13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r2/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13-r3/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260803-e-hle-ug13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-bt13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/ballots/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/ballots/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/election.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/ledger.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/record.mdis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/tally.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/timeline.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/views/subagent-1.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/260804-e-hle-nd13/views/subagent-2.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/elections/elections.jsonis excluded by!amadeus/spaces/*/elections/**amadeus/spaces/default/intents/260803-harness-live-e2e/amadeus-state.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/audit/j5ik2o-mac-studio-lan-6c5247e7ede8.jsonlis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/ballot-subagent-1-bt13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/ballot-subagent-2-bt13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/build-and-test-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/build-instructions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/build-test-results.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/election-definition-bt13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/integration-test-instructions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/performance-test-instructions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/security-test-instructions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/build-and-test/unit-test-instructions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/code-generation/code-generation-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/code-generation/code-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-print-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/code-generation/code-generation-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/code-generation/code-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-sdk-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/code-generation/code-generation-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/code-generation/code-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/claude-tui-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/code-generation/code-generation-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/code-generation/code-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/codex-live-walking-skeleton/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/cursor-live-closure/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/functional-design/ballot-subagent-1-fd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/functional-design/ballot-subagent-2-fd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/functional-design/election-definition-fd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/functional-design/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/functional-design/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kimi-print-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-acp-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-ide-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/kiro-tui-live/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/code-generation/code-generation-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/code-generation/code-summary.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/live-e2e-common-hardening/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/nfr-design/ballot-subagent-1-nd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/nfr-design/ballot-subagent-2-nd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/nfr-design/election-definition-nd13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/nfr-design/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/nfr-design/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/functional-design/business-logic-model.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/functional-design/business-rules.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/functional-design/domain-entities.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/functional-design/functional-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/nfr-design/logical-components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/nfr-design/nfr-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/construction/opencode-live-closure/nfr-design/security-design.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/intent-capture/intent-capture-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/intent-capture/intent-statement.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/intent-capture/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/intent-capture/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/intent-capture/stakeholder-map.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/scope-definition/intent-backlog.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/scope-definition/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/scope-definition/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/scope-definition/scope-definition-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/ideation/scope-definition/scope-document.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/application-design-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/component-dependency.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/component-methods.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/components.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/decisions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/election-definition-ad13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/application-design/services.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/bolt-plan.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/delivery-planning-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/external-dependency-map.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/risk-and-sequencing-rationale.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/delivery-planning/team-allocation.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/ballot-subagent-1-res13-zero.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/ballot-subagent-1-res13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/ballot-subagent-2-res13-zero.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/ballot-subagent-2-res13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/election-definition-res13-zero.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/election-definition-res13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/requirements-analysis-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/requirements-analysis/requirements.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/reverse-engineering/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/reverse-engineering/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/reverse-engineering/scan-notes.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/election-definition-ug13.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/learnings-election-r2.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/learnings-election-r3.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/learnings-selections.jsonis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/memory.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/unit-of-work-dependency.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/unit-of-work-story-map.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/unit-of-work.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/inception/units-generation/units-generation-questions.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/verification/phase-check-construction.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/verification/phase-check-ideation.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/260803-harness-live-e2e/verification/phase-check-inception.mdis excluded by!amadeus/spaces/*/intents/**amadeus/spaces/default/intents/intents.jsonis excluded by!amadeus/spaces/*/intents/**
📒 Files selected for processing (48)
docs/harness-engineering/live-e2e.mdtests/e2e/t-claude-print-kernel.serial.test.tstests/e2e/t-claude-sdk-kernel.serial.test.tstests/e2e/t-claude-tui-kernel.serial.test.tstests/e2e/t-exec-codex-kernel.serial.test.tstests/harness/claude-print-live.tstests/harness/claude-sdk-live.tstests/harness/claude-tui-live.tstests/harness/codex-exec-live.tstests/harness/live-e2e/adapter.tstests/harness/live-e2e/claude-sdk-worker.tstests/harness/live-e2e/claude-sdk.tstests/harness/live-e2e/claude-tui.tstests/harness/live-e2e/claude.tstests/harness/live-e2e/codex.tstests/harness/live-e2e/contract.tstests/harness/live-e2e/journey.tstests/harness/live-e2e/ledger.tstests/harness/live-e2e/lifecycle.tstests/harness/live-e2e/policy.tstests/harness/live-e2e/project-matrix.tstests/harness/live-e2e/projector.tstests/harness/live-e2e/registry.tstests/harness/live-e2e/resources.tstests/harness/live-e2e/runs.jsonltests/harness/live-e2e/testing/claude-print-contract.tstests/harness/live-e2e/testing/claude-sdk-contract.tstests/harness/live-e2e/testing/contract-case.tstests/harness/live-e2e/testing/evidence.tstests/harness/live-e2e/testing/fakes.tstests/harness/live-e2e/testing/oracle.tstests/harness/sdk-drive.tstests/integration/t-codex-exec-live-helper.test.tstests/integration/t-live-e2e-claude-print.integration.test.tstests/integration/t-live-e2e-claude-sdk.integration.test.tstests/integration/t-live-e2e-claude-tui.integration.test.tstests/integration/t-live-e2e-codex.integration.test.tstests/integration/t-live-e2e-hardening-kit.integration.test.tstests/integration/t-live-e2e-lifecycle.integration.test.tstests/integration/t-live-e2e-runbook.test.tstests/no-silent-drop/baseline.jsontests/no-silent-drop/exemptions.jsontests/unit/t-claude-print-live-gate.test.tstests/unit/t-claude-sdk-live-gate.test.tstests/unit/t-claude-tui-live-gate.test.tstests/unit/t-codex-exec-live-gate.test.tstests/unit/t-live-e2e-hardening-kit.test.tstests/unit/t-live-e2e-kernel.test.ts
There was a problem hiding this comment.
Actionable comments posted: 5
Caution
Some comments are outside the diff and can’t be posted inline due to platform limitations.
⚠️ Outside diff range comments (2)
tests/harness/live-e2e/claude-tui.ts (1)
165-197: 🩺 Stability & Availability | 🟠 Major | ⚡ Quick winpreflight の CLI probe を bounded にし、registry の
minimumVersionを使用してください。
runLiveJourneyはadapter.preflightを journey timeout の前に実行します。spawnSyncが応答しない場合、Bun のイベントループが無期限に停止します。
tests/harness/live-e2e/claude-tui.ts:--versionと--helpにtimeout: 15_000を追加し、CAPABILITY.minimumVersionを解析して判定と診断文に使用してください。tests/harness/live-e2e/codex.ts:--versionにtimeout: 15_000とmaxBufferを追加し、CAPABILITY.minimumVersionから判定と診断文を導出してください。🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tests/harness/live-e2e/claude-tui.ts` around lines 165 - 197, Bound the preflight CLI probes before runLiveJourney can block: in tests/harness/live-e2e/claude-tui.ts lines 165-197, add a 15,000 ms timeout to both --version and --help spawnSync calls, and derive the version threshold and diagnostic from CAPABILITY.minimumVersion instead of hard-coding 2.1.220. In tests/harness/live-e2e/codex.ts lines 135-154, add a 15,000 ms timeout and maxBuffer to the --version spawnSync call, and derive its version check and diagnostic from CAPABILITY.minimumVersion.tests/unit/t-live-e2e-kernel.test.ts (1)
56-67: 🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win有効値
"1"の成功ケースも検証してください。このテストは拒否値だけを検証します。すべての値を拒否する実装でも成功します。
evaluateLiveGate({ AMADEUS_CODEX_EXEC_LIVE: "1" }, capability)が許可結果を返すことを別ケースで固定してください。🤖 Prompt for AI Agents
Verify each finding against current code. Fix only still-valid issues, skip the rest with a brief reason, keep changes minimal, and validate. In `@tests/unit/t-live-e2e-kernel.test.ts` around lines 56 - 67, Add a separate success-case test for evaluateLiveGate using the first LIVE_CAPABILITIES entry and the exact opt-in value "1"; assert that it returns the expected allowed result rather than a skip, while leaving the existing denial cases unchanged.
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@docs/harness-engineering/live-e2e.md`:
- Line 9: Clarify the Claude authentication statement in the live E2E
requirements so the ANTHROPIC_API_KEY requirement applies only to adapters that
require it. Explicitly preserve the documented exception for claude-print using
native keychain login, allowing the API key to be omitted in that mode.
In `@tests/e2e/t-claude-sdk-kernel.serial.test.ts`:
- Around line 30-32: Sanitize the skip reason before embedding it in the test
name and CI output. In the Claude SDK live E2E test’s `describe` block, apply
`sanitizeText` to `SKIP_REASON` with a 120-character limit, matching the
existing Codex E2E behavior.
In `@tests/harness/live-e2e/claude-sdk.ts`:
- Around line 200-210: The queue-event limit currently uses the full reader
chunk size rather than the actual asynchronous backlog. Update the processing
around lineLimitKind and the queuedLines handling to process lines sequentially
and pass the real number of pending queued events for each line, so chunk
boundaries do not affect valid output. Add a regression test covering 17 valid
JSONL events delivered in one chunk without triggering queue-event-limit.
In `@tests/harness/live-e2e/claude.ts`:
- Around line 317-323: prepare 内の environment 構築では binding.expose()
を実行せず、environment には非機密値のみを保持してください。credential key は environmentKeys
に明示的に追加し、resolveEnvironment() で binding.expose() を実行して実行時だけ環境へ注入するように変更してください。
In `@tests/no-silent-drop/adoption-evidence-manifest.json`:
- Around line 19-27: 対象 SHA で各 command
を再実行し、tests/no-silent-drop/adoption-evidence-manifest.json の 19-27
行、tests/no-silent-drop/adoption-evidence.json の 3-10
行、tests/no-silent-drop/evidence/adoption-runs.json の 24 行を更新してください。3 ファイルすべてで
testedRevision と currentRevision を対象 SHA に合わせ、再生成した artifact の SHA-256 および全
evidenceDigest を新しい実行結果に置き換えてください。
---
Outside diff comments:
In `@tests/harness/live-e2e/claude-tui.ts`:
- Around line 165-197: Bound the preflight CLI probes before runLiveJourney can
block: in tests/harness/live-e2e/claude-tui.ts lines 165-197, add a 15,000 ms
timeout to both --version and --help spawnSync calls, and derive the version
threshold and diagnostic from CAPABILITY.minimumVersion instead of hard-coding
2.1.220. In tests/harness/live-e2e/codex.ts lines 135-154, add a 15,000 ms
timeout and maxBuffer to the --version spawnSync call, and derive its version
check and diagnostic from CAPABILITY.minimumVersion.
In `@tests/unit/t-live-e2e-kernel.test.ts`:
- Around line 56-67: Add a separate success-case test for evaluateLiveGate using
the first LIVE_CAPABILITIES entry and the exact opt-in value "1"; assert that it
returns the expected allowed result rather than a skip, while leaving the
existing denial cases unchanged.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: eb8b10c3-25b6-4946-8def-843a4cb0e678
📒 Files selected for processing (59)
docs/harness-engineering/live-e2e.mdtests/.coverage-patch-allowlist.jsontests/e2e/t-claude-print-kernel.serial.test.tstests/e2e/t-claude-sdk-kernel.serial.test.tstests/e2e/t-claude-tui-kernel.serial.test.tstests/e2e/t-exec-codex-autosolo-s13.serial.test.tstests/e2e/t-exec-codex-compose-front.serial.test.tstests/e2e/t-exec-codex-journey-workspace.serial.test.tstests/e2e/t-exec-codex-kernel.serial.test.tstests/e2e/t-exec-codex-memory-include.serial.test.tstests/e2e/t-exec-codex-status.serial.test.tstests/harness/claude-print-live.tstests/harness/claude-sdk-live.tstests/harness/claude-tui-live.tstests/harness/codex-exec-live.tstests/harness/live-e2e/adapter.tstests/harness/live-e2e/claude-sdk-worker.tstests/harness/live-e2e/claude-sdk.tstests/harness/live-e2e/claude-tui.tstests/harness/live-e2e/claude.tstests/harness/live-e2e/codex.tstests/harness/live-e2e/contract.tstests/harness/live-e2e/journey.tstests/harness/live-e2e/ledger.tstests/harness/live-e2e/lifecycle.tstests/harness/live-e2e/project-matrix.tstests/harness/live-e2e/projector.tstests/harness/live-e2e/registry.tstests/harness/live-e2e/resources.tstests/harness/live-e2e/stream.tstests/harness/live-e2e/testing/claude-contract-common.tstests/harness/live-e2e/testing/claude-print-contract.tstests/harness/live-e2e/testing/claude-sdk-contract.tstests/harness/live-e2e/testing/contract-case.tstests/harness/live-e2e/testing/evidence.tstests/harness/live-e2e/testing/fakes.tstests/harness/live-e2e/testing/live-kernel.tstests/harness/live-e2e/testing/oracle.tstests/harness/live-e2e/version.tstests/harness/sdk-drive.tstests/integration/sdk-drive.calibration.test.tstests/integration/t-advisory-human-choice-domain.test.tstests/integration/t-codex-exec-live-helper.test.tstests/integration/t-live-e2e-claude-print.integration.test.tstests/integration/t-live-e2e-claude-sdk.integration.test.tstests/integration/t-live-e2e-claude-tui.integration.test.tstests/integration/t-live-e2e-codex.integration.test.tstests/integration/t-live-e2e-lifecycle.integration.test.tstests/integration/t-live-e2e-runbook.test.tstests/no-silent-drop/adoption-evidence-manifest.jsontests/no-silent-drop/adoption-evidence.jsontests/no-silent-drop/evidence/adoption-runs.jsontests/unit/t-claude-print-live-gate.test.tstests/unit/t-claude-sdk-live-gate.test.tstests/unit/t-claude-tui-live-gate.test.tstests/unit/t-codex-exec-live-gate.test.tstests/unit/t-live-e2e-hardening-kit.test.tstests/unit/t-live-e2e-kernel.test.tstests/unit/t140-sdk-drive-model-resolution.test.ts
💤 Files with no reviewable changes (2)
- tests/unit/t-codex-exec-live-gate.test.ts
- tests/.coverage-patch-allowlist.json
There was a problem hiding this comment.
Actionable comments posted: 5
🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.
Inline comments:
In `@tests/.coverage-patch-allowlist.json`:
- Around line 3747-3756: Consider removing the unreachable defensive branch in
runLiveJourney instead of maintaining its coverage allowlist entry and
fingerprint. If the branch is still needed, replace it with a single assertion
while preserving the adapter outcome contract; retain the allowlist only if
adapter outcomes may become untyped external input.
- Around line 3758-3833: Prioritize a follow-up to add an injectable SDK
query-stream seam to driveAidlc in tests/harness/sdk-drive.ts. Route the real
Claude Agent SDK stream through that seam so offline tests can cover
result/message accumulation, abort forwarding and swallowing, listener cleanup,
and final result arrays; then remove the seven driveAidlc entries from
tests/.coverage-patch-allowlist.json and regenerate coverage fingerprints as
needed.
In `@tests/harness/live-e2e/claude-sdk-worker.ts`:
- Around line 135-149: Update runSdkWorker so parseCredentialFrame and the
subsequent worker flow are wrapped in a single try/finally that always calls
ports.offSignal for the SIGUSR1 handler. Ensure parsing failures also reach this
cleanup, while preserving frameBytes zeroing and the existing abort behavior.
In
`@tests/integration/t-live-e2e-hardening-kit-unit-contract.integration.test.ts`:
- Around line 192-198: Update the “reports incomplete supported capabilities”
test to use the imported capabilityById entry for adapterId "codex-exec" instead
of relying on LIVE_CAPABILITIES[0]. Preserve the existing measuredVersion and
anchorKinds overrides and expected validation result.
In `@tests/integration/t-live-e2e-lifecycle.integration.test.ts`:
- Around line 490-496: Update the assertions in the test covering
appendRunReceipt directory fsync failures so they also inspect the LedgerError
diagnostic field and verify that the sensitive “/private/tmp/secret” path is
absent, while preserving the existing write-failed kind assertion.
🪄 Autofix (Beta)
Fix all unresolved CodeRabbit comments on this PR:
- Push a commit to this branch (recommended)
- Create a new PR with the fixes
ℹ️ Review info
⚙️ Run configuration
Configuration used: Path: .coderabbit.yaml
Review profile: ASSERTIVE
Plan: Pro Plus
Run ID: 3a696800-23ce-4eaf-95ae-57cf48df9802
📒 Files selected for processing (11)
tests/.coverage-patch-allowlist.jsontests/harness/live-e2e/claude-sdk-worker.tstests/harness/live-e2e/claude-sdk.tstests/harness/live-e2e/claude-tui.tstests/harness/live-e2e/lifecycle.tstests/harness/live-e2e/testing/fakes.tstests/integration/t-claude-print-live-gate.integration.test.tstests/integration/t-claude-sdk-live-gate.integration.test.tstests/integration/t-claude-tui-live-gate.integration.test.tstests/integration/t-live-e2e-hardening-kit-unit-contract.integration.test.tstests/integration/t-live-e2e-lifecycle.integration.test.ts
8f45ea3 to
99302b6
Compare

概要
Issue #1717 の段階展開のうち、共通 live E2E kernel と Codex / Claude Code の各 transport を実装します。
背景
既存の
codex-exec-live.tsにはlive検証の安全境界が集約されていましたが、他transportではgate、認証隔離、cleanup、skip reasonが分散していました。本変更ではtransport自体を統一せず、policy/lifecycleだけを共有kernelへ切り出します。これにより、明示opt-inがない実行やGitHub Actions上の実行をprocess起動前に拒否し、source home・認証設定・ユーザーhooksをchildへ伝播しない契約を各adapterで同じ形に固定できます。
影響
検証
bun run buildbun run typecheckbun run source-only:checkbun run lint(既存のcomplexity警告のみ)残作業
このDraft PRはIssue #1717全体を閉じません。Kimi Code、Kiro CLI/IDE、Cursor、OpenCodeについては、共通policy/lifecycleへの接続または実測に基づく後続Issueへの分離が必要です。
Related to #1717
Note
Low Risk
Changes are documentation and governance metadata under
spaces/default/with no application runtime or auth paths touched; main review cost is volume and consistency of election/re-scan claims (e.g. commit counts, CI evidence), not production breakage.Overview
This diff persists the audit trail for the
260803-harness-live-e2eintent (Issue #1717 live E2E policy/adapters), not harness TypeScript in the slice shown here.It introduces
amadeus-state.mdmarking the workflow completed atbuild-and-test(14 stages done, Construction verified, mirror receipts through workflow-completed).It adds
codekb/.../re-scans/260803-harness-live-e2e.md, grounding design on observed commit52a082af7(46 commits from base): per-surface live-gate/credential gaps, recommended common policy/lifecycle vs transport-adapter split, and phased rollout notes aligned with the PR’s kernel direction.It registers 14 new
E-HLE-*elections underspaces/default/elections/(intent-capture through build-and-test, including units-generation reruns and a follow-upE-HLE-RA13-ZEROafterE-HLE-RA13split). Each package ships ballots, ledgers, tallies, timelines, views, andrecord.md; almost all outcomes are “0 new project/team rules or sensors”—learnings stay on the intent record. Notable process detail:E-HLE-RES13went hold → reopen with amended ballots after git ancestry disputes;E-HLE-BT13/E-HLE-FD13ballots carry reservations (CI re-run evidence, ADR-009 wording).elections.jsonlists all new election dirs asrecorded.Reviewed by Cursor Bugbot for commit cd02a55. Configure here.
Summary by CodeRabbit
新機能
ドキュメント
テスト