P28-02-EQ: 意味を保つ軽量化:同等性の先行固定(harness)
This commit is contained in:
@@ -0,0 +1,236 @@
|
||||
# P28-02-EQ progress — S4 retained completion r03
|
||||
|
||||
S4 の保持済み実装に対する残作業を完了し、局所unitの証拠として提出する。
|
||||
正式受入は保留、原本加算0。
|
||||
以下の旧段階の記録は履歴であり、現在の提出状態を表すものではない。
|
||||
|
||||
- run_eq.main と verify_eq.recompute の check_probe 戻り値を検査し、
|
||||
ok:false を全 errors 付きで拒否する。driver の両モードで共通。
|
||||
両ファイル内の他の checker 呼出しも戻り値契約を確認済み。
|
||||
- 既存134件(元119件を含む)の試験本体を変更せず、12件を追加。
|
||||
driver/verifier の false/true、owned start/end/exit/diagnostic、profile、
|
||||
nine destinations、join 後の決定性不一致、保存済み結果・sidecar・
|
||||
raw/joined 入替えの拒否を対象とする。engine は全て不使用。
|
||||
- 対象クラス attempt 07: 8件中1件失敗。追加試験の模擬不一致が自己比較にも
|
||||
作用したため、試験だけを修正。失敗の raw/exit/SHA を保存。
|
||||
- attempt 08: 9件、86.276秒、OK、exit 0。
|
||||
- attempt 09: 保存済み結果の結合試験3件、0.025秒、OK、exit 0。
|
||||
- 最後の全件試験 attempt 10: `python3 -B test_eq.py`、146件、
|
||||
293.277秒、OK、exit 0(外側の所要時間293.5742515秒)。
|
||||
生出力は UNIT_OUTPUT_S4_ATTEMPT_10.txt と UNIT_OUTPUT.txt に保存。
|
||||
SHA-256: ff6fc0065772434f9ca35a1267e24d199057e339869a868942a41829327503bb。
|
||||
開始は01:05:07 UTCまで、期限まで300秒以上を確保した。全件実行は今回1回。
|
||||
- S4_SUPPLEMENTARY.json は Root の r09 JSON を直接読み、内容を変えず
|
||||
actual_commander_context に保存。追加 r03 と判断も提供ファイルから読む。
|
||||
5資料、過去8計画、API notes の SHA を照合済み。
|
||||
134件の元ファイル再構成SHAは cb742b252dbc278113b3c11c2431adac35b0c2e201a762a8ea1ac926e4af414b。
|
||||
- IMPLEMENTATION.md 冒頭に、全 S4 must、S4 binding、r01/r02/r03 の
|
||||
要件・コード・試験の対応表を記録した。旧文書と全失敗履歴は保持。
|
||||
- 外部 retained copy の読取りは PermissionError となったため、権限を変えず、
|
||||
W 内の保持prefixと元mainから元ファイルSHAを再現して確認した。
|
||||
読取り用heredocも実行前に失敗し、その後は python -c を使用した。
|
||||
|
||||
過去のS4 attempt 01/02/04と補足生成assertは失敗のまま保持。
|
||||
attempt 05 の132件PASSはその版だけの事実。遅着した attempt 06 は
|
||||
134件/206.531秒/OKだが、provider exit124・完了通知/exit受領なし・未提出の
|
||||
事実は変更しない。今回の全件結果とは区別する。
|
||||
|
||||
提出後は Root の正確な S の native 7 phase → bundle 配置 →
|
||||
p28-02-eq-unit と p28-02-eq-native-verify → fresh 独立 Opus の全6条件レビュー →
|
||||
通常の資格確認・承認・統合・final → OPT/whole-unit。23/88、4/30は不変。
|
||||
worker は engine、正式validation、Runner、git書込み、他agent、製品変更、
|
||||
全回帰を実行していない。局所unitをnative、受入済みS、Q測定、製品PASSとは呼ばない。
|
||||
|
||||
## Retained prior progress (unchanged)
|
||||
|
||||
# P28-02-EQ progress — current S3b (repair 7)
|
||||
|
||||
stage S3b complete (not a failure; next is S4)
|
||||
|
||||
段階 S3b 完了(失敗ではない。次は S4)。指定に従い正式 status は blocked。
|
||||
S_eq は未提出。全6受入条件の正式判定は保留、原本加算0。
|
||||
|
||||
- E4: 両 role に共通の5経路を実装。E4-1 はその PID の
|
||||
definition_registry.get_facility_ids() を使い、登録順/文字順/件数、
|
||||
公開 bounds、全候補の preview、最初の配置可能候補、submit/処理結果を保持。
|
||||
空 registry、誤った列挙元、欠落した試行、false NA は拒否する。
|
||||
- E5: 4対象×dict/array×2方向の16組。handler 外で操作し、
|
||||
完全な前後 S/K/C、返却値、digest、全イベント、別区間の signal を保持。
|
||||
aliasing は changed path/value 付きの existing-defect として出力し、PASS にしない。
|
||||
- checker: 39 scenario(既存E3の18 + E4の5 + E5の16)の結合、
|
||||
区間連続、全イベント、restore 0/load 1、X(P,event)、所有権を検査。
|
||||
caller の PASS や、publish 時点だけによる cache_stale 判定は拒否する。
|
||||
- 比較器の局所修正は、追加試験の失敗で確認した2点だけ:
|
||||
E5外から内の直後の cached digest 不整合を既存不具合として保持すること、
|
||||
返却値の typed facts にも辞書順だけの fallback を適用すること。
|
||||
- 既存91件の試験ソースを元の構成に再結合した SHA は
|
||||
f81185e506954964bb96b31a569233202a1a7e7c78b2121aba6ab3f2e24d7e1e と一致。
|
||||
E3本体、過去の進捗と全試験履歴は保持した。
|
||||
- 最終局所 unit: python3 -B test_eq.py、119 tests、OK、終了コード0。
|
||||
既存91 + S3b追加28。Godot/native・正式validationは未実行。
|
||||
生出力は UNIT_OUTPUT_S3B_ATTEMPT_09.txt と UNIT_OUTPUT.txt、対応SHAを保存。
|
||||
- S3b試行履歴(すべて生出力/SHAを保存):
|
||||
01=91件PASS、02=追加試験の構文エラー、
|
||||
03=114件中digest既存不具合の比較試験1件失敗、
|
||||
04/05=114件PASS、06=118件PASS、
|
||||
07=辞書順fallbackの単独試験1件失敗、
|
||||
08=119件中そのfixtureのcheckpoint欠落で1件失敗、
|
||||
09=119件PASS。失敗を成功で上書きしていない。
|
||||
- S3B_SUPPLEMENTARY.json の単一 actual_commander_context key に
|
||||
両S3b計画、両S3計画、両段階計画、今回のRUN判断全文を保持。
|
||||
計画6件のSHA、SPEC/TASK、references/registration、読取専用補足、
|
||||
S2/S3a補足、既存出力のSHAを照合した。
|
||||
|
||||
次はS4(driver・verify・bundleと提出)。IMPLEMENTATION.md末尾に、
|
||||
lifecycle.e45、e45-NN、raw/joined facts、sidecar、既存不具合の結合を追記。
|
||||
その後にRootの凍結Sで7 native phase、両validation、独立Opusレビュー、
|
||||
通常の資格確認・承認・統合・final。S3bのunit結果をnative/Qの結果とは呼ばない。
|
||||
|
||||
engine、Runner、git書込み、他agent、製品変更、全回帰は実行していない。
|
||||
|
||||
## Retained prior S3b-blocked/S3a/S2/S1 history (unchanged)
|
||||
|
||||
Final S3b unit SHA-256: 8360a2065b303099d5c546b3e4aecc0cc0ab0c2c1e5120b8034b6a1a64317030
|
||||
|
||||
# P28-02-EQ progress — S3b blocked before implementation
|
||||
|
||||
S3b is not complete. S_eq is not submitted. All six acceptance gates remain
|
||||
pending; original credit remains 0. The retained S3a history follows unchanged.
|
||||
|
||||
## Specification/API mismatch affecting E4-1 coverage
|
||||
|
||||
EQ_S3B_STAGE_PLAN.txt E4-1 explicitly chooses the facility definition list from
|
||||
`mvp_content_catalog`. The product's `scripts/data/mvp_content_catalog.gd:26-31`
|
||||
DEFAULT_PATHS contains only guest_classes, species, staff_candidates and
|
||||
unique_characters. Its get_ids(content_type) at :217-223 returns an empty list
|
||||
for an absent content type. It supplies no facility definition enumeration.
|
||||
|
||||
Facility definitions instead belong to `definition_registry`:
|
||||
`scripts/core/definition_registry.gd:64-75` exposes get_facility,
|
||||
get_facility_ids and get_all_facilities. Runtime initializes this registry from
|
||||
FacilityCatalog paths at `autoload/simulation_runtime.gd:446-447`, and the
|
||||
public preview_build_facility at :7660-7668 looks up that registry.
|
||||
|
||||
Using an absent catalog type and reporting NA would not prove that no facility
|
||||
is placeable. Replacing the explicitly fixed enumeration source with the
|
||||
registry changes the candidates used by the required E4-1 acceptance scenario.
|
||||
Per the instruction not to supplement missing specifications, this needs an
|
||||
explicit correction of E4-1 to authorize the actual definition source. Proposed
|
||||
correction: enumerate runtime.definition_registry.get_facility_ids() in textual
|
||||
ID order, retaining the specified cell scan and public placement check. This is
|
||||
a proposal only, not an implemented or approved change.
|
||||
|
||||
Only this progress note changed. No implementation or tests were changed or
|
||||
removed. The supplied SHA values for IMPLEMENTATION.md, eq_probe.gd, check_eq.py,
|
||||
compare_versions.py, test_eq.py and UNIT_OUTPUT.txt matched before this note.
|
||||
The 91-test result below is retained S3a evidence, not a test execution in this
|
||||
run. No new unit test, engine, Runner, git write, agent, or product operation ran.
|
||||
The first progress-note write attempt failed before writing because zsh could
|
||||
not create a heredoc temporary file; this note was then written by apply_patch.
|
||||
S3b E4/E5 and then S4 remain pending. Do not label this run S3b complete.
|
||||
|
||||
## Retained S3a/S2/S1 progress (unchanged historical text)
|
||||
|
||||
# P28-02-EQ progress — current S3a
|
||||
|
||||
stage S3a complete (not a failure; next is S3b)
|
||||
|
||||
段階 S3a 完了(失敗ではない。次は S3b)。計画に従い正式 status は blocked。
|
||||
S_eq は未提出。6受入条件はすべて保留、原本加算0。
|
||||
|
||||
- checker: phase key は正確に0..10。重複JSON keyも拒否。
|
||||
30分各checkpointにsnapshot_published → state_updatedがちょうど1組必要。
|
||||
測定開始の接続一覧にprobe自身の接続がなければ失敗。
|
||||
- probe/checker: E3の3 API × 6分類を、適用/NAの18行で記録・検査。
|
||||
B1の固定変異、実際のAPI戻り値、package全bytes/SHA、完全S/K/C、
|
||||
全イベント差、scenario signal、区間の連続性、X(B, ev_fail)を保持。
|
||||
codeを創作せず、期待外の製品結果は既存不具合候補として残す。
|
||||
- S1 comparatorは元のSHAのまま。S1/S2の試験本体を保持
|
||||
(指定checker修正に必要なS2 fixture/呼出しの変更のみ)。
|
||||
- 最終局所試験: python3 -B test_eq.py、**91 tests, OK**、終了コード0。
|
||||
S3a追加19件。Godot/native/正式validationは未実行。
|
||||
- 生出力: UNIT_OUTPUT.txt と UNIT_OUTPUT_S3A_ATTEMPT_04.txt。
|
||||
SHA-256: 02221ae41e5dd40ecdac0ec0d7ffc657f265d3194c3817583c2b88ad375f132b。
|
||||
S3aの01/02/03/04試行(72/85/91/91件、全件PASS)を個別に保存。
|
||||
既存のS1失敗出力・S2出力とSHAは変更せず保持。
|
||||
- S3A_SUPPLEMENTARY.json: 単一actual_commander_context keyに
|
||||
両S3計画・両段階計画・今回のRUN判断全文を保存。4計画のSHA一致。
|
||||
- SPEC/TASK/references/registration、read-only補足3件、S2補足、
|
||||
S1 comparatorと全ての既存UNIT_OUTPUT履歴のSHA一致を確認。
|
||||
|
||||
次はS3b(E4/E5)だけ。その後S4(driver/bundleと提出)、
|
||||
Rootの7 native phase、両validation、新しい独立Opusレビュー、
|
||||
通常の承認・統合・final。S4でlifecycle.measurement/e3/e3_b1と
|
||||
private evidenceを結合する必要がある。詳細はIMPLEMENTATION.md末尾。
|
||||
|
||||
engine、Runner、git書込み、他agent、製品変更、全回帰は実行していない。
|
||||
|
||||
## Retained S2/S1 progress (unchanged historical text)
|
||||
|
||||
# P28-02-EQ progress — current S2
|
||||
|
||||
stage S2 complete (not a failure; next is S3)
|
||||
|
||||
段階 S2 完了(失敗ではない。次は S3)。計画 G4 に従い status は blocked。
|
||||
正式提出はしていない。6受入条件はすべて保留、原本加算0。
|
||||
|
||||
- eq_probe.gd: DIAG の6段階起動、A1 encode/decode、A2 bytes roundtrip、
|
||||
A3 全 B1/毎 tick 差分、31 checkpoint、B の全イベント記録、
|
||||
guard 実値照合、private evidence、単一 report 行、close_requested を実装。
|
||||
- check_eq.py: S1 schema の形式/矛盾、正規化の結合、raw 観測/起動証跡、
|
||||
静的禁止の検査を追加。S3 の scenario は未着手。
|
||||
- test_eq.py: S1 43件を保持し、S2 29件を追加。最終 **72 tests, OK**。
|
||||
実行は python3 -B test_eq.py のみ。native・正式 validation は未実行。
|
||||
- 生出力: UNIT_OUTPUT.txt。SHA-256: 9d323abda9bfffa02faf3a9d5cb56aa87e647017c991eb55b4807cf734386698。
|
||||
S2 の3試行も UNIT_OUTPUT_S2_ATTEMPT_01/02/03.txt と SHA に保存。
|
||||
S1 の最終出力は UNIT_OUTPUT_S1_FINAL.txt に保存。下記の失敗履歴と
|
||||
UNIT_OUTPUT_ATTEMPT_01/02 は変更せず保持。
|
||||
- S2_SUPPLEMENTARY.json: 単一 actual_commander_context key に両計画全文、
|
||||
RUN判断全文、read-only 補足の path/SHA を保持。両計画の SHA 一致を確認。
|
||||
|
||||
次は S3 の E3/E4/E5 操作・結果・検査。その後 S4 の driver/bundle を実装し、
|
||||
Root/Runner の7 native phase、両 validation、新しい独立レビュー、承認・統合・final。
|
||||
engine、Runner、git 書込み、他 agent、製品変更、全回帰は実行していない。
|
||||
|
||||
## Retained S1 progress (unchanged historical text)
|
||||
|
||||
# P28-02-EQ progress
|
||||
|
||||
## Current stage
|
||||
|
||||
stage S1 complete (not a failure; next is S2)
|
||||
|
||||
段階 S1 完了(失敗ではない。次は S2)。正式な返却 status は計画 G4 に従い blocked。
|
||||
S_eq の提出、受入の自己確定、原本への加算はしていない。
|
||||
|
||||
## Completed
|
||||
|
||||
- compare_versions.py: typed tree 比較、F1–F3 の4つの normalize/restore 関数、
|
||||
全 checkpoint の差分再構成と tree SHA 再計算、report の S/latest/K/C/E2/
|
||||
scenario 比較、source map 1407件の固定と許可された変更集合の完全一致検査。
|
||||
- test_eq.py: 合成入力のみの43試験。型・挿入順・深い tree・可逆性・guard・
|
||||
violations・sidecar 改ざん・全イベント・比較除外・source 閉包の正常/拒否を検査。
|
||||
- IMPLEMENTATION.md: S2 向けの内部データ形式と、後続 checker/native の責任を記録。
|
||||
|
||||
## Unit evidence
|
||||
|
||||
実行: `python3 test_eq.py`(engine 不使用)。最新結果: **43 tests, OK**、終了コード0。
|
||||
生出力: `UNIT_OUTPUT.txt`。
|
||||
SHA-256: `cdca0cdd551ce76c6100c4dd90e04559551f9d88c054a19a2bc6a77e6572ae15`。
|
||||
|
||||
初回の36試験中1失敗(F3 sidecar の欠落を見逃した)は
|
||||
`UNIT_OUTPUT_ATTEMPT_01.txt` と `.sha256` にそのまま保持した。
|
||||
予約 token の復元漏れを拒否する修正後、41試験 PASS の中間出力も
|
||||
`UNIT_OUTPUT_ATTEMPT_02.txt` と `.sha256` に保持した。
|
||||
失敗を成功に書き換えていない。作成したファイルは削除していない。
|
||||
|
||||
## Remaining stages and gates
|
||||
|
||||
- S2: eq_probe.gd の6段階起動、Godot encode/decode と bytes roundtrip、31 checkpoint
|
||||
と E2 の evidence 書出し、check_eq.py の形式/静的検査、対応 unit。
|
||||
- S3: E3/E4/E5 専用区間、全ての場面/入力の実行と実値の保存、絶対条件の checker。
|
||||
- S4: run_eq.py と verify_eq.py、全依存 SHA の固定、bundle 結合/拒否試験、正式提出。
|
||||
- Root/Runner: 凍結した S_eq で7 native phase、両正式 validation、独立レビュー、
|
||||
通常の承認・統合・final。6受入条件は全て保留。
|
||||
|
||||
engine、Runner、git 書込み、他 agent、製品変更、全回帰は実行していない。
|
||||
Reference in New Issue
Block a user