Skip to content

[docs] document the evaluation pipeline internals - #31

Merged
Thibaut-Fatus merged 1 commit into
mainfrom
docs/evaluation-process
Sep 4, 2026
Merged

Thibaut-Fatus merged 1 commit into
mainfrom
docs/evaluation-process

Conversation

@Thibaut-Fatus

Copy link
Copy Markdown
Collaborator

Why

The README documents how to invoke each pipeline stage — flags, defaults, model chains — but nothing in the repo explained what happens inside them. Details like why demographics are allocated in code rather than asked for in the prompt, or why expansion needs a task-level fallback chain on top of the per-call one, only lived in the source.

What

Adds EVALUATION_PROCESS.md at the root, linked from the README in three places (Overview, "Pipeline stages", and the project-structure tree).

Contents:

  • Overview — risk → seed → scenario → graded conversation, and the principle that everything statistically controlled is allocated in code, never left to the model.
  • generate-seeds — the task grid, grid vs. distribution mode, largest-remainder/shuffle/zip persona allocation, motivation round-robin, flavor allocation, and what the code stamps vs. what the model chooses.
  • expand-scenarios — the disciplined-expansion prompt and its three conditional sections, the 7-point validation checklist, the validationFeedback retry loop, and why a ScenarioValidationError rotates models at the task level (a validation failure is a well-formed response, so per-call retry never sees it).
  • run — prompt variants, conversation length, the validateAssistantTurn capture gate, judge aggregation (median grades / mean counts / matching reasons), and notTriggered score-neutrality.
  • Guardrails table — all seven, in one place.
  • Reproducing the shipped corpus — the exact commands from c285c5c, the per-risk marginals, and two quirks: 781 seeds rather than 780 (one task returned two seeds where one was requested; nothing clamps output.seeds.length to seedsToGenerate), and the missing taxonomy stamp on pre-packs seeds.
  • Dead codeconversationToMatchPrompt and riskToScenariosPrompt have no call sites and are not re-exported from index.ts; both date from c9be924 and were superseded by conversationToAssessmentPrompt and the two-phase seed/expand split respectively. Includes a live/dead table for all eleven files in src/prompts/, plus the smaller ScenarioValidationVerdict orphan.

Also

Fixes the Overview risk count: 25 → 26. The taxonomy section further down already said 26, and risks.json has 26.

Notes

  • Docs only — no TS/JSON touched. yarn pretty passes.
  • The two dead prompt files are documented, not deleted. Happy to remove them in a follow-up if you'd rather.

🤖 Generated with Claude Code

https://claude.ai/code/session_01NRbfZ2n5gKAppVbCwbA2t6

The README covers how to invoke each stage; nothing covered what happens
inside them. EVALUATION_PROCESS.md explains the mechanics:

- persona/motivation/flavor allocation (largest-remainder, shuffle, zip)
  and why it lives in code rather than in the prompt
- what each of the four generation prompts asks for, including the
  conditional model-memory and flavor sections
- the validationFeedback retry channel and why a validation failure
  drives task-level model rotation rather than per-call retry
- judge aggregation (median grades, mean counts) and notTriggered
- the exact commands and marginals that produced the shipped corpus
- known dead code: conversationToMatchPrompt and riskToScenariosPrompt

Also fixes the Overview risk count (25 -> 26), which already disagreed
with the taxonomy section further down.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01NRbfZ2n5gKAppVbCwbA2t6
@Thibaut-Fatus
Thibaut-Fatus merged commit b73b473 into main Sep 4, 2026
4 checks passed
@Thibaut-Fatus
Thibaut-Fatus deleted the docs/evaluation-process branch September 4, 2026 07:07
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant