Repository navigation
docs: design draft — the manifest, run config, and run record - #277
Conversation
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
| { | ||
| "name": "SI", | ||
| "description": "Suicidal ideation", | ||
| "version": "1.2", |
There was a problem hiding this comment.
i wonder if we should also link a commit hash to make ti real
There was a problem hiding this comment.
Added: the run record keeps the human version and next to it git_commit (the last commit that changed the target folder) plus uncommitted_changes, so a score links to the exact rubric on GitHub.
| ``` | ||
|
|
||
| - **Defaults allowed.** A config states what differs from the defaults. Reproducibility comes from the run record, which writes every value out, not from forcing every config file to. | ||
| - **Execution settings in their own section:** `max_concurrent`, `debug`, `sample`, `into`. They are excluded from the run's hash, because they don't change the result. |
There was a problem hiding this comment.
Thanks. Kept as proposed.
| ```json | ||
| { | ||
| "format_version": 1, | ||
| "target": {"name": "SI", "version": "1.2", "files": {"rubric.tsv": "sha256:…", "personas.tsv": "sha256:…"}}, |
There was a problem hiding this comment.
also add the hash of the commit of the rburnic, which might be what sha256 is meant to do
There was a problem hiding this comment.
They complement each other: the per-file sha256 checksums are the source of truth (they also catch uncommitted edits) and are hashed; git_commit is for people, to open that exact rubric, and is recorded but not hashed. New open question: whether to refuse runs when the target has uncommitted changes.
|
|
||
| ## Open questions | ||
|
|
||
| 1. **Defaults in config files.** The current rule (every field required) was chosen so a config file alone describes a run. With a run record that does that job, are defaults acceptable, or should configs stay complete? |
There was a problem hiding this comment.
defaults are acceptable, but they are explicitly written in the run record
There was a problem hiding this comment.
Decided: defaults allowed in config files, every value written out explicitly in the run record.
| ## Open questions | ||
|
|
||
| 1. **Defaults in config files.** The current rule (every field required) was chosen so a config file alone describes a run. With a run record that does that job, are defaults acceptable, or should configs stay complete? | ||
| 2. **Where execution settings go.** A separate `execution` section, or keep `max_concurrent` per stage and only exclude it from the hash? |
There was a problem hiding this comment.
would it be possible to add it, but not hash it, just in case it's useufl for the future?
There was a problem hiding this comment.
Yes, that's now the design: the execution section is recorded in the run record but excluded from the hash.
|
|
||
| 1. **Defaults in config files.** The current rule (every field required) was chosen so a config file alone describes a run. With a run record that does that job, are defaults acceptable, or should configs stay complete? | ||
| 2. **Where execution settings go.** A separate `execution` section, or keep `max_concurrent` per stage and only exclude it from the hash? | ||
| 3. **Manifest `version`.** Free text set by the rubric's authors, or derived from the files' checksums? |
There was a problem hiding this comment.
checksum are the source of truth, human text is more helpul
There was a problem hiding this comment.
Decided: both. Free-text version in the manifest, plus checksums and the commit in the run record.
There was a problem hiding this comment.
Written in exactly that way: checksums are the source of truth, the human text is for readability.
| 1. **Defaults in config files.** The current rule (every field required) was chosen so a config file alone describes a run. With a run record that does that job, are defaults acceptable, or should configs stay complete? | ||
| 2. **Where execution settings go.** A separate `execution` section, or keep `max_concurrent` per stage and only exclude it from the hash? | ||
| 3. **Manifest `version`.** Free text set by the rubric's authors, or derived from the files' checksums? | ||
| 4. **Validating model names at load.** A provider lookup needs network and keys at resolve time; acceptable, or check only for obvious placeholders? |
There was a problem hiding this comment.
acceptable to avoid problems later
There was a problem hiding this comment.
Decided: model names are looked up with the provider at load, before any run starts; --print skips the check.
…target's git commit Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
|
|
||
| ## Open questions | ||
|
|
||
| 1. **Uncommitted rubric edits.** When the target's files differ from their last commit, record `uncommitted_changes: true` and run anyway, or refuse to run unless an explicit flag allows it? Recording is enough for experiments; refusing protects published numbers. |
There was a problem hiding this comment.
refuse unless a specific flag is set
There was a problem hiding this comment.
Recorded as decision 5: if the target's files differ from their last commit, vera refuses to start and names the changed files, unless --allow-uncommitted is given. The flag is an execution setting (recorded, not hashed), and the run record then has uncommitted_changes: true, so such a run is always identifiable. That closes the doc's open questions.
…less --allow-uncommitted Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… of 2.1 Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Summary
Design draft for discussion, docs only:
docs/design/config-and-manifest.md. Connected to #268 (config.jsonand its hash), #276 (where the run record lives), and #274 (what someone writing a target edits; the link resolves once #274 merges).Three JSON files, three jobs, and what belongs in each:
data/<target>/manifest.json), what the evaluation is:name,description,version.rubric_manifest.jsongoes with the legacy scripts.--config,configs/*.json), how to run it:user_languagedid in feat: let the user-side LLM write in another language #269).executionsection (max_concurrent,debug,sample,into) kept out of the run's hash.config.jsonin the run folder, not written yet), what ran:provenance.--config <run>/config.json.Decisions from review (in the doc): defaults allowed in config files, execution settings recorded but not hashed, manifest
versionas human text with checksums as the source of truth, model names checked with the provider at load, and uncommitted rubric edits stop a run unless--allow-uncommitted.Implementation plan (in the doc): PRs A–G into
release/2.1. A and B first, then C (the run record), then D, E, F; G any time.Also in this PR:
docs/roadmap.mdandAGENTS.mdnow say the legacy scripts are no longer supported. Removinglegacy/becomes step 1 of the 2.1 plan, ahead of the safety net.🤖 Generated with Claude Code