Skip to content

[Phase 8] Portfolio Healthビューと状態変化通知を実装する #278

Description

@ootakazuhiko

Parent: #276

目的

公開catalogを母数として、全書籍の運用状態を一画面で確認できるPortfolio Health生成・通知契約を実装する。GitHub API由来の動的値をcatalog正本やmainへ保存せず、Workflow/Pages artifactで生成する。

収集項目

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

実装チェックリスト

  • catalogのstatus=publishedを決定的な母数にする
  • portfolio-health.jsonと単一画面HTMLを生成する
  • workflow summaryとartifactを生成する
  • manual dispatchとscheduleを提供する
  • Pages build artifactにも生成時snapshotを含める
  • API値をcatalogまたはmainへcommitしない
  • bot commitを行わない
  • healthy / attention / blocked / scheduledを根拠付きで算出する
  • rate limit、secondary limit、retry、sanitized cache、partial failureを扱う
  • 状態変化時だけ通知し、重複alert Issueを作らない
  • private書籍はcatalogで公開済みの識別情報と集計値以外を出力しない
  • 正常、異常、partial failure、private redaction、duplicate/recovery alertのfixture testを追加する

検証

  • local unit / fixture test
  • catalog published母数と出力件数が一致
  • JSON schema/contract確認
  • HTML escape / private leak反証
  • actionlint
  • npm verify
  • PR review本文、inline、suggestion、threadを全件確認
  • unresolved / mismatch / missing各0
  • PR CI、merge後main、Deploy Pages、production smoke成功
  • 公開Portfolio Health viewとbuild-info markerを確認
  • task branch / artifact cleanup

対象外

  • 各書籍の本文修正
  • catalogへAPI snapshotを保存すること
  • 定期bot commit
  • private Issue本文、PR title、commit SHA、workflow URL、error詳細の公開
  • Phase 9 / #271の前倒し

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