Skip to content

v2.6.0 - Bring your own templates: prompt directory precedence, reading-layer design doc, topic-digest and CliffNotes defaults

Latest

Choose a tag to compare

@dzivkovi dzivkovi released this 05 Sep 16:14

A feature release: no behavior change for anyone running defaults. With nothing configured, every prompt resolves exactly as before, so upgrading is safe and needs no migration.

For someone customizing summaries

Prompt templates can now be overridden without editing the repo. Resolution order is prompt_dirs: (config, checked in the order listed), then $VIDEO_INTEL_PROMPT_DIR (one path, or several joined by os.pathsep), then the bundled prompts/ - first regular file found wins. A private, sharpened copy of mindmap-knowledge.md (or any shipped template) in your own folder wins locally, survives a git pull, and a fork with neither set keeps working on the shipped defaults.

  • One log line per prompt name per process names the winning source.
  • Malformed prompt_dirs entries (relative paths, a file instead of a folder, a non-string entry) degrade with a warning; the rest of the list still applies.
  • A folder that does not exist is allowed and skipped, so one shared config can name a path only some machines have.
  • A fallback to the bundled template is logged, never silent: INFO the first time a name has never resolved from an override, escalating to WARNING if it previously won from an override and now doesn't (a typo mid-edit, or a private file deleted mid-run).
  • An unreadable override directory is skipped with a warning instead of breaking scan --dry-run, which is documented as never exiting.

Two new document shapes as shipped templates

  • prompts/topic-digest.md - many short sources about one topic in, one ranked reference out.
  • prompts/cliffnotes-distiller.md - one long transcript in, one deep-linked reference out.

Both are templates an agent runs, not new CLI commands. The reading layer they belong to was proven on a non-video corpus during this release - a community newsletter and its talk pages - without naming the community; see the README's new "Beyond video: newsletters and communities" section.

Why the outputs look the way they do

New: docs/reading-layer.md. It names the three properties every reading-layer output shares (fixed template, ranking, an explicit so-what), the three output shapes, and two design decisions: the template is the asset, and prompt directories are precedence, not a dependency. Linked from the README "Where to go next" table and from the new "Beyond video: newsletters and communities" section.

Maintainer guardrails

  • Model scorecards (scripts/model_eval.py) now record when an active prompt override was in effect, so an A/B run against a private template is never mistaken for a claim about the bundled one.
  • A new CLAUDE.md Code Review Guardrails entry pins the resolver's invariants: one path-building function, is_file() never exists(), degrade-not-raise on an unreadable directory, and the graded INFO/WARNING fallback logging.
  • tests/test_prompt_dirs.py - 49 executing tests covering the resolver and its callers directly, no stubs at the seam.

Also in this release

  • .compound-engineering/config.example.yaml - a committed template for the Compound Engineering plugin config.
  • A CLAUDE.md paragraph on when to offer the ce-compound skill at a completion checkpoint.
  • The 2026-09-03 eval baseline note: hybrid-search N/25 has now held at 1/25 across three successive index states with no retrieval-logic change.
  • ruff format applied to two pre-existing unformatted files.

Verification

2745 tests passed, 1 skipped (a Neo4j integration test with no local Neo4j+GDS instance). Review rounds: a Codex peer pass, guidelines/test-coverage/silent-failure reviewers, two ce-doc-review personas, and two delta passes - all findings applied.

Issues: #221 (closes). PR: #222.