Generated progress page + README numbers that can't drift: burned-estate ladder, per-tool %, core burn-down with ETA, Gap Atlas

クローズ
#5,280 コメント 1 件 リアクション 0 件 担当者 0 名 GitHub で見る

メンテナーはふだん 1 日以内に返信

まだ誰も着手していません。

評価

難易度
4/5
見積もり時間
3〜5日
初心者へのやさしさ
24/100
issue の種類
機能追加
明瞭さ
おおむね明確
活発さ
活発
技術スタック
github-actions, markdown, python

調査の方向性

Start with tests/tools/test_evidence_report_single_source.py to learn what main may link, then look at generated_docs.PAGES and the publish list in the docs workflow. The new tests/tools/progress_report.py renders progress.md and progress.json from existing artifacts, with BURNED_NAMES setting the 129-program denominator. Done means all five sections are generated with sourced numbers, the README numbers are replaced by a marker block or a pointer, and the listed tests pass.

索引モデルが issue の本文から書いたものです。

説明

scope:infra tier:customer

Owner-approved 2026-10-16 (step 2 of the scope retag). The README's CICS-to-Java numbers are hand-written and have drifted from the generated ones:

  • README.md says 127 programs; the evidence index has 129.
  • README.md cites "CICS crucible: 17 programs"; tests/cics_crucible/coverage.json has 50.
  • det_survey.md still says 48 proven.
  • The hero tiles and the "Coverage across CICS eras" table in gitgalaxy/tools/cobol_to_java/README.md are hand-written too.

Progress also needs a fixed denominator, so it stops looking like limbo while sweeps keep finding siblings. Issues now carry scope:core | sweep | frontier | infra and era:0..4 labels, and frontier work lives in milestone 30, Gap Atlas.

Build: a generated progress page

Add tests/tools/progress_report.py, which renders docs/language_status/progress.md and progress.json on the generated branch through generated_docs.PAGES. The workflow publish list must match PAGES; that workflow edit is owner-approved here. Inputs are the existing machine-readable artifacts; nothing new is hand-maintained.

  1. Burned-estate ladder. Fixed denominator: the 129 programs of the 6 burned estates (BURNED_NAMES). Read the evidence_report per-estate report.json. Show per estate and in total the counts at L0..L5, the % at L2+, the % at L4+ and the count at L5. Today that is 99/129 at L2+, 36 at L4 and 0 at L5.
  2. Components, each with its own fixed denominator:
    • Translator: programs translated whole out of 129.
    • CICS: the commands the burned estates actually use. That means census burned > 0, including the "unlisted" and "unparsed" forms from cics_spec_status.json and the spec status. Report how many are modelled on both runtimes, about 60 of 68 today. Show the whole spec (100 / 2 / 155 of 257) on a separate line, labelled frontier context.
    • COBOL runtime rules (cobolrt_rules.json): MATCHED / DIFFERS / ASSUMED / REFUSED, and how many are measured on z/OS (0 today).
    • Mutation: the kill rate from mutation_scores.json.
    • Crucibles: programs and scenarios per crucible, from their coverage files.
  3. Eras: per era (era_tags.py), programs and how many are at L2+ / L4+. This replaces the hand-written era table.
  4. Core burn-down, from GitHub issues by label. The docs workflow has GITHUB_TOKEN; offline, read a cached JSON so tests stay hermetic. Show:
    • open and closed scope:core issues, overall and for milestone 28;
    • core issues opened and closed in the last 7 days, and the net;
    • ETA = open / (7-day net closure rate), printed as "not converging" when the net is zero or positive. Never print a date it can't support.
  5. Gap Atlas: frontier issues found this week, and the total, presented as discoveries, not debt. Plus sweep and infra counts.

Every number cites its source artifact and the generated commit. The evidence-level wording follows .claude/rules/mainframe-evidence-policy.md: report the ladder, never "proven" as a bare claim, and say the oracle is GnuCOBOL plus IBM documentation, not z/OS.

READMEs: no hand-written numbers left

  • In README.md's "CICS to Java" section and gitgalaxy/tools/cobol_to_java/README.md (the hero tiles and the era table), replace every hand-written number with numbers that cannot drift. Read tests/tools/test_evidence_report_single_source.py first: main may not link generated files.
    • Either: a marker block (<!-- progress:begin --> … end) rendered by progress_report.py, which the docs bot refreshes on main, plus a test that fails when the block is stale.
    • Or, if the rules forbid that: one pointer to the generated page, with the README keeping only prose.
    • Pick the option the repo's rules allow and say why in the PR.
  • docs/language_status/det_survey.md: mark it a dated historical snapshot, or drop its numbers.

Acceptance

  • progress.md and progress.json are generated with all 5 sections.
  • No hand-written estate, program, command, era or proof count remains in either README.
  • Tests: the rendering from fixtures, the "not converging" rule in both directions, the burned-only CICS denominator, and the stale-block or pointer check.
  • pr_gates --fast is green and the generated-docs workflow publishes the page.
主要言語
Python
スター
57
フォーク
11
平均マージ
1時間 32分
マージ済み PR(30日)
974

環境構築

はじめの一歩

  1. issue を最後まで読み、次にプロジェクトのコントリビューションガイドを読みます。
  2. 着手することを issue にコメントします — 二人が同じ作業をするのを防げます。
  3. リポジトリをフォークし、ブランチを切って変更します。
  4. issue 番号を参照したプルリクエストを送ります。

squid-protocol/gitgalaxy のほかの issue

squid-protocol/gitgalaxy の issue をすべて見る

似ている issue

Python の issue をもっと見る

新しい issue をメールで受け取る

初心者向けの GitHub issue を短くまとめたダイジェスト。