Record formal P28-02 diagnostic acceptance without original-unit credit

This commit is contained in:
Codex
2026-10-21 07:10:27 +09:00
parent fdb309f3bc
commit dfe07eba27
5 changed files with 397 additions and 9 deletions
@@ -0,0 +1,341 @@
{
"at_jst": "2026-10-21T07:10:02.150187+09:00",
"project": "the-tree-p28-02-diag",
"task": "P28-02-DIAG",
"state": "completed",
"S": "d6ce6ddb95e38ef987f37af98f02f0531483008f",
"Q": "fdb309f3bc81529135915429d2432a6644696311",
"M": "a25ee83441a967f9979e59b1c019f8b4d9ab6e22",
"all_four_normal_gates_passed": true,
"acceptance": [
{
"id": "P28-02-D1",
"requirement_id": "P28-02",
"text": "現在の source 1407 で、代表入力 R の tick を、tick ID で結びつけた inclusive の wall 区間 I0〜I11 として、受動的な観測だけで別 PID の3回で測る(observer の費用は別に記録し、差し引かない)。",
"validation_ids": [
"p28-02-diag-unit",
"p28-02-diag-native-verify"
]
},
{
"id": "P28-02-D2",
"requirement_id": "P28-02",
"text": "tick の外で、snapshot の変換を独立の inclusive 計測(N=5、合算しない)で、restore・save・load・validator を使い捨ての scratch でだけ測り、live の全状態の一致と参照の漏れの無さを確かめる。測れない粒度は理由つきの未測定にする。",
"validation_ids": [
"p28-02-diag-unit",
"p28-02-diag-native-verify"
]
},
{
"id": "P28-02-D3",
"requirement_id": "P28-02",
"text": "経路は path_query_measured の件数と時間だけを区間に結びつけ、connector の費用とは呼ばない。machine・build・seed・RNG state・入力・区間・平均・P95・最大・標本数を記録し、欠損を 0 で補わない。",
"validation_ids": [
"p28-02-diag-unit",
"p28-02-diag-native-verify"
]
},
{
"id": "P28-02-D4",
"requirement_id": "P28",
"text": "worker の提出した S を Root が隔離した stage で native 実行し(import・parse・3 PID)、owned PID・private profile・guard・cleanup・source map 1407・全 raw と SHA を結合する。最終候補 Q で測ったとは表記しない。",
"validation_ids": [
"p28-02-diag-unit",
"p28-02-diag-native-verify"
]
}
],
"normal_gates": [
{
"kind": "validation",
"commit": "d6ce6ddb95e38ef987f37af98f02f0531483008f",
"receipt": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/052a7f7671c34228938b3a5ffcda8723-validation.json",
"bytes": 616,
"sha256": "2222eaa7d85b2d17a115e9f21e0e1250922f009bebd7165054b7212bc3e68c01"
},
"checks": [
{
"id": "p28-02-diag-unit",
"exit_code": 0,
"raw": {
"command.json": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/3c6308e284d444ffb999c7ee5de2be84/command.json",
"bytes": 725,
"sha256": "12d665768693abcd00df5eb5c1acde89936b0e9dc45bd440d312aadb427a1506"
},
"stdout.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/3c6308e284d444ffb999c7ee5de2be84/stdout.log",
"bytes": 61,
"sha256": "5a0a7607403c4fb2bf309b678414c030a1852f7d3ef00640dfa08b3c263eaeeb"
},
"stderr.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/3c6308e284d444ffb999c7ee5de2be84/stderr.log",
"bytes": 2139,
"sha256": "4f3aa4e343f8ac766a1508daca44f37612ae4d1fea33383736213298ca69b8ec"
}
}
},
{
"id": "p28-02-diag-native-verify",
"exit_code": 0,
"raw": {
"command.json": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/b8811a05af03429d9c579d7c37c107b0/command.json",
"bytes": 758,
"sha256": "c1491f7bad23953db88b418651957b72aa98744132c6f65865c085a15ce2d41d"
},
"stdout.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/b8811a05af03429d9c579d7c37c107b0/stdout.log",
"bytes": 19889,
"sha256": "40d6c5ea04dc9717be2d76e4c3540499a947e7d2c174a4f10667d9cf6ede8fe2"
},
"stderr.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/b8811a05af03429d9c579d7c37c107b0/stderr.log",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
}
}
]
},
{
"kind": "review",
"commit": "d6ce6ddb95e38ef987f37af98f02f0531483008f",
"receipt": {
"path": "artifacts/original-completion-2026-10-02/p28-02-root-control-r01/diag-independent-review-d6ce6dd-r01/actual-independent-desktop-output/result.json",
"bytes": 5723,
"sha256": "00d38f98ef950fd14aeb6f3453ac0cab058212a7631df833bb7842cd4c840f6f"
},
"findings": [
{
"severity": "low",
"message": "inter_tick_frame_wall の最初の測定 tick(tick 31)の frame_wall_before_us には、B1 の ensure_cache と layers()(create_snapshot、約80 ms)による診断の作業が入っています。diag-1 では 596708 us で、これがこの run の最大値です。phase には帰属していませんが、最大値が診断の作業で膨らんでいることは注記されていません。OPT で frame の値を使うときは、この標本を区別してください。"
},
{
"severity": "low",
"message": "scratch の SaveService.save_snapshot と load_snapshot は、プロセス全体で共有する静的な SaveService._performance_budget に record_sample します。S/K/C の外にある状態です。IMPLEMENTATION.md に開示されていて、管制が範囲の外として採用済みで、製品にそれを読む箇所はありません(grep で確認)。ただし、計測の前後の値は report に記録されていません。"
},
{
"severity": "low",
"message": "main の _ready による save policy の設定は、設定後の値(report.startup.save_policy)だけが記録されています。設定前の値は記録されていません。S の SHA は main の追加の前後で一致しています。"
},
{
"severity": "low",
"message": "検証と restore の実測は envelope のもの(SimulationSnapshot.validate と restore。数〜数十 us)だけです。Runtime 全体の restore と内部の validator は、理由つきの未測定です。SaveService の load と save の inclusive の値(約235 ms と約170 ms)には、package の検証が含まれます。OPT の対象を選ぶときに、envelope の値を Runtime の検証の費用として扱わないでください。"
},
{
"severity": "low",
"message": "RNG の状態(typed hex)は、測定が終わった後の分 662 に1回だけ記録されています。測定の開始時点(分 632)の RNG は記録されていません。seed と、PID 間の RNG の一致は確認できます。"
}
]
},
{
"kind": "integration",
"commit": "fdb309f3bc81529135915429d2432a6644696311",
"receipt": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/9d2a0477dd644e3d95e50429aabfea42-integration.json",
"bytes": 617,
"sha256": "8e1a367415d7a1b14c6e26d880abd038e08ac0ca9ddf092cc486665b4ff0236c"
},
"checks": [
{
"id": "p28-02-diag-unit",
"exit_code": 0,
"raw": {
"command.json": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/2882e333b26e4e19966b92fed2311248/command.json",
"bytes": 726,
"sha256": "bfc9f305a54f2a3955cb9a2d032952b91ac64c3e68c025ce0a7e1e8fcfe58b65"
},
"stdout.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/2882e333b26e4e19966b92fed2311248/stdout.log",
"bytes": 61,
"sha256": "96c24d2529b7235a768427f4ad6ff161db12a1319845ac39ac1f214200b72041"
},
"stderr.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/2882e333b26e4e19966b92fed2311248/stderr.log",
"bytes": 2139,
"sha256": "32cbae529b357842a04b256fd70620465f40bb00fef29b87e9eaf4cbfb28108b"
}
}
},
{
"id": "p28-02-diag-native-verify",
"exit_code": 0,
"raw": {
"command.json": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/dedc2a26e33d48ef964dda06700545ee/command.json",
"bytes": 759,
"sha256": "22d8863ed04c822d5554f439e80db97e018449dcc6b0a9b234d84166bcba73e9"
},
"stdout.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/dedc2a26e33d48ef964dda06700545ee/stdout.log",
"bytes": 19889,
"sha256": "40d6c5ea04dc9717be2d76e4c3540499a947e7d2c174a4f10667d9cf6ede8fe2"
},
"stderr.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/dedc2a26e33d48ef964dda06700545ee/stderr.log",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
}
}
]
},
{
"kind": "final",
"commit": "fdb309f3bc81529135915429d2432a6644696311",
"receipt": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/8ee802edc437462b852d76e09905b22c-final.json",
"bytes": 611,
"sha256": "1333c5e4b95840685d6525e7e15b7d9cade6b6802f47eb147937c17b01c273df"
},
"checks": [
{
"id": "p28-02-diag-unit",
"exit_code": 0,
"raw": {
"command.json": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/b366acde4390434b900e4f0a316204fa/command.json",
"bytes": 720,
"sha256": "46b2fee761a8af338b3ba93f55e82dca71c97cc01fb994c7164ab835421e0781"
},
"stdout.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/b366acde4390434b900e4f0a316204fa/stdout.log",
"bytes": 61,
"sha256": "e7ab4a4864135eda18fb062c3d95f11ceb533ba94ed9d44688d5de5a1f7ce45c"
},
"stderr.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/b366acde4390434b900e4f0a316204fa/stderr.log",
"bytes": 2139,
"sha256": "55f512a407a7814b1ce136fce796bb675c50312a268b03bdfb2b4033a67e04ca"
}
}
},
{
"id": "p28-02-diag-native-verify",
"exit_code": 0,
"raw": {
"command.json": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/139959117af94b56bd09e073bcc067fa/command.json",
"bytes": 753,
"sha256": "bf6ed61fd9ec888c91d2ef773a5fd14e1f1791a16cbba71dd7b6dd6d9568489a"
},
"stdout.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/139959117af94b56bd09e073bcc067fa/stdout.log",
"bytes": 19889,
"sha256": "40d6c5ea04dc9717be2d76e4c3540499a947e7d2c174a4f10667d9cf6ede8fe2"
},
"stderr.log": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/runs/139959117af94b56bd09e073bcc067fa/stderr.log",
"bytes": 0,
"sha256": "e3b0c44298fc1c149afbf4c8996fb92427ae41e4649b934ca495991b7852b855"
}
}
}
]
}
],
"traceability": {
"path": "/Users/korizatou114/Library/Application Support/agent-control/the-tree-p28-02-diag/traceability/P28-02-DIAG.json",
"bytes": 2996,
"sha256": "d7f3beda2f6ef111baab28f6f53537345ef6f66b9eec753bb29b548d08ce63c1"
},
"candidate_qualification": {
"path": "artifacts/original-completion-2026-10-02/p28-02-root-control-r01/ROOT_DIAG_CANDIDATE_FDB309F_QUALIFICATION.json",
"bytes": 242987,
"sha256": "f04afc857ab4c9529f2f14370668655c9a7f5cc25ef213a0c2695b3ec2ff8e4b"
},
"review": {
"model": "claude-opus-5-5",
"session_id": "local_d0a7d3d0-aaef-4e3d-8761-185e62a3ac6b",
"context": "fresh",
"actual_result": {
"path": "docs/plans/original-completion-2026-10-02/execution/p28-02/DIAG_INDEPENDENT_REVIEW_D6CE6DD.json",
"bytes": 5723,
"sha256": "00d38f98ef950fd14aeb6f3453ac0cab058212a7631df833bb7842cd4c840f6f"
},
"delivery": {
"path": "artifacts/original-completion-2026-10-02/p28-02-root-control-r01/diag-independent-review-d6ce6dd-r01/DESKTOP_DELIVERY.json",
"bytes": 1822,
"sha256": "3c58b811fc5353082bc1271f750a0afc2cb74e90858af2b26e147132843a49c4"
},
"original_null_delivery_preserved": {
"path": "artifacts/original-completion-2026-10-02/p28-02-root-control-r01/diag-independent-review-d6ce6dd-r01/DESKTOP_DELIVERY.null-result-sha.preserved.json",
"bytes": 1675,
"sha256": "a3afbc7f6e8da0e4f2e3a6efcaa1d78391cbb8dbcff72945be311638e82b3be3"
},
"high_medium": 0,
"low": 5,
"findings": [
{
"severity": "low",
"message": "inter_tick_frame_wall の最初の測定 tick(tick 31)の frame_wall_before_us には、B1 の ensure_cache と layers()(create_snapshot、約80 ms)による診断の作業が入っています。diag-1 では 596708 us で、これがこの run の最大値です。phase には帰属していませんが、最大値が診断の作業で膨らんでいることは注記されていません。OPT で frame の値を使うときは、この標本を区別してください。"
},
{
"severity": "low",
"message": "scratch の SaveService.save_snapshot と load_snapshot は、プロセス全体で共有する静的な SaveService._performance_budget に record_sample します。S/K/C の外にある状態です。IMPLEMENTATION.md に開示されていて、管制が範囲の外として採用済みで、製品にそれを読む箇所はありません(grep で確認)。ただし、計測の前後の値は report に記録されていません。"
},
{
"severity": "low",
"message": "main の _ready による save policy の設定は、設定後の値(report.startup.save_policy)だけが記録されています。設定前の値は記録されていません。S の SHA は main の追加の前後で一致しています。"
},
{
"severity": "low",
"message": "検証と restore の実測は envelope のもの(SimulationSnapshot.validate と restore。数〜数十 us)だけです。Runtime 全体の restore と内部の validator は、理由つきの未測定です。SaveService の load と save の inclusive の値(約235 ms と約170 ms)には、package の検証が含まれます。OPT の対象を選ぶときに、envelope の値を Runtime の検証の費用として扱わないでください。"
},
{
"severity": "low",
"message": "RNG の状態(typed hex)は、測定が終わった後の分 662 に1回だけ記録されています。測定の開始時点(分 632)の RNG は記録されていません。seed と、PID 間の RNG の一致は確認できます。"
}
]
},
"actual_native": {
"measured_source": "S",
"candidate_Q_measured": false,
"execution": {
"path": "artifacts/original-completion-2026-10-02/p28-02-root-control-r01/native-d6ce6dd-r01/execution.json",
"bytes": 87245363,
"sha256": "d2d13503d1b84b12872b693942809921140e019a7f32ef3f60c156291a649f58"
},
"bundle": {
"path": "artifacts/original-completion-2026-10-02/p28-02-root-control-r01/native-d6ce6dd-r01/bundle.json",
"bytes": 10496,
"sha256": "6ea47083b338a59505e8347e2f556180bf9b21a8769298a58e5b91ce0a92d4d1"
},
"transfer": {
"path": "artifacts/original-completion-2026-10-02/p28-02-root-control-r01/NATIVE_D6CE6DD_BUNDLE_TRANSFER.json",
"bytes": 879,
"sha256": "5a14d50e19707a0ac2a2d5571ba7e3301836ee8d64af01b8062163008cd1cd44"
},
"source_files": 1407,
"all_six_owned_processes_ended": true,
"source_and_player_unchanged": true,
"cleanup_errors": []
},
"failed_ecbbb6b_preserved": {
"path": "artifacts/original-completion-2026-10-02/p28-02-root-control-r01/ROOT_NATIVE_FAILURE_ECBBB6B.json",
"bytes": 4650,
"sha256": "1229e120ff3838285b9e4c18809e8ffaa890ed351a52bc2e99789c3df096ad96"
},
"timeout_failure_preserved": {
"path": "artifacts/original-completion-2026-10-02/p28-02-root-control-r01/diag-repair2-timeout-09ac15a-r01/MANIFEST.json",
"bytes": 7892,
"sha256": "54d300efbb70f1b4d9a786ee09b287be25ec7393b1df9379db7f76bddaa83da5"
},
"original_completed": 23,
"original_total": 88,
"packages_completed": 4,
"packages_total": 30,
"partial_credit": false,
"original_credit": 0,
"scope": "DIAG support stage only. Original P28-02 remains in_progress until actual improvement, E1-E5, repeat comparisons, required regressions/restart, whole-unit review, integration/final and ledger.",
"remaining": [
"P28-02 EQ freeze and T1 OPT implementation/acceptance",
"Six original performance budget failures",
"200 guest Operations ON maximum scene",
"Same Windows build native-device acceptance",
"Long normal play and all original game/content/material acceptance"
]
}
@@ -0,0 +1,34 @@
{
"task_id": "P28-02-DIAG",
"commit": "d6ce6ddb95e38ef987f37af98f02f0531483008f",
"status": "pass",
"summary": "独立レビュー(読取専用)。整合性: packet a3a5b01b…、schema 04a4823f…、manifest 80348632… が一致し、117件すべてが manifest の SHA と bytes に一致。S は base 8c06c3b からの差分で、diag/** の8ファイルだけ。D1: probe は tick_started・tick_phase_started・tick_completed に受動的に接続し、tick ID と13本の境界を記録する。checker は phase0 を m、それ以外を m+1 として検査し、分ではなく ID で結びつける。I0〜I11 は隣り合う境界の差で、kernel の _run_phase(emit の後に handler)と照合して SPEC の定義どおり。observer の費用は callback ごとに別に記録し、差し引かない(semantics.observer_subtracted=false)。tick の間の frame は frame_wall_before_us の別欄。native の3 PID(74945・75718・76472)すべてで、warm 30・測定30・errors 0。D2: S/K/C を各標本の前後で bytes 比較する(K と C は S の観測より前に読み、観測の後に再確認する)。C 層は、規則 (a) を cache_preparations の restored・B1・outside_tick で記録。規則 (b)(c) は、miss のときに cache_miss_in_sample とし、公開の catalog 読取から再構築して比較する。前後の完全一致も要求する。native では、全標本、outside_total、manifest_detached が S・K・C ともに一致し、miss は0。scratch には live の deep copy を渡し、保存先は user://p28_diag/scratch/ の下。detached mutation の後も S/K/C は一致し、3つの instance ID は解放後に無効。observer の接続数は before が connected−1、disconnected が before と同じ。N=5 の独立した inclusive の値で、合算や100%への換算は無い。runtime_restore・runtime_validation_internal・connector_rebuild は samples=null と理由。Runtime の initialize が autoload の GameClock/GameState に結びつくことを source で確認し、理由は妥当。管制が採用済み。起動: 準備の状態変更は set_paused×2・get_var・restore_snapshot・main の add_child と2 frame だけで、checker が静的に強制する。B0/B1/outside の S SHA、K の6項目、C、Ops=INVALID_START_TIME は3 PID で一致。D3: path は query の件数と時間だけで、connector の値は null と理由。machine Mac16,10、engine の SHA と version、commit、seed、RNG 9本の typed hex、入力 eb4f7700… を記録し、各区間の平均・P95・最大・N を出す。D4: import・parse-base・parse-wrapper(--check-only)・3 PID は、exit 0、ERROR と WARNING が0、owned cleanup 済み、PID と profile は重複なし、guard 一致、source map 1407、bundle の72ファイルが SHA 一致。measured_source は S で、candidate_Q_measured は false。正式 validation は unit 20件 OK と native-verify verified。順位は上位3(I10・I4・I11)が3回とも一致する一方、run3 の I2 と I7 の入れ替わりで rankings_agree=false。これは raw と verify の出力にそのまま記録されていて、隠されていない。ecbbb6b の parse の失敗は別に保全され、成功扱いにはなっていない。原本の加算は0(23/88、4/30)。P28-02 全体や OPT の合否は判定していない。指摘は low の注記だけ。",
"acceptance_ids": [
"P28-02-D1",
"P28-02-D2",
"P28-02-D3",
"P28-02-D4"
],
"findings": [
{
"severity": "low",
"message": "inter_tick_frame_wall の最初の測定 tick(tick 31)の frame_wall_before_us には、B1 の ensure_cache と layers()(create_snapshot、約80 ms)による診断の作業が入っています。diag-1 では 596708 us で、これがこの run の最大値です。phase には帰属していませんが、最大値が診断の作業で膨らんでいることは注記されていません。OPT で frame の値を使うときは、この標本を区別してください。"
},
{
"severity": "low",
"message": "scratch の SaveService.save_snapshot と load_snapshot は、プロセス全体で共有する静的な SaveService._performance_budget に record_sample します。S/K/C の外にある状態です。IMPLEMENTATION.md に開示されていて、管制が範囲の外として採用済みで、製品にそれを読む箇所はありません(grep で確認)。ただし、計測の前後の値は report に記録されていません。"
},
{
"severity": "low",
"message": "main の _ready による save policy の設定は、設定後の値(report.startup.save_policy)だけが記録されています。設定前の値は記録されていません。S の SHA は main の追加の前後で一致しています。"
},
{
"severity": "low",
"message": "検証と restore の実測は envelope のもの(SimulationSnapshot.validate と restore。数〜数十 us)だけです。Runtime 全体の restore と内部の validator は、理由つきの未測定です。SaveService の load と save の inclusive の値(約235 ms と約170 ms)には、package の検証が含まれます。OPT の対象を選ぶときに、envelope の値を Runtime の検証の費用として扱わないでください。"
},
{
"severity": "low",
"message": "RNG の状態(typed hex)は、測定が終わった後の分 662 に1回だけ記録されています。測定の開始時点(分 632)の RNG は記録されていません。seed と、PID 間の RNG の一致は確認できます。"
}
]
}