P08-03: 配置の通常操作受入

This commit is contained in:
Agent Control Runner
2026-10-15 00:12:44 +09:00
parent fd643f55a2
commit f5f85ae08c
6 changed files with 342 additions and 8 deletions
@@ -501,6 +501,64 @@ A docs/plans/original-completion-2026-10-02/execution/p08-03/runtime-preview-pro
```
Exact validation commands and initial/retry results are recorded in implementation.json repair17.validation. No Godot/native/full execution or recollection was performed.
## Repair19 — submitted, no acceptance
Input M: fd643f55a271e63c554b94681454d357117c0678. Verify-only failure:
8ee0765cdd0a438dbf0ddc0f67ebbc70. New HEAD: **to be bound by Runner**.
The R15 diagnosis was an unverified palette reveal followed by a possibly clipped
button click; deferred quit also allowed requests and secondary failures after
an ACK timeout or identity/hash failure. The Root31 ACK is invalid. R15 earns no
credit. No acceptance or changed-source evidence reuse is claimed.
Repair19 changes only the passive endpoint, additive checker gates, synthetic
positive/negative specimens and these handoff records. Repair18 and all R09 pins
remain history without rewriting. Runtime, product UI, the ACK deadline, spec,
scope and denominator remain unchanged.
### Source-map applicability
The four changed executable/source inputs and their SHA256 at M and in the
worktree are listed in implementation.json `repair19.source_map`. The two changed
handoff documents are also listed there at M; their final byte SHA256 are reported
with submission, outside the documents to avoid a self-referential hash.
Read-only rg and preload/load tracing found these consumers:
- docs recorder `passive_os_placement_recorder.gd:2` preloads passive_placement.gd,
which extends placement.gd. Its `run` drives the writer/reader OS pair.
- `tests/ui/test_p08_normal_placement_ops.gd:2` preloads placement.gd directly.
That parent is unchanged by repair19; it loads main.tscn and the existing codec
and audio cleanup helpers. The passive subclass is not loaded by this UI suite.
- `tools/run_p08_normal_placement.py:145,210,227` loads the checker for initial
input fingerprinting, OS input mapping and final evidence verification. Its
import/parse stages precede handler writer/reader stages using the UI suite,
and its OS stage uses the docs recorder.
- `tools/test_p08_normal_placement_evidence.py:28-30,55-56` loads the checker,
checker_fixture.py and collector, and reads both GDScript fixture sources.
- `tools/run_all_tests.py:roster` discovers the UI suite; `source_refs` includes
tests and tools in the whole-source fingerprint. Import/parse/native and final
regression applicability therefore requires the actual complete fingerprint.
The checker also imports the prior typed codec and standard runner directly.
Every OS/native collection and regression whose inputs include a changed file
is not applicable and must rerun on the final frozen revision: the complete
p08-normal-placement OS/native pair, checker tests, the UI suite when its actual
input fingerprint includes a changed fixture, and exactly one final all-suite
regression on the roster Root derives at the final revision. No roster count is
assumed. A prior native/import stage may be reused only on an exact fingerprint
match; no reuse is claimed where source changed. The UI suite is included in the
fresh pair and final roster regardless of its unchanged direct parent fixture.
Neither completion_marker_contracts.json nor suite-policy.json changed: no pinned
print line, suite source SHA or cleanup policy changed in repair19.
Still pending: Root first inspects normal scrollbar operation in a short disposable
diagnostic, then freezes source and runs a fresh contiguous long OS/native attempt;
exactly one final all-suite regression on the derived roster; independent Opus
review of all five conditions with raw-proof access; integration, current final
verification and ledger. Windows same-distribution/device remains open with no
Mac substitution. Local command outcomes are recorded in implementation.json.
## Repair18 — submitted, no acceptance
7297a4c050f0293df331c2c51bb32def248bcb6b
@@ -1,5 +1,88 @@
{
"task_id": "P08-03",
"repair19": {
"input_M": "fd643f55a271e63c554b94681454d357117c0678",
"verify_only_failure": "8ee0765cdd0a438dbf0ddc0f67ebbc70",
"new_HEAD": "to be bound by Runner",
"status": "submitted",
"acceptance": "not claimed; all five conditions pending",
"diagnosis": "R15 reveal published no geometry and verified neither visibility nor scroll direction; deferred quit allowed subsequent requests and secondary failures after a terminal ACK error.",
"owner_rulings": ["Root31 ACK is invalid", "R15 earns no credit"],
"source_map": {
"tests/fixtures/p08-03/passive_placement.gd": {
"at_M": "cdbd9a09b535d00a79aec7e2b7219f4daa4cf235449602b3cd02c6f12d9df88c",
"worktree": "210c95c4df9ac16197ebaad67f7531d66b841e9d03c05c014a846bb9186bc2d0"
},
"tests/fixtures/p08-03/checker_fixture.py": {
"at_M": "a9d376f0af35814b948347383edf11d299f2e78c3347161a49ae60e5a654ec24",
"worktree": "f80956c487cf8bd9e169011788245c41017447de517c3839685af0daaf7be036"
},
"tools/check_p08_normal_placement_evidence.py": {
"at_M": "926418042d4ae8c2afba2bd91799f5d32eac62c673ae83c332f3b2d12fcff90d",
"worktree": "bc6bc7109bc754ad8f9c46e6492e044264226545a3c9e823a519ab9f0dd23c88"
},
"tools/test_p08_normal_placement_evidence.py": {
"at_M": "b83f3c7d917d47d53007b25cb31f11011e2184f53ace3423f38a3007762b5675",
"worktree": "f0de90ad22194df731d90cff24e69860db370aaf768cd6faa5fda4d50e5d0903"
},
"docs/plans/original-completion-2026-10-02/execution/p08-03/CONDITION_MATRIX.md": {
"at_M": "fb1916827e7f5d4fb40cdb86ba6e282cefa5b7aee6600d591cd7b1d0b37b11f8",
"worktree": "final byte SHA256 reported in submission to avoid self-reference"
},
"docs/plans/original-completion-2026-10-02/execution/p08-03/implementation.json": {
"at_M": "6a594346c17f1309c7471ce357f182203b5f2212586b6b111fc0833526379f9b",
"worktree": "final byte SHA256 reported in submission to avoid self-reference"
}
},
"applicability": {
"trace": [
"docs passive_os_placement_recorder.gd:2 -> passive_placement.gd -> placement.gd -> main.tscn; OS writer/reader",
"tests/ui/test_p08_normal_placement_ops.gd:2 -> unchanged placement.gd, cleanup and codec; no direct passive load",
"tools/run_p08_normal_placement.py:145,210,227 -> checker; initial inputs, OS mapping, final verification; import/parse and handler writer/reader use the UI suite, OS uses docs recorder",
"tools/test_p08_normal_placement_evidence.py:28-30,55-56 -> checker, checker_fixture, collector, both fixture sources",
"tools/run_all_tests.py roster discovers UI suite; source_refs fingerprints tests and tools; checker imports prior typed codec and runner"
],
"rule": "Every OS/native collection and regression including changed inputs is not applicable and must rerun on the final frozen revision. Rerun p08-normal-placement OS/native pair, checker tests, UI suite if its inputs include a changed fixture, and exactly one final all-suite regression on Root-derived final roster. UI is included in fresh pair and final roster even though its direct fixture is unchanged in repair19.",
"native_import_reuse": "Only on exact actual fingerprint match; no changed-source reuse claimed",
"completion_marker_contracts_changed": false,
"suite_policy_changed": false,
"pin_reason": "No pinned print line, suite source SHA or cleanup policy changed"
},
"validation": [
{
"command": "python3 -B tools/test_p08_normal_placement_evidence.py",
"result": "initial exit 1; 142 tests in 119.802s. Final executable-source rerun exit 1; 142 tests in 114.501s. Both: 141 passed, one existing R09 raw-proof PermissionError at /Users/korizatou114/Projects/とりにく工房ゲーム制作部/artifacts/original-completion-2026-10-02/p08-03-native-os-r09/index.json; no test weakened"
},
{
"command": "python3 -m py_compile tools/check_p08_normal_placement_evidence.py tools/test_p08_normal_placement_evidence.py tests/fixtures/p08-03/checker_fixture.py",
"result": "exit 1; default macOS Python cache write PermissionError"
},
{
"command": "PYTHONPYCACHEPREFIX=tests/fixtures/p08-03/.scratch/repair19-pycache python3 -m py_compile tools/check_p08_normal_placement_evidence.py tools/test_p08_normal_placement_evidence.py tests/fixtures/p08-03/checker_fixture.py",
"result": "exit 0"
},
{
"command": "python3 -c 'import json; from pathlib import Path; [json.loads(Path(p).read_text()) for p in [\"docs/plans/original-completion-2026-10-02/execution/p08-03/implementation.json\", \"docs/plans/original-completion-2026-10-02/execution/completion_marker_contracts.json\"]]; print(\"JSON load: PASS\")'",
"result": "exit 0; JSON load: PASS"
},
{
"command": "git diff --check",
"result": "exit 0"
},
{
"command": "python3 -c 'import subprocess,json,fnmatch; from pathlib import Path; allowed=json.loads(Path(\"docs/plans/original-completion-2026-10-02/execution/p08-03/REGISTERED_TASK.json\").read_text())[\"contract\"][\"allowed_paths\"]; paths=subprocess.check_output([\"git\",\"diff\",\"--name-only\",\"fd643f55a271e63c554b94681454d357117c0678\"],text=True).splitlines()+subprocess.check_output([\"git\",\"ls-files\",\"--others\",\"--exclude-standard\"],text=True).splitlines(); bad=[p for p in paths if not any(fnmatch.fnmatchcase(p,g) for g in allowed)]; print({\"paths\":paths,\"outside_allowed_paths\":bad}); assert not bad'",
"result": "exit 0; six changed files within allowed_paths; no untracked files after removing only generated repair19 py_compile cache"
}
],
"remaining": [
"Root inspects normal scrollbar operation on a short disposable diagnostic first, freezes final source, then runs a fresh contiguous long OS/native attempt",
"exactly one final all-suite regression on roster Root derives at final revision",
"independent Opus review of all five conditions with raw-proof access",
"integration, current final verification and ledger",
"Windows same-distribution/device remains open; no Mac substitution"
],
"history": "Repair18 integrated API implementation and all prior history/pins preserved; no Runtime/product UI edit, no Godot/OS/native/full run, no git write or self-approval"
},
"status": "submitted",
"acceptance_ids": [
"P08-03"