Skip to content

Phase K Step 2: Manifest extension (themes + notable_moments) #224

Description

@aberson

Build step 2 of 5 — Phase K (umbrella #215)

Build doc: documentation/plans/phase-k-build-plan.md §4 Step K.2

What to build

Add themes: list[str] and notable_moments: list[str] fields to the per-version manifest schema. snapshot_current() writes them as [] by default. Add set_themes() and add_notable_moment() helpers in registry.py.

Existing context

  • src/orchestrator/registry.py — current registry: list_versions(), get_version_dir(), get_manifest(). Manifest fields today: version, parent, git_sha, fingerprints, lineage.
  • bots/<version>/manifest.json — per-version manifest file; owned by snapshot_current().
  • Backwards compat: reading an OLD manifest (no themes field) must NOT crash. Use dict.get("themes", []) in all readers.

Files to modify/create

  • src/orchestrator/registry.py — extend manifest schema, add set_themes() and add_notable_moment() helpers.
  • src/orchestrator/snapshot.pysnapshot_current() writes default [] for new fields.
  • tests/test_registry.py — extended.
  • tests/test_snapshot.py — extended.

Done when

  • Snapshotting v0 → v1 produces a manifest with the new fields populated as [].
  • Reading an OLD manifest (no themes key) doesn't crash; helpers return [].
  • uv run mypy src --strict + uv run ruff check clean.

Flags

--reviewers code --isolation worktree

Depends on

K.1.

Produces

Manifest schema extension + helpers + extended tests.


Synced from build doc by /repo-sync

Metadata

Metadata

Assignees

No one assigned

    Labels

    bot-versioningBot ring-fence, versioning, and self-play workenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions