Skip to content

[P2][HARDENING] 代替受入済み旧scheduleだけ安全撤去 #487

Open

Description

@ShutenOishi

AUTO v2.5 現行の受入条件(過去本文の外部事象待ちを上書き): AUTO v2.5: #486の各対象で代替が安全に実動作済みのscheduleだけ保護PR/必須CI/postmerge後に撤去可。未来のstableの公開や自然障害は撤去条件にしない。安全に代替できないscheduleは維持し、対象別に状態を記録。旧scheduleを一律無検証削除しない。

正本: #311 / 将来留意点 #501。PUBLISH_DENY/runtimeEnabled=false、旧scheduleの安全撤去条件・必須CI・保護設定不変。

2026-11-01 完成優先の実行順序:P3/先行実装→適格イベントで最終検証

今すぐ進める: 全旧scheduleの撤去差分案・依存/permission/concurrency監査準備。削除は先行実施しない。

イベント成立時だけ行う: #486の対象別代替受入かつ#484/#485の該当安全条件成立後、その対象だけ保護PRで撤去。

運用: イベント不在のGET監査・成功Run再実行は繰り返さない。残余はEVENT_GATEDで保持し、発火時に本Issueの手順と受入条件を利用する。コード完成と正式受入は別。PUBLISH_DENY/runtimeEnabled=false・必須CI・旧schedule・元の受入条件を変更しない。

子タスクID: R11-B09
分類・対象枝番: IMPLEMENT AFTER ACCEPTANCE / R11-01・親R11・W11-A

共通親: #311(94枝番正式台帳)、関連親: #75。
正本: metadata/issue311-remaining-work-v22.json(v2.2)、https://github.com/pgextwin/build/issues/311#issuecomment-6542333565(R11 PR#76最終監査)。
共通安全条件: 旧成功Run再実行・偽更新/actor/schedule・未認可公開禁止。runtimeEnabled=false、PUBLISH_DENY 維持。コード変更は保護PR→必須App15368 CI→期待HEADマージ→original postmerge→必要な実バイト/State独立照合→#311/#75記録。未実証のlive CAS/409/署名/公開をmockやchecksumから推定しない。

現在の阻害条件

全旧scheduleは代替証明が成立するまで残す。17/20repoという集計だけで削除しない。旧scheduleのpermission/concurrency/metadata/docs/依存workflowを一緒に確認しないと隠れた発火経路が残る。

再現可能な実施手順

  1. B08の対象別代替の正式受入とB06/B07に該当する排他/有限回復の成立を照合。
  2. 受入済み対象のschedule行・関連authorize/metadata/docsだけを最小PRで撤去(push/PR/workflow_runの必要経路を保存)。
  3. 必須CI→期待HEAD保護マージ→original postmerge→削除差分と公開バイト/状態に変更なしを独立確認。
  4. 全20repoでcron残存、許可された例外、外部task/worker/secret権限/公開gateを再監査。未受入scheduleは残す。

受入条件(すべて満たした時のみ)

  • 削除する各scheduleに先立つ代替正常/負例受入IDがある
  • 必要な各repoの最新HEAD/保護PR/必須CI/postmergeがPASS
  • 対象scheduleと従属設定がゼロ、必要なpush/PR/workflow_runは維持
  • 独立20repo再GETで残存0または未受入対象を明示
  • B06/B07、B08成立後のみR11-01・R11-02・親R11を個別再判定

停止・再開条件

依存: B08及びB06-07。代替未受入のscheduleを先に消すことを禁止。

更新ルール: 元Run ID/HEAD/actor/ZIP実SHA256/State revision/判定区分を残し、#311の受入契約v2.1の子枝番を満たすまでは正式85/94を増やさない。

2026-10-31 単一ユーザー移行(今回の明示指示を適用)

本節は上記の任意の「別human intent」「第二人間」「追加Work操作」条件を置き換える。ShutenOishi本人の一回のChat要求を、認証済みGitHub操作で固定する。同じrequestIdの許可scope内のPREPARE・Issue調停・Draft候補・native CI・検証・記録は追加human要求なしで進める。実際のGitHub actor/author/merged_by/Runは独立GETし、Botを人間と呼ばない。

実行可能工程: immutable request(対象・scope・requestId・source SHA・expected HEAD・expiry・replay key)→hostile試験→保護PR→必須App15368 CI→期待HEAD保護マージ→original postmerge→必要な実ZIP/State独立GET。既存成功Runを再実行しない。
受入条件: 上記原本が同じ要求へ結合し、無権限・scope外・改ざん・期限切れ・replayをfail closed。追加の人間操作なしで許可範囲が完走した場合のみ本機能の完了。正式85/94は変更しない。
原本証跡: PR/HEAD、真正author/merged_by/actor、Run/attempt1、request blob、必要なZIP実SHA256/CRC/署名/Attestation、State revision、独立readback URLを記録。
外部条件: GitHub自身の実在する保護/承認規則、サービスquota、真正upstream、特定候補のPUBLISHのみ。有限timeout/retry・単発write/不明応答GET-only・最小権限は維持する。任意件数上限は理由と適用箇所を監査し、無条件に無制限化しない。
再開条件: 具体的な未成立の外部事実、または未実装adapter/検証工程を示す。不在監査だけを反復しない。

非公開統合試験は実在するupstream tag/full commitを使い、隔離資源・実GitHub API・実workflowで行う。新stableの偽造は不可。CONTROLLED_INTEGRATIONと将来真正stableのPUBLIC_E2Eを別判定し、正式契約の判定変更は保護PRのマージ・postmerge後に適用する。旧scheduleは代替受入まで維持。

R10は実policyと実承認状態を確認し、存在しないPREPARE承認不足を捏造しない。policyが承認を要求しない場合は「不足なし」を原本付きで記録し、任意の第二人間待ちを作らず、適用判定の契約改訂へ進む。実在する不足時のみBLOCKED_APPROVALを実証する。

本要求は非公開実装・契約変更の認可。PUBLISH_DENY/runtimeEnabled=falseを維持。正式公開は実在する特定候補への本人一回の明示PUBLISHと全既存公開ゲートが必要。

Activity

  1. ShutenOishi commented on Nov 1, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-01 AUTO v2.5 / R11 増分実装原本

    • protected PR#507 squash merge 82a224f49e41f2ec530b2293afcc9e54a10b8a3c; PR mandatory Validate 41312332571 SUCCESS、R11 hostile 41312332585 SUCCESS。
    • original postmerge Run41312453130 (original_readonly + independent_readback SUCCESS, attempt1), Validate Run41312453226 SUCCESS。
    • artifact ID 13086286443 ZIP provider sha256 09f07c7945d0bf84fad3b6ebe8c985b24bb9511ec0b01fb0a3a898e3dcf05758; original inventory independent original-GET log eabac23e8a292f6adb90a8843466d6ed645cd1e98fe5878189f104a0f23173b6; crosswalk exact output SHA256 6fcbcf2425acf9dfaf91b79cc32a8f700b8408285f93d4d09b3aea297bfb03fa and independent byte-match SUCCESS。
    • 新規schedule削除0、Publisher/Release/Secret権限変更0、runtimeEnabled=false / PUBLISH_DENY維持。成功Run再実行なし。

    #487 判定: ACTIVE / 安全撤去ガードの原本確認まで完了。 出力全行 retirementAuthorized=false、legacySchedulesRetained=true。撤去した旧cronは 0件。未成立: #484/#485の該当共有境界と#486の対象別正常・負例originalがそろったworkflow単位の保護撤去/CI/postmerge/再監査。代替未受入scheduleは引き続き保持。

  2. ShutenOishi commented on Nov 1, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-01 #487 安全撤去ゲート再監査。認証済みbuild Run41312453130の実artifact ZIP原本を独立再取得し、20 repoに 28 schedule workflows / 30 cron expressions 残存を確認。17 extension・build6・catalog4・website1(hypopg独立41分、build fleet 2cron含む)。現時点で削除許可エビデンスは0行。撤去実施0件。
    #484/#485の旧新資源排他・有限回復、#486の削除対象ごとの機能別正常/負例original+独立reader成立後に限定して保護PR削除。website pages-smokeの外部drift監視や各Publisher/Release gateは誤ってNO_UPDATE17だけで代替認定しない。PUBLISH_DENY/runtimeEnabled=false、保護・署名・Attestation維持。ACTIVE継続、正式85/94不変。

  3. ShutenOishi commented on Nov 1, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-01 AUTO v2.5 今回確認:撤去資格0・旧schedule保持

    build PR#508 protected merge 974f008d1356e951be5bb7672962c6d81099f121、original postmerge Run41316910240 および別Runnerの28 workflow独立GitHub GETはSUCCESS。20repo/28 scheduled workflows/30 cronの真正source YAML/job/permission/needs inventoryを生成し一致検証したが、これは代替機能の正常・異常受入ではない。全scheduleの replacementAccepted=false、retirementAuthorized=false 維持。旧schedule撤去実績 0。
    撤去ゲート: #484旧新Writerの対象共有資源fence、#485同一要求State有限回復、#486当該scheduleの各機能ごとの正常/負例original/独立証拠IDが成立するまで削除を禁止。成立した対象だけ別保護PR→必須App15368 CI→期待HEADマージ→original postmerge→20repo独立再GET。未受入対象は維持。成功Run再実行・未認可公開・署名/Attestation/保護緩和禁止。PUBLISH_DENY/runtimeEnabled=false。正式85/94別。

  4. changed the title [-][R11-BLOCKER R11-B09] 受入済み対象から旧scheduleを保護撤去・再監査[/-] [+][P2][HARDENING] 代替受入済み旧scheduleだけ安全撤去[/+] on Nov 1, 2026
  5. ShutenOishi commented on Nov 1, 2026

    @ShutenOishi
    ContributorAuthor

    2026-11-02 [P2 POST_PUBLICATION_HARDENING] 旧schedule一律ゼロ化はゴールにしない。#486の機能別代替と当該writer安全条件が受入済みの場合のみ、そのscheduleをprotected PR/必須CI/postmergeで削除。未受入対象は従来正常運用を維持。全cron撤去を公開版やChatから更新するための必須条件にはしない。

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions