Compare commits
3
Commits
e8b3dbe7a4
...
8c36c100b2
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
8c36c100b2 | ||
|
|
b7f6168dc8 | ||
|
|
a5d2491204 |
@@ -1,3 +1,22 @@
|
||||
## 現在の対象(2026-10-20・正式22成果/P14-03正式完了、P14パッケージ完了)
|
||||
|
||||
元30パッケージ・88成果単位で、部分点はありません。正式完了は22成果、完了パッケージは4(P00、P04、P06、P14)です。
|
||||
|
||||
**P14-03「混雑と経路選択」は Runner で正式完了しました。**
|
||||
- Runner の実receipt: 提出 `a5d2491`、統合・final `b7f6168`、main-base `e8b3dbe`。登録9条件すべて完了、high/medium/critical の指摘は0です。
|
||||
- 受入記録は `execution/p14-03-route-wait/ACCEPTANCE.json` です。条件表と、結合した証拠(正式全回帰192/192、Root別PID pair 5/5、代表性能r02、独立Opusレビュー PASS)を記載しています。
|
||||
- これで P14-01・02・03 の3成果がそろい、P14パッケージが完了しました。
|
||||
|
||||
**解消扱いしない別の未達**(P14の完了に含めません)
|
||||
- Runner review の low 4件
|
||||
- x1 1分tick は平均約827 msで、4 ms の予算に届いていません
|
||||
- x3 frame、stall、描画は未測定、Windows は未検証です
|
||||
- 代表負荷で、実際の職員が業務用shaftを使う場面は実施していません
|
||||
|
||||
**過去の回帰範囲の補足**: 46 suite の件は P14-03 の受入記録と各単位の訂正注記に残しました。p06-01・p14-02 の pinned ACCEPTANCE.json は改変していません。
|
||||
|
||||
**次の対象**: P28-01「現HEADの性能基準」です。現sourceの r02 実測(headless・Operations OFF・x1)を再利用し、windowed描画・x3・Operations ON と記録項目の不足分だけを埋めます。
|
||||
|
||||
## 現在の対象(2026-10-20・正式21成果/P14-03はRunnerゲート待ち)
|
||||
|
||||
元30パッケージ・88成果単位で、部分点はありません。正式完了は21成果、完了パッケージは3(P00、P04、P06)です。
|
||||
|
||||
+250
@@ -0,0 +1,250 @@
|
||||
{
|
||||
"unit": "P14-03",
|
||||
"title": "混雑と経路選択",
|
||||
"state": "completed",
|
||||
"work": "客用・業務用EV、階段、ワープの待ち時間をA*費用へ反映する。",
|
||||
"acceptance": "ラッシュ、相乗り、50%減速、救護同伴、経路喪失を実位置と人数で検証する。",
|
||||
"product_candidate": "83b170a4c7176761b0b18d8e9292017d990e80a9",
|
||||
"runner": {
|
||||
"project": "the-tree-p14-03-route-wait",
|
||||
"task_state": "completed",
|
||||
"submitted": "a5d2491204f0604d07bfd1f1c41344a08e6f4835",
|
||||
"candidate_and_integrated": "b7f6168dc8a31cdbdfb9771d583536cd6663c0dd",
|
||||
"main_base": "e8b3dbe7a40a5fafb4b7e760a59536919c8c9f5a",
|
||||
"registered_conditions_completed": 9,
|
||||
"source_map_files": 1407,
|
||||
"source_map_sha256": "146ea57fae34217239cde6d5e202cd67e1bfec70b20bccec14e0913f170c7c0f",
|
||||
"source_map_equals_formal_full_run": true,
|
||||
"high_medium_critical_findings": 0,
|
||||
"receipts": {
|
||||
"root_db_join": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-closure-b7f6168d/ROOT_DB_JOIN.json",
|
||||
"sha256": "07e855612796732b4701a0384d81c61a29918d3acd6149b63afa834991a68179"
|
||||
},
|
||||
"validation": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-closure-b7f6168d/normal-validation.json",
|
||||
"sha256": "74cd08637c1ec00b3d2a2ab4fff004b622191498b902b5676c1b531dde38eda0"
|
||||
},
|
||||
"review": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-closure-b7f6168d/normal-review.json",
|
||||
"sha256": "f7816f703457089a6d2bf760fc86f6bb24aba097ca53b9b53bdf33821e1f33c2"
|
||||
},
|
||||
"integration": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-closure-b7f6168d/normal-integration.json",
|
||||
"sha256": "324bd3bdd94aa942c8e0a424d244d71e9c6c19470342f5100220e9683d628a6e"
|
||||
},
|
||||
"final": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-closure-b7f6168d/normal-final.json",
|
||||
"sha256": "892c29f456d01d1bf3cef98106387dfc94d9a1378efe0f08761525f5327e05b7"
|
||||
},
|
||||
"traceability": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-closure-b7f6168d/normal-traceability.json",
|
||||
"sha256": "08bdc3647eee15b2a17d3a2fbe7d7981d518bcfcd0bf03655ceb1a824175d1e7"
|
||||
},
|
||||
"registered_acceptance_baseline": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-closure-b7f6168d/registered-acceptance-baseline.json",
|
||||
"sha256": "cd2b4f4df25a5d2a8e52df08d97be452b6bd00baa561f8a862d4cc2a5e90af7c"
|
||||
},
|
||||
"owner_input_binding": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-closure-b7f6168d/owner-input-binding.json",
|
||||
"sha256": "5b57672a42bccca559dcc010d57bf12bfdff595df30cd1856d5db413e8075788"
|
||||
},
|
||||
"owner_review_finished": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-closure-b7f6168d/owner-review-finished.json",
|
||||
"sha256": "fa5f2c650af54e3321f3bddb76f9c3ea49ba9b77398ae80dd45f6eeb8d60e71c"
|
||||
}
|
||||
},
|
||||
"gate_payload": {
|
||||
"verify_p14_03_evidence.py": {
|
||||
"path": "docs/plans/original-completion-2026-10-02/execution/p14-03-runner-gate/verify_p14_03_evidence.py",
|
||||
"sha256": "0cb5f2b1c129aeb765241db3f41569d4bd515d583e55aa2e40723cd46bce7a6a"
|
||||
},
|
||||
"EVIDENCE_BUNDLE_MANIFEST.json": {
|
||||
"path": "docs/plans/original-completion-2026-10-02/execution/p14-03-runner-gate/EVIDENCE_BUNDLE_MANIFEST.json",
|
||||
"sha256": "651c9932b0389b302026d7008e03dab247558b4db07f583a7208e1db4f2fdd41"
|
||||
},
|
||||
"PROVENANCE.md": {
|
||||
"path": "docs/plans/original-completion-2026-10-02/execution/p14-03-runner-gate/PROVENANCE.md",
|
||||
"sha256": "d8a6c3ea3a70572ab4fc385d3e03600cc0174018a366f9bf82088dfa0c024835"
|
||||
}
|
||||
},
|
||||
"note": "Runnerの実receiptを引用。新規engine実行・実装実行は本記録で行っていない。"
|
||||
},
|
||||
"bound_evidence": {
|
||||
"formal_full_regression": {
|
||||
"run_id": "7203a11962b14036be60830b657fafd3",
|
||||
"suites": "192/192",
|
||||
"checks": 22198,
|
||||
"failures": 0,
|
||||
"runner_input": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-regression-83b170a-r01/runner-input.json",
|
||||
"sha256": "5bc9760c0c114a80a3c9e93634e733fc8fa93d4eeea5d8bcfda85d8e4eebd094"
|
||||
},
|
||||
"runner_ended": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-regression-83b170a-r01/runner-ended.json",
|
||||
"sha256": "705fb2c12007bab125548742dc8d9b07918e30cae3a63c7d89e965c43b8b5f7b"
|
||||
},
|
||||
"all_tests": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-formal-regression-83b170a-r01/all-tests.json",
|
||||
"sha256": "31da4c4672f4321469183996e12fb23064b3772a69e8330052ab3e2ea66044f1"
|
||||
}
|
||||
},
|
||||
"root_owned_pairs": {
|
||||
"run_id": "9bb640c7a8354023aab27ef408805e19",
|
||||
"pairs": "5/5",
|
||||
"distinct_pids": 10,
|
||||
"runner_ended": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-root-owned-pairs-83b170a-r01/runner-ended.json",
|
||||
"sha256": "8e23cb61679e35d6ed92e312c8f2b860237170935f1d0ff010196f10b6e5eb62"
|
||||
}
|
||||
},
|
||||
"representative_perf_r02": {
|
||||
"execution": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-representative-perf-r01/run-r02/execution.json",
|
||||
"sha256": "553971f55635e529b48634ef86ad7d4198c8bafe04d5a6a5ef778a4de0439fc1"
|
||||
},
|
||||
"readiness": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-representative-perf-r01/run-r02/readiness.json",
|
||||
"sha256": "da93aecdd2c1648952e2a80382acb7e3f30cfe48a7e5df982315791161fedde2"
|
||||
},
|
||||
"before_report": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-representative-perf-r01/run-r02/before/evidence/report.json",
|
||||
"sha256": "a070c061ca783aaec37152bf66ad6b6e6dc69b80d9c4c024eceab916d4c5d4e9"
|
||||
},
|
||||
"after_report": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-representative-perf-r01/run-r02/after/evidence/report.json",
|
||||
"sha256": "f1d447937158a884a1b287c3b5be38b6e73b73c5d748f9576401877402dabe1b"
|
||||
},
|
||||
"verdict": "収集・機能検証合格、版間比較成立。絶対予算の合格ではない。"
|
||||
},
|
||||
"independent_whole_unit_review": {
|
||||
"verdict": "PASS",
|
||||
"request": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-whole-unit-review-r01/REVIEW_REQUEST.md",
|
||||
"sha256": "0e53d1c1868caa165cd3df8f56d04821798c2bf2d8cb93d9d3793c5171ba77cd"
|
||||
},
|
||||
"output": {
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-whole-unit-review-r01/review-output.md",
|
||||
"sha256": "15046de363106ece8fdbba2f58e2b701fd6102200e2c22505bddc82d20c70794"
|
||||
}
|
||||
},
|
||||
"evidence_matrix": "docs/plans/original-completion-2026-10-02/execution/p14-03-route-wait/EVIDENCE_MATRIX.md"
|
||||
},
|
||||
"condition_table": [
|
||||
{
|
||||
"id": "P14-03",
|
||||
"condition": "待ち時間のA*費用反映、ラッシュ・相乗り・50%減速・救護同伴・経路喪失を実位置と人数で検証",
|
||||
"result": "達成",
|
||||
"basis": "test_route_wait_choice 119 checks(実客12人ラッシュ迂回、実客6人の相乗り定員4、籠B撤去後の経路切替)、test_runtime_path_traffic:146-158(実客5人で半速)、test_rescue_elevator 30/0",
|
||||
"limit": "経路喪失は出発前の喪失のみ。移動中・待機中の再計画は未試験(low)"
|
||||
},
|
||||
{
|
||||
"id": "P14-X1",
|
||||
"condition": "原本条件とUI操作が一致",
|
||||
"result": "達成",
|
||||
"basis": "建設・撤去はplayer command経由。新規UI面なし"
|
||||
},
|
||||
{
|
||||
"id": "P14-X2",
|
||||
"condition": "Runtimeの実利用・会計・行動へ接続",
|
||||
"result": "達成",
|
||||
"basis": "実際に歩く従業員が迂回、相乗り客はRuntime自身が乗車要求。会計は本単位で新規なし(課金はP14-02)",
|
||||
"limit": "ラッシュ12人と業務用EV4人はrequest_tripで注入(low)"
|
||||
},
|
||||
{
|
||||
"id": "P14-X3",
|
||||
"condition": "途中保存・再起動で再現",
|
||||
"result": "達成",
|
||||
"basis": "保存契約v2往復、旧50ceca0 v1保存の移行、Root別PID pair 5/5・10PIDのdigest一致"
|
||||
},
|
||||
{
|
||||
"id": "P14-X4",
|
||||
"condition": "異常/境界/中断を検証",
|
||||
"result": "達成",
|
||||
"basis": "改ざん値0/300の原子拒否、v1非0拒否、取消、乗車中の退館指示"
|
||||
},
|
||||
{
|
||||
"id": "P14-X5",
|
||||
"condition": "関連回帰PASS",
|
||||
"result": "達成",
|
||||
"basis": "正式全roster 192/192・22,198 checks・失敗0"
|
||||
},
|
||||
{
|
||||
"id": "P14-X6",
|
||||
"condition": "要件別ログとソースハッシュを保存",
|
||||
"result": "達成",
|
||||
"basis": "192行すべてでsource SHAとraw log SHAが一致、source map 1407件が正式全回帰と同一"
|
||||
},
|
||||
{
|
||||
"id": "P14-X7",
|
||||
"condition": "既存代表負荷の性能回帰を計測",
|
||||
"result": "達成(計測として)",
|
||||
"basis": "r02 before/after比較成立。path P95<1ms、manual約300ms、autosave約327ms、load約3.19s",
|
||||
"limit": "x1 1分tickは両版約827msで4ms予算超過(未達、P28で扱う)"
|
||||
},
|
||||
{
|
||||
"id": "P14-X8",
|
||||
"condition": "Windows部分実機確認。不可なら未検証を残す",
|
||||
"result": "達成(未検証を保持)",
|
||||
"basis": "Windows実機は未検証として残す"
|
||||
}
|
||||
],
|
||||
"preserved_low_findings": [
|
||||
{
|
||||
"severity": "low",
|
||||
"message": "Route loss is proven only for loss before departure: shaft B is demolished, then a new walker goes via shaft A. Replanning by an actor that loses its route mid-walk or while queued is not exercised in test_route_wait_choice. There is partial adjacent coverage: test_elevator_service releases waiting riders on outage 'for replan', and test_guest_service covers REPLANNING. The independent review also noted this. A future suite should demolish or stop the shaft while the walker is en route or queued."
|
||||
},
|
||||
{
|
||||
"severity": "low",
|
||||
"message": "The rush (12 guests) and the service-EV queue (4 workers) are injected with elevators.request_trip directly; only the walker and the shared-cabin riders use Runtime-driven travel. The representative perf input does not make real staff use the service shaft. This is disclosed in PROVENANCE and in the verifier's not_measured_or_unmet list."
|
||||
},
|
||||
{
|
||||
"severity": "low",
|
||||
"message": "Verifier robustness: a missing JSON key or malformed evidence makes it fail with a Python traceback (non-zero exit) instead of a structured failed check with --json output. It still fails closed, but a diagnostic is lost. The manifest itself is pinned only by git tracking, not by an internal SHA constant; this is acceptable because the commit is what gets validated."
|
||||
},
|
||||
{
|
||||
"severity": "low",
|
||||
"message": "These are known, explicitly unaccepted items, not resolved by this unit: x1 one-minute tick ≈827 ms against the 4 ms budget in both versions, and x3 frame, main-thread stall, rendering and Windows not measured. They must stay open in the ledger and must not be counted as achieved."
|
||||
}
|
||||
],
|
||||
"unresolved_separate_unmet": [
|
||||
"low4件(Runner normal review)は解消扱いしない",
|
||||
"x1 1分tick 平均約827ms(両版)で4ms予算未達",
|
||||
"x3 frame 未測定",
|
||||
"main-thread stall 未測定",
|
||||
"描画 未測定",
|
||||
"Windows 未検証",
|
||||
"代表負荷で実職員が業務用shaftを使う場面は未実施",
|
||||
"移動中・待機中に経路を失ったactorの再計画は未試験"
|
||||
],
|
||||
"regression_scope_supplement": {
|
||||
"affected_units": [
|
||||
"P06-01",
|
||||
"P06-03",
|
||||
"P14-02",
|
||||
"P06-02"
|
||||
],
|
||||
"statement": "当時の回帰はMakefile経由で、collector rosterのみの46 suiteを含まなかった。その範囲の回帰(v15 mana_reserve保存拒否、test_required_kitchen旧14比較、defense autonomyのマナ前提、P08 palette数)は83b170aで修正し、正式192/192・22,198 checks・失敗0で全roster合格を確認した。各単位の既存ACCEPTANCE.json(p06-01-a06、p14-02-warp等のpinned記録)は改変せず、本記録とwork_packagesの訂正注記で補足する。",
|
||||
"pinned_unchanged": {
|
||||
"execution/p06-01-a06/ACCEPTANCE.json": "6f471e3f32460758b8a617051a507f780d70b33f254a7910dfada87a8c5c3484",
|
||||
"execution/p14-02-warp/ACCEPTANCE.json": "ac7bfd6fb88cb8ac8c195c8051ebe22ba95a6a6393342de089aae88fdcc73307"
|
||||
}
|
||||
},
|
||||
"decisions": [
|
||||
"A06",
|
||||
"A07",
|
||||
"A08"
|
||||
],
|
||||
"approval": "Runner normal final completed。owner判断はユーザー委任「承認するかどうかの判断はそちらでやって、いちいち作業止めないで」に基づくRoot候補審査(ROOT_DB_JOIN)。",
|
||||
"original_completed": 22,
|
||||
"original_total": 88,
|
||||
"whole_package_completed": "P14(P14-01/02/03全完了)",
|
||||
"not_claimed": [
|
||||
"全ゲーム完成",
|
||||
"Windows実機",
|
||||
"性能予算達成",
|
||||
"完成素材・描画目視",
|
||||
"P28"
|
||||
],
|
||||
"recorded_at_jst": "2026-10-20T20:00:00+09:00"
|
||||
}
|
||||
+12051
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,48 @@
|
||||
# P14-03 Runner ゲート:来歴と前提
|
||||
|
||||
この文書は、Runner の task contract に入れられない来歴を記録します(contract は `additionalProperties=false` のため)。
|
||||
|
||||
## 誰が実装したか
|
||||
|
||||
- P14-03 の製品実装は、2026-10-20 に Claude Desktop セッションが `main` 上で直接行いました。
|
||||
- これは、ユーザーが更新した体制の下での作業です。ユーザーは承認判断も委任しています。
|
||||
- 該当する commit は次のとおりで、すべて `83b170a4c7176761b0b18d8e9292017d990e80a9` の祖先です。
|
||||
- `0754f41`: shaft 全体の待ち時間を経路費用に反映
|
||||
- `a8edd3c`: 保存契約 v2、乗車中の客を籠内で退館させない修正
|
||||
- `4036434`: 新PID pair suite、UID、policy pin
|
||||
- `83b170a`: roster のみの suite で見つかった回帰の修正
|
||||
- この実装は Runner の worker(codex / opencode / agy)が行ったものではありません。
|
||||
- task contract の `worker: "codex"` は、Runner が今後修正を求めた場合の担当を予約する欄です。過去の実装者を示すものではありません。
|
||||
|
||||
## base と、今回の提出差分
|
||||
|
||||
- base commit は `e8b3dbe7a40a5fafb4b7e760a59536919c8c9f5a` です。この時点で、`83b170a` の製品 source をすべて含んでいます。base 以降の commit は記録だけで、source は変えていません。
|
||||
- 今回 Runner に提出する差分は、このディレクトリの3ファイルだけです。製品 source には触れません。
|
||||
- `verify_p14_03_evidence.py`
|
||||
- `EVIDENCE_BUNDLE_MANIFEST.json`
|
||||
- `PROVENANCE.md`
|
||||
|
||||
## 外部の前提
|
||||
|
||||
前提は Runner 登録済みの task ではないため、`depends_on` には入れていません。代わりに、tracked な記録として verifier で SHA を固定しています。
|
||||
- P06-01 の受入記録: `execution/p06-01-a06/ACCEPTANCE.json`(`6f471e3f…3484`)
|
||||
- P14-02 の受入記録: `execution/p14-02-warp/ACCEPTANCE.json`(`ac7bfd6f…7307`)
|
||||
- 決定 A06・A07・A08: `decisions.json`(`8b7dba98…a068c`)
|
||||
|
||||
## 再実行しないもの
|
||||
|
||||
次の4つは実行済みで、Runner で再実行はしません。verifier は、既知の SHA に固定したうえで、それぞれの結合を確認します。
|
||||
|
||||
| 証拠 | 主な内容 | 固定している SHA |
|
||||
|---|---|---|
|
||||
| 正式全回帰 | run `7203a119…`、192/192 suite、22,198 checks | ended `705fb2c1…5f7b` |
|
||||
| Root の別PID pair | run `9bb640c7…`、5/5 pair | ended `8e23cb61…eb62` |
|
||||
| 代表性能 r02 | 収集と機能検証は合格、版間比較が成立 | execution `553971f5…9fc1` |
|
||||
| 独立 Opus の whole-unit レビュー | PASS | 依頼 `0e53d1c1…77cd`、出力 `15046de3…0794` |
|
||||
|
||||
## 主張しないこと
|
||||
|
||||
- 絶対性能予算は満たしていません。x1 の1分 tick は両版とも約 827 ms で、4 ms の予算を超えています。
|
||||
- 次のものは未測定です: x3 frame、stall、描画、Windows。
|
||||
- 代表負荷で、実際の職員が業務用 shaft を使う場面は実施していません。
|
||||
- 原本88成果のうち完了数は、Runner の final が出るまで21件のままにします。
|
||||
+161
@@ -0,0 +1,161 @@
|
||||
#!/usr/bin/env python3
|
||||
"""P14-03 evidence binding verifier (Runner validation; read-only, no engine).
|
||||
|
||||
Binds the already-collected P14-03 evidence to the exact source under
|
||||
validation without re-running it. Evidence is read from an evidence root
|
||||
(default: $BUILD_OUTPUT_DIR/p14-03-evidence) that Root populates byte-for-byte
|
||||
from artifacts/original-completion-2026-10-02/. Every evidence file must match
|
||||
the tracked EVIDENCE_BUNDLE_MANIFEST.json next to this script, and the key
|
||||
receipts are pinned to known immutable SHA256 values, so a replaced or
|
||||
regenerated file is detected even if it carries passed/PASS fields.
|
||||
|
||||
Checks:
|
||||
manifest every listed evidence file present, size and SHA equal
|
||||
formal pinned input/ended/all-tests SHAs; run passed completely; the
|
||||
source under validation (tools/run_all_tests.source_refs) equals
|
||||
the run's selected source map; roster equals the standard roster
|
||||
of that source; every row passed, its source SHA equals the map,
|
||||
its raw log SHA equals the bundled log; marker contract and engine
|
||||
pinned and equal to the tracked contract
|
||||
pairs pinned ended SHA; protocol, commit, 5/5, 10 distinct PIDs; bound
|
||||
to the same formal run
|
||||
perf pinned execution SHA; passed and comparison established; bound to
|
||||
formal and pair runs; pinned engine/input/probe; each report equals
|
||||
its execution record and its raw stdout line
|
||||
review pinned request and output SHAs; output names the request SHA and
|
||||
states PASS on the candidate
|
||||
prereqs tracked P06-01 / P14-02 acceptance records and decisions (A06,
|
||||
A07, A08) pinned
|
||||
Absolute performance budgets are not asserted (x1 exceeds 4 ms in both
|
||||
versions; x3/stall/render/Windows unmeasured). Exit 0 only if all hold.
|
||||
"""
|
||||
import argparse, hashlib, importlib.util, json, os, sys
|
||||
from pathlib import Path
|
||||
sys.dont_write_bytecode = True
|
||||
HERE = Path(__file__).resolve().parent
|
||||
CANDIDATE = '83b170a4c7176761b0b18d8e9292017d990e80a9'
|
||||
FULL, PAIR = 'p14-03-formal-regression-83b170a-r01', 'p14-03-root-owned-pairs-83b170a-r01'
|
||||
PERF, REVIEW = 'p14-03-representative-perf-r01/run-r02', 'p14-03-whole-unit-review-r01'
|
||||
PIN = {
|
||||
'full_input': '5bc9760c0c114a80a3c9e93634e733fc8fa93d4eeea5d8bcfda85d8e4eebd094',
|
||||
'full_ended': '705fb2c12007bab125548742dc8d9b07918e30cae3a63c7d89e965c43b8b5f7b',
|
||||
'full_all_tests': '31da4c4672f4321469183996e12fb23064b3772a69e8330052ab3e2ea66044f1',
|
||||
'pair_ended': '8e23cb61679e35d6ed92e312c8f2b860237170935f1d0ff010196f10b6e5eb62',
|
||||
'perf_execution': '553971f55635e529b48634ef86ad7d4198c8bafe04d5a6a5ef778a4de0439fc1',
|
||||
'review_request': '0e53d1c1868caa165cd3df8f56d04821798c2bf2d8cb93d9d3793c5171ba77cd',
|
||||
'review_output': '15046de363106ece8fdbba2f58e2b701fd6102200e2c22505bddc82d20c70794',
|
||||
'engine': 'c7cccbf8fb143e34e02fd6521e09be2c2b974f0d5db080b19071c9c570718ccf',
|
||||
'fixture': 'eb4f770071eb07cd7e136fe54c3f78768cc8de7a4264e62a9af1f06a8f90f9bd',
|
||||
'probe': '95e5967835cb05ad96e8e6f257689d0bd831792aa9c228c022e3af81448ff76a',
|
||||
'p06_01_acceptance': '6f471e3f32460758b8a617051a507f780d70b33f254a7910dfada87a8c5c3484',
|
||||
'p14_02_acceptance': 'ac7bfd6fb88cb8ac8c195c8051ebe22ba95a6a6393342de089aae88fdcc73307',
|
||||
'decisions': '8b7dba984d5b1cc0091e8faf8fddb2ab357dd79f1bd093eba46c23c2f62a068c',
|
||||
}
|
||||
|
||||
|
||||
def sha(path):
|
||||
return hashlib.sha256(Path(path).read_bytes()).hexdigest()
|
||||
|
||||
|
||||
def read(path):
|
||||
return json.loads(Path(path).read_bytes())
|
||||
|
||||
|
||||
def main():
|
||||
p = argparse.ArgumentParser(description=__doc__)
|
||||
p.add_argument('--project-root', type=Path, default=Path('.'))
|
||||
p.add_argument('--evidence-root', type=Path)
|
||||
p.add_argument('--json', type=Path)
|
||||
args = p.parse_args()
|
||||
root = args.project_root.resolve()
|
||||
ev = args.evidence_root or (Path(os.environ['BUILD_OUTPUT_DIR']) / 'p14-03-evidence' if os.environ.get('BUILD_OUTPUT_DIR') else None)
|
||||
checks = []
|
||||
|
||||
def check(name, ok, detail=None):
|
||||
checks.append({'name': name, 'passed': bool(ok), 'detail': detail})
|
||||
return bool(ok)
|
||||
|
||||
def finish():
|
||||
result = {'candidate': CANDIDATE, 'passed': bool(checks) and all(c['passed'] for c in checks), 'checks': checks,
|
||||
'absolute_performance_budget_met': False,
|
||||
'not_measured_or_unmet': ['x1 one-minute wall time exceeds 4 ms in both versions', 'x3 frame', 'main-thread stall',
|
||||
'rendering', 'Windows', 'real staff use of the service shaft in the representative input']}
|
||||
text = json.dumps(result, ensure_ascii=False, indent=2)
|
||||
if args.json:
|
||||
args.json.write_text(text + '\n')
|
||||
print(text)
|
||||
return 0 if result['passed'] else 1
|
||||
|
||||
if not check('evidence root provided', ev is not None and Path(ev).is_dir(), str(ev)):
|
||||
return finish()
|
||||
ev = Path(ev).resolve()
|
||||
manifest = read(HERE / 'EVIDENCE_BUNDLE_MANIFEST.json')
|
||||
bad = [n for n, q in manifest['files'].items() if not (ev / n).is_file() or (ev / n).stat().st_size != q['bytes'] or sha(ev / n) != q['sha256']]
|
||||
check('every manifest file present and byte-identical', not bad, {'files': len(manifest['files']), 'mismatched': bad[:20]})
|
||||
for key, rel in [('full_input', FULL + '/runner-input.json'), ('full_ended', FULL + '/runner-ended.json'),
|
||||
('full_all_tests', FULL + '/all-tests.json'), ('pair_ended', PAIR + '/runner-ended.json'),
|
||||
('perf_execution', PERF + '/execution.json'), ('review_request', REVIEW + '/REVIEW_REQUEST.md'),
|
||||
('review_output', REVIEW + '/review-output.md')]:
|
||||
check('pinned ' + key, (ev / rel).is_file() and sha(ev / rel) == PIN[key] and manifest['files'].get(rel, {}).get('sha256') == PIN[key])
|
||||
if bad:
|
||||
return finish()
|
||||
|
||||
spec = importlib.util.spec_from_file_location('p1403gate_std', root / 'tools/run_all_tests.py')
|
||||
std = importlib.util.module_from_spec(spec); spec.loader.exec_module(std)
|
||||
refs = std.source_refs(root)
|
||||
source_map = {n: q['sha256'] for n, q in refs.items()}
|
||||
roster = ['tests/run_tests.gd'] + sorted(n for n in refs if n.startswith('tests/') and n.endswith('.gd') and Path(n).name.startswith('test')
|
||||
and 'export' not in Path(n).parts and n != 'tests/s0/test_kernel_and_save.gd')
|
||||
fi, fe, rows = read(ev / FULL / 'runner-input.json'), read(ev / FULL / 'runner-ended.json'), read(ev / FULL / 'all-tests.json')
|
||||
check('formal run passed completely', fe['passed'] is True and fe['engine_ended'] is True and fe['failed_suites'] == 0
|
||||
and not fe['remaining_unexecuted_tests'] and not fe['missing_marker_paths'] and not fe['guard_errors']
|
||||
and not fe['cleanup_errors'] and fi['run_id'] == fe['run_id'] and fe['all_tests_sha256'] == PIN['full_all_tests'],
|
||||
{'suites': fe['actual_suites'], 'checks': fe['actual_all_roster_checks'], 'run_id': fe['run_id']})
|
||||
check('source under validation equals the formal selected source map', fi['selected_source_map'] == source_map, {'files': len(source_map)})
|
||||
check('formal roster equals the standard roster of this source', fi['roster'] == roster and [r['test'] for r in rows] == roster, {'suites': len(roster)})
|
||||
row_bad = [r['test'] for r in rows if not (r['passed'] and r['source_sha256'] == source_map.get(r['test'])
|
||||
and (ev / FULL / r['log']).is_file() and sha(ev / FULL / r['log']) == r['log_sha256'])]
|
||||
check('every formal row passed with source and raw log bound', not row_bad, {'mismatched': row_bad[:20]})
|
||||
contract = root / 'docs/plans/original-completion-2026-10-02/execution/completion_marker_contracts.json'
|
||||
check('formal marker contract equals the tracked contract', fi['marker_contract_sha256'] == sha(contract))
|
||||
check('formal run used the pinned engine', fi['engine_sha256'] == PIN['engine'])
|
||||
|
||||
pi, pe = read(ev / PAIR / 'runner-input.json'), read(ev / PAIR / 'runner-ended.json')
|
||||
pids = pe.get('actual_captured_PIDs', [])
|
||||
check('Root pair run passed 5/5 with 10 distinct owned PIDs', pe.get('protocol') == 'p14-root-owned-pairs-v1' and pe['passed'] is True
|
||||
and pe['commit'] == CANDIDATE and len(pe['pairs']) == 5 and all(x['passed'] for x in pe['pairs'])
|
||||
and len(pids) == 10 and len(set(pids)) == 10 and not pe['guard_errors'] and not pe['cleanup_errors'], {'run_id': pe['run_id']})
|
||||
check('pair run bound to the same formal run', pi['full_run_end_sha256'] == PIN['full_ended'] and pi['full_run_input_sha256'] == PIN['full_input'])
|
||||
|
||||
xe, xr = read(ev / PERF / 'execution.json'), read(ev / PERF / 'readiness.json')
|
||||
check('perf r02 passed with comparison established', xe['passed'] is True and xe['comparison_established'] is True
|
||||
and xe['source_and_default_player_unchanged'] is True and not xe['cleanup_errors'] and xe['actual_native'] == 4)
|
||||
check('perf bound to the same formal and pair runs', xr['full_run_binding']['runner_ended_sha256'] == PIN['full_ended']
|
||||
and xr['pair_run_binding']['runner_ended_sha256'] == PIN['pair_ended'] and xr['after'] == CANDIDATE)
|
||||
check('perf used pinned engine, input and probe', xr['engine_sha256'] == PIN['engine'] and xr['fixture_sha256'] == PIN['fixture']
|
||||
and xr['probe_sha256'] == PIN['probe'])
|
||||
for phase in [x for x in xe['phases'] if x['phase'] == 'measure']:
|
||||
variant = phase['variant']
|
||||
report_path = ev / PERF / variant / 'evidence/report.json'
|
||||
report = read(report_path)
|
||||
raw = (ev / PERF / variant / 'measure.stdout.log').read_text()
|
||||
printed = [l[len('P14_03_PERF_REPORT='):] for l in raw.splitlines() if l.startswith('P14_03_PERF_REPORT=')]
|
||||
check(variant + ' perf report bound to execution and raw stdout', sha(report_path) == phase['report_sha256']
|
||||
and len(printed) == 1 and json.loads(printed[0]) == report and report['pid'] == phase['actual_pid']
|
||||
and report['checks'] > 0 and report['failures'] == 0 and report['input_sha256'] == PIN['fixture'])
|
||||
|
||||
review = (ev / REVIEW / 'review-output.md').read_text()
|
||||
check('independent review names the exact request and states PASS on the candidate',
|
||||
PIN['review_request'] in review and ('判定: PASS(正確候補 ' + CANDIDATE) in review)
|
||||
|
||||
base = root / 'docs/plans/original-completion-2026-10-02'
|
||||
check('P06-01 acceptance record pinned', sha(base / 'execution/p06-01-a06/ACCEPTANCE.json') == PIN['p06_01_acceptance'])
|
||||
check('P14-02 acceptance record pinned', sha(base / 'execution/p14-02-warp/ACCEPTANCE.json') == PIN['p14_02_acceptance'])
|
||||
decisions = read(base / 'decisions.json')
|
||||
check('decisions A06/A07/A08 present and file pinned', sha(base / 'decisions.json') == PIN['decisions']
|
||||
and {'A06', 'A07', 'A08'} <= {d['id'] for d in decisions['confirmed']})
|
||||
return finish()
|
||||
|
||||
|
||||
if __name__ == '__main__':
|
||||
raise SystemExit(main())
|
||||
@@ -204,8 +204,8 @@
|
||||
"packages": 30,
|
||||
"remaining_delivery_units": 88,
|
||||
"current_package_state_counts": {
|
||||
"completed": 3,
|
||||
"in_progress": 27
|
||||
"completed": 4,
|
||||
"in_progress": 26
|
||||
},
|
||||
"initial_snapshot_checked": false,
|
||||
"historical_source_bytes_compared": false,
|
||||
@@ -222,7 +222,7 @@
|
||||
"ASSETS_PLATFORM_AUDIT.md": "a3a4b8ca0fb39a9abf88692285d26aa879815e092352ba304ef2758e71da50bd",
|
||||
"ATOMIC_REGISTER.md": "6070143b85b7c3b9b73d7c9768d88d2dae4d20407ad54a563cb6ffd74f2373ae",
|
||||
"ATOMIC_SEMANTIC_REVIEW.md": "c156b1fb57c2b4a900f27a19049510f3e9616e723d5edb3417f50d733de5be48",
|
||||
"IMPLEMENTATION_PLAN.md": "823d559e35d5c1aac9385c5bba1ccc56e41e3c2e436e13fda1168e89c56943fb",
|
||||
"IMPLEMENTATION_PLAN.md": "8f8c2666b4b0f0c0882355f5624cd5ffcdde13ebd582184158020d4ddf8852ee",
|
||||
"IMPORT_UNICODE_AUDIT.md": "88b2382bfbb3411fece8be7e6004ba21d8bf6a47e9d1f3cf573ea6638f79c12f",
|
||||
"P09_VALUE_CONTRACTS.md": "c5abdc4543e54033b1fcfd0943cba266f664d8c10968965fd36ade40da488a25",
|
||||
"PERFORMANCE_AUDIT.md": "c75e806acf825fc4a61f773a2cce7e71be335a1e25dbb15d98091097e8dc47c1",
|
||||
@@ -243,7 +243,7 @@
|
||||
"facility_value_contracts_validation.json": "bf490a9ca585c48fc318e76c4a069ef244827d828d46e6415399f7710590dd16",
|
||||
"performance_audit.json": "0b630b15a392c3e0366f1362bfe4ddacb968f915f54549f82e4d6fa315384762",
|
||||
"progress_contract.json": "ccbdfce8c8365d5c13f59531955708834cce45acd0e136561c95295dfdb5df77",
|
||||
"progress_snapshot.json": "111faeb32f4772fedd5ab35b723d5b975b59ab8bd913547f38fe849fc71afd8d",
|
||||
"progress_snapshot.json": "9b674549a6f38d84f1097d1c7952a794a76687e9445314f75c515a9504294ad4",
|
||||
"progress_validator_guard_checks.json": "72ee513fcf1cad85c24bfd0a4b472f425f6acf117928ece0f6b41e29018da627",
|
||||
"progress_validator_guard_checks.r01.json": "14c26adffa5a1938241db4912e50ea54b660641ee6fee2e412d467dce14d0519",
|
||||
"requirement_coverage.json": "03b10e4da367579db502d0671a6e0dda36fd385111c6f1c0084acaff7605f593",
|
||||
@@ -253,6 +253,6 @@
|
||||
"validate_facility_value_contracts.py": "91640e2a76cd6cc9186f7b85c0bf379b24b6cac0d48962815235ee628e7ae43e",
|
||||
"validate_plan.py": "4973d3c2797289d266f5c6e7c36f3d2c31931b23a1022eab3d94328267bcc1b4",
|
||||
"validator_update_checks.json": "f997d0f3de2cea29550840b1d5cb23647d64f81329de46758551e2b6c8fecc27",
|
||||
"work_packages.json": "e1cd56f1fff8a4787d0e378e8b271a59f45b261baff93227f0832d9854996413"
|
||||
"work_packages.json": "6a280f07dd1cac1e62c0f9473112f99ce3af27cd3330428046cd336364700d2d"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -151,12 +151,12 @@
|
||||
"scope": "Base defect reproduction and isolated candidate checks; normal source adoption and merged regression require their own evidence."
|
||||
},
|
||||
"current_package_state_counts": {
|
||||
"completed": 3,
|
||||
"in_progress": 27
|
||||
"completed": 4,
|
||||
"in_progress": 26
|
||||
},
|
||||
"current_delivery_state_counts": {
|
||||
"completed": 21,
|
||||
"in_progress": 20,
|
||||
"completed": 22,
|
||||
"in_progress": 19,
|
||||
"planned": 47
|
||||
},
|
||||
"completed_current_deliveries": [
|
||||
@@ -175,6 +175,7 @@
|
||||
"P13-03",
|
||||
"P14-01",
|
||||
"P14-02",
|
||||
"P14-03",
|
||||
"P19-03",
|
||||
"P22-01",
|
||||
"P23-01",
|
||||
@@ -184,7 +185,8 @@
|
||||
],
|
||||
"whole_packages_newly_completed": [
|
||||
"P04",
|
||||
"P06"
|
||||
"P06",
|
||||
"P14"
|
||||
],
|
||||
"remaining_acceptance": [
|
||||
"原子条件の8観点と適用外/独立判定者",
|
||||
@@ -4547,7 +4549,7 @@
|
||||
}
|
||||
},
|
||||
"known_original_principal_profit_difference_unresolved": 0,
|
||||
"next_priority_original_principal_profit": "Current: P14-03 Runner gate on 83b170a (no rerun; evidence binding). Next unit: P28-01 current-HEAD performance baseline.",
|
||||
"next_priority_original_principal_profit": "P14-03 formally closed by Runner (b7f6168). Next unit: P28-01 current-HEAD performance baseline.",
|
||||
"historical_before_original_profit_fix_original_principal_profit_reproduction_checkpoint": {
|
||||
"issued_by": "/root",
|
||||
"linked_at_jst": "2026-10-09T07:29:13.140774+09:00",
|
||||
@@ -5245,16 +5247,14 @@
|
||||
"sha256": "45845238d8a73b84fd346f2d834ee4aaa12d32b45367ea0952b523db9b2523d9"
|
||||
},
|
||||
"next_single_delivery_unit": {
|
||||
"id": "P14-03",
|
||||
"title": "混雑と経路選択",
|
||||
"id": "P28-01",
|
||||
"title": "現HEADの性能基準",
|
||||
"state": "in_progress",
|
||||
"completed": false,
|
||||
"candidate_commit": "83b170a4c7176761b0b18d8e9292017d990e80a9",
|
||||
"current_gate_status": "independent Opus review PASS; awaiting Runner registration/validate/review/integration/final",
|
||||
"runner_gate_proposal": "artifacts/original-completion-2026-10-02/p14-03-runner-gate-r01/REGISTRATION_PROPOSAL.json",
|
||||
"original_completed": 21,
|
||||
"original_total": 88,
|
||||
"next_after": "P28-01"
|
||||
"reusable_evidence": "artifacts/original-completion-2026-10-02/p14-03-representative-perf-r01/run-r02/execution.json",
|
||||
"remaining": "windowed描画・x3・Operations ON・機種/build/seed/速度/区間/平均/P95/最大の記録",
|
||||
"original_completed": 22,
|
||||
"original_total": 88
|
||||
},
|
||||
"current_P14_01_contract_audit": {
|
||||
"audit": "artifacts/original-completion-2026-10-02/p14-01-current-contract-audit-r01/audit.json",
|
||||
@@ -9721,7 +9721,7 @@
|
||||
"execution": "the-tree-p06-01 Runner; recorded Claude decision, one Codex implementer",
|
||||
"current_gate_status": "not implemented or executed; formal completion not accepted"
|
||||
},
|
||||
"next_closure_plan_id": "P14-03",
|
||||
"next_closure_plan_id": "P28-01",
|
||||
"p24_03_formal_closure": "docs/plans/original-completion-2026-10-02/execution/p24-03-formal-closure-r01/closure.json",
|
||||
"new_engine_run_scope": "Supplemental positive metadata diagnostic r01 failed cleanup preparation/log isolation; r02 passed17checks unchanged source and entire default profile. No duplicated full game regression.",
|
||||
"current_closure_targets": {
|
||||
@@ -10845,5 +10845,36 @@
|
||||
"next_closure_plan_id": "P06-02",
|
||||
"next_priority_original_principal_profit": "P04 existingD05 answers pending; current independent nextwholeunit P26-01 actualOpus selected. PriorP06 evidence retained, no activeworker.",
|
||||
"next_priority_p06": "Deferred existingP06 original conditions; no duplicate run. CurrentfocusP26-01."
|
||||
},
|
||||
"historical_next_before_P14_03_closure": {
|
||||
"next_single_delivery_unit": {
|
||||
"id": "P14-03",
|
||||
"title": "混雑と経路選択",
|
||||
"state": "in_progress",
|
||||
"completed": false,
|
||||
"candidate_commit": "83b170a4c7176761b0b18d8e9292017d990e80a9",
|
||||
"current_gate_status": "independent Opus review PASS; awaiting Runner registration/validate/review/integration/final",
|
||||
"runner_gate_proposal": "artifacts/original-completion-2026-10-02/p14-03-runner-gate-r01/REGISTRATION_PROPOSAL.json",
|
||||
"original_completed": 21,
|
||||
"original_total": 88,
|
||||
"next_after": "P28-01"
|
||||
},
|
||||
"next_closure_plan_id": "P14-03",
|
||||
"next_priority_original_principal_profit": "Current: P14-03 Runner gate on 83b170a (no rerun; evidence binding). Next unit: P28-01 current-HEAD performance baseline."
|
||||
},
|
||||
"current_p14_03_route_wait_completion": {
|
||||
"unit": "P14-03",
|
||||
"candidate": "83b170a4c7176761b0b18d8e9292017d990e80a9",
|
||||
"runner_submitted": "a5d2491204f0604d07bfd1f1c41344a08e6f4835",
|
||||
"runner_integrated_final": "b7f6168dc8a31cdbdfb9771d583536cd6663c0dd",
|
||||
"main_base": "e8b3dbe7a40a5fafb4b7e760a59536919c8c9f5a",
|
||||
"acceptance": "docs/plans/original-completion-2026-10-02/execution/p14-03-route-wait/ACCEPTANCE.json",
|
||||
"acceptance_sha256": "14967ffbfdbf9578fd1747024f7e4bdadca6754419d76a59024e1c4e5d973e75",
|
||||
"root_db_join_sha256": "07e855612796732b4701a0384d81c61a29918d3acd6149b63afa834991a68179",
|
||||
"approved_at_jst": "2026-10-20T20:00:00+09:00",
|
||||
"approval": "delegated_by_user",
|
||||
"original_completed": 22,
|
||||
"original_total": 88,
|
||||
"whole_package_completed": "P14"
|
||||
}
|
||||
}
|
||||
|
||||
@@ -8252,7 +8252,7 @@
|
||||
"D04",
|
||||
"D05"
|
||||
],
|
||||
"state": "in_progress",
|
||||
"state": "completed",
|
||||
"supplement_ids": [],
|
||||
"owner_roles": {
|
||||
"implementation": "実装担当(担当者未割当)",
|
||||
@@ -8261,7 +8261,7 @@
|
||||
},
|
||||
"legacy_state": "planned",
|
||||
"state_scope": "package-level; completed means whole package accepted; partial implementation is not completion",
|
||||
"current_summary": "採用済み1299参照は初回独立レビューと同一。初回に確認した失敗時保存保護、正常順序・型・所有権・保存復元・経路、1200Kernel ticksの全状態・イベント一致、同版172回帰14636checks/0を維持する。追加証拠で20,000セル・200客・50職員・150施設、既存施設要求200・物流要求200・イベント50の同一Operations OFF状態を採用前後で復元し、snapshot/manual/autosaveを各5試行、各64checks/0として確認。平均snapshotは75.985→74.624ms、manualは425.955→445.803ms、autosaveは280.757→297.499ms。手動保存平均19.848ms、自動保存平均16.741msの実測増加を保持し、ゼロ回帰とは扱わない。採用後保存最大515.903msは既存5秒予算内。P14-01の性能回帰測定不足B01を解消し、この成果単位のみ正式完了可と判定する。5試行の保存・snapshot測定に限定し、simulation、Operations ON、描画、全P28・全P14・全原子・完成素材・全体完成へ拡張しない。Windowsは適用ありの未検証を保持し、通常OS全受入も未完のままとする。 P14-02は2026-10-20に正式完了(8917c19、A07/A08)。P14-03は独立レビューPASS・Runnerゲート待ち(加算0)、全P14・Windows全体受入は未完。",
|
||||
"current_summary": "全3成果P14-01/02/03を正式受入済み(交通の失敗時契約、A07/A08ワープ、混雑と経路選択)。x1予算未達・x3/stall/描画/Windows未測定・代表負荷の業務用shaft未使用・low4は別の未達として保持し、P14完了を全ゲーム/Windows/性能予算/P28へ転用しない。",
|
||||
"remaining_deliverables": [
|
||||
{
|
||||
"id": "P14-01",
|
||||
@@ -8358,21 +8358,35 @@
|
||||
"title": "混雑と経路選択",
|
||||
"work": "客用・業務用EV、階段、ワープの待ち時間をA*費用へ反映する。",
|
||||
"acceptance": "ラッシュ、相乗り、50%減速、救護同伴、経路喪失を実位置と人数で検証する。",
|
||||
"state": "in_progress",
|
||||
"state": "completed",
|
||||
"evidence": [
|
||||
{
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-whole-unit-review-r01/review-output.md",
|
||||
"scope": "独立Opus whole-unit review PASS(入力SHA 0e53d1c1…)。Runner final ではない。",
|
||||
"linked_at_jst": "2026-10-20T00:00:00+09:00"
|
||||
},
|
||||
{
|
||||
"path": "docs/plans/original-completion-2026-10-02/execution/p14-03-route-wait/ACCEPTANCE.json",
|
||||
"sha256_at_integration": "14967ffbfdbf9578fd1747024f7e4bdadca6754419d76a59024e1c4e5d973e75",
|
||||
"scope": "Runner正式完了(submitted a5d2491、integrated/final b7f6168、9/9条件、high/medium/critical 0、low4保持)。正式全回帰・Root pair・代表性能r02・独立reviewを結合。P14-03のみ。",
|
||||
"linked_at_jst": "2026-10-20T20:00:00+09:00"
|
||||
}
|
||||
],
|
||||
"progress_summary": "正確候補83b170a:shaft全体の待ちをA*費用へ、保存契約v2(v1は導出して移行、v2は導出値不一致を改ざん0含め原子拒否、正常v2は往復)、乗車中の客を籠内で退館させない修正。正式全回帰192/192・22198 checks・失敗0、Root別PID pair 5/5・10PID、代表性能r02(収集と機能検証は合格・比較成立、x1は両版約827msで4ms予算超過)、独立Opus whole-unit review PASS。skill契約によりRunnerの正式ゲート(登録・validate・review・統合final)待ちで加算0。",
|
||||
"progress_summary": "正確候補83b170a(Runner提出a5d2491・統合final b7f6168):shaft全体の待ちをA*費用へ、保存契約v2(v1移行・v2導出値不一致の原子拒否)、乗車中の客を籠内で退館させない修正。正式全回帰192/192・22198 checks・失敗0、Root別PID pair 5/5・10PID、代表性能r02比較成立、独立Opus review PASS、Runner validation/review/integration/final完了(9/9)。",
|
||||
"remaining_gaps": [
|
||||
"Runner登録とvalidate/review/integration/final(登録案と検証器: artifacts/original-completion-2026-10-02/p14-03-runner-gate-r01/)",
|
||||
"low4(経路喪失は出発前のみ・ラッシュ/業務用EVは注入・verifier診断性・性能未達)は解消扱いしない",
|
||||
"代表負荷で実職員が業務用shaftを使う場面は未実施",
|
||||
"x3 frame / stall / 描画 / Windows は未測定(x1は両版とも予算超過、P28で扱う)"
|
||||
"x1 1分tick約827msで4ms予算未達、x3 frame/stall/描画/Windowsは未測定(P28で扱う)"
|
||||
],
|
||||
"updated_at_jst": "2026-10-20T00:00:00+09:00"
|
||||
"updated_at_jst": "2026-10-20T20:00:00+09:00",
|
||||
"completion_acceptance": {
|
||||
"path": "docs/plans/original-completion-2026-10-02/execution/p14-03-route-wait/ACCEPTANCE.json",
|
||||
"sha256": "14967ffbfdbf9578fd1747024f7e4bdadca6754419d76a59024e1c4e5d973e75",
|
||||
"candidate": "83b170a4c7176761b0b18d8e9292017d990e80a9",
|
||||
"runner_submitted": "a5d2491204f0604d07bfd1f1c41344a08e6f4835",
|
||||
"runner_integrated": "b7f6168dc8a31cdbdfb9771d583536cd6663c0dd",
|
||||
"owner_approval": "delegated_by_user 2026-10-20(Root候補審査、ROOT_DB_JOIN)"
|
||||
}
|
||||
}
|
||||
],
|
||||
"estimate_person_days_historical_2026_09_29": [
|
||||
@@ -8400,7 +8414,28 @@
|
||||
],
|
||||
"cross_cutting_acceptance_scope": "Completion requirements only, not achieved results. Apply each to relevant slices; non-applicable views require a recorded reason.",
|
||||
"initial_revision_state": "in_progress",
|
||||
"updated_at_jst": "2026-10-10T06:20:21.369980+09:00"
|
||||
"updated_at_jst": "2026-10-20T20:00:00+09:00",
|
||||
"historical_summary_before_formal_closure": "採用済み1299参照は初回独立レビューと同一。初回に確認した失敗時保存保護、正常順序・型・所有権・保存復元・経路、1200Kernel ticksの全状態・イベント一致、同版172回帰14636checks/0を維持する。追加証拠で20,000セル・200客・50職員・150施設、既存施設要求200・物流要求200・イベント50の同一Operations OFF状態を採用前後で復元し、snapshot/manual/autosaveを各5試行、各64checks/0として確認。平均snapshotは75.985→74.624ms、manualは425.955→445.803ms、autosaveは280.757→297.499ms。手動保存平均19.848ms、自動保存平均16.741msの実測増加を保持し、ゼロ回帰とは扱わない。採用後保存最大515.903msは既存5秒予算内。P14-01の性能回帰測定不足B01を解消し、この成果単位のみ正式完了可と判定する。5試行の保存・snapshot測定に限定し、simulation、Operations ON、描画、全P28・全P14・全原子・完成素材・全体完成へ拡張しない。Windowsは適用ありの未検証を保持し、通常OS全受入も未完のままとする。 P14-02は2026-10-20に正式完了(8917c19、A07/A08)。P14-03は独立レビューPASS・Runnerゲート待ち(加算0)、全P14・Windows全体受入は未完。",
|
||||
"completion_evidence": [
|
||||
{
|
||||
"delivery_id": "P14-01",
|
||||
"state": "completed",
|
||||
"evidence_reference": "work_packages.json:P14.remaining_deliverables.P14-01.evidence",
|
||||
"evidence_count": 6
|
||||
},
|
||||
{
|
||||
"delivery_id": "P14-02",
|
||||
"state": "completed",
|
||||
"evidence_reference": "work_packages.json:P14.remaining_deliverables.P14-02.evidence",
|
||||
"evidence_count": 2
|
||||
},
|
||||
{
|
||||
"delivery_id": "P14-03",
|
||||
"state": "completed",
|
||||
"evidence_reference": "work_packages.json:P14.remaining_deliverables.P14-03.evidence",
|
||||
"evidence_count": 2
|
||||
}
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "P15",
|
||||
@@ -18097,10 +18132,26 @@
|
||||
"scope": "Micro only: 53 wholetyped pairs/120 literal same-call return bytes; macro scale P28 not accepted",
|
||||
"linked_at_jst": "2026-10-02T20:20:56.571408+09:00",
|
||||
"current_game_acceptance_inferred": false
|
||||
},
|
||||
{
|
||||
"path": "artifacts/original-completion-2026-10-02/p14-03-representative-perf-r01/run-r02/execution.json",
|
||||
"sha256_at_integration": "553971f55635e529b48634ef86ad7d4198c8bafe04d5a6a5ef778a4de0439fc1",
|
||||
"scope": "P14-03代表性能r02(headless、Operations OFF、x1のみ)。P28-01の再利用可能な部分証拠で受入ではない。",
|
||||
"linked_at_jst": "2026-10-20T20:00:00+09:00",
|
||||
"current_game_acceptance_inferred": false
|
||||
}
|
||||
],
|
||||
"updated_at_jst": "2026-10-02T08:00:40.618838+09:00",
|
||||
"progress_summary": "現1273へPath micro軽量化を限定採用。53 whole typed pairs/120同一呼出return比較と全168回帰を確認。最大Runtime混合負荷/Operations enabled/Windows性能は未受入。旧900秒timeout/未測定値を維持。\n【限定採用前の証拠時点の履歴】\n実Runtime最大負荷診断は準備BUILDで900.024秒timeout(-15)。目標実数/保存/別process/計測に未到達。setup span候補を準備し原因特定を継続。 setup区間観測の別実行も900.018秒timeout。429→430分の公開tickは268.723秒、601→602分は未完。内部hotspot・最終target数・保存・性能測定は未確定。 現1237 counter r04もBUILD900.07856秒timeout(-9)、430CONSTRUCTION268.326934秒。inclusive Path累積は重複合算/差引禁止、602LOGISTICS未閉・最終測定null。"
|
||||
"updated_at_jst": "2026-10-20T20:00:00+09:00",
|
||||
"progress_summary": "現source(83b170a/b7f6168、1407件)で代表入力(20,000マス・200客・50職員・150施設、input eb4f7700…)を実測済み(P14-03 r02、Mac16,10・10コア・24GB、Godot 4.7.2-stable official headless、Operations OFF、x1、300分):1分tick平均826.6ms・P95 1702.7ms・最大2918.1ms(4ms予算未達)、path cold P95 0.61ms、snapshot平均77.6ms、manual 297ms、autosave 327ms、load平均3193ms・最大3368ms。旧1273時点の900秒timeoutは現sourceでは再発せず。windowed描画・x3・stall・Operations ON・Windowsは未測定。",
|
||||
"historical_progress_summary_before_20261020": "現1273へPath micro軽量化を限定採用。53 whole typed pairs/120同一呼出return比較と全168回帰を確認。最大Runtime混合負荷/Operations enabled/Windows性能は未受入。旧900秒timeout/未測定値を維持。\n【限定採用前の証拠時点の履歴】\n実Runtime最大負荷診断は準備BUILDで900.024秒timeout(-15)。目標実数/保存/別process/計測に未到達。setup span候補を準備し原因特定を継続。 setup区間観測の別実行も900.018秒timeout。429→430分の公開tickは268.723秒、601→602分は未完。内部hotspot・最終target数・保存・性能測定は未確定。 現1237 counter r04もBUILD900.07856秒timeout(-9)、430CONSTRUCTION268.326934秒。inclusive Path累積は重複合算/差引禁止、602LOGISTICS未閉・最終測定null。",
|
||||
"remaining_gaps": [
|
||||
"windowed描画のframe時間(平均・P95・最大)",
|
||||
"x3速度の実時間とframe/stall",
|
||||
"Operations ON条件の計測",
|
||||
"シード・測定区間の明示を含む記録様式の統一",
|
||||
"x1 1分tick 4ms予算未達(約827ms)",
|
||||
"Windows実機"
|
||||
]
|
||||
},
|
||||
{
|
||||
"id": "P28-02",
|
||||
|
||||
Reference in New Issue
Block a user