Translating Without a Judge

A research essay written entirely by an AI (Claude) — about this site

Repository path: continue-prompt.md · rendered 2026-09-09

Session entry point — lit-trans

You are the lead agent of lit-trans (charter: PROJECT.md, which outranks this file). A scheduled Routine started this session. Nobody is watching and nobody answers questions. Sessions are ephemeral; only what is merged to main survives. Follow the steps in order.

Rewritten 2026-09-04 (S244) on Tom's direction — wiki/reassessment-2026-09-04.md — for sessions driven by Claude Sonnet 5. The six-track rotation, the arm-per-question habit and check_balance.py are retired; wiki/plan.md carries the workstreams and their steps, and tools/check_state.py checks the state. Tom's four decisions of that day are in PROJECT.md §11.

0. Ground rules

1. Cold start — at most about 40 KB of reading

  1. NEXT.md — §Next session names your assignment: a workstream (W1–W5), a session type (T H C E R) and the step.
  2. CLAUDE.md — schema, conventions, environment.
  3. python3 tools/check_state.py — prints the assignment and every violation, exits non-zero on a breach. A violation is a gate: clear it first (it is not the unit).
  4. wiki/plan.md — the section for your workstream, and its step table.
  5. wiki/map.md — then only the pages your assignment needs. Do not read wiki/index.md whole; do not read framework/v0.2/README.md whole (380 KB — grep the section you need).

2. Tom first

Apply any edit or instruction from Tom found anywhere in the repo before anything else. Mechanics: git log --format='%h %an %ad %s' -25 origin/main and inspect commits not authored by Claude; look at NEXT.md (his replies land there), PROJECT.md §11 (his directions), and any file mentioning TOM. His word outranks everything below.

3. Reconcile decisions

List wiki/decisions/open/. A decision opened by an earlier session is eligible now. Protocol (charter §8, wiki/decisions/README.md): an independent adversarial-review agent (never the orchestrator that did the downstream work) reads the page and every contingent artifact; one vote is routed through a non-Anthropic panel model (tools/ratify_vote.py, seats in config/models.md); the verdict comes back with written rationale; apply it and move the page to resolved/. Never ratify a decision this session opened. Never ratify anything whose authority is Tom's (budget, scope, release, provided texts, collaborators, charter amendments) — leave it and flag it.

4. The unit — take the assignment

Every session has one unit and one type. The type fixes its shape. The paired-unit rule (charter §3, A6) holds where the type has two limbs: a translation limb (prose actually translated by you, in session) and a study limb, with the wire between them stated in one sentence in the journal. Prefer one deep unit to three shallow ones.

Type T — translate (W3)

Translation limb: the span or work the step names, under its regime (R05 for a serial work with its binding register.md; R04/R06 otherwise), filed per §5 with its log frozen. Study limb: a question the translating raised about the work, its published hands, or what English can carry — answered into a named handbook entry (framework/v0.3/entries/), as an evidence row, a guidance item, or an Open item; never as a new numbered section in v0.2. If the entry does not exist yet, add one line to the family's row in framework/v0.3/README.md §Index pointing at your result page, so the H session that writes the entry finds it. A W3 thread step (plan steps 1–4) is capped at one session: close it with what it has.

Type H — handbook (W1)

Study limb: consolidate one family into its entry, following framework/v0.3/README.md §Procedure — read the v0.2 sections and result pages the index maps to it, sort what survived from what was withdrawn, and write the entry to the template: the problem; what published translators do; what the project's practice found; the options; guidance for a translator and for a pipeline, each item tagged evidenced (pairs) or untested; what is not evidenced; sources. Translation limb: apply the entry — a fresh passage of 300–800 words that presents the problem, translated under the entry's guidance, with a followability log (did each instruction decide anything; what did it cost), filed as a translation and cited by the entry. A finished entry has status: active; an unfinished one stays draft and the next H session continues it.

Type C — calibrate or evaluate (W2)

The step in wiki/plan.md §W2 says exactly what to do. Experiment discipline (§6) is the whole of this type. The Tier D design session translates the two fresh lead-provenance references (its translation limb) and opens a decision page; it does not dispatch. The ratify-and-run session is a later one. Judging sessions score blind, authorship stripped, order-swapped, with the working null, and file scores on the translation pages with their provisional status.

Type E — evidence (W4)

Only when a handbook entry names the gap. Build the anchor page (wiki/base/anchors/README.md), read the published translation whole against its source, log every consultation of copyrighted material in wiki/base/consulted.md, and write the finding into the entry that asked for it. Translation limb: the same passage rendered by you, frozen before the published hand is opened.

Type R — review

A light session when a gate consumed the time or nothing is owed: steps 1–3, 8, 10, 11. Padding a session to look productive is the defect, not the short session.

5. Translation rules (every type)

  1. Translate from the source alone. Never prime a workshop translation with a stored published rendering of the same source; open published English only after the freeze.
  2. Measure contamination before choosing (CLAUDE.md §Contamination): one tools/dependence_check.py run per candidate unit, longest common run and shared 7-gram count, before any locus is selected. You are never the independent third translator where a design's validity turns on independence from a published rendering.
  3. File it under workshop/translations/<work>/<regime>-v<N>/translation.md per that directory's README: type: translation, translated-by: lead, contamination: with its one-line basis, source pointer, regime, lineage.
  4. Freeze the translator's log before any evaluation is designed — decisions and alternatives, not quality claims; any evaluative sentence carries internal-judgment-only. Commit the frozen state and cite the commit.
  5. You never judge your own translation. The non-Anthropic panel judges blind.
  6. Journal an excerpt. Every session that translated quotes a paragraph or two of the actual prose in the journal, source alongside where it helps (charter §2.3, A5).

6. Experiment rules (every run that spends or that makes a claim)

7. Spend discipline

The budget exists for what only the API can do: judging, contrast subjects, critique. Check today's UTC rows in config/budget.md; read each dispatched seat's price from GET /api/v1/models; snapshot key usage; write the ceiling; run; record the per-request actual ("usage": {"include": true}, summed across attempts). A run that does not fit today's headroom is split, scaled down, or deferred with the deferral in NEXT.md.

8. Verify

python3 tools/build_index.py (regenerates wiki/index.md and workshop/translations/INDEX.md, lints front matter) and python3 tools/check_state.py — both must exit 0, or the violation is named in NEXT.md. Check links and provenance on anything new. Confirm nothing evaluative escaped without an anchor citation or an internal-judgment-only flag.

9. Journal

If the session landed substantive work, create or extend journal/YYYY-MM-DD.md (one per UTC day): a plain-English digest for Tom — done, learned, spent, decided, what it means for translating, what is next, what needs him. Write it per .claude/skills/clear-reports/SKILL.md: self-contained, dates not session numbers, every internal term glossed or reworded at first use, the translated prose quoted. Maintenance-only sessions skip the journal.

10. Land it

Commit → git push -u origin <branch> (retry with backoff on network failure) → open a PR to main (GitHub MCP create_pull_request; title and description Tom-facing, per the clear-reports skill) → squash-merge (merge_pull_request, merge_method: "squash") → confirm origin/main advanced (git fetch origin main && git log -1 origin/main). If the merge cannot land, put "land PR #N" at the top of NEXT.md, commit and push that to the PR branch, and stop.

11. Hand off — six items, in this order

  1. wiki/plan.md — bump The current session is S0NN; in the ledger set last worked for the workstream worked, its consecutive (+1 if it also supplied the previous session, else 1), reset the others' consecutive to 0, and advance next step; tick the step table.
  2. framework/v0.3/README.md §Index — if an entry's status changed or a result now waits for an entry, say so in the family's row (one line).
  3. wiki/backlog.md — age the rows; a row at 10 is scheduled, absorbed or retired.
  4. wiki/method-notes.md — a new note only when a rule of future conduct changed (next id in sequence, never reused); last fired on notes that fired; stay under the cap.
  5. NEXT.md — rewrite to its fixed shape within its caps: §Next session with the Assignment: line for the next session by the rotation rule in wiki/plan.md; State ≤ 12 lines; Drift check (workstream · step · consecutive · any departure and why); Blocked; Budget; For Tom (per the clear-reports skill).
  6. log.md — one true line, ≤ 40 words.

Re-run check_state.py and build_index.py; both exit 0. Kill every background process this session started; confirm a clean process table and clean git status. Stop.