Census mock trial: take the 40 census programs from 8 whole to 40 of 40 accounted, measured by the tool only
Maintainers usually reply within 1 day
Nobody has claimed this yet.
Assessment
- Difficulty
- 5/5
- Estimated time
- Over a week
- Newbie friendliness
- 25/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Active
- Tech stack
- python
- Domain
- devtools, testing-qa
Research direction
Read the census protocol and ledger in this issue, then follow #5649 and the T0 instructions for cics_census.py survey and gap_prevalence.py. The work spans multiple translator gap classes and depends on fixes merging before each measurement. Done means all 40 programs are either translated whole or recorded as named source or clone problems, with aggregate ledger results published within the 14-day time box.
Written by the indexing model from the issue text.
Description
Owner request 2026-11-04: treat the 40 census programs (9 public repos excluded from the blind study, never burned, counted by tools only under opaque labels) as a mock trial of the engine. Write-up: https://claude.ai/artifact/9CJkXtuprzxzRne4bty3dy
Baseline (last real survey 2026-10-24, 6758295f2 / #6361)
8 of 40 translate whole (20%). Of the 32 blocked: 13 only by source / clone problems (missing estate copybooks 9, undeclared items #7647, ISPF screens #7645), 17 only by translator gaps, 2 by both. On the 25 programs with no source or clone problem: 8 of 25 (32%).
Predictions (frozen before the first fix)
- Translator work alone takes the census to 25 whole (62%); the other 15 end as named source / clone problems: 40 of 40 accounted.
- The tool's coverage-if-closed (upper bounds; they count the missing-copybook gap as closable): top 1 -> 17, top 3 -> 20, top 5 -> 29, top 10 -> 32.
- Cost: 9 translator gap classes x ~4-5 PRs per class (calibrated on #6876: 17 programs, 8 classes, 35 PRs, 6 days) = 35-45 PRs, 6-9 days at two workers.
Protocol
- First (owner 2026-11-04): #5649 -- the translator consumes the engine's record layouts (routed to nyx). The T0 re-survey waits until #5649 has merged; T0 then measures main with #5649 in, and the ledger notes it.
- T0: re-survey the census at current main with no census-targeted change (
cics_census.py surveyover the census repos, thengap_prevalence.py --census-survey ... --census-corpora ... --write); post the rate here. The 10-24 -> T0 delta is what the burned-estate work did for unseen code. - Nobody reads census source. A fix gets the gap label, the IBM manual page and the owning issue, and proves itself on our own test (a cics-crucible program or a fixture), never a census excerpt. Tightened by the owner 2026-11-06: no edited, patched or excerpted copy of census source either, even unprinted (no "move this line and re-parse" probes). Allowed: the tools run over the clone as is, with aggregate or scrubbed output. A finding that needs more than that is reported as "needs a fixture" and proven on one.
- Measure with the tool only (aggregates, opaque labels), after each fix merges; append one ledger row below.
- A gap that is the source's fault becomes a named source defect with its reason.
- L1 only (translates whole); no claim about L2+.
- Finish: 40 of 40 accounted (basis 39 since the owner ruling 2026-11-06: one of the 40 is a data-only copy member, #7885 / #7901; report "of 39" from T9 on, with the change named) (whole or named), time box 14 days from T0; publish the ledger as it stands at the time box.
Gap classes (owners)
- Bare LayoutError, 9 programs (#7644; some may be source defects) (#7714)
- No such item, 3 programs (no owner yet) (#7730)
- Bytes overlap COMP-1/2/5, 3 programs (#7646 slice 5; remaining work owned by #7845, COMP-5 in CICS containers): flip
translate()to defaultzos_comp5=True(owner ruling B, 2026-11-04; the v2.12.1 hold was lifted by the owner 2026-11-05, no release pending). Regenerate the affected goldens and re-prove the 5 burned COMP-5 programs (CardDemo PAUDBLOD / PAUDBUNL / DBUNLDGS, async ASYNCPNT / SEQPNT), then re-survey. T4 (2026-11-06): the default flip landed (#7829) but frees none of the 3. Each keeps its COMP-5 item in an EXEC CICS PUT / GET CONTAINER (FROM / INTO) area, whichzos_comp5still refuses (_container_comp5), so the default falls back to the oracle's order. #7841 (SQL + LINK COMMAREA) does not cover it. Remaining work: CICS channel containers carry COMP-5 bytes in z/OS order underzos_comp5, proven on a cics-crucible / fixture program (rule 2). (#7887) - STRING numeric sender with P or a decimal place, 2 programs (#7523). T4: gap_prevalence reads it
named source defect(compile error in Enterprise COBOL), so these rows are accounted; ticked 2026-11-06. Re-opened 2026-11-05: #7738 named the wide literal a hole, but T3 still shows this gap. (#7752) Re-opened again 2026-11-05 evening: no PR since T3 closed this gap. - EXEC CICS map: no such field, 2 programs (#4270 closed; owned by #7844) (#7891)
- JSON GENERATE / PARSE, 2 programs (#7524, reopened 2026-11-05 by the owner; work it there)
- Code-page literals (MOVE, STRING, UNSTRING / INSPECT beyond the single-byte code page), consolidated in #7526. T3: MOVE 2 programs, STRING 1. #7738 names the wide-literal hole.
- EXEC CICS WEB CONVERSE / RECEIVE / HTTPHEADER, 1 program (#7525, reopened 2026-11-05 by the owner; work it there)
- Missing copybooks, 9 programs: split clone defect vs IBM product copybook (owned by #7846; T4 close-next step 1)
- Unowned whole-program refusals (ExprError, UnitRefused), 1 program each (owned by #7847)
- EXEC SQL ROLLBACK in CICS, 1 program (#7527) (#7727; the row is gone at T3)
- Tool: gap_prevalence names closed #4767 as the owner of the census EXEC CICS WEB rows. Point them at #7525 (one-line owner-map fix). (#7754)
- Tool:
cics_census.py blockers --unmaskprints census repository and program names in its per-program rows. Scrub them as gap_prevalence's census half does (protocol rule 2). (#7755)
Owner rulings 2026-11-06: (1) code-page literals stay a named source defect as stored; #7526 closed as accounted. (2) The 2 IBM z/OS Connect programs (BAQ product copybooks) stay unaccounted: a product dependency is not a source or clone defect; frontier #7900. (3) Basis 39 (#7901). (4) Rule 2 tightened (above).
Ledger (one row per re-survey)
| date | main | whole / 40 | gap closed (PRs) | predicted vs actual | new gaps exposed | cost (PRs, worker-h, $) | named, not fixed |
|---|---|---|---|---|---|---|---|
| 2026-10-24 | 6758295f2 | 8 | baseline | - | - | - | - |
Related: #6064 (no current non-burned translation rate), #5865 (coverage-if-closed never validated against a run), #3803 (the real blind trial this rehearses).
- Dominant language
- Python
- Stars
- 57
- Forks
- 11
- Avg merge
- 1h 35m
- Merged PRs (30d)
- 975
Getting set up
- No Dockerfile or Docker Compose file
- Has a pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from squid-protocol/gitgalaxy
-
bug
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
squid-protocol/gitgalaxy#7827 · 1 comment ·
Maintainers usually reply within 1 day
-
scope:frontier
Difficulty 5/5 Over a week Newbie friendliness 18/100
squid-protocol/gitgalaxy#7900 ·
Maintainers usually reply within 1 day
-
core-engine scope:infra testing
Difficulty 4/5 3-5 days Newbie friendliness 54/100
squid-protocol/gitgalaxy#7863 · 1 comment ·
Maintainers usually reply within 1 day
-
enhancement
Difficulty 5/5 Over a week Newbie friendliness 35/100
squid-protocol/gitgalaxy#7834 ·
Maintainers usually reply within 1 day
-
bug
Difficulty 4/5 3-5 days Newbie friendliness 56/100
squid-protocol/gitgalaxy#7828 · 1 comment ·
Maintainers usually reply within 1 day
All issues in squid-protocol/gitgalaxy
Similar issues
-
docs size:S
Difficulty 1/5 Under an hour Newbie friendliness 88/100
Maintainers usually reply within 1 day
-
documentation
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 74/100
strawberry-graphql/strawberry#4794 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
dataforgoodfr/cetolog#21 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
btclib-org/btclib#2932 ·
Maintainers usually reply within 1 day