Repository navigation
[P0][CHAT UPDATE] 1回の「pgextwinを更新して」→全拡張更新処理(公開版維持) #311
Description
【最新運用指示】「pgextwinを更新して」=適格な正式公開まで承認(2026-11-02)
所有者の単一Chat指示 「pgextwinを更新して」 は、登録済み17拡張の真正な更新候補について、保護PR・必須CI・マージから、条件が成立する正式Release・Catalog保護マージ・Website JA/EN公開実証まで実施する承認を含む。再度「公開して」と求めず、Chatで実行できる工程を完遂。更新がなければ NO_UPDATE 正常終了。特定拡張の指示ならその範囲に限定。
この所有者の意図は個別の署名・真正GitHub schedule/PR・独立Publisher・最小権限App・create-only tag・Attestation・公開ハッシュの技術ゲートを代替せず、既存の fail-closed 公開認可を迂回しない。Workへの引き継ぎは Approve and run 等、Chat接続では実行できない実際のGitHub GUI操作のみ。追加の二人目humanや形式的公開再承認を作らない。
正本手順: docs/chat-first-publication.md(保護 PR#516 マージ)。これは以下に残る「一般的な更新しては公開許可ではない」という以前の優先順位を、所有者の明示意思の範囲で上書きする。ただし PUBLISH_DENY/runtimeEnabled=false の旧非公開経路や既存技術・運用安全ゲートは維持。
【現行最優先】2026-11-02 完成・公開優先の実行順序(本節が旧優先順位を上書き)
実績: 公開済み正式Release 17/17、Catalog 17/17、Website JA/EN(既存公開物を再利用)完了。証拠: #311 公開完成監査、Catalog PR#181、Website公開監査Run41319356967。新stableの自動Release完了を示すものではない。
P0 → P1 → P2 → P3 の作業バックログ
- P0 公開の維持と実不具合修復 — 既存17のRelease/Catalog/Website/ダウンロードを最優先で保つ。公開事故・既存安全ゲート失敗時のみ直ちに修復。公開完成済みの作業を繰り返さない。
- P0「pgextwinを更新して」で起動できる更新導線を保つ — 本#311と#75。通常Chatの単一依頼から真正upstream差分の確認→非公開候補→共有Windows CI→既存安全ゲート→適格であれば正規公開・Catalog/Website同期まで自律的に可能な工程を完遂。差分なしはNO_UPDATE正常終端。特定ReleaseのPUBLISH認可が現行ポリシーで別途必要なら省略・偽装しない。形式的追加human/Work往復は作らない。
- P0 実在する更新候補 — plpgsql_check#78(2.10.16候補、現公開2.10.15)。候補検証から始める。hypopg 1.4.4は既存ReleaseとCatalog同期完了。
- P1 すべての拡張機能の共通化+新拡張/新機能追加 — #510。17 repo成功実装を再利用、schema/adapter + shared workflow/契約で18番目以降も追加しやすくする。大規模一斉書換より1系統pilot。
- P2 公開後の運用強化 — #484(旧新Writer fence)、#485(有限回復)、#486(scheduleの機能別安全な代替)、#487(受入済みscheduleだけ保護撤去)、#112(オフライン配布/CLI)。公開版を未完成扱いしない。旧scheduleは代替安全成立まで消さない。
- P3 未来の偶発事象・任意の追加試験 — #501。自然障害や新stableの発生待ちだけの監査は繰り返さない。実発生時のみ必要な検証を追加。
共通の実行原則
- 完璧より完成。毎回「今回利用可能になったもの」を完成単位で閉じる。証跡だけを作る再実行や未発生の事故待ちはしない。
- 成功Run再実行禁止。既存成功証跡を最大再利用。Chat+既存GitHub Actions/Appで進め、WorkはChatで不可能な管理GUIのみ。
- 公式文書に加え、pgxman buildkit、PGXN/Trunk、PostGIS Windowsビルドなどのコミュニティ成功例も調べ、Windows/MSVCに適した最小実装を採用する。
- 保護・署名・Attestation・SHA256・最小権限・有限回復・PUBLISH認可の既存必須条件は維持。PUBLISH_DENY/runtimeEnabled=falseは既存非公開経路に適用し、一般的な「更新して」を無条件の公開許可と解釈しない。
- 旧正式台帳85/94とAUTO 6 completed / 5 out-of-scope / 4 active は、計測時点の歴史的判定として保持。公開済み17/17と混同しない。
オープンPR(2026-11-02 認証済み検索で15件)分類
- P2通常依存更新8件:build#309/build(deps): bump actions/create-github-app-token from 3.2.0 to 3.3.0 #180、catalog#11/docs: authenticated Work audit, completed read-only Chat setup and NOT_READY Release handoff #145/feat(issue75): bind dormant Writer proof to exact third-wave targets #147/fix(candidate): preserve verified audit on comment-only 403 without widening permissions #59/feat(issue75): prove three-target exact-head Windows evidence via Actions GET-only witness #146、website#26。セキュリティ上緊急なものはP0へ繰上げ、その他は必須CIで段階採用。
- P2個別CI修正:pg_hint_plan#60(必要性・最新HEAD・Windows CIを確認)。
- P3過去の非公開検証/preview:orafce#89、website#45、pg_ivm#62、pg_repack#56、set_user#56、pgaudit#56。既存公開物と代替実装を調査し、不要なら証拠を記録してclose。勝手にmerge/publishしない。
次の動作: 最優先は実在するplpgsql_check#78の候補経路確認と、#311の1指示更新導線を維持しながら#510の共通化を開始。旧Writer/cron総撤去をこのための前提にしない。
現行決定: 自動更新受入 v2.5(2026-11-01、単一ユーザー+Chat/Workで完結)
優先順位: 本節は #311/#75 の「自動更新の完成範囲・子タスク分類」について過去の v2.1〜v2.4 の将来事象待ちを上書きする。従来の正式94枝番の歴史台帳と既存のセキュリティ・公開許可は変更しない。
- AUTO範囲: 真正な一回限りの本人非公開要求→17対象のoriginal起動・receipt ZIP実SHA256/CRC→専用State App CAS・token失効→鍵なし独立readback→NO_UPDATE/安全隔離の有限終端。実CIと保護PR・マージを要求する。失敗・SKIPPEDをSUCCESS扱いしない。
- 不要な外部待ち: 将来upstream新stable、実際には存在しないhuman approval不足、自然発生のGitHub障害・ACK喪失、過去に保存されなかったwire、個別新stableへの正式PUBLISH/Releaseを AUTO受入の必須条件から外す。実際に起きた時のみ追加照合する。詳細・発火条件・安全禁止事項は #501 に集約。これらのIssueを閉じても新stable検証や公開が実施された意味ではない。
- 安全維持: PUBLISH_DENY/runtimeEnabled=false、署名・Attestation・SHA256/CRC、既存branch protection/App15368 CI、最小権限、認証済みActor/Run/HEAD、再送拒否、期限切れ拒否、旧schedule代替受入前の撤去禁止を維持。自然事故は必須でないが制御故障・安全なfail-closed検証は必須。
- 二重の集計: AUTOの「対象内完了/対象外退役/未完成」を新たに表示し、歴史的な 正式85/94 PASS・9 PENDING と絶対に加算混同しない。#488は現在のsource-bound ID/入力記録の実装完了範囲として閉じ、元Runの復元不能問題は [P3][EVENT-GATED] 自動更新対象外の将来事象・公開条件(非ブロッカー) #501 の留意点。#489は既存policyの NOT_REQUIRED 実装済み範囲として閉じ、実不足シナリオは [P3][EVENT-GATED] 自動更新対象外の将来事象・公開条件(非ブロッカー) #501 の将来事象。[R11-BLOCKER R11-B03] 旧Bot所有Update Issueの非空調停実動作 #481〜483、[BLOCKER R09-B14] 本人1回の特定PUBLISH指示で安全な公開認可(追加humanゼロ) #492〜493 は将来事象/正式公開を自動更新から退役させ [P3][EVENT-GATED] 自動更新対象外の将来事象・公開条件(非ブロッカー) #501 へ移管。
- 今回の確定: [BLOCKER R10-B12] 専用State App CAS・失効401・鍵なしreadbackと有限再開 #490/#491は、1回の真正保護非公開要求から17 original ZIP→App CAS revision2→別Runner鍵なしreadbackまで新規実証してCOMPLETED_SCOPED。残ACTIVEは[P2][HARDENING] 旧新Writer共有資源のfence/CASと制御競合 #484〜[P2][HARDENING] 代替受入済み旧scheduleだけ安全撤去 #487(旧新Writer安全境界と機能別schedule代替・受入後撤去)。今できる作業を事象待ちにしない。過去完了原本を再実行しない。
実行済み: build PR#499 protected merge main 8e391d46、16 repo source-bound local adaptersの認証GET、build PR#500 最新App15368 resolver SUCCESS後の保護squash merge main 530fd07631097c3a927034f30c57c7fefea92781。後者の元要求が45分 wall-clock deadline をマージ前に超過し watchdog Run 41296729562 はQUARANTINED/FAIL、中央Run41296729404のscan jobはSUCCESS。17完成とは数えない。これをコード/期限設計改善の実作業とし、旧Run rerunを禁止する。
2026-11-01 最終実証: protected PR#506 / 中央original Run41303544119 / 17 App original Run41303603386 / CAS・独立readback Run41303787995。実State issue311-state/checkpoints/request-lifecycle/r-20261101-r06appauto41303603386.json blob 5a30f9fe7e9a71dbcbe65a286e6d906113252669、revision2、17×SUCCESS、NO_UPDATE、publisherAuthorized=false。#490/#491 COMPLETED_SCOPED / AUTO 6完了・5対象外・4 ACTIVE。個別の検証証跡。旧Run再実行なし。正式歴史台帳85/94維持。
現行:単一ユーザー実行契約 v2.3
追跡子タスク2/15完了(#479 controlled integration、#480)、正式85/94 PASS・9 PENDING。 今回の最終原本・20repo監査・引継ぎを現行の入口とする。
build PR#494、orafce PR#77/#78を保護マージ、必須CI・original postmerge・必要な実ZIP独立照合PASS。build/main c5f87c89f13e32aeb5f7a10814db71909aa40509、orafce/main f9324f2a5600cc6f96dbd0ec5c320c64c0ebda91。
一回のユーザー指示をimmutable要求へ固定し、同じsource Run41214457502からIssue/Draft/native CIの3工程が追加人間・Work操作なしで真正NO_CHANGE終端。非空Writer・17対象最終E2E・実公開は未受入。15件は#311のネイティブSub-issues登録済み。
旧「別human intent」は廃止。全20repoのmainに追加の人間レビュー必須条件なし(設定変更ゼロ)。契約v2.3。PUBLISH_DENY/runtimeEnabled=false、旧schedule維持。
現在の阻害条件:追跡用子Issue(2026-10-31 JST / 15件)
本表を現在の作業の入口とする。 未受入9枝番を15個の実行可能な阻害条件に分解した追跡用Issue。各リンク先に「現状/手順/全部必要なPASS条件/停止・再開条件」を固定。チェックは子タスクの完了であり、正式94枝番の受入判定とは別。正式歴史台帳 85/94 PASS・9 PENDING / AUTO: 6 completed・5 retired・4 active、#311/#75 OPEN。
R11(9件)
-
[R11-BLOCKER R11-B01] 真正upstream固定・隔離非公開統合と将来stable公開条件の分離 #479 — R11-B01 真正既存上流の隔離非公開Writer原本実証(PUBLIC_E2E/将来新stableは未受入)
-
[R11-BLOCKER R11-B02] 単一ユーザー指示→Chat認証済みsource-bound実行(追加human要求ゼロ) #480 — R11-B02 単一ユーザー要求の原本認証
-
[R11-BLOCKER R11-B03] 旧Bot所有Update Issueの非空調停実動作 #481 — AUTO対象外・#501に移管(CLOSED_NOT_PLANNED、機能PASSではない)
-
[R11-BLOCKER R11-B04] 真正Draft候補PRの非空create-only実動作 #482 — AUTO対象外・#501に移管(CLOSED_NOT_PLANNED、機能PASSではない)
-
[R11-BLOCKER R11-B05] Draft候補→native Windows CIの非空original E2E #483 — AUTO対象外・#501に移管(CLOSED_NOT_PLANNED、機能PASSではない)
-
[P2][HARDENING] 旧新Writer共有資源のfence/CASと制御競合 #484 — R11-B06 旧新Writerの共有資源・真正競合/fence
-
[P2][HARDENING] ACK曖昧・失効・期限・安全な有限回復 #485 — R11-B07 ACK不明・失効/期限・有限回復・State
-
[P2][HARDENING] 旧schedule機能別代替の正常・異常実証 #486 — R11-B08 20repoの全schedule機能代替受入
-
[P2][HARDENING] 代替受入済み旧scheduleだけ安全撤去 #487 — R11-B09 受入済み対象の旧schedule保護撤去
R10(3件) -
[BLOCKER R10-B10] 元dispatch入力・正常異常State/ZIPの原本結合を完成 #488 — AUTO狭義実装範囲完了(COMPLETED_SCOPED、17 E2EのPASSではない)
-
[BLOCKER R10-B11] 実承認不足の認証GETとBLOCKED_APPROVAL停止の実証 #489 — AUTO狭義実装範囲完了(COMPLETED_SCOPED、17 E2EのPASSではない)
-
[BLOCKER R10-B12] 専用State App CAS・失効401・鍵なしreadbackと有限再開 #490 — AUTO v2.5 非公開17 App CAS/revoke401/鍵なしreadback COMPLETED_SCOPED(正式R10は別)
R12(1件) -
[BLOCKER R12-B13] 一回のChat要求→17対象非公開終端の真正E2E #491 — AUTO v2.5 1真正保護要求→17 local original→State CAS→独立readback COMPLETED_SCOPED(正式R12は別)
R09(2件) -
[BLOCKER R09-B14] 本人1回の特定PUBLISH指示で安全な公開認可(追加humanゼロ) #492 — AUTO対象外・#501に移管(CLOSED_NOT_PLANNED、機能PASSではない)
-
[BLOCKER R09-B15] 正式Release→Catalog→CLI/feed→Website EN/JAの実公開E2E #493 — AUTO対象外・#501に移管(CLOSED_NOT_PLANNED、機能PASSではない)
依存の順序: #480→(#479の真正upstream固定・隔離統合を併行)→(#481・#482→#483) → (#484・#485) → #486→#487。R10は #488→#489→#490、R12はR10/R11正式前提が揃ってから #491。公開R09は別の具体的PUBLISH条件 #492→#493。親R09/R10/R11/R12チェックは各子枝番とv2.1の親ゲートを全件独立PASSした後のみ更新。
安全ゲート: 真正upstream/単一ユーザー要求/正式PUBLISHは異なる外部条件であり、Issue作成自体は承認ではない。旧scheduleは代替受入後のみ撤去。過去成功Run再実行・偽stable/intent/未認可Release/Tag/Catalog/Websiteは禁止、runtimeEnabled=false / PUBLISH_DENY を保持。各Issueの受入原本は保護PR→必須CI→postmerge→実SHA256/State readback→両親Issueへ記録。これはGitHub本文チェックリストによる関連Issue管理であり、GitHubネイティブSub-issuesは今回管理UIで登録し、認証済みGETで15件を確認。
現行の実行入口(2026-10-31 JST): 85/94 PASS・9 PENDING。残作業は末尾「残9件の実行契約v2.2」および 7作業の実行手順 を使用する。本文中の旧「次の実行」は履歴であり、受入済みR04/R05をやり直す指示ではない。未変更の不在監査を反復せず、具体的な未実装工程へ進む。
確定方針(2026-10-29 JST)
親Issue: #75。Chatから一度、対象・目的・承認範囲を指定した実行要求を登録し、その要求を終端状態まで自律実行する。
GitHub cron、ChatGPTの定期タスク、外部cron、常時外部サーバを必須としない。GitHub ActionsはCI・Windowsビルド・OIDC署名・監査に利用し、認証された要求と工程完了イベントで動かす。
以前のM01〜M13/T01〜T05の計画は履歴扱い。本本文のR01〜R12を唯一の実行チェックリストとし、毎時ChatGPTタスク・補助cron追加・外部タイマー導入案は撤回する。旧計画の未実施を完了扱いにしない。
スコープと終端
- 一回の要求が調査する対象集合・取得時点・新stable候補を固定。将来の新バージョンを無期限に監視しない。
- 要求種別は少なくとも AUDIT_ONLY / PREPARE / PUBLISH_ELIGIBLE を分離。起動の許可と公開許可は別。今回の実装/移行作業自体は実Release指示ではない。
- 各対象に SUCCESS / NO_UPDATE / FAILED / BLOCKED_APPROVAL / QUARANTINED、全体に終端要約を残す。失敗や安全停止を成功へ読み替えない。対象の一部失敗も最終報告に明示。
- 正常経路は追加Chat・手動dispatch不要。安全な有限retryと永続checkpointにより自動継続する。権限不足、GitHub全面障害、曖昧な公開応答などは無制限retryせず終端化。解除後の明示的再開も同一要求を使い、成功済み工程をやり直さない。
再利用する証拠
#75 #6472293647 の旧X01/X02保護マージ/postmerge、13/17原本受付、Fleet40688819922原本SHA256は歴史証拠として保全。最新状態を認証済みGETし、変更のない証拠は再利用する。旧4件のschedule発生や旧17/17を待つことを本移行の着手条件にしない。
旧source-kind/eventが新経路の合格証明になったとは主張しない。新17/17受付は新契約として独立実証する。
目標フロー
Chatで限定要求登録 → protected-main受信入口 → requestId固定・永続記録 → 中央scan/原本検証 → 対象ごとの候補/CI/原本/署名/独立監査 → 承認範囲と全公開ゲートが成立した場合のみPublisher → 公開原本検証 → Catalog保護変更 → CLI/feed/EN・JA確認 → 終端記録。
起動受付HTTP、PR作成、Workflow成功表示のみでは工程完了としない。
受入計画改訂 v2:再現可能な障害試験を正本とする(2026-10-30 JST)
ユーザー指示による将来の受入判定基準の明確化。 R01〜R12の親子依存、既存枝番・チェック状態・歴史証跡は変更しない。従来コメント等にある「自然に未配送だった workflow_run.completed」「偶発的に発生したGitHub provider HTTP429/503・通信障害・書込応答喪失の新たな独立実原本を得るまでR05-03/R06-06-03は受入不可」という自然発生の待機条件を撤廃する。旧記録は歴史として保存し、成功を偽らない。自然障害を観測した場合は追加証跡にできるが、観測できないこと自体をBLOCKEDとしない。既存の必須安全ゲートや公開認可は絶対に撤廃しない。
R05-03 / R06-06-03 の更新後の合格条件
- 本物の17拡張無人連鎖(正常系): 認証済みChatの1回の限定要求→最新HEAD必須CI→保護マージ→本物のprotected-main push原本→中央PREPARE原本→専用App actorによる17件の本物のローカルPREPARE起動→各original Run/attempt/17 receipt ZIP・実バイトSHA256・同一request/cycle/exact protected main照合→App CAS revision2でNO_UPDATE17または検証済みの安全停止→別Runner・Appキーなしの独立readback、まで追加Chat/手動dispatch/cronなしで結合・終端する。既存の正当な原本は証明範囲が一致する限り再利用し、足りない鎖の部分だけ新しい非公開要求で試す。workflow_run多段抑止などの実制約を理由に偽eventへ置換しない。
- イベント欠落の決定的な検証: 承認済みの非公開試験で完了通知を意図的に配送しない/consumerを動かさない条件を作り、独立push起動の有限watchdogが真正なsource・子Run/ZIPと期限をGET照合し、既存正常成功を上書きせず17対象のFAILED/QUARANTINED等の永続終端に到達することを実証する。自然の未配送発生自体は必須ではない。制御した欠落を自然障害と記録しない。
- 通信障害の決定的な検証: GETの429/502/503/504・一時通信障害を制御注入し、最大3回のGET限定再読取・恒久401/403/404/409/422即時拒否・継続障害時fail-closedを負例CIで確認。実GitHub Contents CASについては制御したPUT ACK喪失→原本GETで一致確定またはUNKNOWNを安全隔離、実409競合→勝者1・再PUTなし・敗者安全拒否、同一token失効401と独立readbackを既存の真正原本で照合する。自然のHTTP429/503/ネットワーク断は必須ではない。fake HTTPを本物のprovider障害と称さない。公開POSTの不確定結果は別途Publisherのwrite boundary受入条件として維持し、ここで安全性を推定しない。
- 安全否定・回復: forged request/actor/App/ref、source-kind/central cycle混同、古いZIP、期限切れ、replay、対象漏れ、改ざん、failure/skip/timeout、同時CAS競合、late eventを明確にDENY/隔離。Stateの17対象集合、固定head SHA、blob revision、publisherAuthorized=false、writeOutcomeUnknown=false、元の成功state不変を鍵なしの独立原本GETで確認する。再送禁止のwriteを安易に有限retryへ変更しない。
- 完了判定: 1〜4の必須部分が「同じ実運用経路」で本物のGitHub原本(Run・job・ZIP・SHA256・App CAS・別ジョブGET)から証明でき、保護PR・必須CI・original postmergeがSUCCESSなら、R05-03/R06-06-03の該当項目を証拠に応じて受入する。純offline模擬のみを無人E2Eの代わりにしない。特定の自然事故の発生待ち・無期限watch・成功原本rerunは受入条件にしない。未達があれば具体的な不足工程を示し、未受入を維持する。
後続の工程と禁止事項
- 優先1: 既存成功・制御故障・App CAS・独立readbackの原本を上記1〜5へ対応付け、不足する「実17件の自動起動・正常/安全終端」だけを最小限補完。新しい自然障害の発生待ちをしない。
- 優先2: R04/R05/R06親の依存ゲートを個別確認し、成立項目だけ[x]へ。R07 (pilot→17拡張) → R08 (新契約OIDC署名・二重Sigstore・Publisherの別安全審査) → R09 (Catalog/CLI/Website) → R10 (再現可能な故障・回復・最終報告) → R11 (代替受入後のcron廃止) → R12 (#75利用手順・最終受入)へ段階的に進む。R10-01も「自然事故そのものの発生」ではなく「注入可能な故障・有限fail-closed」で判定する。
- 常時不変:
runtimeEnabled=false/PUBLISH_DENY、既存branch protection/必須CI、元の17/17原本・SHA256・OIDC/Sigstore・App単一repo最小権限・同一token revoke401・Publisher/Catalogの公開条件を維持。成功Run再実行、偽schedule、cron追加、既存資格情報転用、保護迂回、未認可Releaseを禁止。 - 変更履歴: このv2は検証基準の将来変更であり、旧失敗・限定実証を改竄・削除・即時[x]扱いしない。該当ゲートの受入時に更新版基準とRun/PR/SHA証拠を[P0][CHAT UPDATE] 1回の「pgextwinを更新して」→全拡張更新処理(公開版維持) #311/#75に記録する。
受入契約 v2.1:R枝番のPASS/FAIL・証拠・停止条件(2026-10-30 JST)
この節は直前の「受入計画改訂v2」を測定・判定可能にした規範である。R01〜R12と既存の子孫枝番は不変で、歴史原本・チェック状態を変更しない。既存文と判定方法が異なる場合は、自然事故の観測待ちを不要とするv2および本v2.1の再現可能な判定方法を今後の判定に適用する。ただし安全ゲートと実原本要求を緩和しない。
0. 共通の判定規則と必要証拠
| 判定 | 必要条件 |
|---|---|
| PASS | 当該枝番の全必須条件に対応する独立に照合可能な実原本が存在し、不正・欠落・失効・再実行・公開越権がない。変更を伴うものは最新PR HEADの必須CI、保護マージ、original postmergeを確認。 |
| LIMITED_PASS | コード/単体/負例/一部repoなど限定範囲のみ証明。子タスクの限定受入に使えても親や17/17 E2Eへは自動加算しない。 |
| FAIL | 範囲・資格・SHA・run/attempt・期限・署名/来歴・内容・readback等の必須照合が不一致。実行失敗をSUCCESSに読み替えない。 |
| BLOCKED / PENDING | 必要な権限、正式認可、適格な新stable、または検証原本が未成立。未成立の枝番は [ ] を維持し、再開条件を明示。自然故障の発生待ちだけではBLOCKEDにしない。 |
原本証拠は最低限 repository / protected main SHA / requestId / central cycleId / mode / target allowlist(17) / source-kind / actor/App identity / workflow path / runId / attempt(原則1) / job conclusion / artifactId / ZIP実バイトSHA256 / provider digest(存在時) / CAS state branch・path・Git blob SHA / revision / target statuses / terminal / expiry / eventTransport / writer token revoke401 / 独立reader Run・readback / required CI・PR HEAD・merge SHA・postmerge Run をその事象に該当する範囲で記録する。全証拠を単に同じ文字列へ転記せず、GitHub Actions・Contents・PRを別経路から認証済みGETで照合する。実ZIPバイトは取得可能な実際のActions実行環境で検証し、provider digestの自己申告のみを独立実バイト確認と称さない。
対象集合・成功判定: 対象は固定された17のallowlist。新方式の1つの正常サイクルについて、保護mainを固定し、17 distinct repo、17 unique original child Run/attempt、17 local receipt ZIPの実バイトSHA256、17件のrequest/central cycle/source-kind/refの一致を確認する。全子が真正NO_UPDATEなら永続stateは NO_UPDATE / 17×SUCCESS としてよい。実際に失敗・skip・timeout/欠落があれば FAILED/QUARANTINED などの安全終端とし、正常成功にしない。対象漏れ、他cycle混入、署名/ZIP不明はDENY。元の成功stateは不変。1つのRUNがあらゆる正常・故障シナリオを同時に証明する必要はないが、正常17子の一気通貫無人連鎖を、別々の古い成功の寄せ集めだけで代替しない。
1. 最優先:R05-03 / R06-06-03 の受入シナリオ
| ID / 判定枝番 | 実行条件(操作可能) | PASSを裏付ける観測結果 |
|---|---|---|
| A:R05-03 + R06-06-03 正常無人E2E | 1回限りの認証済み非公開要求を保護PRで登録→latest-head required CI→保護merge。以降Chat/手動dispatch/cronなし。 | 真正main push→中央PREPARE→承認済み専用App actorによる17 repoの実ローカルPREPARE起動(本物のdispatch/child run)→17 original receipt ZIP実SHA256→同一cycle検証→有限App CAS terminal(正常なら17/17 NO_UPDATE)→別Runner・Appキーなしの原本GET readback。すべてrun/attempt/head/requestを結合。1段/2段以上の本物のイベント境界を確認。 |
| B:R05-03 イベント欠落・有限回復 | 非公開の制御されたconsumer不在・completion配送抑止・子SKIPPED/timeout等、元の真のsource runを残した再現シナリオ。 | 独立push起点の期限付きwatchdogが本物のsource/子原本を有限GETで確かめ、期限または確定失敗の後に17対象をFAILED/QUARANTINEDへCAS終端化。鍵なし別Runでrevision/blob/17対象/失効を照合。遅延event/replayでNO_UPDATEへ反転しない。 |
| C:R06-06-03 通信・CAS境界 | 非公開の制御429/502/503/504/transport failure、実CAS HTTP409、実App PUT後の制御ACK喪失を既存の固定原本または新規必要最小の試験で再現。 | GETだけ最大3 attempts。401/403/404/409/422など恒久HTTPは自動再試行しない。CAS PUTは盲再送しない。ACK喪失時に原本GETの同一バイト/Blob SHA一致なら限定確定、それ以外はUNKNOWN/QUARANTINED。競合の勝者と敗者を独立GET確認。tokenをrevokeし同token GET401、Appキーなし別Runが整合確認。 |
| D:R05-03 + R06-06-03 敵対的入力 | 偽actor/App、偽source-kind、旧central/異なるcycle、ZIP改ざん/欠落、期限切れ、17対象入替、古いHEAD、replay、遅延completion、公開フラグ混入を負例試験。 | すべてDENYまたは安全隔離、既存NO_UPDATE17/QUARANTINED17の原本不変、公開操作ゼロ。元の別cycleの既存terminalを今回の成功証拠として流用しない。 |
枝番別の最小合格線: R05-03=PASS はAの中央→17本物のlocal起動と自動集約、Bの有限停止、およびDの偽起動拒否を同じ実行経路の証拠で示すこと。R06-06-03=PASS はAの17原本/ZIP/SHA256・CAS・独立readbackに加えCおよびDの安全境界を証明すること。元の単一orafce pilot・mockだけでは不可。Aが未達なら両者とも [ ]。Aの新規原本は必要最小1回限りとし、旧成功Runはrerunしない。故障シナリオB/C/Dは既存の証拠が一致する場合再利用し、再試験を要求しない。自然発生のイベント未配送/HTTP429/503/ネットワーク断の観測は一切必須でない。故障注入を自然事故と表示してはならない。
2. R04〜R12 親・後続枝番の完了ゲート
| 枝番 | すべて成立すればPASS(不足があれば未受入) |
|---|---|
| R04 | 版付き固定要求・17対象別の状態と期限、lease・CAS・別要求候補競合、同一要求重複/late event拒否、runner停止からの有限再開を真正Contents原本で証明。成功工程を再実行せず、不確定公開writeは決して無断再試行せず安全隔離。子R04-01/02の限定証拠は再利用可だが、公開Writerとの境界はR08と分離。 |
| R05 | R05-01/02の限定成功とR05-03のA/B/D PASS、2段以上の本物のイベント境界、17対象の自動集約、明示的な有限期限・安全終端。cronや追加Chatを隠れた前提にしない。 |
| R06 | R06-01〜05の既存17原本・共通caller・中央/子SHA・replay拒否に加え、R06-06-03のA/C/D PASS。保護main固定・真のApp identity・17 local originalを再照合。親R04/R05の実依存が未達なら親R06も未受入。 |
| R07-01 | 新要求契約の1拡張pilotを本物のoriginal Windows PG14〜18・required Summary、中央cycle/local receipt、最新HEAD保護merge/postmerge、SHA256とreplay拒否で受入。旧pilotは同一契約でない限り流用不可。 |
| R07-02 | 残3拡張を同じ新要求契約・必須CI・保護merge・original postmergeで順次受入。既存の成功を単に再実行しない。 |
| R07-03 / 親R07 | 他13拡張も新契約に移行、合計17/17 distinct original local Run/ZIP実SHA256、exact main、同一中央cycle、独立replay拒否。R07-01/02/03がPASSした後に親PASS。 |
| R08-01 | 新方式の正当OIDC発行元・workflow SHA・request/Run/commitとの原本署名結合と、別々の独立Sigstore監査2系統で実バイト一致・不正署名DENY。legacy署名の成功だけで新方式PASSにしない。 |
| R08-02 / 親R08 | Publisher admissionは実App/actorを分離し、不正候補/未承認scope/PG14〜18欠落/SPDX/Grype不備/replay/曖昧な公開writeをfail-closed。非公開状態ではPUBLISH_DENY、公開POSTしない。署名とPublisher両子PASS後に親PASS。Releaseは別の正式認可条件を守る。 |
| R09-01 | 承認前の非公開連結として、同一証拠キーを持つCatalog提案→最新HEAD必須CI/保護PR→CLI/feed→EN/JAを検証し、未公開を実公開と称さない。 |
| R09-02 / 親R09 | 将来の適格な新stableかつ全Publisher/公開認可条件成立後のみ実Release E2E:公開実バイト・SHA256/署名/Attestation・Catalog・CLI/feed・EN/JAの独立照合。条件未成立ならR09-02はPENDINGで親R09を完了扱いしない。未認可公開で試験しない。 |
| R10-01 | v2.1のB/C/Dと、期限切れ・改ざん・多重要求・子失敗/skip/timeout・署名/PG/SBOM不備・権限失効・公開書込不明の再現可能な負例をfail-closed判定。自然障害の観測は不要。 |
| R10-02 / 親R10 | 正常NO_UPDATE/失敗/隔離/承認待ちの全対象終端と理由・run/attempt・artifact SHA・CAS blob/revision・再開地点を永続集約し、別Runner認証済みGETで再読取。GitHub全面障害中の通知成功は保証せず、復旧時に再照合可能な原本を残す。R10-01/02両PASSで親PASS。 |
| R11-01 | 先に代替の対象workflowの非公開正常・失敗経路を受入後、build/17repo/catalog/websiteの移行対象schedule依存を保護PRで廃止。CIのpush/PR triggerを削除しない。各対象のschedule残存/依存ゼロをGET照合。 |
| R11-02 / 親R11 | 旧in-progress/queued runとの二重Writer拒否、失効・有限再開、運用手順を実原本で確認。新cron・外部常駐・ChatGPT定期タスクを増やさない。R11-01/02両PASSで親PASS。 |
| R12-01 | #75の旧X/A/D/E/F公開ゲートと新版のrequest/署名/Publisher/Catalog契約を対応付け、未成立項目を明示し、対応するドキュメント変更を保護マージ。 |
| R12-02 / 親R12 | 1回のChat指示から17対象非公開処理の実終端まで、実行者入力例・承認範囲・限界・成果・再開方法を証拠付きで説明。R12-01/02 PASSかつR07〜11の前提成立後に親PASS。#75は全公開ゲート成立前に閉じない。 |
3. 受入記録の書式と不可逆ゲート
各 [ ]→[x] の変更時、#311に以下を必ず1件の監査可能な記録として残し、親#75に要約する。
Acceptance: <R枝番> Result: PASS | LIMITED_PASS | FAIL | PENDING
Criteria: <v2.1のA/B/C/Dまたは親のゲート>
Scope: <repo数、requestId、normal/fault-injected、非公開/実公開>
Original: <runId/attempt/workflow path/main SHA/actor/日時>
Bytes: <artifactId/実ZIP SHA256/provider digest(別記)>
State: <branch/path/blob SHA/revision/terminal/17 target statuses/キーなし別reader>
Safety: <replay DENY、token revoke401、PUBLISH_DENY、権限/期限/公開可否>
PR/CI: <最新HEAD/required CI/negative CI/merge SHA/original postmerge>
Excluded: <自然障害未観測、offline限定、未認可公開など証明しない事項>
Next: <未成立依存または次の枝番>
チェック更新の条件: 上の原本への実リンク・認証済み照合が揃うまで [ ] のまま。実験成功やCI成功だけでAまたは公開E2EをPASSにしない。過去の失敗・SKIPPED・中間CIの履歴、旧版受入契約、既存正当なZIP/Stateは上書きしない。独立第三者レビューを新たに必須化しないが、既存のbranch protection・required CI・認可条件は厳守する。元の公開権限とは異なる非公開PREPARE証明をPublisher/Release認可へ昇格させない。全面GitHub障害、認可欠落、未解決公開POSTの応答不明時は安全停止+復旧地点を報告し、成功を断言しない。
実行タスク
-
R01 最新状態・全依存の棚卸し(Chat、最初)
[P0][PUBLISH PATH] Chat更新・適格な正式Release→Catalog/Website連結(既存安全ゲート維持) #75/#311と最新コメント、build/17拡張/catalog/websiteのWorkflow、script/schema/policy/test/docs、既存PR、実行中run、App・必須CIの取得可能な証拠を認証済みGET。
完了: immutable SHA/ファイル/旧cron・schedule条件/新入口/既存成功証跡/変更要否の移行表。canary、native recovery、PostgreSQL watch、feed、Website smoke等も網羅し、#112との担当境界を明記。管理権限でしか読めない項目はUNKNOWN。 -
R02 起動経路の非公開実証(R01)
通常Chatの既存接続で可能な専用要求ファイルPR→最新head必須CI→保護merge→push入口を第一候補にする。直接dispatchは本当に利用可能で安全境界を満たす場合のみ代替。Issue/commentを公開の万能特権コマンド入口にしない。
完了: 本物の接続操作から実Workflowが起動した非公開receipt、実actor/App、PR/merge/head/run/attemptの照合、イベント抑止の実測。単に「動くはず」で先へ進まない。保護mergeの検証方法が不明ならPASSにしない。署名機能/新資格情報の存在を仮定しない。 -
R03 版付き要求・承認・証拠契約のADR(R01,R02)
requestId、要求者、承認範囲、mode、対象allowlist、各固定SHA、失効/期限、最大実行量、resume、実GitHub actor/Appと来歴を定義。Chatによる人間の事前承認操作を、各回の人間手動実行とは偽装しない。eventは実値を記録。user入力だけでactorやsourceKindを信用しない。
完了: 旧schedule依存の受付を単にeventのOR条件で広げず、別の認証済みrequest経路として契約化。原本ZIP由来種別と起動由来を分離。既存human-only merge/Publisher条件との対応、必要なポリシー変更、新規App/権限が必要かを明記。未承認の権限拡張や既存Appの転用は禁止。 -
R04 永続状態・重複防止・再開の実装(R03) — v2.1親ゲートPASS:既存R04-01/02の17-target App CAS・lease・競合・不確定応答・有限復旧の実原本と新正常App CAS/独立readbackを照合。監査証跡 #6521649490。公開POST境界はR08の別ゲート。
request/対象/工程別state、入力hash、run/attempt、artifact ID/digest、結果、処理済み鍵を永続化。CAS/lease/競合制御、同一要求の多重イベント、同じ候補を選ぶ別要求の競合を制御する。Issue本文やartifactの改変可能な自己申告だけを信頼根にしない。
完了: 並行起動/途中停止/再開で成功済みbuild・署名・Releaseを再実行しない。公開POST応答不明は一意な照合またはQUARANTINED。リース期限切れが公開writeの無条件retryを許可しない。状態保存に必要な権限と信頼範囲が明確。 -
R05 完了イベントで進むCoordinator(R02〜R04) — v2.1親ゲートPASS:R05-01/02既存有限異常終端・R05-03新真正中央→17 App子→自動State terminalと本物の2段workflow_run境界。原本 #6521649490。
needs/workflow_call、push、workflow_run等を適切に組み合わせ、中央scan成功の原本receipt検証後だけ次工程を起動。17repoは有界並列とし、待機/timeout/429/5xx/失敗を有限に処理。GITHUB_TOKENのイベント抑止とworkflow_run多段連鎖制限を実証し、長いworkflow_run鎖やユーザーの再度のChatを正常経路に要求しない。既存の権限で不可能なら必要最小限の変更を具体化し、無断導入しない。
完了: 少なくとも2段以上の実非公開連鎖と最終集約が、最初の1指示以降無操作で成立。信頼されたmain側制御と未信頼PR成果物を分離。子失敗/skipでも安全に最終集約する。runnerの最大時間/停止後にも状態を失わず、イベント欠落時の検出・終端化経路を定義。cronや常駐Chatを隠れた依存にしない。 -
R06 中央scanとローカルpreflightの移行(R03〜R05) — v2.1親ゲートPASS:R06-01〜05の17実原本/SHA/replay限定既存証拠とR06-06-03の新真正17 App ZIP/CAS/readback、親R04/R05充足を照合。原本 #6521649490。
fleet-upstream-watch.yml、operator-update-auto.yml、verify-scheduled-fleet-candidate.py等を新要求契約に対応。最新mainを取得してscan原本と17対象のSHAを結合。現在の鮮度制限は維持し、期限切れ時は古いscanを許可せず必要な新scanを別の証拠として作成する。入力が変わらない成功工程の無意味な再実行は禁止。
完了: 中央原本ZIP実SHA256→ローカルexact main→同一request/cycleの非公開receiptを独立検証。metadata-only、GET replayを原本とする置換、古い/部分/失敗scanはDENY。共通コードpinはimmutable。 -
R07 1拡張pilot→17拡張展開(R06) — 新v2.1同一中央cycleに結び付く17/17の真正App子原本+全17 SHA固定保護merge/postmerge Windows PG14〜18/必須Summary原本・独立CAS/replay DENY。過去Windows原本はSHA一致の範囲でのみ再利用。証跡。
最新状態で対象を決め、旧未完了orafceを第一候補に非公開pilot。次に旧残り3件、既存13件を保護PRで段階移行。同じWorkflow内の候補作成・再署名を不用意に走らせない。必要な変更CIと新方式の初回検証は、過去成功の調査目的rerunとは区別する。
完了: 新方式17/17の原本receipt、local run/attempt/protected main、中央紐付け、実SHA256、独立replay DENYと各保護PR/必須CI/postmerge。旧13/17を新17/17へ流用しない。 -
R08 署名・独立二重監査・Publisherの移行(R08-01/R08-02 v2.1非公開PASS、根拠 #6525877146 / #6526531530。Release認可はR09-02で別途確認)
requalify-merged-candidate-signed.yml、署名intent、dual audit/join、publisher-candidate-intake.yml、admission、receipt issuer、write boundary、17 local opt-inのschedule前提を全て見直す。OIDC/Sigstore証明の実event/workflow SHA/issuer/対象とoriginal bytesを再結合する。
完了: 正当な新方式の署名非公開proofと独立2監査PASS。要求が認証済みでも候補不正ならDENY、no-candidate/AUDIT_ONLYではWriter起動不可。既存create-only、PG全行、SPDX/Grype、分離されたPublisher資格情報、同一live token revoke/401の契約を維持。人間merge限定とbot mergeを勝手に等価扱いしない。実公開ゲート成立前はPUBLISH_DENY。 -
R09 Catalog・CLI/feed・Websiteまで連結(R05,R08)
実公開済みの同一新Releaseの原本を検証してからCatalog限定PR/最新head必須CI/保護merge→feed/CLI→EN・JA確認へ進む。既存自動mergeが使えると仮定せず、App/actor/権限を実証。未公開候補で実公開E2Eを装わない。
完了: 1要求から追加Chat/手動dispatchなしで後続工程が進む非公開機能検証。実ReleaseのE2Eは適格な将来の新stable時だけ実施。旧HypoPG等の未受入Releaseを移行を理由に受入/再発行しない。 -
R10 否定・障害・回復・最終報告の受入(R04〜R09)
偽要求/許可外repo・ref・actor・App、期限切れ、replay、多重要求、改ざんZIP/署名/SBOM、欠落PG行、中央失敗、子失敗/skip、停止/timeout、イベント欠落、429/5xx、dispatch/公開応答不明、権限失効を試験。
完了: 自動復旧可能な一時障害は有限retry、その他はFAILED/BLOCKED_APPROVAL/QUARANTINEDで理由・最後の証跡・再開地点を確定。成功とNO_UPDATEもIssueへrequestId付きで集約。Writerを無条件retryしない。大規模障害で最終通知不能の場合に備え、復旧後に照合できる原本と状態を残し、無条件の完了保証を主張しない。 -
R11 cron廃止と補助処理の扱い(R07〜R10)
build/17拡張/catalog/websiteの対象on.schedule、metadataのscheduleUtc/releasePolicy表現、ドキュメントを保護PRで整合。代替受入前の一括停止はしない。既存queued/in-progress旧runと二重Writerを制御。
canary/定期監査は、その要求に必要な工程として組み込み、将来の定期監視は本方式の対象外と明記。監視を残すために密かにcronを復活させない。既存push/PR CIを消さない。
完了: 対象全repoでGitHub cron・ChatGPT定期タスク・外部cronの依存ゼロ。停止/一要求の再開/失効/回復手順を実証。未承認の新App/Secret/課金・権限拡張なし。 -
R12 #75受入契約と利用手順の更新(R07〜R11)
旧A02/A03/A04、X02、署名/Publisher/Catalogのschedule条件を新版要求契約の証拠へ対応付け、保護変更。旧13/17・旧未成立4件の歴史を保全。X03〜X05は対応する新17/17等が成立後、D/E/Fは全公開ゲート成立後のみ。
完了: 一度のChat指示から、非公開17対象の処理がSUCCESS/NO_UPDATE/明確な停止の終端に至る実原本証跡。対話Chatを開き続けなくても正常継続する。実公開E2E未成立なら別途pending、#75は全受入前にcloseしない。指示例・承認範囲・最終結果・再開方法を記載。
旧実行案(履歴:現行の次工程は末尾v2.2)
R01〜R03受入済み(根拠: #6473821604)。R04のChat接続CAS/leaseサブ証明とR05の17repo非公開GET/終端サブ証明(#6475528265)を再利用し、まずActions側の承認済み永続Writer/lease・cross-run回復、および既存権限内のWindows連携を実証する。R04/R05の全体は未受入、R06〜R12は前提成立後に安全に進む。成功工程は再実行しない。
通常Chatは調査/実装/保護PR/最新head CI/安全なmerge/postmerge/証跡更新を自律継続。GUI限定の設定が本当に必要な場合のみ、対象URL・操作・禁止事項・検証・完成条件を絞ったWork引継ぎを作る。未実装機能や利用不能なconnector操作を利用可能と断定しない。
引き継ぎプロンプト
pgextwin/build #311(本本文R01〜R12を正本)と親#75を認証済みGitHub GETから自律継続。確定方針は「Chatから1回の限定要求→GitHub Actionsの完了イベントと永続状態で終端まで自動継続」。GitHub cron・ChatGPT定期タスク・外部cronは不要、毎時T計画と補助cron案は撤回済み。R01の現状/依存棚卸しとR02の保護要求PR→merge→pushによる最小非公開実起動証明から着手し、R03の認証/承認/証拠契約、R04/R05の永続状態/Coordinatorへ進む。実主体、イベント抑止、workflow_run多段制限、actor/App、保護・最新head必須CIを実証し、入口操作だけで公開を許可しない。旧X01/X02保護merge/postmerge、13/17 receiptとFleet40688819922原本SHA256は再利用・歴史保全。旧残り4 schedule待ちは着手条件にせず、新方式17/17を別途証明。原本ZIP実SHA256・Sigstore/OIDC・PG全行・SPDX/Grype・replay DENY・create-only・同一live token revoke/401・PUBLISH_DENYを維持。成功工程調査rerun、偽schedule、無断のactor/権限拡張、既存Release再発行は禁止。移行自体は実Release指示ではない。対象と承認範囲を固定し、追加ChatなしでSUCCESS/NO_UPDATEまたは明確な安全停止まで集約。X03〜X05は新版の対応前提成立後、D/E/Fは全公開ゲート成立後のみ。必要な保護PR/CI/安全なmerge/postmergeまで可能な範囲で完遂し、原本証跡を両Issueへ記録、末尾に短縮引継ぎを出力。
子タスク枝番台帳(R系統・正本)
2026-10-29 JST 追加。既存の R01〜R12親タスク・依存関係・安全ゲート・チェック状態は変更しない。以後、作業単位には R06-01、孫タスクには R06-02-01 のような不変枝番を付ける。枝番はissue番号/PR番号と独立し、項目削除・番号再利用・完了偽装をしない。細目が増えた場合は次の未使用番号を付与し、変更が必要なら変更履歴をコメントする。親は子の必要条件がすべて成立した後にのみ [x] とする。
判定: [x]=原本で受入済、[ ]=未受入(部分的な成功やPRマージだけでチェックしない)。枝番台帳は本Issue本文の実行チェックリストに従属し、旧M/T/X scheduleを復活させない。
R04 永続状態
-
R04-01 認可済みActions Writer/Appと永続CAS・lease・複数要求競合・別Runner復旧の既存実証を再利用(履歴証跡は本Issueコメント参照)
-
R04-02 17-target App stateの停止・期限切れ・曖昧PUTを、独立した実原本/有限CAS永続終端で限定受入(R04-02-01〜05各[x])。この受入は公開Writerの曖昧Release POSTを許可・証明しない;全体R04およびPublisher/write boundaryの安全ゲートは別途維持。
- R04-02-01 期限切れ17-target失敗原本
r-20261029-r05unified17a01のApp CAS終端化:PR#376/377保護マージ・required/postmerge SUCCESS。実push Run40857417779 attempt1 SUCCESS; Artifact12889149014 actual ZIP SHA2561ca4eaf10c0bcb05517c8aecc5b63f6346d66a751451fbc550475f8478e5161f; 専用App state blob7bbe2fcc579bafa6501494fc44f3f75e4c69cb5drevision2、17/17 QUARANTINED、publisher=false。原本ZIP/状態bytes/strict same-token revoke401 gate独立照合PASS。元Run40807366784 failure attempt1、成功a02 blob d2d52d28は不変。これは明示的回復のsubproofで、自然イベント欠落/全障害の自動復旧完了ではない。
- R04-02-01 期限切れ17-target失敗原本
-
R04-02-02 認証済み原本の非成功Run結論(failure/cancelled/timed_out/skipped/neutral/stale/action_required/startup_failure)を期限切れ・17対象固定のQUARANTINEDに限定するコード/負例CIサブ証明:PR#378 HEAD
9a34bdd18c2282c228e5693faa763cc8b78c45a1、required App15368 resolver Run40859824340 SUCCESS、保護マージmaineb1b8248976c7e8e30b288d867b8078edf35f450、original push postmerge Run40859958729 attempt1 SUCCESS。original successful run/状態は未変更。skipped/timeoutの新しい実Run・App CAS終端の受入ではない。 -
R04-02-03 新しい実original要求を用いた17対象のskip/timeout/欠落/制御した曖昧PUT、有限App CAS永続終端・原本再読取・成功state不変の限定受入。独立原本:制御event欠落 R05-02-01(source40864238327/watchdog40864238556、FAILED17)、実GitHub SKIPPED R05-02-02(source40865462445/watchdog40865462429、QUARANTINED17)、実Actions timeout R05-02-03-01(source40871823120/watchdog40871823091、QUARANTINED17)、制御した本物のApp PUT ACK喪失 R04-02-05(source40870127973/watchdog40870127972、sourceの
RECONCILED_BY_ORIGINAL_GET、FAILED17)。すべてrequest-only保護マージ、latest-head必須CI、同一original source一度限り、17対象・original ZIP/SHA256・App state blob/revision確認、publication=false、cronなし。歴史a01 blob7bbe2fcc…/a02 blobd2d52d28…不変。制御した障害試験でありGitHub自然のイベント欠落/HTTP429・503実障害や公開POSTの実証ではない。 -
R04-02-04 App CASのHTTP成功応答欠落/破損/不一致を原本GETバイト照合のみで確定・拒否するコード/負例CIサブ証明:build PR#380 HEAD bb418ad、required App15368 resolver Run40862824892 SUCCESS、期待HEAD保護マージ main 936048a、original push postmerge Run40863067693 attempt1 resolver SUCCESS。17対象期限切れQUARANTINED状態の曖昧200レスポンス/不正SHA/応答喪失をoffline確認。実App曖昧PUT輸送障害の新規originalではない。
-
R04-02-05 本物の専用App CAS PUT後の応答だけを制御喪失→原本GETにより17対象stateを無再送で一致確定する限定実受入。コードPR#385 HEADef497473、required App15368 resolver40866005759 SUCCESS→保護マージmain78fd800a5e7d94bd52202ecd8ff04f66e42ffae5→original postmerge40866264150 attempt1 resolver SUCCESS。期限切れ未マージPR#386を安全更新(旧HEAD/旧期限で実行せず)し、新HEAD
528123a615b2feb985448683a97b8d49d89aa11drequired App15368 resolver40869969167 SUCCESS→期待HEAD保護マージmainc5a4fcb8080c69be70fc5baab3f20ff03ca990d9→postmerge40870127940 attempt1 SUCCESS。真のpush元source Run40870127973 attempt1 SUCCESS、17/17 remote protected exact-main GET、original ZIP Artifact12896016117実バイト独立SHA256d6c10f008690d53991d19bbfeac94cf7878642ee3ab3d42d0c6d3ec072925563、request raw SHA256377ca17b04079d3b306228794c7c2be02b03521a260d6dfb58d19e00f2597d12、実source receiptの2件のApp PUT persistenceORIGINAL_GET_VERIFIED→RECONCILED_BY_ORIGINAL_GET。元source再実行・2回目PUT再送なし。独立push watchdog Run40870127972 attempt1 SUCCESS、観測original ZIP Artifact12895832385独立SHA2565f529e419cb120e2d1e2300e10ba16a46e119fdfa3a969c145b546fceb97a770、原本のdeadline 2026-10-29T12:10:46Z・sourceCompleted=true・bridgeCount0・MISSING_VERIFIED。専用App CAS original state rev2 Git blob36110e2b148f211a0ff94c38fd318b224b730b82、17/17 FAILED・BOUNDED_WATCHDOG、publisher=false、writeOutcomeUnknown=false;実watchdog logR05_WATCHDOG_DURABLE FAILED ORIGINAL_GET_VERIFIED。既存a01/a02 state blobs不変。制御したACK応答欠落でありGitHubの自然なネットワーク障害の発生証明ではない。R04-02-03と親R04全体は実timeout等の未受入条件が残る。
R05 イベントCoordinator
-
R05-01 実Windows/17対象イベント連鎖と有限watchdogの既存部分実証を再利用
-
R05-02 17対象の欠落・実skip・実timeout・期限切れ・実17-source後のHTTP429/503制御faultを、cronなし/無制限retryなしの有限独立watchdog+App CAS終端で限定受入(R05-02-01/02/03と孫-01/02/03全[x])。自然なGitHub provider 429/503や配送障害は未観測のため、全体R05/R06の統合受入や万能な終端保証を意味しない。
-
R05-02-01 制御されたworkflow_run受信先不在・実17対象の有限自動終端を原本受入。code PR#381 HEAD1b0a5092、required App15368 resolver40863716781 SUCCESS→保護マージ5e924d16→original postmerge40863860437 SUCCESS。要求のみPR#382 HEAD504b4c62、required resolver40864073916 SUCCESS→保護マージfa83254fbc47736da14d959cc0d170a875c6f799→original source Run40864238327 attempt1 SUCCESS、実17 protected-main GET。独立実ZIP Artifact12893455362 SHA256
f2dbaafd1803a4536e134d99e60d9fd79d83daeb581997d2e53eed3b87a62d3b/元request raw SHA256872ca8f731ba62382dcf38eb992f0ab7233362fad9f74b3619d755741934bfd8。独立main-push watchdog Run40864238556 attempt1 SUCCESS、原本Artifact12892574691 SHA2563495d0dcb6e25c9fd96bd2d6f4c55af3597583953c177072169a6afd8039357b、原本の完了source=true・下流bridgeCount=0・MISSING_VERIFIED・期限2026-10-29T11:24:55Z。専用App CAS original readback State revision2、blob4fe65fdb0eae89704e652189b34cec5124eab111、17/17 FAILED、BOUNDED_WATCHDOG、publisher=false、writeOutcomeUnknown=false。watchdog原本logR05_WATCHDOG_DURABLE FAILED ORIGINAL_GET_VERIFIED、token revoke/401 step SUCCESS。成功a02/旧失敗a01 blob不変。これは意図的にsubscriberを置かなかった制御試験のPASSであり自然のGitHubイベント消失ではない。R05-02親はskip/timeoutなど残により [ ]。 -
R05-02-02 実GitHub Actions SKIPPED子ジョブと17対象finite watchdog/App CAS QUARANTINEDの原本受入。code PR#383 HEAD1d6b6bdc App15368 resolver40864859520 SUCCESS→保護マージmain1fe07af1ee2fb89df3be8fd83726e8909f6fbff9→original postmerge40865010681 SUCCESS。新規要求のみPR#384 HEADfaa86a4b required resolver40865285654 SUCCESS→保護マージ3943938a6ce5722b5ab6656119aca492860320df。genuine original source Run40865462445 attempt1 overall SUCCESS、実元ジョブ2件 SUCCESS + SKIPPED (job123418994347 / 123419214269)、17/17 protected-main GET、original Artifact12892694040 独立ZIP SHA256
2fdbaadd26e37e1a90bb736a0badfd05d74bb2cbfc6203d8f5bb8421762cb18a、request raw SHA25633c7375f33b9b2b099d3a477d56c6a8721151c253e7df55e64b75df541b7dceb。original watchdog Run40865462429 attempt1 SUCCESS、Artifact12894240907 独立ZIP SHA25663fe418b1bc83552c327b72a6a8b6035d7e4f6de4dc071c435c1a9bc34adcb44、期限2026-10-29T11:32:13Z、完了source=false(SKIPPEDを成功とみなさない)/bridgeCount0。専用App original state GET revision2 Git blob9e93d9d93794fb4046f93116a50fd51cac4603b7、17/17 QUARANTINED、eventTransport BOUNDED_WATCHDOG、publisher=false、writeOutcomeUnknown=false。原本logR05_WATCHDOG_DURABLE QUARANTINED ORIGINAL_GET_VERIFIEDとSTATE_WRITER_REVOKE_401_BOUNDED_OBSERVED 2。過去a01/a02成功/失敗blob不変。これは本物の子Job skipを含む制御負例であり自然のGithub全体障害を再現していない。R05親は実timeout/429/5xx等未完了。 -
R05-02-03 実Actions timeout+認証済み17-sourceの後続REST429/503制御faultによる有限終端を、実App CAS/原本ZIPで限定受入(子-01〜03全[x])。429/503はsynthetic fault injectionであり自然なprovider障害を再現したとは主張しない。
-
R05-02-03-01 実GitHub Actions子ジョブtimeout/CANCELLED→原本ZIP検証→独立finite watchdog→17/17 QUARANTINED App CAS受入。コードPR#387 HEADcb06ef3c、required App15368 resolver40870888082 SUCCESS→保護マージ9365f097→postmerge40871063084 SUCCESS。要求のみPR#388 HEADef7fd601、required resolver40871654291 SUCCESS→期待HEAD保護マージ
258b46d3861d7991b145b1ea21d2a8971c0e9548→postmerge40871823105 SUCCESS。source Run40871823120 attempt1 conclusion CANCELLED:元ジョブ123440519257 SUCCESS、子123440701171 CANCELLED(実時刻12:16:16〜12:17:46 UTC、90秒、指定timeout-minutes:1)。元Artifact12896456656 独立取得実ZIP SHA25629cd6f34aaf35a2244ba32378889c601fc623f20ecf75d46df6473dcdb3ba63b、17/17 protected SHA・original raw request SHA256319150271a17c9869d0893c161210cfd7d091471ab10ae137c1f58163a31846b。独立watchdog Run40871823091 attempt1 SUCCESS、Artifact12896064432 ZIP SHA2568ba7d8e047a11e26f5c9f58c7ba4656a89117889ff83a3506451075468e5f85b、deadline2026-10-29T12:23:11Z、sourceCompleted=false、MISSING_VERIFIED/bridge0、logR05_WATCHDOG_DURABLE QUARANTINED ORIGINAL_GET_VERIFIED。専用App state Git blob8e913dfd528e07fee02c98b4be43ebbb3476c44brev2 17/17 QUARANTINED、publisher=false・writeOutcomeUnknown=false;a01/a02不変。natural GitHub provider timeoutではなく本物の制御Actions job timeoutの証明。 -
R05-02-03-02 HTTP429/503時のUNKNOWN→17 QUARANTINEDをoffline負例CIのみ受入。PR#389 HEAD1c15d8ec App15368 required resolver40872475808 SUCCESS、保護マージmain05327e9448bf96b57ab06d629e7b616b87c47a21、original postmerge40872684836 SUCCESS。GitHub 429/503自然障害/実Appの新規失敗Runの証明ではない。
-
R05-02-03-03 本物の17対象source+原本ZIP照合後にだけ後続RESTの429/503を制御注入し、期限到達時17/17 QUARANTINEDをApp CASへ永続受入(自然のGitHub provider HTTP 429/503発生ではない)。コードPR#390 HEAD858d8df1、App15368 required resolver40873003852 SUCCESS→保護マージmain16045df2e3f30f20db2a51d8c589b5c8ff313e5a→original postmerge40873232010 SUCCESS。要求のみPR#391 HEAD51abd043、required resolver40873517904 SUCCESS→期待HEAD保護マージmain
ec25556b0267413a474f36c98275f94839659774→original postmerge40873687943 SUCCESS。真のmain-push source Run40873687917 attempt1 SUCCESS、全17 remote protected GET、original Artifact12897316766 実ZIP SHA256fb9824dbacbde739b1518c398f5485eaf5ab4da2e3df482ed1d2c41cfa0c2171、request raw SHA2569d5951de1218dfb63eddc1e94eaaa4acecad6e389f703496c6c414d46870dd05、original App state revision1 source-bound後にだけwatchdog Run40873687930 attempt1でCONTROLLED_POST_AUTH_REST_FAULT_INJECTION 429と503を原本ログ記録。期限2026-10-29T12:36:52ZにUNKNOWN/sourceCompleted=null、watchdog Artifact12897597370 元ZIP SHA25663b784f58135104b6c0003c8ddeb53114c78a83407ccdf47ff757abea4b90d33。専用build-only App CAS original GET Git blobfca8ccc523464a0642e21a11f4b9d79b0b626c4crev2、17/17 QUARANTINED、BOUNDED_WATCHDOG、publication=false、writeOutcomeUnknown=false;原本logR05_WATCHDOG_DURABLE QUARANTINED ORIGINAL_GET_VERIFIED。元successful a02/failed a01 Git blobs不変、同じoriginal successful Run rerunなし。429/503は実GitHub API応答ではなく、認証済み原本取得後のread-only境界に注入した例外。
-
-
R05-03 v2.1 A/B/D PASS:新規1回の認証済み保護要求PR#453→required CI→merge→真正中央41048039208→専用App 17子/17 ZIP実SHA256検証41048135275→自動State CAS/別Runner鍵なしreadback41048436029→独立有限watchdog41048039041(17/17 NO_UPDATE、revision2/blob b8fbc509fd2db8d1f64cc52e4c8f0cb9e4b94167)。B/D既存制御SKIPPED/timeout/consumer欠落/期限/偽actor/旧ZIP/replay DENYを照合。完全な原本と除外範囲は監査 #6521649490。旧時点の記載(手動17 PR依存)は歴史証跡: 既存R05要件の未完部分:中央要求完了から17repoの実ローカル処理をGitHub側だけで起動・集約・終端する無人Coordinator。現状はChat作成の17要求PRと別集約要求に依存。build専用state App/Publisher/Catalogを転用しない。R06-06-01の棚卸し、-02の専用起動主体承認と実identity、-03の実新actor/event・17子・有限復旧を照合して受入する。新たな公開許可や追加第三者レビュー条件ではない。
R06 新PREPAREと17ローカルreceipt
- R06-01 17/17共通ローカルPREPARE検証器の初期保護PR・原本postmerge受入(新要求/receipt受入ではない)
- R06-02 17/17固定caller SHA=
ff551bd2ea20da869e644691090b5ee7c82553baの最新HEAD必須CI・保護マージ・原本postmerge受入。下記17個の孫タスクをすべてPASSで完了- R06-02-01 orafce PR#45:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40844537993, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-02 pg_bigm PR#62:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40845831293, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-03 pg_cron PR#57:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850379189, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-04 pg_hint_plan PR#57:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40845840722, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-05 pgaudit PR#53:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40845850408, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-06 set_user PR#53:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40846149957, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-07 pg_repack PR#53:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40845860799, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-08 pg_ivm PR#59:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40846065929, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-09 pg_qualstats PR#56:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850388517, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-10 plpgsql_check PR#87:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850401523, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-11 hypopg PR#50:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850411849, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-12 wal2json PR#44:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40846164762, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-13 pg_partman PR#48:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850422229, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-14 pg_stat_monitor PR#41:MERGED; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40846075938, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-15 pgtap PR#60:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850432207, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-16 pg_variables PR#54:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850441772, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-02-17 pg_store_plans PR#55:MERGED; PR required PG14〜18+Summary+nonpublishing policy SUCCESS; original main-push postmerge PG14〜18+required Summary SUCCESS (Run40850452717, attempt1)。受入条件=PG14〜18/必須Summary+非公開policy CI→期待HEAD保護マージ→original push postmerge
- R06-03 17 protected main固定の新しい中央PREPARE原本Run/Artifact ZIPと独立SHA256検証(旧SUCCESSの再実行はしない) — Run40852118886 attempt1 push SUCCESS; Artifact12886559374; SHA256
b81a14c98b7fcc403970b7bde40028799a99938bef595a8ea1400154b35e5262; ZIP独立実バイト検証・17/17 exact protected main・SCANNED/NO_UPDATE PASS(2026-10-29) - R06-04 17件の実ローカルrequestId/source-kind/receipt ZIP/中央紐付け/各SHA256を受入 — 17/17 original local receipt ZIP実SHA256/中央紐付け/NO_UPDATE、独立offline replay DENY、期待HEAD保護マージとoriginal postmerge PG14〜18/required Summary PASS(2026-10-29)。
- R06-04-01 orafce PR#46:MERGED; original local Run40853307036/Artifact12888845517, actual ZIP SHA256 05393e7d4ca40b94934e76a0a71ccf56c1b933be2679711e72b299c667ad5305, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40853307952 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-02 pg_bigm PR#63:MERGED; original local Run40854618563/Artifact12887374773, actual ZIP SHA256 268909e0b914219f250a804891cc92f9268be2e6bbaac3f7c73f61b2d9a97b00, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854619098 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-03 pg_cron PR#58:MERGED; original local Run40854626698/Artifact12888223120, actual ZIP SHA256 82caa21bac1fd12ed44e7468da5231d587201410f2017a5b0f486f18f9947114, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854627110 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-04 pg_hint_plan PR#58:MERGED; original local Run40854637934/Artifact12888159757, actual ZIP SHA256 268f6395560bf8b80f2da158d3d1edfd739ef4689a1119f6d03ca3116d147bc7, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854638371 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-05 pgaudit PR#54:MERGED; original local Run40854645855/Artifact12889216202, actual ZIP SHA256 27750a9ef768e1d6f11de8df229119db0336e08e82848c8e0c1fc4b36b9680fb, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854646638 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-06 set_user PR#54:MERGED; original local Run40855984718/Artifact12889151935, actual ZIP SHA256 d865d28dce2b2595276d741e4f04831aa934e4bb90c9d1fdcbcae67c4c74d509, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40855985201 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-07 pg_repack PR#54:MERGED; original local Run40855509781/Artifact12888798377, actual ZIP SHA256 938747a26ce6d9b1c4cd041f160292f96c669ba50ce245780951e90ce0266945, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40855510195 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-08 pg_ivm PR#60:MERGED; original local Run40856624189/Artifact12889494437, actual ZIP SHA256 7bd73059ab0c32412d70a1353bd0f30f4ab6d7802c8ca50730d8c20e27a8e67f, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40856624565 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-09 pg_qualstats PR#57:MERGED; original local Run40854812315/Artifact12889510344, actual ZIP SHA256 5271a01202694dc1a374e6f0526c38dc9831acddbdd7ddf27aebb0d69a700e14, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854813080 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-10 plpgsql_check PR#88:MERGED; original local Run40854823238/Artifact12889230848, actual ZIP SHA256 ebd24c28c57d0c92b1681373f045424ec6f37e3ef84e0c83326d585bcc1cf2f9, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854823760 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-11 hypopg PR#51:MERGED; original local Run40854834223/Artifact12889051752, actual ZIP SHA256 07ec7f3d66ecb6682fbed60f8d8fb7d8b3dd32a147f5c56204b6dff843a6d931, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854835036 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-12 wal2json PR#45:MERGED; original local Run40854961778/Artifact12888513836, actual ZIP SHA256 e766ba33d3adb158b1653062d239e46be24e66206277184cdf93aa574a7c98cd, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40854962578 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-13 pg_partman PR#49:MERGED; original local Run40855694918/Artifact12888814184, actual ZIP SHA256 030f0150d6c8d47e9fe97165c8e95fd15c3eb48b02bbc1f2105d3ddc52150c6a, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40855695309 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-14 pg_stat_monitor PR#42:MERGED; original local Run40856220934/Artifact12889266715, actual ZIP SHA256 fea718c53ae96d3532080756fe5857645a1069716c3db2de402ff73ffd41aeee, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40856222002 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-15 pgtap PR#61:MERGED; original local Run40856234746/Artifact12890240759, actual ZIP SHA256 2c4893cac86816c24bd41576e43f95d3688d19efbcb692741b51beb79b6f4be8, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40856235304 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-16 pg_variables PR#55:MERGED; original local Run40855522031/Artifact12888688475, actual ZIP SHA256 3a4030ca9b15f283ccd490fb51cad58e911a58c8d6866cf2c64c3f62bce22a3f, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40855522576 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-04-17 pg_store_plans PR#56:MERGED; original local Run40855996875/Artifact12889182408, actual ZIP SHA256 ce3f5dd109cbafc9b2a1eb7815698c5fdeefab17dbbdf163076df9558979922d, central binding / NO_UPDATE / offline replay DENY PASS; Windows postmerge 40855997491 PG14〜18+Summary SUCCESS。replay=独立offline再実行attempt/同一HEAD否定試験(live rerun・durable state proofではない)
- R06-05 replay・古い中央ZIP・不正actor/ref・改ざん・欠落・期限切れの拒否と有限異常終端。非公開制御試験の統合受入:2026-10-30 JST #6510888487。全体R05の無人17repo起動やPublisher/Sigstoreの受入ではない。
-
R06-05-01 ローカルPREPAREの不正期限/失効・13h未来TTL・変更HEAD・不正actor/ref/attempt2/schedule・公開grant・未保護mainをGitHub GET前に拒否するoffline hostile CIサブ証明(実異常Runではない):build PR#379 HEAD
5227f2abb8715c8ddd7e75eec5897da74d3fe755required App15368 resolver Run40860733497 attempt1 SUCCESS、期待HEAD保護マージmain6ca51ddf29ab59e4c1bf4d805d1a3570779344d9、original push postmerge Run40860886110 attempt1 SUCCESS。17/17成功原本再実行なし。 -
R06-05-02 中央ZIP改ざん/欠落・期限切れ・durable replay・実17対象failed/skipped/timeout/missing-eventの原本に基づく有限終端を非公開制御試験として統合受入(子-01/-02全成立、#6510888487)。
- R06-05-02-01 中央PREPARE original ZIP実取得+17 protected local main GET+制御した改ざん/欠落/期限切れDENY+別Run App CAS durable replayの限定実受入。コード PR#392/fix(R06-05-02): preserve failed listener and recover original durable state in new Runs #394/fix(R06-05-02): authenticate actual publisherAuthorized in recovery terminal #397 は最新HEAD required App15368 resolver→保護マージ→original postmerge SUCCESS。元1回限り要求 PR#393 source Run40876766677 attempt1 SUCCESS、原本Artifact12898616478 provider ZIP SHA256
da80f876c76725feaa8d8e7448089ee319f06fd83c0e27ecf110910af88188da、中央 original Run40852118886/Artifact12886559374 ZIP SHA256b81a14c98b7fcc403970b7bde40028799a99938bef595a8ea1400154b35e5262、17/17実GitHub protected main GET、memory-only改ざん/欠落/expired-clock DENY、初期専用App blob609e887293ea3dd3d0a9eb3457ad828f543d9b2drev1 17 PENDINGを独立再読取。旧original listener Run40876850679 FAILURE(original receiptのpublisherAuthorizedと検証器の誤ったpublicationAuthorizedの不一致)を原本失敗として保存。修正前h01 source Run40877898560 SUCCESS/terminal40877937626 FAILUREも履歴保持、成功Run再実行なし。修正済みPR#397 HEAD8f426a34 required resolver40878211773 SUCCESS→保護main99e75928→original postmerge40878389140 SUCCESS。別の実保護要求PR#399 HEAD0d9ce681 App15368 resolver40878625420 SUCCESS→保護マージmain2dd7d7d3→postmerge40878790464 SUCCESS。新h02 original recovery source Run40878790479 attempt1 SUCCESS/Artifact12898558364 original ZIP provider SHA2569b01401a59c74e3fbcecd1469be10b267517d8d1b56c786bb6e9b732e0134249;独立workflow_run terminal Run40878828641 attempt1 SUCCESS/Artifact12898988268 provider ZIP SHA256432b74bf18049e1fdd095e4860cfe3b02656e2e836345dc59175325cc5451eb6。App original GET Git blob0ae3fb0aa9824fb704600d19fa51afcc309b763frev2、17/17 QUARANTINED、original sourceRun40876766677不変、completionRun40878828641、replay=DENY_NO_SECOND_PUT、publisherAuthorized=false/writeOutcomeUnknown=false、same-token revoke401 gate、ORIGINAL_GET_VERIFIEDPASS。これは真の中央ZIP実バイト+実17 repo SHAの制御負例とApp durable replayであり、17ローカルWindows子Runの敵対的完了をこの同一cycleへ紐付けた証明ではなく、Publisher/Release、自然GitHub API429/503の証明ではない。 - R06-05-02-02 同一中央cycleの実17ローカル子原本・真のfailure/skip/step-timeout・制御completion欠落/実期限・独立有限App CAS終端/再読取・source-kind/replay拒否を非公開統合受入。根拠#6510888487、中央original40962984014、独立集約source40970909757/watchdog+別読取40970910085。自然GitHub障害・全体R05の無人起動・Publisherの証明には流用しない。
- R06-05-02-02-01 同一中央cycle子Run照合ポリシーのコード・必須CI限定サブ証明(実17異常Runではない):非公開PR#402 HEAD
6d380a0e6db83f823013d326359b7a96f2cedfd9、App15368 resolver original Run40881478162 attempt1 SUCCESS、最新HEAD保護squash merge main06330b5b9f2eeaefa7683c62f83557f8cf6f6e7a、original push postmerge Run40881659519 attempt1 SUCCESS。17 distinct source-bound child、central original run/request/artifact/SHA256、local protected parentとsource-kind、failed/skipped/timed_out独立watchdog、missing-event期限後durable CAS readback、attempt2/replay/公開権限負例の判定関数・CI試験のみ。原本子RunのZIP/実障害/生CAS readbackは未実施、R06-05-02-02をPASSにしない。 - R06-05-02-02-02 同一中央cycleの実17 original Runと16 actual receipt ZIP+実skipのartifact不在、真のfailure/1分step timeout、制御missing completion、専用App CAS永続終端を独立照合し受入。17/17保護merge・17/17 original Windows attempt1 PG14〜18/Summary計102ジョブSUCCESS。新規anom07のみで成立し、旧anom05/06原本の成功・失敗・未完履歴は保全。下位-01〜03全成立、詳細#6510888487。
- R06-05-02-02-02-01 実原本取得・有限独立watchdog・専用App CAS・別ジョブreadbackの実装/CI限定受入。PR#408/fix(r06): verify the authentic original PREPARE publication flag #409/fix(r06): verify the deployed original shared caller step names #411/fix(r06): bind the original verifier job to its immutable workflow command #412、各最新HEAD必須App15368 resolver→期待HEAD保護merge→original postmerge SUCCESS。最終コード4cf0043a、postmerge40967133247 SUCCESS。原本scan権限flagとApp状態flagを分離し、全17原本Workflowの固定コマンド/env/ff551bd2完全SHAから実検証step名を結合。hostile7件・既存policy9件・17 real定義の照合成功。コード単独をlive受入とはしない。
- R06-05-02-02-02-02 新規anom07中央原本+同一cycle17ローカル原本と16ZIPの独立SHA256・真のfailure/skip/timeout・各Windows original postmergeを照合。中央PR#410/Run40962984014/Artifact12935853174 SHA256
15040c5aac00282255417ff9b5668b02b4a236e3e36db1b0ebb1428515821a70、全17保護PRと102 original Windows必須Job成功、実skip1件はartifact無し。全原本Run/HEAD/Artifact/実SHA256一覧#6510888487。期限切れanom06や旧成功Runは再実行しない。 - R06-05-02-02-02-03 同じanom07の制御completion欠落・実期限切れ・独立有限App CAS revision2と別Appキーなしjobの原本再読取・durable replay/source-kind拒否を照合。PR#413→protected main c4a7992、source40970909757/watchdog+別読取40970910085 attempt1全SUCCESS。原本3ZIP/実SHA256、rev1 Git blob74027bf1→rev2
93ffecb3606b93f2098181779a037dfa42974eff、13 NO_UPDATE/4 QUARANTINED、BOUNDED_WATCHDOG、publisher=false/writeOutcomeUnknown=false、厳格same-token401 gate成功。Root別取得で全バイト・入力・Git blob・遷移・readback・無追加PUTを再照合。自然GitHubイベント消失やSigstore署名の証明ではない。
- R06-05-02-02-01 同一中央cycle子Run照合ポリシーのコード・必須CI限定サブ証明(実17異常Runではない):非公開PR#402 HEAD
- R06-05-02-01 中央PREPARE original ZIP実取得+17 protected local main GET+制御した改ざん/欠落/期限切れDENY+別Run App CAS durable replayの限定実受入。コード PR#392/fix(R06-05-02): preserve failed listener and recover original durable state in new Runs #394/fix(R06-05-02): authenticate actual publisherAuthorized in recovery terminal #397 は最新HEAD required App15368 resolver→保護マージ→original postmerge SUCCESS。元1回限り要求 PR#393 source Run40876766677 attempt1 SUCCESS、原本Artifact12898616478 provider ZIP SHA256
-
R06-05-03 中央PREPARE成功原本ZIPの実バイトから独立した改ざん・欠落・attempt2負例を検証する限定offlineサブ証明。元中央Run40852118886 attempt1 SUCCESS、Artifact12886559374 (非失効) を新たに取得し、ZIP実バイトSHA256
b81a14c98b7fcc403970b7bde40028799a99938bef595a8ea1400154b35e5262がprovider digestと一致。ZIP 1エントリissue311-r06-prepare-original-scan.json、元requestr-20261029-r06prepare17pin03、targetMainSha17/17、result SCANNED。原本コピーのdeflateメンバー1bit変更→provider SHA不一致かつ解凍/CRC例外、17対象1件削除→16/17およびprovider SHA不一致、ZIP余剰エントリ追加→one-entry contract/provider SHA不一致、JSON sourceRunAttempt=2→attempt1制約DENY。全試験ローカルメモリ内でoriginal raw bytesから負例を生成、GitHub原本は変更・rerunなし。実GitHubローカルworkflowでの敵対的失敗・App CAS durable replayやR06-05-02全体の受入ではない。
-
- R06-06 v2.1 R04/R05/R06依存ゲートPASS:既存R06-06-01/02 + 新17 App真正A/C/D、状態の限定公開拒否・独立読取を照合。監査 #6521649490。以下は受入前時点の歴史記載: R04/R05/R06全体の依存ゲート照合と実証記録。2026-10-30 JST: LIVE_APP_IDENTITY_PINNED / NO_DISPATCH / 実運用未受入。private App5534389・選択17repo install176718417・main限定専用Env25744043853/Secret存在・旧キー削除を確認。実App原本 Run40982434701でbot ID350058024・単一repo token/同一token失効401を認証、PR#415/#416保護マージ。R06-06: approved coordinator App ID + guarded original bot identity proof (no dispatch) #415 postmerge resolver FAILUREは免除せず#416で負例テスト修正、新原本postmerge Run40982739872 SUCCESS。中央scanはまだ17repoを自動起動せず、R06-05統合成功を無人Coordinatorへ読み替えない。runtimeEnabled=false・新R05-03未受入。
- R06-06-01 実原本17統合後の依存棚卸し:R04/R05既存限定証明・R06-05実統合を照合し、中央完了→17repo無人起動と実App actor認可が未実装と確認。#6510888487およびdocs/issue311-r06-dependency-gate.md。これはゲート調査完了でありゲート全成立ではない。
- R06-06-02 専用非公開起動主体の明示承認・実設定・実identity固定 限定PASS(認証・固定のみ)。private App5534389/install176718417/選択17repo/Actions write+Metadata read、main限定Env25744043853/Secret存在、使用キー5098216のみ・旧5097717削除。実GitHub App認証pilot original Run40982434701 attempt1 (head f9c4e16)でbot
pgextwin-issue311-prepare-coord[bot]ID350058024、単一orafce限定token、同一token revoke401、0 dispatch、Artifact12945252561の原本ログ/receipt成功。PR#415 HEADd2e4fee2 必須App15368 resolver40982313054 SUCCESS→保護マージf9c4e161。元postmerge40982434665 FAILUREは保持し、テスト修復/ID固定PR#416 HEAD2817c255 必須resolver40982633549 SUCCESS→期待HEAD保護マージ main4c702df7→新original postmerge40982739872 SUCCESS。runtimeEnabled=false、実workflow_dispatchと無人17子はR06-06-03へ保留。既存資格情報転用・Publisher権限追加・公開なし。 - R06-06-03 v2.1 A/C/D PASS:新17 original bot child ZIP実バイトSHA256・同一cycle・App CAS revision2 NO_UPDATE17・別Runner鍵なしreadback、既存GET-only最大3/制御ACK喪失無再PUT/独立2Runner実409/失効401、偽actor・replay・改ざんDENYを照合。新PR#453・中央41048039208・fleet41048135275・CAS41048436029・watch41048039041、原本/17 SHA/旧証拠監査 #6521649490。以下は単一repo pilot時点の歴史記載: 実App actor単一repo pilot限定SUCCESS、全17repo無人Coordinatorは未受入。orafce PR#51 protected HEADbd07d533必須Windows PG14〜18/Summary40983190505 SUCCESS→protected merge
b2c57bf4a8842c1225a7794213904b363de99a23→original postmerge40983869309 PG14〜18/Summary SUCCESS。build PR#417 HEAD ea31dcb required resolver40983759279 SUCCESS→protected merge eed92a3→postmerge40983911272 SUCCESS。実起動要求PR#418 HEAD71509c9d resolver40984021669 SUCCESS→protected merge main51ab1666a5464e36ffa0efef7157ad0e033d59be→独立 original postmerge40984579762 SUCCESS。中央一回限りのApp original Run40984579817 SUCCESS/Artifact12945509081(provider ZIP digest SHA256:1eb92811600f2f41e91ddad44f9765a80f4668203d737dc94e6646e29379534c):GitHub実POST workflow_dispatch HTTP204→orafce実App bot actor ID350058024 original Run40984596152 SUCCESS/Artifact12946536474(provider ZIP digest SHA256:b1bc0895014a04b7a0a565b2c7a3cdc8cb09260c7a2af01b07da2b259a959ee2)、単一repo token DELETE→同一token GET401を確認。単一repo読取専用 actor 証明であり、本物のローカルPREPARE起動・17子要求/receipt・中央期限/有限CAS・無人17集約は未実施。独立実ZIP SHA256は未実施(上記はGitHub provider digest)。runtimeEnabled=false/公開なし、R05-03未受入。
R07〜R12 展開・公開前ゲート
- R07-01 1拡張pilotの新契約受入 — orafce PR#54保護main=be51cf1f、required PR original Windows41015475372とpostmerge Windows41016092201 PG14〜18+Summary SUCCESS、同一新中央cycle App子41048281023/ZIP実SHA256/CAS readback。旧単一repo pilotを新契約と誤認しない。証跡。
- R07-02 旧残3件への段階展開 — pg_ivm / plpgsql_check / pg_hint_planの各最新HEAD required Windows PG14〜18+Summary、保護merge/exact-main original postmerge、今回新同一cycle real App receipt/SHA256/独立replay DENYを照合。証跡。
- R07-03 既存13件への展開と17/17実receipt・replay DENY — 他13 repoのlatest-head CI/保護merge/exact-main postmerge Windows PG14〜18+Summaryと新中央cycle 17 distinct original/ZIP実SHA256・CAS rev2/鍵なし読取/独立replay DENYを照合。17件原本表。
- R08-01 新方式OIDC署名と独立Sigstore監査2系統 — v2.1真正App-OIDC/独立Sigstore2系統+17原本ZIP実SHA256+独立CAS/readback PASS。受入監査 #6525877146。PublisherはR08-02別ゲート。
- R08-02 Publisher admission、App/actor隔離、fail-closed、PUBLISH_DENYを保持した非公開受入 — 真正Publisher App JWT隔離原本/実ZIP SHA256・CRC/PG14〜18+SPDX/Grype既存独立監査の固定照合/非公開拒否PASS。根拠 #6526531530。実Release未認可。
- R09-01 Catalog/CLI/feed/EN・JAまでの非公開連結の受入(v2.1 PASS/非公開限定。Catalog build(deps): bump actions/create-github-app-token from 3.2.0 to 3.3.0 #180/fix: safely recover failed Wave3 first-candidate Windows runs #179 保護マージ・原本postmerge/公開feed NOOP、Website Step 23: align all nine extensions on manually reviewed SHA-pinned candidate queue #45 非公開EN・JA HTTP、根拠 comment #6534563345。R09-02/親R09には加算しない)
- R09-02 適格な将来新stableかつ正式認可済みの場合に限る実Release E2E(それまではPENDING)
- R10-01 期限切れ/改ざん/重複/子失敗/イベント欠落・429/5xx等の負例 — v2.1制御負例・本番Publisher書込境界の非公開fail-closedテスト受入。監査 #6535116211
- R10-02 永続最終集約・結果報告・復旧地点の検証
- R11-01 各repoの対象cron依存を適切な代替受入後に廃止
- R11-02 復旧・失効・旧Run競合・導入手順の照合
- R12-01 親#75の受入契約/公開ゲートと新版証拠の対応表 — 親#75旧公開ゲート→新版v2.1対応表・運用手順をPR#469保護マージ/postmerge受入。監査 #6535116211
- R12-02 1回Chat要求から17対象の非公開終端・運用手順と必要証跡を受入
制約: 成功Run再実行なし、GitHub/ChatGPT/外部cron追加なし、資格情報転用・偽scheduleなし、PUBLISH_DENY迂回・未認可公開なし。公開やReleaseの承認はこの台帳登録に含まれない。
残9件の実行契約 v2.2(2026-10-31 JST)
ユーザーの「タスクの明確化・再現可能な手順・受入条件を計画したうえで実施する」という指示により、未受入9チェックを 7作業 に分解した。既存v2.1の実原本要求、安全ゲート、94枝番、過去証跡は維持する。85/94 PASS・9 PENDING、加算0。本節やコードテストだけで親子チェックを更新しない。
正本:
- 実行手順・合否・再開条件
- 機械可読7作業(inputs / procedure / passWhen / failWhen / nextAction)
- 保護PR #478:専用共通承認停止遷移・17対象の決定的負例・既存CAS adapter制御試験。pure関数/IN-MEMORY試験限定。実承認lookup adapterと実App承認停止原本は未成立。
| 作業 | 対象 | 実施と受入の境界 |
|---|---|---|
| W10-A | R10-02 | 共通 record_approval_block と決定的テスト。request/HEAD/source/対象/policy/期限・理由/最終成功/再開点を結合。純関数は呼出元の事実を認証しない。コード試験をlive承認不足・実CASへ読み替えない。 |
| W10-B | R10-02 | 既存正常/異常原本を再利用し、orafceの実dispatch入力とskip/timeoutを結合。実行前停止に存在しない子ZIPは認証済み不在として記録し、入力結合不足を推測で埋めない。回収不能なら次の新限定負例より先に入力receipt保存を実装。 |
| W10-C | R10-02 | 実在する既存policy/適格要求に対する認証GET adapter→専用App単発CAS→失効401→別Runner鍵なしGET→実ZIP SHA。適格要求なしを1回記録したらW11-Aへ進み、人工の承認不足を作らない。 |
| W11-A | R11-01 | 各scheduleの検出/候補作成/署名再評価/照合/回復を個別に列挙し、orafceから代替の非公開正常/異常originalを受入後、その対象だけ撤去。PREPARE NO_UPDATEを全機能代替と称さない。 |
| W11-B | R11-02 | 旧/新の実書込namespaceと原本コードSHAを対応付け、共有Writerは真正event・隔離資源・実コードで制御競合/実409/PUT1回/失効/有限再開を証明。実際に非共有なら認証済みallowlist/namespace非交差を証明し該当ペアのみN/A。一般CASや旧Run不在を共有Writer競合証明にしない。 |
| W12-A | R12-02 | R10/R11前提成立後、1要求→真正17対象→有限終端→独立読取。入力例・範囲・成果・理由・最終成功・安全再開を実原本と結合。親R12の依存も別途照合。 |
| W09-A | R09-02 | 将来適格stable+特定候補への正式PUBLISH成立時のみ実公開E2E。試験Release/tag禁止。 |
反復停止規則: policy/要求/原本/実装に変更がない場合、単なる不在監査の新PRは作らない。外部条件待ちは具体的な再開条件を1回残して独立した実装へ進む。既存成功Runのrerun、新cron/Chat定期タスク/外部worker、偽event、Secret転用、保護緩和、未認可公開は禁止。runtimeEnabled=false / PUBLISH_DENY、Website Draft#45未マージ、#311/#75 OPENを維持する。
Activity
[-]Replace GitHub cron with authenticated external orchestration across 17 extensions[/-][+]Replace GitHub cron with hourly ChatGPT Task initiation and authenticated orchestration[/+][-]Replace GitHub cron with hourly ChatGPT Task initiation and authenticated orchestration[/-][+]One Chat request to completion: event-driven orchestration without cron or recurring tasks[/+]ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — R01 authenticated fleet inventory and R02 original event proof (NONPUBLISHING; recovery pending)
Canonical contract: #311 R01–R12, parent #75 #6473214580. Old M/T and all recurring-Chat/extra-cron options are withdrawn, not completed. This checkpoint uses new authenticated GitHub GET; no previous successful CI was rerun.
R01 inventory (GET snapshot)
pgextwin/build/mainstartedd8904ebc377e33034b71108d42de940d6b6c9979; after R02 protected PR test(issue311): R02 protected-main push entry canary (nonpublishing) #312 it isd9a09ae962b077c4142599daebc6b57746bccf27. Central 23 Workflow files includefleet-upstream-watch.yml(blobf09fad0e50d9b12e6d77486636b62dd1fec9c99b),operator-update-auto.yml(0c44b25652b2ac87e76d18e8cd1081fff6879f2e),publisher-candidate-intake.yml(a8b65a32659fc04a58f130bcb5c4cf16bdedc55d), native PR recovery, signed requalification, PostgreSQL watch, fleet-status, canary, and existing validation/postmerge.metadata/automation-fleet.jsonblob69918265dabb86b11a9406533cbe0ce495137b94still modelsscheduleUtcandautomatic-signed-schedule. Do NOT treat this old sourceKind as new request authority.mainprotected=true, exact SHAs:pg_bigm=713a76b8650f61097b5d5a55f15cd7f2ebcb4ec0;pg_cron=a36e180a3922e070cde03642ec9fcc40e171567e;pg_hint_plan=40e68cc8177a3d0707ac87f346e3d88c3247769c;pgaudit=f53e97d7c4a51c089f8bdc7b33f3ae005f516b29;set_user=4f02f925e7bc0534af421441c1b2fb1ecd755846;pg_repack=b9da885a4ef132b5f3d5af448fb09e5bfe56e6a7;pg_ivm=6e3904af78cccbd67ce84eef183ceda9f4eef553;pg_qualstats=fa31026f041070c821d317041b8f973ccd0a794d;plpgsql_check=b75d9c90f2c349788b21a7f47d59ca31f3c8ebdd;orafce=e96941dd3ec09f88011feb1165a3f6f83231460f;hypopg=6c6ddfb7b62dd220fdea4004e5e5f6a0a054f271;wal2json=51850b29b4eca4cc85ac648342d490605557a2ff;pg_partman=4e3be24b9b2523cc6b1979d61f6be912be6d3e31;pg_stat_monitor=97f1f41054bed4a3900e0ae924d04cbe5b2f08e4;pgtap=c536e9d90760eea88f7c42ba4b675e05a0d0fcf8;pg_variables=0662ed8757e2f0c821a0a300c6f98df9374d8a8c;pg_store_plans=7d3d4a1b099fb5d408de4f50ee72b4e49854734b.Each local
update-watch.ymlis stillschedule+push+workflow_run, with genuine:30hourly cron;hypopgadditionally:41. All 17promote.ymluseworkflow_dispatchonly. Per-repo workflow source blob SHAs independently GET-ed. No active in-progress run or open PR in 17 local repos at this snapshot.catalog/main=dc8390fd816aa7bf0bf3b541e822b1320a47846e, protected=true, 14 workflows, includingcatalog-drift-readonly.yml(schedule/push),sync-verified-release.yml(schedule/manual), App-scoped opt-in proposal, CLI/feed/canary, andissue112-p1-fleet-readonly.yml(schedule/push); 5 Dependabot PRs open; no in-progress runs.website/main=2eb3bd618f230cea424b99dac5148ca72d923cd7, protected=true;pages-smoke.ymlhasworkflow_call,push,workflow_dispatch,repository_dispatch,schedule; 1 Dependabot PR open; no in-progress run.buildhad only Dependabot build(deps): bump actions/create-github-app-token from 3.2.0 to 3.3.0 #180 and build(deps): bump actions/setup-python from 6.3.0 to 7.1.0 #309 open prior to R02. Authenticated user login isShutenOishi. Required build PR check is the App15368resolverjob. Effective admin-level branch protection/required-check configuration GET returned 403 Resource not accessible by integration, so enforcement details remain UNKNOWN beyond the observed protected=true, latest-head CI and GitHub-accepted expected-head PR merge. No assumed App/Secret/permissions change.R02 actual connector → protected main → push evidence
issue311/r02-protected-push-probe, dedicated strictlyAUDIT_ONLYfixture and read-only.github/workflows/issue311-r02-nonpublishing-proof.yml(contents:read, no signing/write/dispatch/Release).030bdb81b3e811bb6902e22db09ebfa318a2ad12, original required App15368resolverRun 40717715045completed/success. Expected-HEAD protected merge succeeded; main merge SHAd9a09ae962b077c4142599daebc6b57746bccf27, merged_byShutenOishi.push, attempt=1, actor/triggering_actor=ShutenOishi, main SHA exact. The real original job log printedNONPUBLISHING_ORIGINAL_PUSH_OBSERVED, sender/pusher=ShutenOishi, request-byte SHA2565d4fa8d958e66e0e794cc71657acae8222e836e2eb22b1250a92b64cb95b4027. This independently demonstrates connector-mediated merge push is not suppressed like a GITHUB_TOKEN-origin push.FAILURE:upload-artifactskipped the dot-prefixed.issue311-r02-receipt.jsonby default. Do not upgrade this failed run to success. Build postmerge validation Run40717966641 completed SUCCESS.96fee41c05b2d8246395b6799b5c8aad0e966f4c, changes receipt to a nonhidden filename and uses a new immutable requestissue311-r02-20261029-02, avoiding a fake replay/rerun. This is pending its original exact-head required CI and safe merge. No old successful run is rerun.Still unproven
R02 original uploaded receipt / corrected postmerge run; R03 request/approval ADR; R04 durable CAS/lease/idempotence; R05 two-stage autonomous event continuation and missing-event terminal; R06–R12 new mode admission including original SHA256, signed identity, PG rows, SPDX/Grype, independent replay deny.
workflow_rundepth and GITHUB_TOKEN event-suppression require design and negative proof, NOT long-chain assumptions.PUBLISH_DENYunchanged; no Release/tag/secret/policy/cron/permission/actor expansion, real publish, Catalog change, or Work/ChatGPT cron.Next: verify #313 latest-head App15368 CI, merge with expected HEAD if clean, GET new original push run/jobs/artifact/log and final postmerge CI. Then R03 ADR minimal protected PR; progress and evidence remain on #311 and #75.
ShutenOishi commentedon Oct 28, 2026
2026-10-29 00:4x JST — R02 protected-push original receipt independently verified (NONPUBLISHING)
Latest canonical plan is #311 R01–R12, not the withdrawn hourly schedule plan. New authenticated GitHub GET found protected
build/main=24085fa17eb9e14be5ccb8f66b5c61039e8f54ae(merge PR #313, head96fee41c05b2d8246395b6799b5c8aad0e966f4c). PR-head validation Run 40718173252 SUCCESS; postmerge validation Run 40718397814 SUCCESS, attempt1. Prior #312 probe Run40717966364 failed only at the hidden artifact upload; do not rewrite that failed run as PASS.New original successful R02 proof: push Run40718397824, event=
push, attempt1, exact protected main SHA, original job 122922259639 SUCCESS. Original raw job log reportsNONPUBLISHING_ORIGINAL_PUSH_OBSERVED, actor/triggeringActor/sender/pusher=ShutenOishi, before SHAd9a09ae962b077c4142599daebc6b57746bccf27, after SHA24085fa17eb9e14be5ccb8f66b5c61039e8f54ae, requestIdissue311-r02-20261029-02,mode=AUDIT_ONLY,publishAuthorized=false, permissionModelcontents:read. Original receipt artifact 12829007351 (issue311-r02-original-push-receipt) downloaded; independently hashed original 559-byte ZIP SHA2564452a10173d9769955bcfebc7c06d6ebde3dde65479685fd2af32346b7a9d1d1, matching authenticated GitHub artifact digest exactly. ZIP contains onlyissue311-r02-receipt.json; member SHA256c73a39975139e93f633769be7d835409a69cb01ffe13e8449e391c33a1457bc9. Parsed receipt binds event/run/attempt/main SHA/requestId andpublishAuthorized=false.Scope: R02 protected-main push-to-nonpublishing receipt is observed; this alone does not establish R02's full event-suppression/actor policy or R03–R12, and is NOT release authorization. Old X02 13/17 is historical only; new 17/17 remains unproven. No reruns, dispatch, cron/policy/App/Secret changes, or Release. PUBLISH_DENY maintained.
Next: Verify R02 event suppression and credential/actor boundary against actual original runs, then R03 versioned request/approval/evidence ADR and R04/R05 durable coordinator. Avoid re-running the now-successful Run40718397824/40718397814.
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — R01 inventory, R02 original event/ZIP proof, R03 protected ADR, R04/R05 nonpublishing foundation + genuine two-stage terminal (NO RELEASE)
Authenticated GitHub GET + original connector operations and independent actual ZIP SHA256. This updates #6473458864. Issue #311 R01–R12 remains canonical; #75 #6473214580 direction stands. Old M/T, extra-cron and recurring-Chat alternatives remain withdrawn, not marked complete. No real Release, tag, Catalog publication, publisher credential, secret, effective actor policy or protection change.
Protected PR / exact-head / original required CI / postmerge ledger
030bdb81b3e811bb6902e22db09ebfa318a2ad12d9a09ae962b077c4142599daebc6b57746bccf2796fee41c05b2d8246395b6799b5c8aad0e966f4c24085fa17eb9e14be5ccb8f66b5c61039e8f54ae75e6ac3319a1f03e4abb839ab53bd76e3a0fde1bd4e4ac7973809d19bd7030b5f9789e50f06433dc887e9d213dd7078bf1b4cea402dc9520a92fdfa8e555ba09917efcd55cda96c804fccbb4c6b043f2All four PRs used
expected_head_shaprotected merges, returnedmerged=true, live main GETprotected=true, andmerged_by=ShutenOishi. All original successful CI are reused, never rerun. The GitHub integration's admin-level GET of the actual branch protection required-status configuration returns 403, so effective rule detail remains UNKNOWN, not independently asserted PASS. Actual App15368 exact-HEAD PR CI and GitHub-accepted protected merge are observed.R02 true single-push canary
push, actor/sender/pusher/triggeringActorShutenOishi, exact original main HEAD. The job independently verified request raw SHA256, but final result is FAILURE because actions/upload-artifact excludes dot-prefixed file by default. Preserve original FAILURE; no rerun or synthetic proof.completed/success, originalpush, attempt1. Original Artifact 12829007351 (issue311-r02-original-push-receipt) ZIP 559 bytes, GitHub metadata SHA256 = actual independently downloaded ZIP SHA2564452a10173d9769955bcfebc7c06d6ebde3dde65479685fd2af32346b7a9d1d1. Inside original ZIPissue311-r02-receipt.json: requestIdissue311-r02-20261029-02, request raw SHA256a14ae8fddb2b7f21bb1ae3b73e8757f07f861f3675350c7676f842dc92f6f84a,headSha=24085fa17eb9e14be5ccb8f66b5c61039e8f54ae, originalbeforeSha=d9a09ae962b077c4142599daebc6b57746bccf27, actor/sender/pusher/triggeringActor ShutenOishi,publishAuthorized=false. R02 minimum one genuine connector merge → push proof PASS. Does NOT prove GITHUB_TOKEN-generated secondary events or privileged publishing.R03 actual merged contract
Protected main now contains
docs/adr-0311-event-driven-request-v1.md,schema/issue311-execution-request-v1.schema.json,scripts/issue311-request-contract.py,tests/test-issue311-request-contract.pyand required CI invocation. A bounded request declaration v1 fixes targets/SHA, request ID, max attempts/operations/walltime, expiry, AUDIT_ONLY/PREPARE/PUBLISH_ELIGIBLE, and grants; rejects duplicate keys, unknown repos/refs, invalid SHA, extra fields, stale/expired/oversized requests, unauthorized publish declarations and mismatch in approval. Every schema-valid request is INERT and returnsactorAuthenticated=false, publicationAuthorized=false. Authenticated GitHub actor/PR merge, original bytes, effective branch rules and required CI must be proved separately; no production listener or privileged new sourceKind is active. R03 design/schema/tests are accepted, live adoption pending R04/R05 and later migration.R04 pure state transition completed, durable state still unproven
PR #315 protected merged
scripts/issue311-state-core.py,tests/test-issue311-state-core.pyand CI. In-process/pure/offline tests cover revision CAS, exact duplicate replay idempotence, mismatched same-key conflict, immutable stage input on retry, finite attempts/operation budget, terminal per-target SUCCESS/NO_UPDATE/FAILED/BLOCKED_APPROVAL/QUARANTINED, and no blind retry on unknown privileged write result (QUARANTINED). It writes no GitHub state, haspersistenceAccepted=falseand no Writer privilege. R04 overall PENDING: choose an approved durable protected checkpoint CAS/lease writer and independently verify its permission scope, concurrency and restart. Neither Issue text nor Actions artifact alone is a trusted CAS ledger; no undocumented App/Secret/permission expansion.R05 independently observed two-stage one-shot chain + terminal (single-run proof, not full coordinator)
AUDIT_ONLYfile.github/execution-requests/r-20261029-r05nonpublishing001.jsonwith fixedorafce/main=e96941dd3ec09f88011feb1165a3f6f83231460f, prior central SHA/blob, 16-hour expiry andpublishAuthorized=false. A path-limitedpushWorkflow.github/workflows/issue311-r05-nonpublishing-needs.ymlhas contents:read only, nocron,workflow_dispatch,workflow_runchain, OIDC, Publisher/Catalog credential or GitHub write. Workflow logic:admitauthenticates real push/current SHA/schema/byte hash →stage2 needs:admitindependently rehashes exact immutable request bytes →aggregate needs:[admit,stage2] if:always()records explicit terminal NO_UPDATE/FAILED.push, attempt1, actor ShutenOishi, merged maine555ba09917efcd55cda96c804fccbb4c6b043f2: all THREE jobscompleted/success; runcompleted/success. This required no additional Chat invocation or manual dispatch after the one protected request merge.d5978e0b96d8fc5fa56d4c633a43351ebd63b163528628f03b8eb4b7297c9eb6.5dfb6cd54c1276485cddf6cd38c6db31103ed94ad5352b255f7bce4884c8ce86.f025c81eb8f08b6cb7856b3075af3284d9b427851e3f964ef52e00ebe06cabb6.rawSha256=7a8761dd458aeb88c20d13ff5ac8e92aa5f07dd5b89e6b0c395cffa6d5aad75fandheadSha=e555ba09917efcd55cda96c804fccbb4c6b043f2for stage1/stage2. Final receiptrequestId=r-20261029-r05nonpublishing001,runId=40720418388,runAttempt=1,stage1=success,stage2=success,terminal=NO_UPDATE,statePersistenceAccepted=false,publishAuthorized=false. A real two-stepneeds+ always terminal inside ONE trusted Workflow is proven; full R05 PENDING cross-repo Windows jobs, durable checkpoints/restart, independent event transport and missing-event terminal detection.Scope and forward conditions
PUBLISH_DENY, PG14–18, original ZIP actual SHA256, OIDC/Sigstore dual independent audit, SPDX/Grype, replay DENY, create-only, publisher token same-live revoke/HTTP401, policy/actor/protection untouched. Never claim unsigned audit-only artifacts constitute a new Release or Catalog admission.6ad9d3b661948191932974b4b3716e49was privately checked and is alreadyis_enabled=false. It was NOT restarted; other unrelated automations untouched. The old GitHub on.schedule triggers still exist until R11 safely migrates after new controls are proven; no cron additions.Stopping boundary: No authorized durable state writer/lease or original cross-repo execution trigger has yet been established without extra privileges. Consequently R04/R05 full acceptance and any publication/Catalog changes are not authorized. Protected main and historical release assets are intact, all four PRs merged and all latest-head/postmerge CI success, no required follow-up to replay earlier success.
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — R04 live connector CAS + protected adapter, R05 genuine 17-repository read-only fanout (NO RELEASE)
Canonical #311 R01–R12 unchanged; prior #6473821604 retained. New authenticated GitHub GET and original-run byte verification; no old successful CI rerun, new cron, ChatGPT task, Secret/App/protection/publisher permission, tag, Release or Catalog write. Old 13/17 receipt and Fleet40688819922 remain historical, not counted as new R07 admission.
R04 — durable CAS observed only for authenticated Chat connector, NOT yet Actions writer
issue311/r04-isolated-state-probe-20261029, original checkpoint commitc44b3266c88b31bee8ec03b90f5cdb800cd76d4e; revision 0→1 persisted at commit26eda155458ccff9e9d4a0a64328e6dce793ce18, blob91df0cf8cb41c9a456d4acb4793cbdc8780fff2d. A second update using the stale original blob2e1c01eede7116677034b6636d50df5e93e3e5d6was rejected HTTP 409 CONFLICT, followed by independent read confirming revision 1 unchanged. This is one real GitHub Contents CAS proof, not trust in Issue text or artifact.dc31efc1206fd73dbb7391bfd7d01628ab058214: inert fixedissue311-stateContents CAS adapter, bounded READONLY lease generations, owner/expiry, stale conflict and timeout-after-commit/unknown outcome DENY, hostile tests. Original App15368 resolver PR CI40731759262 SUCCESS; expected-head protected mergefda9e1b2a5b243851eb77a7280c1712855013f49; original postmerge 40731971328 SUCCESS.R05 — genuinely launched one-shot 17-way authenticated read-only fleet
protected=trueon every repo. This is a point-in-time immutable snapshot, not assumed future head.02fe10aac762c896d1ab40a3a0e17d240dae23d4: new AUDIT_ONLY immutable declarationr-20261029-r05readonly17b, strict original protected-main push+actorShutenOishi, source/registered roster of all 17, read-only Actions GITHUB_TOKEN, at most 4 parallel GET jobs,fail-fast:false,always()final aggregator, failed/skip/missing/duplicate negative tests. No dispatch, cross-repo write, Windows CI, signing or publication path.53fa1ce02f2f87a88bedc7502ff9324a697769a6, live mainprotected=true; original postmerge 40732395943 SUCCESS.event=push, original attempt 1, actorShutenOishi, exact merged main SHA, 1 admit + 17 actual matrix jobs all SUCCESS + 1 always terminal SUCCESS, no second Chat/dispatch/cron. Original admit job122971871467 logged request raw SHA25673a930a3951a471e2a975ac92ffe3e4d16f5a4ca953a6c6c359ed1812613aac7; original aggregator job122972379328 logged all 17 statusessuccess, terminalNO_UPDATE,publishAuthorized=false,persistenceAccepted=false.requestId,runId=40732396047,runAttempt=1, all 17 exact protected remote SHAs and success, terminal 17/17NO_UPDATE, no publish permission.1811738e70ae62a1ef8b30cbbd8d3abfb9d29ba1794e9d466d77084b8907ec11, matching GitHubsha256:digest. Other 17 artifact IDs/digests remain independently retrievable on Run40732396047; NO new scheduled preflight/sourceKind receipt was claimed.Remaining admission boundaries / next exact work
PUBLISH_DENY, create-only and live token revocation/401 unaffected. No publication approval implied. [P0][PUBLISH PATH] Chat更新・適格な正式Release→Catalog/Website連結(既存安全ゲート維持) #75 remains OPEN; [P2][OPTIONAL FEATURE] オンライン/オフライン配布CLI・バンドル共通基盤 #112 offline CLI separate.This checkpoint is new measured R04 partial + R05 bounded read-only subproof, not R04/R05 full PASS.
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — R04 recovery hardening + original Windows R05 controlled-negative acceptance (NO RELEASE)
Authenticated current build/main =
a0cf784edf3cea11df9d925a605a78177c46f9c8, protected=true. This ledger extends #6475528265; it does not revise R01–R03 or the already accepted R05 17/17 remote GET evidence. #311 R04/R05 remain PARTIAL, R06–R12 unaccepted.Protected exact-head implementation and original CI
9942a056ea293c0b120d45a557c4f6c8348ab692a0cf784edf3cea11df9d925a605a78177c46f9c8Both PRs merged to protected main with exact expected HEAD after actual original App15368 required CI. No successful workflow reruns.
R04 specific progress and still missing
scripts/issue311-state-github.pynow offers an independently READ-ONLY reconciliation of an ambiguous lease PUT using an authoritative GET: exact current intended state => COMMITTED; old unchanged => UNRESOLVED (no retry entitlement); changed state => CONFLICT; GET error => UnknownWriteOutcome/QUARANTINE. Real adapter remains INERT. Hostile tests added and required CI PASS.refs/heads/issue311-statewas 404. No production state branch/approved Actions Writer exists; branch-admin effective rules remain UNKNOWN (prior 403). No Actions contents:write, token, App, Secret, unprotected branch workaround or permission widening added. R04 full Actions Writer / protected CAS / lease across runs / crash resume NOT accepted.R05 genuine original Windows NEGATIVE, failures preserved
r-20261029-r05winnegative01, real push/attempt1, ended FAILURE. Windows checkout worktree line-ending transformation made raw request SHA256 differ from immutable Git bytes, both Windows child jobs safely rejected. Initial aggregator hit HTTP401 on cross-host ZIP redirect with inherited bearer. These are preserved as original failures; NOT rerun, waived or called controlled acceptance.r-20261029-r05winnegative02; the Windows runner hashesgit show HEAD:<path>immutable blob bytes (with HEAD == actual GITHUB_SHA), and artifact download strips GitHub Authorization on cross-host redirect. Regression tests now cover both defects.a0cf784e..., event=push, attempt1, actor ShutenOishi. Original admit SUCCESS; actualwindows-latestjobpgextwin/orafceSUCCESS after exact protected main GETe96941dd3ec09f88011feb1165a3f6f83231460f; actual Windowspgextwin/pg_ivmGET6e3904af78cccbd67ce84eef183ceda9f4eef553independently verifiedremoteVerified=truebefore an intentionally injected child FAILURE.always()aggregator independently fetched original ZIPs, hashed the actual outer bytes and returned terminal FAILED,controlledNegativeProved=true,persistenceAccepted=false,publishAuthorized=false. Run overall FAILURE by design; never represent it as workflow success. Original request SHA256:2be265ce6f2e93ed0593fbe90725025719d65bd50a306a073df265287f60ac27.5431ba01f72bd10da1303b9ca3b377d62bd3178eef243ea3e6b3ae8336c9b7f9;814c5696e8e6c6b5c4950688de30ea09676965323108cfc57a2932132666dc76;1c09f10f79d87565922d619b07b25600f7b556aa4b4c4e3fa827aef70d5b4888.Each original ZIP had exactly one parsed JSON bound to requestId/runId/attempt and proper true
Windowsevidence; terminal contains exact original child ZIP hashes andcontrolledNegativeProved=true.Boundaries and next
R05 real two-repository Windows GET and actual controlled failure/skip-safe terminal are a NEW SUBPROOF, NOT R05 end-to-end. No remote Windows Workflow dispatch, build/signing, cross-run persisted checkpoint, missing-event timeout recovery or original R06/R07 new-mode 17/17 typed admission. Current local
windows.yml(at least orafce/pg_ivm) is NOTworkflow_call; central direct cross-repo reuse is not yet a proven ready-made replacement for authorized remote build initiation.Next: (1) independently establish an approved narrow Actions state Writer and protected CAS ref, or exact BLOCKED_APPROVAL contract if permission unavailable; test real lease contention/unknown-write read reconciliation across stopped runs; (2) implement least-authority, bounded Windows workflow initiation, durable final assembly, missing-event/timeout/429/5xx failure terminal; (3) R06 new central scan and R07 1→17 authentic typed receipts only after matching prerequisites. Old 13/17 and R05 17 READONLY GET do not count toward R07. No cron/ChatGPT scheduled tasks, dispatch, unpublished credentials, PUBLISH_DENY bypass, tag/Release, Catalog write or successful CI rerun. #311/#75 remain OPEN.
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — authenticated continuation: explicit R04/R05 BLOCKED_APPROVAL boundary (NO RELEASE)
Continuation of #6481164173; no successful stage rerun. Latest authenticated GET confirms protected build/main
a0cf784edf3cea11df9d925a605a78177c46f9c8; productiongit/ref/heads/issue311-statereturns 404;branches/main/protectionreturns 403 Resource not accessible by integration. Open central PRs are unrelated dependency PRs #309/#180; no existing R04 writer implementation PR was found.Terminal of this continuation, not completion of #311
BLOCKED_APPROVAL / R04_ACTIONS_STATE_WRITER_NOT_ESTABLISHED. This is an evidence/authority stop, not a GitHub automatic approval rejection. No new execution request was admitted, no runtime terminal checkpoint exists, and this Issue comment is NOT a CAS root. R01–R03 remain DONE, R04/R05 PARTIAL, R06–R12 NOT ACCEPTED. Prior original Run40772260487 remains FAILURE by design, with previously accepted original 3/3 ZIP hashes; no redownload or rerun was needed.
Current protected ADR
docs/adr-0311-event-driven-request-v1.mdrequires an independently authorized durable writer and verified protected state-ref trust; it explicitly says to report BLOCKED_APPROVAL when that cannot be established under existing authority. Current state adapter is inert; existing R05 jobs grant contents:read, not an Actions state writer. Chat connector Contents write does not establish an Actions token capability. The instruction to continue approved writer work does not identify an existing approved credential/protected-ref policy and does not override the explicit prohibition on unauthorized privilege expansion.Concrete minimum unblock contract (proposal only; NOTHING granted)
pgextwin/build:refs/heads/issue311-stateas the independently trusted checkpoint root, with effective rules/actor restrictions independently evidenced. Required data scope:checkpoints/<validated-requestId>.json; approved immutable protected-main writer code only. GitHub contents permission is repository-level: claiming it is natively path-scoped would be false. A plain unprotected branch plus concurrency group is not an acceptable substitute; a writer needing a protection bypass requires an explicit, separately reviewed decision.Exact resume and acceptance sequence
After the above authority/trust evidence exists: implement a fixed-scope nonpublishing writer through a protected PR; verify original App15368 resolver on latest exact HEAD; protected expected-head merge and original postmerge. Use a NEW bounded proof request, preserving successful earlier evidence. Demonstrate two actual Actions owners contending for the same checkpoint (stale CAS fails), stop/restart across separate original runs, lease expiry with generation/fencing checks, independent ambiguous-write GET reconciliation, and reuse of successful stage receipts. Expired lease never permits retry of an uncertain privileged write. Until these pass, persistenceAccepted stays false.
Only then R05: original orafce
.github/workflows/windows.ymlcurrently supports pull_request/push/workflow_dispatch, not workflow_call (blob790bba7df9e48bb290597dfa4a02aa0ddec9e685). Do not pretend GET starts its Windows Workflow or assume central GITHUB_TOKEN can trigger remote CI. Select an approved existing initiation transport or introduce a separately reviewed nonpublishing reusable interface; pin immutable source and bind request/main/run/attempt. Define bounded queue/event deadline, finite 429/5xx read retries, failed/skipped child final aggregation, and persist FAILED/QUARANTINED with resume pointer for absent event or uncertain initiation. Whole-run cancellation needs a separately proven already-authorized recovery event; an always() job alone cannot guarantee it. No manual dispatch, long workflow_run chain, cron or periodic Chat fallback.No implementation PR/CI was created merely to repeat an already-proven read-only subproof or install an unauthorized writer. PUBLISH_DENY, original evidence, existing releases, all public gates and #112 ownership remain unchanged. #311/#75 stay OPEN.
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — authenticated state-root / existing Writer authority recheck (NO RELEASE)
Continuation of #6481514824 and parent #6481519344. New authenticated GitHub GET, not a CI rerun.
git/ref/heads/main,branches/maina0cf784edf3cea11df9d925a605a78177c46f9c8; protected=true; branch response exposes requiredresolverApp15368, enforcement everyonegit/ref/heads/issue311-statebranches/issue311-state/protectionrulesets?includes_parents=trueissue311-state; #311 R02/R05 workflows retain contents:read. Existing contents:write jobs concern candidate/promotion; Publisher/Catalog credential references are purpose-specific and are NOT state Writer authority76ffba94b84e64aee2d1f2cb33da7930f90af771, still dependency-injected/inert; no new runtime credential or protected-ref trust evidenceBLOCKED_APPROVAL / R04_ACTIONS_STATE_WRITER_NOT_ESTABLISHED remains. Existing connector App permission metadata is not proof of an approved Actions checkpoint writer. No protected state root, designated existing approved runtime Writer identity/scope, or independent effective actor-policy evidence was established. This is an authority/evidence stop, not an automatic approval rejection. No production request admitted; this comment is not a durable runtime checkpoint.
R01–R03 DONE; R04/R05 PARTIAL; R06–R12 NOT ACCEPTED. Previous successful receipts and accepted original ZIP hashes are reused; original Run40772260487 remains FAILURE by design. No successful CI rerun, implementation PR, workflow execution, state-ref creation, permission expansion, credential reuse, cron/recurring Chat, Release/tag/Catalog write or PUBLISH_DENY bypass.
Resume only when authoritative evidence identifies the approved Writer and exact repo/ref scope plus effective protected state-ref actor rules and runtime capability (without exposing credentials). Then protected PR → exact-head App15368 required CI → expected-head merge → original postmerge → real Actions CAS contention/lease/fencing/stopped-run recovery and ambiguity reconciliation. Only after R04 acceptance proceed to approved real Windows workflow transport, bounded missing-event terminal and R06–R12. Both Issues remain OPEN.
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — R04 Writer承認対象 v1(提案のみ/未付与/NO RELEASE)
照合と現在位置
認証済みGETでmain=
a0cf784edf3cea11df9d925a605a78177c46f9c8を再確認。#311/#75の取得したコメントと、build内のWriter関連Issue検索から、既存の承認済みActions state Writerを特定できなかった。既存ADR blob7135cd0585642c35c41f43089549bfca86c77b8dは独立Writerの信頼・権限判断を要求する。前回Work UIのClassic main単独ルール/Installed Apps(Connector、Publisher)は歴史観測として再利用し、今回の新UI監査とは扱わない。R01–R03 DONE、R04/R05 PARTIAL、R06–R12未受入。以下は承認可能な設定案であり、承認済みWriterの実証ではない。設定・App・Secret・refは未作成。
承認対象A:指定済みbuild state refを維持する最小App案
pgextwin-state-writer(名称可用性未確認)。App ID、installation ID、bot user IDは作成後の実値を採取・固定。既存Publisher/Catalog/Connectorを転用しないpgextwin/build1件のみpgextwin/build:refs/heads/issue311-state。アプリケーション上の許可パスはcheckpoints/<validated-requestId>.json、必要な競合鍵は同じレコードに集約。複数ファイルの同時原子更新をContents API単体に仮定しないissue311-state-writerに専用App private keyを隔離。IDは非秘密変数、秘密鍵はEnvironment secretのみ。repo/org共用Secret・既存資格情報・長寿命PATは使わないmainのみ(tag許可なし)。新規の毎回手動承認は設けず、保護mainで承認済みのコードを信頼境界とする。Environmentはworkflow単位の隔離ではなく、そのEnvironmentを参照できるmainコード全体が信頼範囲となるstate refの実効ルール案(追加の限定bypass判断を含む)
issue311-state-actor、対象は正確にrefs/heads/issue311-stateのみ。Restrict creations / Restrict updatesを設定。bypassは上記新Appのみ・Always allow。runtime CASの直接更新のための明示的な例外で、mainや他のrefには適用しない。issue311-state-integrity、同じexact ref。Restrict deletions / Block force pushes、bypassなし。actor rulesetの例外でこの別rulesetまで回避できるとは扱わない。必ず承認判断に含める残存リスク
Contents writeはrepoレベルであり、ref/path/API操作別にネイティブ限定できない。buildのRelease/tagや他ブランチ操作のAPI能力も含まれる。 上記のルール・固定コード・Environmentはstateの信頼を制限するが、漏えいしたtokenからbuildのRelease API能力を消す仕組みではない。PUBLISH_DENYは運用とコードの禁止であり、API能力の不存在ではない。この残存能力を受け入れない場合は案Aを承認せず、専用state repositoryにinstallationを隔離する別案を設計し、root変更のADRを別途審査する。拡張17repo・Catalog・Websiteへのinstallationは案Aに含まない。
Work実施範囲と完了条件
承認後のみ、専用App登録・build限定installation・上記2 ruleset・専用Environmentを設定する。秘密鍵の生成・入力は安全な資格情報フロー/必要ならユーザー操作で扱い、Chat・Issue・ログ・artifactに秘密値を出さない。実ID、installation対象一覧、permission一覧、Environment branch policy、ruleset ID/対象/例外/有効状態、seed SHAを非秘密証跡として保存する。想定外の課金・追加権限・main保護変更が必要なら停止する。今回これらの設定操作は未実施。
承認後の順番(承認だけでR04 PASSにしない)
設定・主体・scopeの証跡成立 → 固定scope Writerの保護実装PR → 最新exact HEADのApp15368必須CI → expected-head保護merge → original postmerge → 新規の有界非公開proof要求で実Actions CAS競合・stale拒否、lease期限/fencing、別run停止復旧、曖昧writeの独立GET照合、成功済みreceipt再利用を証明。read-only retry最大3回、job上限10分、lease120秒を初期設計値としてコード審査し、期限切れを特権writeの無条件retry許可にしない。異なる要求間の候補競合を1 checkpoint単位に閉じられない場合は、原子的なglobal index/transaction設計を先に審査する。
R04受入後のみR05実Windows transport・有界イベント欠落終端へ進む。always()だけでwhole-run取消復旧を保証しない。R06–R12は依存成立後。成功工程の調査rerun、cron/定期Chat、Release/tag/Catalog操作なし、PUBLISH_DENY維持。
承認文(未承認)
「R04 Writer承認対象A v1を承認する。専用Appのbuild限定Contents writeに含まれるrepoレベルの残存能力、state exact-refのactor rulesetに限るApp bypass、専用main限定Environmentの信頼範囲を理解した上で、記載した設定と非公開受入実証を許可する。公開操作・Publisher/Catalog転用は許可しない。」
根拠となるGitHub公式仕様:
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — 承認案A v1のユーザー承認受領/共通化方針(NO RELEASE)
ユーザーが本Chatで「全体を共通化しつつ承認案Aを承認」と明示。対象は #6482026029 の案A v1。後続の貼付引継ぎ内の「未承認」は以前の状態記述であり、この新しい承認で更新する。build限定Contents writeの残存API能力、state exact-ref限定App例外、main限定Environment信頼範囲を含む案Aへの承認として記録する。承認は実主体作成・実認証・R04受入とは別。
共通化はbuild中央のstate adapter/厳格schema/CAS・lease・fencing/曖昧write照合/receipt契約とテストを共有する方針。17拡張ごとに資格情報やWriter実装を複製せず、承認された固定中央コードへ集約する。『全体を共通化』はinstallationを17repo/Catalog/Websiteへ拡大する承認ではない。候補横断競合はrequest別ファイルの個別CASだけで安全と断定せず、global indexの同一commit/ref transaction等の原子性を実装前に審査する。
新規認証済みGETでmain=a0cf784edf3cea11df9d925a605a78177c46f9c8を確認。Workで組織所有App一覧を新規確認:catalog-dispatcher、catalog-proposer、classic-protection-audit、publisher。state-writerは一覧になし。New GitHub App操作で https://github.com/organizations/pgextwin/settings/apps/new に到達したが、GitHub sudo再認証が必要。安全なbrowserAuth経由でユーザーがGitHub Mobileを選択し、現在端末側承認待ち。認証情報・秘密値は取得していない。
今回この記録時点ではApp登録、installation、Secret、Environment、ruleset、state-ref作成は未実施。次は再認証成立を新規画面で検証し、案Aの設定を具体化して実施する。ブラウザーが実行時確認を要求するsecurity-sensitive変更は、その最終操作の具体的内容で扱う。秘密鍵入力等がユーザー操作必須なら、他の実施可能な準備を完了して最小限の引継ぎにする。
R01–R03 DONE、R04/R05 PARTIAL、R06–R12未受入。停止理由は承認未受領から『SETUP_PENDING / GitHub sudo device verification』へ進展したが、R04実行ゲートは未解除。成功工程再実行・cron/定期Chat・公開操作なし。PUBLISH_DENY維持。主体/scope/実効ルール証跡成立後のみ保護PR→exact-head App15368必須CI→保護merge→original postmerge→R04実Actions証明→R05→R06〜R12。
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — GitHub sudo再認証成功をWorkのCreate GitHub App画面で確認。新規Appフォームをpgextwin-state-writer、Homepage=#311、Contents read/write + mandatory Metadata read、Webhook inactive、Only this account=pgextwinで入力済み。その他permissionは追加せず、未送信。App/installation/Secret/Environment/ruleset/refは未作成。案Aの承認は受領済みだが、ブラウザーのsecurity-sensitive access変更に対する実行時確認規則に従い、Create/installation/build限定権限付与/state exact-ref限定例外の最終実行確認待ち。これは自動承認レビュー拒否でも案A承認の撤回でもない。共通実装は中央集約、build以外のinstallationなし。R04/R05 PARTIAL、PUBLISH_DENY維持。
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — 承認案Aの実設定開始:App登録・main限定Environment作成成功(NO RELEASE)
ユーザーの『まとめて送信して』という実行時確認を受領し、Workから登録を送信。GitHubはRegistration successfulを表示。
新規App画面は『private key生成がinstallation前に必要』と表示。Key pairs画面は0/You have no key pairs。鍵生成・入力はブラウザーの認証資格情報変更に対する本人操作必須規則に従ってユーザー操作に引継ぐ。秘密鍵を生成・読取・保存・公開していない。鍵画面 https://github.com/organizations/pgextwin/settings/apps/pgextwin-state-writer/key_pairs
未成立: installation ID/build限定selected-repo実証、bot ID、秘密鍵Environment格納、state ref bootstrap、actor/integrity ruleset、runtime token/実CAS/lease/停止復旧。App登録成功をruntime認証・R04受入に読み替えない。
次: 本人が鍵を安全に生成し、専用Environment secret STATE_WRITER_PRIVATE_KEYへ入力(Chat/Issueへ貼らない)。既存鍵転用・OAuth client secret追加不要。その後buildのみinstallation→実ID/scope→state exact-ref 2 ruleset/seed→証跡成立後保護PR/最新head App15368必須CI/安全merge/original postmerge→R04実証→R05→R06〜R12。
R01–R03 DONE、R04/R05 PARTIAL、PUBLISH_DENY維持。コード/成功CI再実行/cron/公開操作/main保護変更なし。共通化は中央実装、build以外へのinstallation拡張なし。
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — 専用Writer installation成立、GUI停止で保護設定は未成立(NO RELEASE)
ユーザーの秘密鍵登録完了報告を受け、新規reloadで存在だけ確認。秘密値は表示・編集・取得していない。
成立した非秘密設定証跡
pgextwin-state-writerID 5517840、鍵ペア1件。UI key ID5079882、fingerprintSHA256:2pQ6iHiHWnKcLxEyvtrgQHtE3HD2T2kaqQCGqGi55lc=、added by ShutenOishi。fingerprintは公開鍵識別用で秘密鍵ではない。issue311-state-writerID25626604517に STATE_WRITER_PRIVATE_KEY のsecret名を確認。値の正しさ・App鍵との一致はruntime未検証。branch main 1件/tag0、reviewer/waitなし、admin environment bypass ONを再確認。今回の具体的な阻害
次に https://github.com/pgextwin/build/settings/rules を開くブラウザー呼出しが300秒timeout。規定のbrowser-troubleshooting文書を読む復旧呼出しも300秒timeoutとなり、現在browser runtimeが利用不能。GitHubのbot検知・認証失敗・自動承認レビュー拒否と断定しない。新規ルールフォームの入力/保存操作はしていない。成功画面の画像保存もこの停止により未取得(AXによる成功観測は上記)。ユーザーに案A承認や鍵登録の再実施を求めない。
ブラウザー停止後に独立した認証済みAPI GETで:
を再確認。したがって保護state root信頼・runtime token・R04実CASを成立扱いにしない。
再開時の残作業(承認済み案Aを維持)
issue311-state-actor: exact includerefs/heads/issue311-state、rulescreation,update、bypass actor Integration 5517840 / always(installation IDと取り違えない)。main等へ拡張しない。issue311-state-integrity: exact同ref、rulesdeletion,non_fast_forward、bypass空。actor用例外がintegrityを迂回しないことを検証。今回全工程完了ではない。 R01–R03 DONE、R04/R05 PARTIAL、R06–R12未受入。現停止はSETUP_PENDING / BROWSER_RUNTIME_TIMEOUT。PUBLISH_DENY維持、実装PR/CI/dispatch/cron/Release/tag/Catalog writeなし。#311/#75 OPEN。
ShutenOishi commentedon Oct 28, 2026
2026-10-29 JST — GUI復旧/state seedとexact-ref二重保護成立/非Writer拒否実測(NO RELEASE)
前回#6482728149から継続。ブラウザーJS接続をresetして既存Chromeタブを再取得したところGUI復旧。App/installation/鍵は重複作成していない。ユーザー承認案A・設定一括送信確認の範囲内で以下を実施。
Bootstrap(runtime無効)
refs/heads/issue311-state保存済みActiveルールを認証済みGETで独立照合
両rulesetともcurrent_user_can_bypass=never。mainの既存Classic保護・resolver/App15368は変更していない。rulesets?includes_parents=trueにはこの2件を確認。
個別原本GET:
https://api.github.com/repos/pgextwin/build/rulesets/26084063
https://api.github.com/repos/pgextwin/build/rulesets/26084017
effective rules専用 /rules/branches/issue311-state はconnectorの許可URL外(HTTP400 INVALID_ARGUMENT)で取得不可。これを空ルールと扱わない。個別ルールのexact対象と実否定試験を証拠とし、専用Appの正例はまだ別途必要。
実否定試験(非Writer)
seedと同じtreeの子commit 3e4de92 を作成し、既存Chat接続からstate refにexpected seed SHA付き・force=falseのfast-forward更新を1回試行。
GitHub GraphQL UNPROCESSABLEで Cannot update this protected ref と拒否。
独立GETでrefはseed 0d0a8ed のまま。再試行/例外追加なし。非Writerによる更新拒否の実測が成立。削除/forceは実操作していない(設定証拠のみ)。
次の実装境界
App主体/installation scopeとstate-ref設定・非Writer拒否まで進展した。専用Appの鍵一致・mint token・書込正例・revoke/401・CAS/lease・停止復旧はNOT_PROVEN。R04全体をPASSにしない。
次は既存state adapterを調査して、App5517840/installation176347451/seedとルールIDを固定した非公開のruntime proofと共通Writer実装を準備。実装保護PR→exact-head App15368必須CI→安全merge→original postmergeから、承認済み固定mainコードで初めて鍵一致/実token正例を検証する。proof requestの運用state保存権限と公開Publisher権限を分け、AUDIT_ONLYから汎用候補/公開Writerを起動しない。lease期限切れは未知writeの再試行許可ではない。複数要求の候補競合はglobal ledgerの原子的CAS設計を先に確定。
R04受入後のみR05実Windows連携・イベント欠落終端→R06〜R12。R01–R03 DONE、R04/R05 PARTIAL維持。PUBLISH_DENY、原本、成功工程再実行禁止、cron/定期Chat禁止、build限定installation維持。#311/#75 OPEN。
199 remaining items
ShutenOishi commentedon Nov 2, 2026
2026-11-02 Chat update continuation: genuine UPDATE_PRESENT handling fixed, fresh one-shot source
R06_APP_CAS_DENY unaccepted 17-App local terminal child. Real upstream versionhypopg 1.4.5yields lawfulUPDATE_PRESENT_NOT_AUTHORIZEDoutcome, which coordinator accepted but terminal CAS incorrectly required all 17NO_UPDATE. Finite original watchdog 41370519124 independently wrote durable QUARANTINED revision2 state and revoked same token HTTP401. Old failed run/state are IMMUTABLE and not replayed.b8463adc1e623ab852d0816ae489adfd69ed5ae1, App15368 mandatory resolver 41371311269 SUCCESS, source-bound original child result strict matchingNO_UPDATE/UPDATE_PRESENT_NOT_AUTHORIZED; if updates detected store nonpublishingSUCCESS(not fakeNO_UPDATE), retain detected repo list and independent keyless reader exact binding, all publisher grants false, hostile tests incl spoofing successful.9778fbd9c96f932ac6d73fe93d9df4d0eb690325with App15368 CI 41371516220 SUCCESS, but new request targets had an unwanted diagnosticprotectedfield; original scan 41371642735 strictly schema FAILED and 17 App never dispatched. Failed one-shot remains preserved; no retry/rerun or forged evidence.r-20261102-r06preparechatupdate03in PR#514,targetsexact schema{repo,mainSha}for each 17 independently verified protected heads; source main9778fbd9c96f932ac6d73fe93d9df4d0eb690325. App15368 CI 41371797210 SUCCESS, protected squash merge new main3593a5d75a21bdd47e84b76a162b6f6ed18c6b0c. New genuine central scan 41371898195 SUCCESS, postmerge Validate 41371898175 SUCCESS. Authentic 17-child 41371947491 and independent guarded watchdog 41371898178 IN_PROGRESS at this comment, subsequent CAS/readback not yet verified. Never count as signed Release or full completed acceptance until actual terminal proof.action_requiredand plpgsql_check#78 manual signed publication remain distinct candidate-specific release gates. Both source-specific issues updated; never bypass App15368, PUBLISH_DENY, runtimeEnabled=false, signature/Attestation, previous quarantine or removed schedule gates.Next: inspect actual completion 41371947491 then new CAS workflow_run and original independent separate Runner readback. If CAS fail, record exact failure and do not claim readback. Formal Release separate.
ShutenOishi commentedon Nov 2, 2026
2026-11-02 JST — pgextwin Chat update: NEW 17-extension PREPARE + genuine independent CAS/keyless readback VERIFIED (no formal release).
New one-shot request r-20261102-r06preparechatupdate03, build PR#514 protected + App15368 required CI Run41371797210 SUCCESS; merged protected main 3593a5d. Real update-present status handling fix PR#512 protected+CI success. No safety policy changes.
Genuine central original 17-source scan Run41371898195 SUCCESS original ZIP artifact13110195239 sha256:923f37ff30dde687fcd4798ff6f1c51248b2ceb48ff0f24ac21cf7cdccf8b09f.
Genuine scoped App 17 local original child verify Run41371947491 SUCCESS, 17 original ZIP receipts verified, source artifact13109328296 sha256:9314bf5b1e70bb4bcd285bb1bda8bd5ad4589f26950705a9bdc95c6f20d53b4e.
Genuine State Writer CAS terminal Run41372172432 SUCCESS with exact log: ISSUE311_APP_CAS_TERMINAL {publisherAuthorized:false,reason:'',result:'UPDATE_PRESENT_17_APP_CAS_DURABLE_READBACK_PENDING',targetCount:17}. Proof artifact13110185842 sha256:a9dc335d234d8278429fff25b3ad40cfc01e0684f17f9fbe5cad89e6b30a0f63.
Independent separate key-free Runner in same Run41372172432 SUCCESS, exact log: ISSUE311_APP_CAS_INDEPENDENT_READBACK ORIGINAL_17_GET_CAS_READBACK_DENIAL_PASS; output artifact13110280531 sha256:e35e2f9fcd7dec4231fb1819ee473d96d51dc0ff289fdc5ad4bbaad34461b092. App token revocation/replay DENY gates preserved. Protected postmerge Validate Run41371898175 SUCCESS. Finite independent watchdog Run41371898178 is IN_PROGRESS when this evidence was captured; never claim its success before terminal check.
Prior authentic request r-20261102-r06preparechatupdate01: scan/17 local source succeeded but CAS rejected real update-present, watchdog quarantined real failed state; never replay it. Following request02 had malformed target key and was strictly schema-rejected; no App originals dispatched. Genuine fresh request03 fixed both; no past successful Runs rerun.
Critical distinction: this COMPLETES NONPUBLISHING 17 PREPARE/State CAS/key-free readback, NOT a new signed formal Release. Public release 17/17 unchanged; historical formal 85/94 unchanged. hypopg 1.4.5 candidate PR pgextwin/hypopg#57 remains draft, original required native pull_request Run41326133217 action_required, only dispatch Run41326131241 passed. plpgsql_check 2.10.16 is merged in main but formal manual-only signed Release/PUBLISH gate not yet satisfied; public v2.10.15-windows.1. No unsafe merge/publish, old schedule retirement, branch protection waiver, or publication grant.
NEXT: native GitHub UI approve-and-run of hypopg PR#57 existing PR head if authorized, wait required CI, then protected merge/signed candidate and official Publisher under policy. For plpgsql_check check candidate-specific original signed promotion input and operator-specific PUBLISH authorization; no generic Chat PREPARE substitution. Independently verify new published assets after legit Release.
ShutenOishi commentedon Nov 2, 2026
2026-11-02 Work-minimization audit: connected Chat GitHub actions can create branch/file/PR, mark Draft ready, review actual CI, protected expected-head merge, issue/evidence; connector does NOT expose approve workflow run or workflow_dispatch. Hypopg#57 marked READY_FOR_REVIEW by Chat; only PR Run41326133217 remains action_required as human GitHub UI gate. Existing central fleet + both local configs/release-promotion.json are releasePolicy=automatic-signed-schedule, so old manual-only promote.yml must NOT be blindly triggered by Work: legacy fleet-promotion-gate requires central/local manual-only and exact successful workflow_dispatch candidate run. plpgsql_check 2.10.16 head c83e03b... PR native CI Run40243414614 SUCCESS but only candidate workflow_dispatch 40227911216 FAILED on older head b3138e...; manual promote inputs not eligible. Prefer existing signed-schedule Publisher path after its valid evidence and gates, not a Work manual RELEASE bypass. Hypopg approval is the narrow only Work UI task today. No publication made, release safety unchanged; public versions still hypopg 1.4.4, plpgsql_check 2.10.15. Reference #501 for optional watchdog issue, not blocking signed-release work.
ShutenOishi commentedon Nov 2, 2026
hypopg PR #57 — 指定Runの実行承認(2026-11-02 JST)
依頼範囲はGitHub Actionsの実行承認と同一Run結果の記録のみ。
a30dd0ccbc790c76079c5d4cc287c0ad42097003。期待HEADとの完全一致を認証済みGETで確認。候補成果物レポートのSKIPPEDをSUCCESSや成果物検証済みとは扱わない。今回の範囲では公開ZIP照合・署名公開・保護マージの判定は実施していない。
通常Chatへの引き継ぎ: このコメントを正本として、最新のPR HEAD・必須チェック・既存公開認可条件を確認し、以降の保護マージ/postmerge/署名公開/公開ZIP照合を別工程で継続する。成功済みの本Runを再実行しない。
ブランチ保護・必須CI・権限設定の変更なし。実装変更・PRマージ・Release・Catalog・Website変更なし。現行automatic-signed-scheduleを維持し、旧manual-only promote.ymlは起動していない。
ShutenOishi commentedon Nov 2, 2026
hypopg 1.4.5 — 承認済み真正PR CIから保護マージ(2026-11-02 JST)
Work承認の正本: #311 コメント 6567816099。
config/extension.json)、上流正式タグ1.4.5固定SHA9ab5c4fd3701b14ca3c996da360bba9fa5e9b970。a30dd0ccbc790c76079c5d4cc287c0ad42097003、真正pull_requestRun 41326133217 attempt2 SUCCESS、PG14–18各成功・required summary SUCCESS、candidate_report=SKIPPED(成功と誤認せず)。workflow_dispatchRun 41326131241 PG14–18 +candidate-auditSUCCESS。これを真正PR CIの代替にはしていない。merged_by=ShutenOishiを確認、現在の保護hypopg/main=cea2745bb201b894da2eb3730771589e675e75fd。automatic-signed-schedule+ localautomatic-signed-schedule、中央UNATTENDEDと専用PublisherENFORCE維持。既存の自動署名原本、別Runner監査、独立署名確認、正式Publisherを待ち、正式Release/公開ZIP/Signature/Attestation/Catalog/Websiteは未完了。旧manual-onlypromoteは起動せず。次は自動postmergeの実結果を確認し、成功した真正署名原本だけを現行中央scheduled Publisherへ連結。正式Release生成後にRelease資産・SHA256/署名・Catalog/Websiteの公開証跡を独立GETで確認する。
ShutenOishi commentedon Nov 2, 2026
hypopg 1.4.5 — postmerge・署名原本確認/正式Publisher未実行(2026-11-02 JST)
正本: 前回監査 #311 コメント6569055540。最新の認証済みGitHub GET、Runジョブ/ログ、Release、Catalog、保護設定を確認。成功Runの再実行、Workflow dispatch、Publisher代行、保護設定変更、未認可Releaseはしていない。
1. 今回成立した証跡(更新1.4.5 / PG14〜18)
a30dd0ccbc790c76079c5d4cc287c0ad42097003から保護squashマージ済み。現hypopg/main=cea2745bb201b894da2eb3730771589e675e75fd、保護維持。push/main・期待main SHAに一致し SUCCESS。PG14,15,16,17,18の5 Windows build/install/functional smoke/package/SPDX/Grypeが全成功、Windows required summarySUCCESS。postmerge通常Artifacts 5件を確認。候補専用jobのSKIPPEDは成功に置き換えない。push原本、SUCCESS。PG14〜18のWindows実ビルド・機能スモーク、Build Provenance Attestation/SBOM Attestationの生成と検証、署名候補Artifacts 5件が成功。元監査Job125097830702はVERIFIED_REAL_SIGNED_CANDIDATE_BUILD_ONLY; PUBLISH DENY、独立再検証Job125098047994は再取得した原本に対しINDEPENDENT_SIGSTORE_SECOND_OPINION_MATCH; PUBLISH DENY。署名候補ZIP/SPDX/Grypeの実バイト・Sigstore・Run/attempt突合はこの別Jobの検証成功証跡であり、正式Release資産のハッシュではない。config/extension.jsonはupstream version/ref=1.4.5、上流固定commit=9ab5c4fd3701b14ca3c996da360bba9fa5e9b970、PG14〜18。2. 独立Publisherの現状(未成立)
build/main=3593a5d75a21bdd47e84b76a162b6f6ed18c6b0cは保護状態。中央Fleet・release-promotionおよびhypopg local release-promotionは全てautomatic-signed-schedule。中央UNATTENDED/既定DENY、専用Publisher App境界ENFORCEを変更せず。schedulePublisher Run41378368707 は 2026-11-02 02:33:30Z 起動。ログではstaticPublisherReady=trueだが、当時は署名候補原本より前でNO_ORIGINAL_SIGNED_PUSH_ON_CURRENT_MAIN:17、has_candidates=0、独立実バイト検証/正式Publisherジョブは SKIPPED。これは正常なDENYで、1.4.5への出版実行や認可の証跡ではない。v1.4.5-windows.1Release/tagは現GitHub GETで存在せず、最新公開はv1.4.4-windows.1(2026-10-26 20:34:56Z)、PG14〜18公開ZIP5件。したがって 1.4.5公開資産のSHA256/署名/Attestation照合は未実施。候補ArtifactsのSHA256を公開ZIPの検証結果に流用しない。catalog/main=edb355a78558aa0e848861de04ba6dd406117b18のextensions/hypopg.jsonはupstream=1.4.4/releaseTag=v1.4.4-windows.1。Websitemain=2eb3bd618f230cea424b99dac5148ca72d923cd7は公開Catalogを参照。1.4.5 Catalog/Website更新未完了。既存1.4.4公開維持。3. 完了条件・次の最短工程(安全ゲート維持)
scheduleevent の独立中央.github/workflows/publisher-candidate-intake.ymlRunを認証済みGETで特定。1.4.5 signed original Run41388390506 attempt1・保護main・原本監査2系統・fresh ZIP/SPDX/Grype/Sigstore・タグ提案を、新しいRun自身の独立Runnerで確認。古いPublisher Runのsuccessを代用しない。automatic-signed-scheduleと独立 scoped Publisher App のlive gateを満たしたcreate-only正式Release の成功原本を確認。未成立なら DENY 維持。手動only経路で迂回しない。v1.4.5-windows.1のPG14〜18 ZIP5件+SPDX/Grype+SHA256SUMSとAttestationをGitHub Release GET・実バイトSHA256・真正Sigstoreから独立検証。判定: PR保護マージ ✅ / main postmerge PG14〜18 ✅ / 候補の真正署名・独立監査 ✅ / 現行独立Publisherによる正式Release ❌未成立 / 公開SHA256・署名・Attestation ❌未実施 / Catalog・Website 1.4.5 ❌未反映。正式受入85/94など歴史台帳は変更なし。
ShutenOishi commentedon Nov 2, 2026
hypopg 1.4.5 — owner release approval, scheduled Publisher catch-up protected change (2026-11-02 JST)
Owner explicitly approved the minimum necessary processing through formal publication in Chat, subject to all existing hard gates. Signed original and earlier audit details: #311 comment6573532538.
Actual changes made this turn
.github/workflows/publisher-candidate-intake.yml's genuineschedulefrom15 * * * *to15,30,45 * * * *to offer 3 genuine scheduling windows per hour. This does not addworkflow_dispatch, force reruns, generate fake schedules or change any Publisher runtime admission, Sigstore verification, dedicated App/environment, create-only tag gate, local/central promotion policy or branch protection.a80445c8328a6d56e5e3e79991ea74875f59793c; native PR validation Run41422680959 SUCCESS. Protected squash MERGED tobuild/main=2a4470d6e141ab772ddb7d293929a99448e7dad2. postmerge validation Run41422890519 SUCCESS.pushPublisher read-only Run41422890678 at new central main completed SUCCESS. Actual authenticated intake logs:NO_ORIGINAL_SIGNED_PUSH_ON_CURRENT_MAIN:16,SIGNED_RUN_FOUND_REVERIFICATION_REQUIRED:1(hypopg 1.4.5);READ_ONLY_ORIGINAL_SIGNED_SOURCE_RECHECK=1. Its independentFresh independent ZIP/SPDX/Grype/Sigstore GET for signed original (hypopg)job SUCCESS. Thepushevent appropriately SKIPPED all scheduled-only Publisher/Release jobs.Release completion criterion still pending
As of this authenticated snapshot, no later genuine
schedulePublisher run has completed for the signed source. Latest public hypopg Release is stillv1.4.4-windows.1; there is nov1.4.5-windows.1official Release or published PG14–18 ZIPs. Therefore public ZIP SHA256 and public attestations remain NOT VERIFIED, and Catalogextensions/hypopg.jsonand Website remain on 1.4.4. Do not pre-update Catalog or claim formal PUBLISH.Resume directly at first genuine scheduled central Publisher Run on
build/main=2a4470d6e141ab772ddb7d293929a99448e7dad2: observe source Run41388390506 attempt1, fresh same-run independent ZIP/SPDX/Grype/Sigstore, original scheduled admission and scoped App/create-only Release. If eligible, verify new public Release bytes/SHA256/attestations, then one-record Catalog PR with native required CI/protected merge and Website JA/EN public readback. Any failed authorizing gate must stay DENY. Once public complete, restore hourly cadence in a separate protected change to reduce recurrent automation usage.Status: protected schedule-catchup change COMPLETED; real pre-Publisher separate-source recheck COMPLETED; formal 1.4.5 Release/Catalog/Website NOT COMPLETE.
ShutenOishi commentedon Nov 2, 2026
2026-11-02 — 「pgextwinを更新して」=公開までの一指示承認、17拡張共通の現行運用契約を保護反映
所有者の今回の明示意思(今後のChat運用)
「pgextwinを更新して」だけで、実在する真正stableの対象候補を保護PR→必須Windows CI→保護マージ→正規署名→独立Publisher正式Release→公開資産検証→Catalog→Website JA/ENまで承認した意味と扱う。ユーザーへ途中で「公開して」と再確認しない。無指定は登録済み17件、指定があればその対象のみ。更新差分が無ければNO_UPDATE。候補ごとに独立して利用可能な状態まで完了させる。
安全境界: Chat自然言語の承認はGitHub runtime PUBLISH receiptそのものではない。真正scheduled event、固定SHA、原本Run/attempt、別Runner Sigstore、SPDX/Grype/Attestation、専用Publisher App、create-only、失効、Catalog/Websiteのゲートを維持。WorkはChat接続ができないGitHub
Approve and run等のGUI操作に限定。既存ガードを弱めず、無理なworkaroundsで公開成功扱いしない。今回実施・検証
docs/chat-first-publication.mdに実体化しREADME_ja.mdから参照。旧14件manual-onlyの説明を履歴化。workflow、コード、release/Publisher policy、権限、ゲートは変更なし。670a396d9e2fd326504bd1b531ebec1f34548cee、真正native PR Run41427002636 SUCCESS → 保護squash MERGED、build/main=c5840c033d13a251522553ebc11fc488a8357f4d→ original postmerge Run41427189204 SUCCESS。文書のmain readbackと #311先頭更新を確認。hypopg 1.4.5 の現在の公開状態
cea2745bb201b894da2eb3730771589e675e75fd、main postmerge Run41388390468、signed original Run41388390506 attempt1、PG14〜18・元と独立したSigstore証拠はSUCCESS(既存成功を再実行せず)。SIGNED_RUN_FOUND_REVERIFICATION_REQUIREDで発見、独立ZIP/SPDX/Grype/Sigstore検証ジョブ SUCCESS。しかしpushevent なので正式Publisherジョブは正規にSKIPPED。has_candidates=0。公開正式Releaseはまだv1.4.4-windows.1、Catalogextensions/hypopg.jsonも 1.4.4、Websiteも公開Catalogを参照。1.4.5公開・公開ZIP SHA256・公開Attestation・Catalog/Websiteは未完了。次の一手: 最初の genuine
schedulePublisher Runで原本Run41388390506と中央live条件・専用Appによる正式1.4.5 Releaseを確認し、出た時点で公開5 ZIP/SHA256/署名/Attestation独立照合→Catalog保護PR/CI/マージ→Website JA/EN実証→本Issue更新。GitHub scheduleが継続欠落している場合はActions GUIの有効状態/スケジュールを確認し、保護・署名ゲートを緩めず修復。Workは必要なGUIに限定。ShutenOishi commentedon Nov 2, 2026
2026-11-02 20:52 JST — one-command authorized update, exact blocker and GUI repair boundary
Owner instruction:
pgextwinを更新してcarries consent through eligible Release, signed asset verification, Catalog and Website, per current runbook. No additional publication-consent dialog is required. Do NOT treat Chat consent as a substitute for independently authenticated Publisher gates.Fresh authoritative status
pgextwin/build/main=c5840c033d13a251522553ebc11fc488a8357f4dprotected. PR #515 already increased genuine Publisher schedule to15,30,45 * * * *; PR #516 documented single-command authorization. PR/main CI success; do not rerun.event=scheduleRun of.github/workflows/publisher-candidate-intake.ymlexists in the authenticated central Actions-run inventory as of this check. In contrast, genuine central upstream scan Run41439951772 at 11:50:31Z completed SUCCESS: this is a workflow-specific scheduling/registration issue rather than proof all schedules are down. The exact cause (disabled vs missed scheduler events/other) is NOT established.pushPublisher Run41422890678 detected hypopg as the 1/17 signed candidate and completed the independent real ZIP/SPDX/Grype/Sigstore job SUCCESS; scheduled-only formal Publisher correctly SKIPPED.main=cea2745bb201b894da2eb3730771589e675e75fd; postmerge Run41388390468 SUCCESS and original signed Run41388390506 attempt1 SUCCESS. Latest public Releasev1.4.4-windows.1(NOT 1.4.5); Catalogextensions/hypopg.jsonstill 1.4.4; Website still references public Catalog. Thus 1.4.5 Release and public ZIP/SHA256/Attestation/Catalog/Website are NOT COMPLETE.2.10.16at pinned SHA9a5c0ec4babebd5eb8e0db104c54f7ddb43fcc07; latest formally published version and Catalog are2.10.15, but no same-current-main original signedupdate-watch.ymlpush Run (only schedule and unrelated Windows CI). Do not falsely claim its newer Release.Minimum next action — GitHub UI (Work only if necessary)
Check https://github.com/pgextwin/build/actions/workflows/publisher-candidate-intake.yml in the official GitHub UI:
Enable workflow, enable only this existing workflow. Check that main hason.schedule: 15,30,45 * * * *and inspect Actions workflow state. Do not weaken branch protection/Environment/Apps, reveal Secrets, dispatch a fake schedule, publish a manual replacement, or rerun successful Runs.cronedits are not a substitute for a real GitHub scheduler. Follow GitHub's documented schedule-actor/re-registration and relevant status investigation, preserving original event trust boundaries; use GitHub Support only after available safe registration/GUI repair attempts.schedulePublisher Run appears, continue in Chat: exact signed-source verification and scoped automatic Release; then public five PG ZIP/SHA256/Attestations, Catalog one-record protected PR/CI/merge, Website JA/EN public readback; update this Issue.This is a real external event/GUI blocker, not an excuse to downgrade acceptance or represent already-published 1.4.4 as a new 1.4.5 publication.
ShutenOishi commentedon Nov 2, 2026
2026-11-02 JST — Publisher schedule registration repair attempt
.github/workflows/publisher-candidate-intake.yml, preserving all publication and security gates.build/main=c5840c033d13a251522553ebc11fc488a8357f4d; the workflow on main containscron: '15,30,45 * * * *'. No code or policy was changed.event=push,attempt=1,completed/success, with source SHAcea2745bb201b894da2eb3730771589e675e75fd; it was not rerun.event=schedulerun after re-enablement, its independent verification and formal Publisher outcome. Re-enablement is a repair attempt, not proof that GitHub scheduling has recovered. Public latest was stillv1.4.4-windows.1at this check; do not represent 1.4.5 as released.21:20 JST observation: The first configured :15 window after re-enablement has passed; authenticated GET still shows no new Publisher schedule run. GitHub may delay scheduled events, so recovery remains unproven. The next configured window is :30.
21:35 JST observation: Both configured :15 and :30 windows after re-enablement have passed. Authenticated GET still shows no newer Publisher
event=scheduleRun; the latest is the earlier Run 41378368707. No build-repository scheduled runs created after 12:00 UTC were present in the first 100 scheduled runs at this check, including the separate fleet scanner configured for :00/:07. This does not establish the cause: GitHub may delay/drop scheduled events and may show aggregate status as healthy while an individual schedule is late. See GitHub scheduled-event troubleshooting. Do not describe the re-enable as proven recovery.Fleet commonality: #510 comment 6577118182 records source-bound GET of all 17 protected mains: all 17 use this same central Publisher and have
enabled=true/automatic-signed-schedulelocal release opt-in. Actual workflow differences and four supplemental nonpublishing requalification paths are recorded there; those differences were not changed. Avoid moving hypopg main solely for cosmetic uniformity, because its current signed original is bound to that SHA.Outstanding: new genuine scheduled Publisher Run ID; its same-run independent hypopg proof and Publisher result; real Release/asset/Sigstore/attestations and Catalog/Website after eligible publication. At this check latest public hypopg release is still
v1.4.4-windows.1. Continue at the next real schedule; do not fabricate an event or rerun successful Runs.ShutenOishi commentedon Nov 2, 2026
2026-11-02 JST — owner-requested on-demand update, stop depending on cron
Owner correction:
pgextwinを更新してshould start work at the user's chosen time. It is acceptable to use the official GitHub UI through Work if the available Chat connection cannot issue a workflow dispatch. Do not wait for a cron event to begin or finish the requested update. This instruction replaces the previous assumption that the Publisher must await a new schedule; it does not permit forgingevent=schedule, rerunning successful Runs, relaxing branch protection/required CI, changing App/Secret/Environment, or treating an unverified Release as published.Current findings:
schedule: its selector, live issuer, typed receipt, formal Publisher and Catalog's independent provenance verifier all check that event. Its workflow has noworkflow_dispatch. Merely pressing a button cannot satisfy the existing gate.workflow_dispatchis a separate authenticated event. A protected, explicitly designed owner-dispatch path can retain source main/push Run 41388390506 attempt 1 and fresh independent signed-byte/SBOM/Grype checks, current protected branches, isolated Publisher App scope, tag create-only and revocation. It must record and verify the real event/owner identity rather than pretend it was a schedule.At 21:46 JST, latest hypopg public release remains
v1.4.4-windows.1; no later scheduled central Publisher Run than 41378368707 is shown. The existing signed original remains unchanged.ShutenOishi commentedon Nov 2, 2026
2026-11-02 22:4x JST — owner-on-demand signed Publisher protected deployment (Chat)
Owner request:
pgextwinを更新してexplicitly approves eligible formal Release, Catalog and Website, but never bypasses independent security gates.Implemented and deployed
88a907dac1466afa758080efbb0faf67ec74a1cc(expected PR HEAD46d732a3b39b1443037f5a50240749a086d661c3; original PR CI Run 41451415713 SUCCESS).88a907dac1466afa758080efbb0faf67ec74a1cc. Original postmerge Validate Run 41455274945 = push/SUCCESS. Original postmerge Publisher intake Run 41455274691 = push/SUCCESS, independent hypopg signed source recheck; as push this is intentionally NONPUBLISHING.workflow_dispatch, one registered repository per invocation, defaultdry_run=true; production requires genuineShutenOishiactor/triggering_actor and numeric ID, protectedmetadata/owner-dispatch-publication.json, authentic original signed main/push Run, source-byte Sigstore/SPDX/Grype and Publisher App/Environment/create-only. Existing security restrictions retained. Catalog PR #182 merged distinct owner-dispatch provenance verification.Latest eligible candidate and external UI boundary
pgextwin/hypopgprotected maincea2745bb201b894da2eb3730771589e675e75fd; exact genuine signed main/push Run 41388390506 attempt 1 is successful, independently verified. Public latest stillv1.4.4-windows.1, not 1.4.5.main,target_repository=pgextwin/hypopg,dry_run=false, click Run workflow exactly once, obtain new genuine event=workflow_dispatchRun ID, preserve gates. Never rerun previous success or modify App/Secrets/Environment/protection.plpgsql_checkis also 2.10.16 on protected main with Windows CI and genuine scheduled requalification signed dual-audit Run 41409112431, but the current central source admission requires a separate original signed update-watchpushon current protected main; do not misclassify scheduled requalification as push. Public latest remains 2.10.15. Address this path separately through a genuine safe on-demand signed-source mechanism.Completion boundary: Shared owner-dispatch code+postmerge PASS; formal hypopg 1.4.5 publication still awaits genuine owner UI dispatch, not a cron schedule. Historical acceptance 85/94 unchanged.
Allow Chat-only owner Issue #311 release trigger (no Work, no cron) (#…
ShutenOishi commentedon Nov 2, 2026
/pgextwin publish pgextwin/hypopg
ShutenOishi commentedon Nov 2, 2026
/pgextwin publish pgextwin/hypopg