Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
16 changes: 14 additions & 2 deletions .github/workflows/generated-docs.yml
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,8 @@ name: Generated Docs
# #5057 (the pattern of evidence-pages.yml #4825 and #4963): the aggregate pages rendered from committed sources --
# docs/language_status/oracle_assumptions.md (register entries, tests/tools/register.py) and
# docs/language_status/cics_spec_status.md (the CICS spec, translator, stub and cics_spec_status.json) and
# docs/language_status/cobolrt_rules.md (the cobolrt rule catalogue, tests/tools/cobolrt_rules.py, #4711) -- are no longer
# docs/language_status/cobolrt_rules.md (the cobolrt rule catalogue, tests/tools/cobolrt_rules.py, #4711) and
# docs/language_status/progress.md / progress.json (the burned-estate ladder and burn-down, tests/tools/progress_report.py, #5280) -- are no longer
# committed. Every PR re-rendered and committed them, and parallel PRs conflicted on them for hours. The list of pages
# lives in tests/tools/generated_docs.py (PAGES).
#
Expand Down Expand Up @@ -31,6 +32,10 @@ on:
- "tests/tools/cics_spec_status.py"
- "tests/tools/cobolrt_rules.py"
- "tests/tools/readiness_report.py"
- "tests/tools/progress_report.py"
- "docs/language_status/mutation_scores.json"
- "tests/cics_crucible/coverage.json"
- "tests/estate_crucible/baseline.json"
- "tests/tools/det_port.py"
- "tests/tools/generated_docs.py"
- "tests/tools/generated_branch.py"
Expand All @@ -50,6 +55,9 @@ concurrency:

jobs:
render:
permissions:
contents: read
issues: read # #5280: progress_report.py counts scope:* issues (main runs only; a PR render stays hermetic)
if: ${{ github.event_name != 'pull_request' || github.event.pull_request.draft == false }} # #5104: draft PRs skip heavy CI
runs-on: ubuntu-latest
timeout-minutes: 15
Expand Down Expand Up @@ -78,6 +86,8 @@ jobs:
- name: Render the pages (must succeed and be deterministic)
env:
GITGALAXY_LICENSE_KEY: COMMUNITY_FREE_TIER
# the issue counts of progress.md; PR code never sees the token, a PR page says "not measured"
GITHUB_TOKEN: ${{ github.event_name != 'pull_request' && secrets.GITHUB_TOKEN || '' }}
run: |
cd gitgalaxy
PYTHONPATH="$PWD" python tests/tools/generated_docs.py check --out "$RUNNER_TEMP/pages"
Expand Down Expand Up @@ -152,5 +162,7 @@ jobs:
docs/language_status/oracle_assumptions.md \
docs/language_status/cics_spec_status.md \
docs/language_status/cobolrt_rules.md \
docs/language_status/readiness_report.md
docs/language_status/readiness_report.md \
docs/language_status/progress.md \
docs/language_status/progress.json
echo "published the generated pages from main $GITHUB_SHA: https://github.com/${GITHUB_REPOSITORY}/tree/generated/docs/language_status" >> "$GITHUB_STEP_SUMMARY"
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -243,6 +243,10 @@ docs/language_status/oracle_assumptions.md
docs/language_status/cics_spec_status.md
docs/language_status/cobolrt_rules.md
docs/language_status/readiness_report.md
# #5280: the progress page and its issues cache (tests/tools/progress_report.py)
docs/language_status/progress.md
docs/language_status/progress.json
docs/language_status/progress_issues_cache.json

# #4980: fetched by equivalence_db2.fetch_odbc_cli() into the Docker build context; never committed
tests/equivalence/linuxx64_odbc_cli.tar.gz
22 changes: 12 additions & 10 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -16,13 +16,13 @@ a named, ranked fix.
<td align="center" width="190"><h2>51 s</h2></td>
<td align="center" width="190"><h2>53</h2></td>
<td align="center" width="190"><h2>100%</h2></td>
<td align="center" width="190"><h2>96 / 127</h2></td>
<td align="center" width="190"><h2>L0 to L5</h2></td>
</tr>
<tr>
<td align="center" valign="top"><sub><strong>to scan Kubernetes</strong><br />1.39M lines, 5 languages<br /><em><a href="#every-size-in-seconds">speed model</a> · 636 repos charted</em></sub></td>
<td align="center" valign="top"><sub><strong>languages, down to the function</strong><br />66 recognized · no build, no per-language toolchain<br /><em><a href="#languages">the full list</a></em></sub></td>
<td align="center" valign="top"><sub><strong>validated function precision</strong><br />vs tree-sitter, 31 languages<br /><em><a href="#structural-validation-gitgalaxy-vs-tree-sitter-vs-ctags">pinned corpus</a> · not every repo</em></sub></td>
<td align="center" valign="top"><sub><strong>CICS and batch programs proven equal</strong><br />no model; 6 public estates<br /><em><a href="#every-port-ships-with-its-evidence">oracle is GnuCOBOL</a>, not z/OS</em></sub></td>
<td align="center" valign="top"><sub><strong>CICS and batch programs, by evidence level</strong><br />no model; <a href="https://github.com/squid-protocol/gitgalaxy/blob/generated/docs/language_status/progress.md">live counts</a><br /><em><a href="#every-port-ships-with-its-evidence">oracle is GnuCOBOL</a>, not z/OS</em></sub></td>
</tr>
</table>

Expand Down Expand Up @@ -201,7 +201,7 @@ a compiling Spring Boot project, and an equivalence harness proves each ported p
against the original COBOL: same inputs, byte-identical outputs. A port that is not proven
is not done, and a person approves every port.

**Iterably solvable.** On six public estates, the engine and its proof harness have turned
**Iterably solvable.** On the public burned estates, the engine and its proof harness have turned
CICS-to-Java translation into an *iterably solvable* problem. Every gap surfaces as a named,
ranked fix: a construct the translator refuses by name, a failed proof, a fuzz difference, a
coverage hole, or a written-down assumption. One fix to the shared runtime repairs every
Expand Down Expand Up @@ -274,11 +274,13 @@ are always shown
| L4 | branch coverage | L3, and every branch outcome, net of reviewed infeasible ones |
| L5 | mutants accounted for | L4, and every surviving mutant of the port accounted for (not yet measured, [#4628](https://github.com/squid-protocol/gitgalaxy/issues/4628)) |

**Where it stands**: across 6 public estates and 127 programs, all det-ported with no model. The
[per-estate evidence report](docs/language_status/evidence_report/README.md) is published on the `generated`
branch, regenerated on every push to main and nightly, so the current level counts are there and nowhere on main. The det ports include COACTUPC
**Where it stands**: the public estates are det-ported with no model, and the current level counts, the CICS
commands modelled, the mutation kill rate and the crucibles are on the generated
[progress page](https://github.com/squid-protocol/gitgalaxy/blob/generated/docs/language_status/progress.md), each number with its source and the commit it was rendered at (this README
holds none, so it cannot drift). The [per-estate evidence report](docs/language_status/evidence_report/README.md) is
published on the `generated` branch, regenerated on every push to main and nightly. The det ports include COACTUPC
(account update, 4,236 lines), which no model ported in one answer; CICS programs that LINK
to others in the same task (proven together); and named counters, SYNCPOINT ROLLBACK and
to others in the same task (checked together); and named counters, SYNCPOINT ROLLBACK and
abend backout across files and Db2. The design and runtime contract are in
[det_port_design.md](docs/language_status/det_port_design.md).

Expand Down Expand Up @@ -314,8 +316,8 @@ abend backout across files and Db2. The design and runtime contract are in
</details>

On the [CICS crucible](docs/language_status/cics_crucible.md), a corpus of small CICS
applications built around known migration traps, all 17 programs are proven on 44 scenarios.
The scenarios cover every live paragraph and branch. The ports were written by Claude Opus
applications built around known migration traps, the programs and scenarios are counted on the
[progress page](https://github.com/squid-protocol/gitgalaxy/blob/generated/docs/language_status/progress.md). The scenarios cover every live paragraph and branch. The ports were written by Claude Opus
5.5: 9 on the first attempt, 7 on the second, 1 on the third.

What these levels do not show:
Expand All @@ -327,7 +329,7 @@ What these levels do not show:
is 8 bytes here and 4 on z/OS (C9, which blocks three CBSA programs), and text compares in
ASCII order, not EBCDIC (D1). Proving against captured z/OS output is
[#4050](https://github.com/squid-protocol/gitgalaxy/issues/4050).
- **These are burned estates.** The six estates and the crucible are public, and the
- **These are burned estates.** The burned estates and the crucible are public, and the
translator and porting rules were built on them, so their levels are not first-try results.
The real test is a blind estate seen for the first time; no such trial has run yet
([trial protocol](docs/language_status/fresh_estate_trials.md)).
Expand Down
10 changes: 7 additions & 3 deletions docs/language_status/det_survey.md
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,13 @@ description: "`python tests/tools/det_survey.py --work DIR` translates every COB

`python tests/tools/det_survey.py --work DIR` translates every COBOL program of each corpus (not only those with an
equivalence case) onto the service GitGalaxy generates for it, and compiles each port against the built estate.
**This measures translation, not correctness**: a port is proven only by its equivalence case
(`tests/tools/det_port.py`): 48 programs are proven, 27 from CardDemo, 8 from CBSA and 13 from GenApp
([det_port_design.md](det_port_design.md)).
**This measures translation, not correctness**: a port is shown equal only by its equivalence case
(`tests/tools/det_port.py`; see [det_port_design.md](det_port_design.md)).

> **Dated historical snapshot (2026-10-02).** The numbers below were measured once, on the corpora as they were then, and
> are not updated. For current counts (translated whole, level per program, per estate) read the generated
> [progress page](https://github.com/squid-protocol/gitgalaxy/blob/generated/docs/language_status/progress.md)
> (#5280).

## Result (2026-10-02, after the Db2, counter and CICS work)

Expand Down
Loading
Loading