Skip to content

[Roadmap][2026-07-22] 残存セキュリティ・保守アラート・QA・Visual Evidence・Portfolio Health・Pages再監査を完了する #276

Description

@ootakazuhiko

目的

2026-07-22(Asia/Tokyo)時点の it-engineer-knowledge-architecture と、公開ポータルから参照される個別書籍リポジトリの状態を基準に、残存するOpen PR、セキュリティ/依存債務、自動保守アラート、QA検出漏れ、構成不整合、スクリーンショット、build warning、横断可視化、Pages再監査を依存順に完了する。

本Issueは、稼働中のCodex CLIセッションが全文を読み込み、clone、調査、Issue/PR、レビュー、CI、merge後確認、証跡、cleanupまで実行するための正本Runbookである。

関連ロードマップ

既存Issueを重複作成しない。既存ロードマップの完了条件を満たした場合は、本Issueから証跡を反映してcloseする。


1. 監査開始時点

ポータル

個別書籍のOpen PR

開始時点で確認したOpen PR:

  • itdojp/ethereum-learning-bootcamp#136
    • Hardhat 3 migrationとhigh脆弱性解消
  • itdojp/BioinformaticsGuide-book#545
    • Biopython / PyYAML更新
  • itdojp/BioinformaticsGuide-book#544
    • checkout / setup-node更新

実行時に状態を再取得し、既にmerged/closedの場合は重複作業を行わず、merge SHA、review、CI、Pages、本番確認を証跡化する。

個別書籍のOpen Issue

開始時点で確認した残存Issue:

Security / dependency

  • ethereum-learning-bootcamp#135
  • ethereum-learning-bootcamp#133
  • ethereum-learning-bootcamp#134
  • ethereum-learning-bootcamp#131
  • ethereum-learning-bootcamp#132
  • evidence-based-engineering-book#33

Scheduled maintenance

  • practical-auth-book#173
  • ai-testing-strategy-book#198

QA coverage / link correctness

  • supabase-architecture-patterns-book#150
  • kubernetes-proxmox-to-cloud-book#42
  • IT-engineer-communication-book#143
  • IT-engineer-communication-book#141

Structure / visual evidence

  • podman-book#207
  • podman-book#189
  • kubernetes-basics-book#13
  • kubernetes-cluster-ops-book#16
  • kubernetes-proxmox-to-cloud-book#20
  • proxmox_book#2

Build hygiene

  • github-guide-for-beginners-book#225
  • github-workflow-book#235
  • ai-era-engineers-mind-book#148
  • ai-era-engineers-mind-book#149
  • LogicalThinking-AI-Era-Guide#159
  • LogicalThinking-AI-Era-Guide#170
  • negotiation-for-engineers-book#113

この一覧は固定された真実ではない。Codexは実行開始時と各Phase開始時にlive GitHub状態を取得し、追加・close・supersededを反映する。


2. 実行原則

  • 稼働中のCodex CLIセッションを継続使用し、新しいCodexプロセスを起動しない
  • gh auth status、workspace、全cloneのremote/branch/HEAD/dirty statusを最初に確認する
  • workspace外の既存checkout、dirty worktree、non-main checkoutを変更しない
  • 必要なリポジトリはworkspace配下へgh repo cloneする
  • 同名directoryがある場合はremoteとclean statusを確認し、安全に再利用できなければ一意な別名へcloneする
  • 各repoのAGENTS.mdCONTRIBUTING*README*、workflow、build/QA手順を編集前に読む
  • live GitHub状態を正とし、既に完了したIssue/PRを重複作成しない
  • 原則として1 source Issue = 1 PR
  • 同一repository内は直列化する
  • repository間の並列処理は最大3冊まで
  • fixed latest mainからbranchを作る
  • force push、履歴改変、既存branch破壊を行わない
  • セキュリティ、本文、QA、visual、build hygieneを無関係に混在させない
  • review本文、inline comment、suggestion、threadを全件確認する
  • unresolved review threadを0にする
  • local QA、PR CI、merge後main、Pages、公開HTTP/markerまで確認する
  • private管理書籍のrepository名、Issue/PR番号、URL、本文、path、artifactをpublic Issueへ露出しない
  • API secondary rate limitを避け、取得を集約し指数バックオフを使う
  • 各Phaseの開始・完了・blockerを本Issueへコメントする
  • 各Phaseの完了後に不要branch、task clone、一時artifact、テスト用Issueをcleanupする

3. Phase 0 — 現在状態の再取得と実行計画

編集・mergeは初期監査コメントの投稿後に開始する。


4. Phase 1 — P0 Open PR・依存脆弱性を解消する

1A. Ethereum Hardhat migration

対象:

  • ethereum-learning-bootcamp#135
  • PR ethereum-learning-bootcamp#136

実行:

  • PR本文、全review、inline、thread、CIを確認する
  • Node.js 22.13.0/24 matrix、Hardhat tests、coverage、gas、deploy safety、install-script policyを確認する
  • root/dappのhigh/critical 0を確認する
  • Sepolia/OP Sepoliaのみ、mainnet拒否、secret境界を維持する
  • mergeableで問題がなければmergeする
  • main CIと公開Pagesを確認する
  • #135へ証跡を記録してcloseする

PR #136へ#133#134#131、#132を混在させない。

1B. evidence-based-engineering-book dependency

対象:

  • evidence-based-engineering-book#33

  • audit JSONでdependency pathを確定する

  • npm audit fix --forceを無根拠に使用しない

  • moderate/highを0にする最小更新を行う

  • lint、link、build、Book QA、Pagesを確認する

  • source Issueへ証跡を記録してcloseする

1C. Bioinformatics Dependabot PR

順序:

  1. BioinformaticsGuide-book#545
  2. BioinformaticsGuide-book#544

PR #545:

  • Biopython 1.81→1.87のAPI/behavior差分を確認する
  • Entrez parser security fixの影響を確認する
  • PairwiseAligner既定値変更の影響を確認する
  • semantic freshness registryとE2Eラボを実行する
  • Python version matrix、requirements/lock、licenseを確認する

PR #544:

  • checkout v7のfork PR、pull_request_targetworkflow_run trust boundaryを確認する
  • setup-node更新のcache/runtime契約を確認する
  • least privilegeとfull SHA pin方針を維持する

各PRでreview、CI、main、Pagesを確認し、merge後Open PR 0を目標にする。

1D. Ethereum active Actions SHA pin(live監査で追加)

対象:

  • ethereum-learning-bootcamp#137

#135 / PR #136のmerge後に同一repository内を直列処理する。

  • active workflowの外部Actionを監査済み40文字commit SHAへ固定する
  • mutable ref再導入をnegative fixtureでfail-closed検出する
  • workflow permissions、fork PR、secret境界を維持する
  • #135と別branch・別PRでreview、CI、main、Pages、HTTPを確認する
  • source Issueへ証跡を記録してcloseする

Phase 1完了条件

  • Ethereum PR #136がmergedまたは根拠付きで再設計されている
  • Ethereum root/dapp high/critical 0
  • evidence-based-engineering-book#33が完了
  • Bioinformatics PR #544/#545が完了または根拠付きでclosed
  • Open security/dependency PR 0

5. Phase 2 — Scheduled Maintenanceを実際の修正へ接続する

対象:

  • practical-auth-book#173
  • ai-testing-strategy-book#198

practical-auth-book

開始時点の検出:

  • install/build infrastructure: failure

  • outdated: false

  • production audit: false

  • external link: false

  • workflow run、artifact、Step Summaryを取得する

  • install/buildの具体的failureを再現する

  • infrastructure failureをsource Issueへ分離する

  • 最小PRで修正する

  • maintenance workflowを再実行する

  • 復旧時に#173が証跡付きで自動close/更新されることを確認する

ai-testing-strategy-book

開始時点の検出:

  • install/build infrastructure: success

  • outdated: true

  • production audit: false

  • external link: true

  • outdated packageを個別に分類する

  • breaking change、security、runtime影響を確認する

  • external linkをtransient、redirect、恒久404/410へ分類する

  • 必要なsource Issue/PRを分ける

  • merge後にmaintenanceを再実行する

  • 同一fingerprintの重複Issue抑止と復旧closeを確認する

Phase 2完了条件

  • 2件の自動maintenance Issueが具体的source修正へ接続されている
  • 検出あり/なし/重複/復旧の契約が実運用で確認されている
  • 未解決の自動alertはowner、再現手順、期限を持つ

6. Phase 3 — #275を完了監査し、カタログを同期する

#275 final audit

  • #275の全checklistを再取得する
  • Ethereum除外が維持されていることを確認する
  • public source Issueのcompleted/not planned/supersededを再集計する
  • private対象は件数と完了状態だけを公開側へ記録する
  • #275対象repositoryのOpen PR 0を確認する
  • unresolved review 0、main CI、Pages、HTTP証跡を確認する
  • 現在残るIssueが#275対象か継続債務かを分類する
  • 完了条件を満たせば#275をCompletedとしてcloseする

catalog post-remediation sync

it-engineer-knowledge-architectureで:

  • 変更対象書籍のlastReviewedAtを実態と合わせる
  • reviewIssueを正しい横断レビュー/remediation Issueへ合わせる
  • sourceRefsへ最新source Issue、PR、merge SHAを追加する
  • reader summary、prerequisites、recommendedAfterへの影響を確認する
  • updatedAtを実際の同期日に更新する
  • catalog derived filesとdebt reportを再生成する
  • /books//paths//en/の集合・件数・表示を確認する
  • npm run verify、production smoke、Pages driftを確認する

Phase 3完了条件

  • #275が完了または残件が明確な子Issueへ分離されている
  • catalogのレビュー証跡がPost-remediation状態と一致する
  • portal Open PR 0

7. Phase 4 — QA Coverage Sprint

対象:

  • supabase-architecture-patterns-book#150
  • kubernetes-proxmox-to-cloud-book#42
  • IT-engineer-communication-book#143
  • IT-engineer-communication-book#141

Supabase recursive link QA

  • shell glob依存をやめ、決定的な再帰列挙へ変更する
  • expected file countをassertする
  • nested fixtureを追加する
  • existing fragment debtを新規回帰と分ける
  • 全source Markdownを検査対象にする

Kubernetes Proxmox links

  • 導入3ページの付録相対リンク7件を修正する
  • route/base path/fragment assertionを追加する
  • screenshot作業#20とは別PRにする

IT engineer communication QA

  • UX flagを1件だけ変えるnegative fixture
  • root/docs consistency positive test
  • built _site/book-config.jsonのProfile/modules assertion
  • external URL抽出、timeout、retry、redirect、404/410分類
  • scheduled/manualの非ブロッキング監視
  • Pages間の主要「次に読む」リンクを監視する

Phase 4完了条件

  • 検査対象漏れがfixtureで検出可能
  • source/built artifact/Pagesの三層で回帰を検出
  • 外部ネットワーク一時障害がPR必須checkをflakyにしない

8. Phase 5 — Ethereum残り4件をIssue単位で処理する

順序:

  1. ethereum-learning-bootcamp#133
  2. ethereum-learning-bootcamp#134
  3. ethereum-learning-bootcamp#131
  4. ethereum-learning-bootcamp#132

#133 Foundry invariant

  • 実在するtest fileを追加する
  • failureし得る意味のあるinvariantへ置換する
  • handler/target contract/bounded inputを定義する
  • negative testで偽のsecurity assuranceを防ぐ

#134 ERC-2981

  • zero receiver拒否
  • 10000 bps超拒否
  • boundary tests
  • EIP-2981/OpenZeppelin現行契約と整合

#131 The Graph

  • 現行CLI/Subgraph Studio構文へ更新
  • product、slug、directory、networkの役割を分離
  • clean environmentでscaffold可能か確認

#132 IPFS onboarding

  • 新規利用不能なInfura routeを現行導線へ更新
  • Pinata等の現行手段、credential、upload、gatewayを確認
  • 特定vendor依存と標準IPFS概念を分離する

Phase 5完了条件

  • 4 source Issueが別PRで完了
  • contract test、docs、CI、Pagesが一致
  • secret、testnet、mainnet safetyを維持

9. Phase 6 — 構成修正後にVisual Evidence Sprintを行う

先行修正

  1. podman-book#207
  2. kubernetes-proxmox-to-cloud-book#42(Phase 4で完了済みであること)

Podman:

  • 第5・8・9章の見出し、本文主題、navigation、演習、学習パスを同期する
  • screenshot pathへ影響する章構成を先に確定する

Visual Evidence対象

  • podman-book#189
  • kubernetes-basics-book#13
  • kubernetes-cluster-ops-book#16
  • kubernetes-proxmox-to-cloud-book#20
  • proxmox_book#2

共通仕様:

  • 対象OS/製品/versionをcaptionへ記録する
  • IP、hostname、username、email、token、secret、organization情報をマスクする
  • alt textに画面名だけでなく判断ポイントを含める
  • captionに見るべき指標/操作意図を含める
  • P0画像だけを先に処理する
  • 1書籍1PR、必要なら章単位に分割する
  • image path、参照、broken asset、duplicate、サイズを検査する
  • Playwright/visual smokeでmobile/desktop表示を確認する

Phase 6完了条件

  • 構成変更後のpathへ画像を配置
  • 機微情報検査を通過
  • alt/caption/versionが全画像にある
  • build、Pages、主要画像URLが正常

10. Phase 7 — Build Hygieneをroot cause別に処理する

対象:

  • github-guide-for-beginners-book#225
  • github-workflow-book#235
  • ai-era-engineers-mind-book#148
  • ai-era-engineers-mind-book#149
  • LogicalThinking-AI-Era-Guide#159
  • LogicalThinking-AI-Era-Guide#170
  • negotiation-for-engineers-book#113

分類:

  1. upstream更新で解消可能
  2. unused tool/dependency削除で解消可能
  3. shared template/formatterで解消可能
  4. managed Jekyll/GitHub Pages依存で直接解消不能

原則:

  • warning文字列だけを消すoverride/log filterを追加しない
  • npm explainnpm ls/Bundler dependency chainを記録する
  • audit悪化を許容しない
  • representative pilot後に同一root causeへ横展開する
  • 上流待ちはupstream URL、影響、owner、next review date、early triggerを持つ
  • shared.lastSyncは実際の用途、正本性、更新ownerを定義し、不要なら削除する

Phase 7完了条件

  • 対象Issueが解消または期限付き上流待ちとして整理されている
  • build/test/Book QA/Pages成功
  • warning隠蔽がない

11. Phase 8 — Portfolio Healthビューを実装する

it-engineer-knowledge-architectureに、書籍群のメンテナー向け状態ビューを追加する。

必要なら本Issueの子Issueをポータルへ作成し、別PRで実装する。

収集項目

  • repository
  • visibility/publication scope
  • default branch SHA
  • Open Issue/PR数
  • 最新Book QA
  • 最新Pages deployment
  • Pages build type/status
  • 公開HTTP
  • lastReviewedAt
  • scheduled maintenance alert
  • security/freshness/QA/visual/build debt
  • 次の推奨作業

成果物

  • portfolio-health.json
  • portfolio-health.htmlまたは同等のPages view
  • Workflow summary/artifact

設計要件

  • GitHub API由来の動的値をcatalog正本へ保存しない
  • 定期生成物をmainへcommitしない
  • Pages build artifactまたはWorkflow artifactへ含める
  • status変化時だけ通知する
  • 重複alert Issueを作らない
  • private管理書籍は公開可能な集計だけ表示する
  • healthy / attention / blocked / scheduled等の状態を根拠付きで算出する
  • rate limit、retry、cache、partial failureを扱う
  • fixtureによる正常/異常/private redaction test
  • manual refreshとscheduleを提供する

Phase 8完了条件

  • published書籍をcatalog母数として自動集計
  • Open Issue/PR、CI、Pages、HTTP、review dateを一画面で確認可能
  • private情報漏えいなし
  • bot commitなし
  • false positive/duplicate alertなし

12. Phase 9 — 2026-08-15に#271を実行する

原則として2026-08-15(Asia/Tokyo)以降に実行する。

前倒し条件:

  • GitHub managed Pages runtime更新

  • runtime起因のdeployment failure

  • Pages APIがbuilt以外

  • 公開URLがHTTP 200以外

  • managed warningがfailureへ昇格

  • GitHubが明示的な移行期限を発表

  • 実行時点のcatalog published集合を母数にする

  • legacy/workflow件数を再集計する

  • managed warningとrepository管理warningを分離する

  • 公開HTTP、deployment、failure rate、durationを確認する

  • custom deploymentの費用、identity、smoke、drift、rollbackを比較する

  • pilotが必要なら最大2冊だけ実施する

  • 全冊一括移行を行わない

  • 書籍ごとにmanaged継続/更新待ち/pilot候補/即時移行/設定修復を分類する

  • #271へ証跡を記録してcloseする

  • #265の全完了条件を確認し、満たせば#265をcloseする


13. 各PRの標準完了条件

  • source Issue本文と対象外を維持
  • latest mainからbranch作成
  • 最小差分
  • local QA成功
  • negative fixtureまたは反証可能な検査
  • git diff --check
  • PR本文に根拠、before/after、test、rollbackを記載
  • review本文/inline/suggestion全件確認
  • unresolved thread 0
  • PR CI green
  • merge
  • main CI green
  • Pages/公開HTTP/marker確認
  • source Issueへ証跡コメント
  • branch cleanup

14. 本Issueの完了条件

  • Phase 0〜8が完了
  • 2026-08-15以降または前倒し条件でPhase 9が完了
  • EthereumのP0/P1残件が完了
  • maintenance alert 2件が復旧またはowner付きで管理
  • Bioinformatics Dependabot PRが処理済み
  • #275が完了監査済み
  • catalogがPost-remediation状態と一致
  • QA coverageの検出漏れが解消
  • structure修正後にVisual Evidenceが追加
  • build warningがroot cause別に整理
  • Portfolio Healthビューが稼働
  • #271完了
  • #265完了
  • ポータルと対象書籍のOpen PR 0
  • unresolved review thread 0
  • workspace cleanup証跡

15. 稼働中Codex CLIへの実行指示

このIssue番号を取得した後、稼働中のCodex CLIセッションへ次を渡す。

GitHub Issue itdojp/it-engineer-knowledge-architecture#<THIS_ISSUE> をgh CLIでコメント込みで全文取得してください。関連Issue #265、#271、#275も取得してください。本Issueを正本Runbookとして、現在のCodex CLIセッション内でPhase 0から依存順に処理してください。

新しいCodexプロセスは起動しないでください。必要なリポジトリは現在のworkspace配下へgh repo cloneしてください。workspace外の既存checkout、dirty worktree、non-main checkoutは変更しないでください。

最初にlive GitHub状態を再監査し、Issue記載の開始時点との差分、実行計画、PR分割を本Issueへコメントしてください。その後、1 source Issue = 1 PR、同一repo直列、最大3repo並列で進めてください。レビュー本文・inline・suggestion・threadを全件確認し、unresolved 0、CI、main、Pages、公開HTTPまで確認してください。

Phase完了ごとに証跡を本Issueへ記録し、完了したchecklistを更新してください。2026-08-15前で前倒し条件がないPhase 9は実行せず、scheduledとして残してください。全完了条件を満たした場合だけ本Issueをcloseしてください。

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions