Repository: QuantEcon/textstrata
Snapshot: 2026-08-25, main @ 2bef0c1
Source: repository audit of 2026-08-25 (all open issues reviewed against the code at the snapshot SHA)
Part of: QuantEcon/project-translation#49 (lifecycle metrics)
Background
An audit on 2026-08-25 reviewed all seven open issues against the code at main @ 2bef0c1. The tracker is an accurate roadmap — nothing filed is already done, and nothing done is untracked — but six of the seven issues hang off one critical path (#1, the first three-edition run), and the audit found two code-level defects worth fixing before that run plus two hygiene gaps. This issue captures the recommended order.
Where we stand
CI green on main, including the regression job reproducing the 2026-08-04 study on the pinned lecture-intro.zh-cn checkout; the remaining roadmap issues are each a native sub-issue of QuantEcon/project-translation#49 and now carry a wp8-stage* milestone. Phase 0 and phase 1 are complete — the defect fixes landed via #9, character-level churn (#4) via #10, and both hygiene items (F3, F4) are done. The critical path is now #1.
Findings
|
Finding |
Severity |
Status |
| F1 |
baseline.strategy is accepted but never read — state-file (which #1 says to try on programming.zh-cn) or any typo silently scans as script-jump (src/textstrata/config.py, load_config; contrast the hard error for prose.strategy: source-diff) |
High — silently wrong baselines for #1 |
✅ Fixed in #9 (merged) |
| F2 |
README ("Churn is also reported in changed characters") and docs/method.md ("churn is also available in changed characters from the pairs") claim a metric that is not implemented — no artefact carries a character count; #4 tracks the work |
Medium — docs mislead |
✅ Fixed in #9 (merged); the metric itself landed in #10 |
| F3 |
Bare cross-repo references — #22 in #1, #2, #5 and #276 in #6 — resolve against this repo's own numbering and would mislink once those numbers exist here |
Low |
✅ Done 2026-08-25 — rewritten to QuantEcon/project-translation#22 and QuantEcon/action-translation#276, both targets read and verified to be the cited issues |
| F4 |
Within this repo the Stage 1/2/3 structure and the inter-issue dependencies (#2 → #1, #6 → #1) lived only in prose — no labels or milestones |
Low |
✅ Done 2026-08-25 — wp8-stage1/2/3 milestones assigned (below); milestones were chosen over labels to keep the label set QEP-2-clean |
Work plan
| Phase |
Issue |
Work item |
| 0 |
#9 |
✅ Land the defect fixes: F1 validation, F2 doc alignment, plus lint fixes for rules ruff 0.15 now enforces (CI installs ruff unpinned) — merged 2026-08-25 |
| 0 |
— |
✅ Hygiene: cross-repo references qualified in #1, #2, #5, #6 (F3); wp8-stage* milestones assigned (F4) — 2026-08-25 |
| 1 |
#4 |
✅ Character-level churn alongside line counts — landed via #10, merged 2026-08-25 (regression verified against the pinned checkout) |
| 2 |
#1 |
Three-edition run and first report — the critical path; needs an overrides file (or an ai-assisted reading) for python.zh-cn's 12 probable whole-file AI passes |
| 3 |
#2 |
Engine-version strata from .translate/state — design depends on what #1 finds in the state files (multi-revision records, model: unknown) |
| 3 |
#6 |
Overwrite evidence to action-translation — pure write-up; overwrites.json already carries per-sync prior-tier counts and example pairs |
| 4 |
#5 |
PR-API channel — after a design note keeping it an optional collector outside the deterministic core (AGENTS.md: no network in the scan) |
| 5 |
#7 |
Scheduled runs and artefact history — after the method is validated across editions; decide first whether history lives in textstrata, status-translations, or a data repo |
| parked |
#3 |
source-diff prose strategy for fr — Stage 2; correctly hard-guarded in config validation, wait for an fr edition |
Stage milestones
Taken from each issue's own text — the shared footer marks all of them as part of #49's programme Stage 1, while #3 and #7 declare their own later stages. This tracker itself is deliberately unmilestoned: it spans all three.
Sequencing
Phase 0 protected #1's numbers: without F1's fix, trying the state-file strategy on programming.zh-cn silently produced script-jump baselines. #4 landed before #1 so human churn can be reported in both units from the first report. #2 and #6 unblock the moment #1's artefacts exist — #6 needs no code at all. #5 and #7 are independent of each other but both sensibly follow #1; scheduling before the method is validated across editions would automate unvalidated numbers.
What does not need to change
The core scan and tier precedence (pinned by the regression test); #3's config guard, which already fails loudly; the overwrites.json format, which is sufficient evidence for #6 as-is.
Notes
This issue deliberately does not claim the roadmap issues as native sub-issues: GitHub allows one parent per issue and they already belong to QuantEcon/project-translation#49. This tracker is the sequencing companion inside textstrata; tick the plan rows here as the referenced issues close.
The repo has not adopted the QEP-2 label set (no custom labels exist), so this issue is filed unlabelled.
Repository: QuantEcon/textstrata
Snapshot: 2026-08-25,
main@ 2bef0c1Source: repository audit of 2026-08-25 (all open issues reviewed against the code at the snapshot SHA)
Part of: QuantEcon/project-translation#49 (lifecycle metrics)
Background
An audit on 2026-08-25 reviewed all seven open issues against the code at
main@ 2bef0c1. The tracker is an accurate roadmap — nothing filed is already done, and nothing done is untracked — but six of the seven issues hang off one critical path (#1, the first three-edition run), and the audit found two code-level defects worth fixing before that run plus two hygiene gaps. This issue captures the recommended order.Where we stand
CI green on
main, including the regression job reproducing the 2026-08-04 study on the pinned lecture-intro.zh-cn checkout; the remaining roadmap issues are each a native sub-issue of QuantEcon/project-translation#49 and now carry awp8-stage*milestone. Phase 0 and phase 1 are complete — the defect fixes landed via #9, character-level churn (#4) via #10, and both hygiene items (F3, F4) are done. The critical path is now #1.Findings
baseline.strategyis accepted but never read —state-file(which #1 says to try on programming.zh-cn) or any typo silently scans asscript-jump(src/textstrata/config.py,load_config; contrast the hard error forprose.strategy: source-diff)docs/method.md("churn is also available in changed characters from the pairs") claim a metric that is not implemented — no artefact carries a character count; #4 tracks the work#22in #1, #2, #5 and#276in #6 — resolve against this repo's own numbering and would mislink once those numbers exist hereQuantEcon/project-translation#22andQuantEcon/action-translation#276, both targets read and verified to be the cited issueswp8-stage1/2/3milestones assigned (below); milestones were chosen over labels to keep the label set QEP-2-cleanWork plan
wp8-stage*milestones assigned (F4) — 2026-08-25ai-assistedreading) for python.zh-cn's 12 probable whole-file AI passes.translate/state— design depends on what #1 finds in the state files (multi-revision records,model: unknown)overwrites.jsonalready carries per-sync prior-tier counts and example pairssource-diffprose strategy for fr — Stage 2; correctly hard-guarded in config validation, wait for an fr editionStage milestones
Taken from each issue's own text — the shared footer marks all of them as part of #49's programme Stage 1, while #3 and #7 declare their own later stages. This tracker itself is deliberately unmilestoned: it spans all three.
wp8-stage1wp8-stage2wp8-stage3Sequencing
Phase 0 protected #1's numbers: without F1's fix, trying the
state-filestrategy on programming.zh-cn silently producedscript-jumpbaselines. #4 landed before #1 so human churn can be reported in both units from the first report. #2 and #6 unblock the moment #1's artefacts exist — #6 needs no code at all. #5 and #7 are independent of each other but both sensibly follow #1; scheduling before the method is validated across editions would automate unvalidated numbers.What does not need to change
The core scan and tier precedence (pinned by the regression test); #3's config guard, which already fails loudly; the
overwrites.jsonformat, which is sufficient evidence for #6 as-is.Notes
This issue deliberately does not claim the roadmap issues as native sub-issues: GitHub allows one parent per issue and they already belong to QuantEcon/project-translation#49. This tracker is the sequencing companion inside textstrata; tick the plan rows here as the referenced issues close.
The repo has not adopted the QEP-2 label set (no custom labels exist), so this issue is filed unlabelled.