Stage 5 witness-collection skill — gather, normalize, and catalog PD English translations as reference material for adversarial review and interlinear work. Witnesses are never alignment targets; they are displayed in the reader without structural modification.
Collect and normalize PD English translations as reference material for one target text.
This skill is the Stage 5 owner for witness collection.
Witnesses are NEVER alignment targets. Witnesses are NEVER versified.
Existing PD translations serve as:
Witnesses are NOT:
Row view is unavailable for witnesses. Only versified (generated) translations can render in row view, because row view requires 1:1 structural correspondence with Greek. Witnesses have arbitrary structure.
The generated translation (Stage 6a) is always the primary English content. Witnesses are supplementary reference material.
Witnesses that carry native reference markers matching the Greek reference system may be imported as reader-display editions. This is not structural modification — it is parsing what the witness already provides.
Supported import formats (set in catalog format field):
ref-text-tsv — BookName Chapter:Verse\tText (e.g., John witnesses)ref-bracket-prose — [ref] text with optional headers/comments (e.g., Perrin, Farquharson)structured-json — {"segments": [{"ref":"...", "text":"..."}]} (e.g., Hymn witnesses)chapters-json — legacy {"chapters": {"1": [{"verse":1, "text":"..."}]}} formatImport is blocked (with a warning) if <50% of witness references match Greek references (direct or parent-prefix match).
Witness dirs: !find ${LYCEUM_TEXTS_DIR:-output/texts} -path '*/witnesses' -type d 2>/dev/null | wc -l
English candidate catalogs: !find ${LYCEUM_TEXTS_DIR:-output/texts} -path '*/sources/english_candidates.json' 2>/dev/null | wc -l
/translation-witness gather [work] — Normalize the available English witness sources into comparable artifacts/translation-witness classify [work] — Classify witness usefulness by role (adversarial comparison, glossing, display)/translation-witness select [work] — Choose primary witnesses for each downstream use case/translation-witness status [work] — Summarize witness coverage and role assignmentsTarget: $ARGUMENTS
Each witness should be classified for its usefulness in one or more roles.
These are values for the roles array field in catalog.json (e.g. "roles": ["adversarial-comparison", "reader-display"]):
adversarial-comparisonglossing-referencereader-displayversification-candidateA versification-candidate witness may be directly versified by Stage 6 without generating a new translation. This is the fast path: if automated versification succeeds (100% coverage, 1:1 mapping with Greek segments), the witness becomes the versified edition and Stage 6a generation is skipped entirely.
Criteria that disqualify a witness from this role:
A witness can hold versification-candidate alongside other roles (e.g., adversarial-comparison).
limited-useThis classification replaces the old "alignment fitness" classification (direct-match, DP-alignable, range-only, unsuitable). Those categories are obsolete — we no longer align witnesses.
/translation-witness gatherCollect and normalize available PD English translations.
$LYCEUM_TEXTS_DIR/<slug>/
├── witnesses/
│ ├── perrin-1919.txt
│ ├── long-1862.txt
│ └── ...
├── sources/
│ └── english_candidates.json
Preserve the witness text as-is. Do not force it into Greek segmentation. Include metadata header if useful, but the text should be readable.
/translation-witness classifyClassify each witness by role usefulness.
For adversarial-comparison:
For glossing-reference:
For reader-display:
Add classification to witness catalog (schema v2):
{
"schema_version": 2,
"work": "work-slug",
"witnesses": [
{
"id": "perrin-1919",
"title": "Perrin (1919)",
"translator": "Bernadotte Perrin",
"year": 1919,
"license": "Public Domain",
"file": "perrin-1919.txt",
"format": "ref-bracket-prose",
"roles": ["adversarial-comparison", "reader-display"],
"literalness": "moderately literal",
"notes": "..."
}
]
}
Catalog schema v2 rules:
file: single string, relative to witnesses/ dir (no files.json/local_file variants)format: one of ref-text-tsv, ref-bracket-prose, structured-json, chapters-jsonroles: flat []string (not nested objects)title: required — used as edition label in the reader/translation-witness selectAssign witnesses to roles for downstream use.
/translation-witness statusSummarize current state.
Witnesses selected for reader-display are shown in the Lyceum reader as-is, without structural modification.
The generated translation (Stage 6a) provides the verse-aligned English. Witnesses provide context and alternatives.
Texts where multiple witnesses improve confidence:
| Text | Recommended witnesses |
|---|---|
| Homer (Iliad/Odyssey) | Murray, Butler, additional if available |
| Meditations | Long, Haines |
| Anabasis | Brownson, Dakyns |
| Apology | Jowett, Fowler |
| John | OpenGNT, ASV, KJV as secondary |
This skill follows the Stage 5 contract.
roles array with at least one classificationwitnesses/roles assignmentsAfter witness collection:
/translation-synthesis run <work> to generate the verse-aligned translationAfter completing this stage, run the automated verification script:
bash scripts/verify_stage_5.sh "${SLUG}"
Exit codes: 0=PASS (advance), 1=FAIL (block), 2=WARN (advance with notes). The orchestrator runs this automatically; when executing manually, check the output for [FAIL] or [WARN] lines.
| File | Purpose |
|---|---|
$LYCEUM_TEXTS_DIR/<slug>/witnesses/ | Witness text files |
$LYCEUM_TEXTS_DIR/<slug>/sources/english_candidates.json | Witness catalog |
.pi/skills/translation-synthesis/SKILL.md | Stage 6a (uses witnesses for comparison) |
.pi/skills/versify/SKILL.md | Stage 6b (validates generated translation) |
docs/text-pipeline-master-plan-2026-03-13.md | Pipeline architecture |
docs/reader-reliability-and-translation-accuracy-charter-2026-03-13.md | Multi-witness motivation |