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

Đã đóng
#5,280 1 bình luận 0 reaction 0 người được giao Xem trên GitHub

Maintainer thường phản hồi trong vòng 1 ngày

Chưa có ai nhận issue này.

Đánh giá

Độ khó
4/5
Thời gian dự kiến
3-5 ngày
Mức phù hợp với người mới
24/100
Loại issue
Tính năng
Độ rõ ràng
Khá rõ ràng
Mức độ hoạt động
Sôi nổi
Công nghệ
github-actions, markdown, python
Lĩnh vực
documentation, tooling

Hướng nghiên cứu

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.

Do mô hình lập chỉ mục viết ra từ nội dung của issue.

Mô tả

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.
Ngôn ngữ chính
Python
Star
57
Fork
11
Merge trung bình
1 giờ 32 phút
Pull request đã merge (30 ngày)
974

Chuẩn bị môi trường

Bắt đầu từ đâu

  1. Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
  2. Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
  3. Fork repository và làm thay đổi trên một nhánh.
  4. Mở pull request có tham chiếu số hiệu của issue.

Issue khác của squid-protocol/gitgalaxy

Tất cả issue của squid-protocol/gitgalaxy

Issue tương tự

Thêm issue về Python

Nhận issue mới trong hộp thư của bạn

Bản tóm tắt ngắn những issue GitHub phù hợp với người mới.