Skip to content

docs: roadmap replaces migration phases and TODO; bump to v2.0.3 - #249

Merged
luca-belli merged 6 commits into
mainfrom
docs/roadmap
Oct 9, 2026
Merged

luca-belli merged 6 commits into
mainfrom
docs/roadmap

Conversation

@luca-belli

@luca-belli luca-belli commented Oct 8, 2026 •

Copy link
Copy Markdown
Collaborator

Summary

Splits the migration plan out of docs/architecture.md into a new docs/roadmap.md, folds the root TODO file into it, and bumps the CHANGELOG to v2.0.3. architecture.md now describes the target state only.

Stacked on #248 because both PRs change the same AGENTS.md lines. GitHub retargets this PR to main once #248 merges.

docs/roadmap.md

  • Phases have names, not numbers, so reordering never changes what an existing reference means. Order: Scoring split → Rubric-agnostic scoring (new) → Traceability → Model spec boundary → Shared engine → Quality gates. Storage and OpenSpec are independent of the rest.
  • Rules: every phase keeps legacy/ working ("legacy adapts; the domain doesn't bend"). Each phase needs maintainer sign-off before it starts. A broken phase is rolled back by reverting its PRs.
  • Pyright becomes a per-package blocking step, added as each package reaches zero errors.
  • Backlog: smaller items that belong to no phase, grouped by area.
  • Deferred: removing legacy/ (triggered by a tagged release); per-persona system prompts.
  • Completed: target manifests, the vera CLI, the package moves (chore: move the legacy scripts into legacy/ (v2.0.2) #243, refactor: rename generate_conversations package to generate #245, refactor: move scoring into top-level score package (run, aggregate, viz) #246), and multi-rubric evaluation (below).

Multi-rubric evaluation is done, by design

Evaluating conversations with several evaluators (rubrics) means one target per rubric, each judged separately with vera judge --target <name>. That was the intended end state, not a stopgap. Scores from different rubrics aren't comparable and must never be merged, so keeping them in separate runs is deliberate. The old plan for several rubrics inside one run (judging.rubrics length > 1, per-rubric judge-model overrides) is dropped. judging.rubrics keeps its list shape and length-1 check, so revisiting it later wouldn't break the schema. vera judge --target all remains, as a convenience that ships with Traceability. docs/architecture.md, vera_cli/judge.py, and the CHANGELOG say the same.

TODO deleted

  • Phase-sized items became phase content with their detail intact: pooled pipeline score, config checksums, SI dimensions and rubric fingerprint, the END-token bug, dimension_verdicts, risk_level from the judge.
  • The 13 smaller items moved to the roadmap's Backlog. Corrected the load_dotenv item: it isn't done, since llm_clients/config.py still loads .env at import time.
  • Repointed every reference to TODO: docs/architecture.md, docs/vera-cli-use-cases.md, .github/workflows/live.yml, the dimension_verdicts design record.

Version bump to v2.0.3

The current [Unreleased] entries now sit under ## [v2.0.3] \- Unreleased, in the same style as v2.0.2, and a fresh empty [Unreleased] sits above them. No tag is created; a human tags when the release goes out. Note: v2.0.3 contains package renames, which under strict SemVer would be a major release. A patch release was chosen deliberately.

Phase references

All 21 references to old phase numbers or the deleted section now use phase names. Outside docs they appear only in comments and docstrings: vera_cli/judge.py, legacy/judge.py, utils/rubric_manifest.py, three tests, docs/ARCHITECTURE-SPINE.md, docs/vera-cli-use-cases.md, CODEOWNERS. AGENTS.md gets a roadmap row in the Documentation Map.

Notes for reviewers

Test plan

  • No Phase <n>, #migration-from-current-layout, or root-TODO references left outside CHANGELOG history
  • Every relative link and anchor in the changed docs resolves. The only broken links are five in historical CHANGELOG entries, which were already broken.
  • uv run ruff check . and ruff format --check .. Code changes are comments and docstrings only.

🤖 Generated with Claude Code

@luca-belli
luca-belli requested a review from a team as a code owner October 8, 2026 21:59
@luca-belli luca-belli changed the title docs: move migration phases into docs/roadmap.md docs: roadmap replaces migration phases and TODO; bump to v2.0.3 Oct 8, 2026
@luca-belli
luca-belli added this pull request to stack #250 October 8, 2026 22:07
Base automatically changed from feat/agents-md-changelog to main October 9, 2026 18:21
luca-belli and others added 3 commits October 9, 2026 11:21
docs/architecture.md now describes target state only; remaining work
lives in docs/roadmap.md as named (not numbered) phases. Completed phases
collapse to one note, multi-rubric runs are deferred as superseded by
targets, and a Rubric-agnostic scoring phase absorbs the scoring items
from TODO. Phase references across code comments and docs use the names.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…targets

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
luca-belli and others added 3 commits October 9, 2026 14:27
# Conflicts:
#	TODO
#	tests/integration/test_score_parity.py
Date the v2.0.3 heading and fold the never-tagged v2.0.2 entry into it.
Mark the END discard fix as shipped in the roadmap; only the stop-token
vocabulary migration remains.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@luca-belli
luca-belli merged commit b7b9991 into main Oct 9, 2026
3 checks passed
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.

2 participants