VideoFactory — overseer kit setup
Use the same overseer discipline as other repos, with VideoFactory-specific names for the living docs so multi-repo workspaces stay unambiguous.
Doc mapping (same system, different labels)
| Kit concept | VideoFactory file | Display title |
|---|---|---|
| Roadmap / phase queue | VIDEO_PRODUCTION_STATUS_BOARD.md |
Video Production Status Board |
| Handover / session relay | VIDEO_OVERSEER_HANDOVER.md |
Video Overseer Handover |
The status board is your video queue and grid — phases, videos in play, build status. The kit
treats it as the roadmap (SD-17 sync target). governance-sync and handover regeneration keep it
honest vs git reality, the same way a software roadmap stays honest.
Renaming is supported. Each repo's .overseer/config.yaml sets docs.handover, docs.roadmap,
docs.handover_title, and docs.roadmap_title. MuseHub can use MUSEHUB-ROADMAP.md / MUSEHUB-OVERSEER-HANDOVER.md
in the same workspace — no conflict.
Prepared config
Copy or reference:
tests/fixtures/pilot/config-videofactory.yaml
Every field is commented in that file.
Install
KIT=/path/to/overseer-kit
VF=/path/to/videofactory
# Dry-run first (migrate preserves existing living docs)
$KIT/cli/overseer -C $VF init --migrate \
--from-config $KIT/tests/fixtures/pilot/config-videofactory.yaml \
--non-interactive --dry-run
# Apply
$KIT/cli/overseer -C $VF init --migrate \
--from-config $KIT/tests/fixtures/pilot/config-videofactory.yaml \
--non-interactive
$KIT/cli/overseer -C $VF status --check-footprint
If you already have a Video Production Status Board and handover file with different names,
either rename them to match the config or edit docs.handover / docs.roadmap in
.overseer/config.yaml to match your filenames before init --migrate.
Mandatory review gates (kit-wide, not optional)
Shipped in every consumer install via templates + .cursor/rules/build-verification-required.mdc:
| Gate | When | Skill |
|---|---|---|
| Freeze review | Before Auto build ({step}a → {step}b) |
/freeze-review-loop |
| Build verification | After Auto build, before DONE | /build-verification-review |
| Tests | During/after build | policy/test-tiers.yaml |
| Governance sync | Session end | /governance-sync |
Agents must not mark a phase DONE on the status board until build verification pass.
Day-to-day (VideoFactory)
- Open
VIDEO_OVERSEER_HANDOVER.md→ paste NEXT prompt. - Work on
feat/<slug>branch. - Thinking phase: freeze spec →
/freeze-review-loopuntil pass. - Auto phase: build → tests →
/build-verification-reviewuntil pass. - Update status board + handover together →
governance-sync --dry-run→ commit. - PR → merge with Tier-3 authorization.
Hard stops
- No
--force --include-preservedon live migrate (pilot rule) - No merge to
mainwithout Tier 3 - No marking videos/phases DONE without build verification pass
Multiple roadmaps? Video queue + software work in one tree
Today (K7): .overseer/config.yaml wires one living-doc pair into governance-sync:
docs.handover→ one relay doc (Video Overseer Handover)docs.roadmap→ one queue doc (Video Production Status Board)
There is no second auto-synced roadmap/handover pair in the same repo yet. Optional
docs.coordination (e.g. CROSS-REPO-COORDINATION.md) is preserved on migrate but is not
patched by governance-sync.
Recommended VideoFactory layout (works now)
| Concern | Where it lives | Synced by kit? |
|---|---|---|
| Video production queue (always on) | VIDEO_PRODUCTION_STATUS_BOARD.md |
Yes — primary roadmap |
| Session relay for video work | VIDEO_OVERSEER_HANDOVER.md |
Yes — primary handover |
| Major software/tooling build | Section on the same status board (## Engineering) or a separate ENGINEERING_ROADMAP.md you maintain manually |
Manual only if separate file |
| Per-video work | feat/video/<slug> branch + one row on the status board |
Row updated on phase close; branch is the isolation unit |
You do not need a full second roadmap + handover pair for every video. You need:
- One repo-level status board — master grid of videos and engineering lanes.
- One repo-level handover — current session relay (whichever lane you are in).
- One branch per video (your existing habit) — isolates assets, edits, and agent context.
- One row per video on the status board — honest status vs merged reality.
When you switch from “shipping Threads ep. 42” to “building a new export pipeline,” you change the NEXT prompt in the handover and the active row on the status board. You do not spin up a second synced doc pair unless we add multi-lane config (future K8+).
Future extension (not required for VF install)
A natural kit evolution is docs.lanes[] — named pairs, e.g. production + engineering, each
with its own handover/roadmap paths and optional governance-sync --lane. Until then, one synced
pair + sections (or a manual second file) is the supported pattern.
Per-video specs: templates, not a thinking model every time
Repetitive video types (Threads in Time + Reels, Trend + verticals, thumbnails, CTA, music, avatar rules, cadence/expression) should be frozen once, not re-specified per video.
Three layers (all live in the VideoFactory repo, not in overseer-kit core)
| Layer | Purpose | Freeze review? |
|---|---|---|
| Template library | docs/video-specs/ or policy/video/ — one frozen spec per format |
Once per template (thinking model); re-run only when the template changes |
| Status board row | Instance: template ID, topic, due date, branch, status | No full spec — references template |
| Instance manifest (optional) | videos/<slug>/manifest.yaml on the video branch — params only |
No — Auto reads template + manifest |
Gate 1 (freeze): Run /freeze-review-loop when you author or change a template — not on
every episode.
Gate 2 (build verification): Run /build-verification-review per video before marking the
row DONE — checks implementation against the frozen template ID + instance checklist (export
settings, CTA present, music bed, avatar rules, etc.). This is the honesty gate you want for
publish-ready work without paying for a thinking model on identical structure every time.
Is a frozen spec necessary for every video?
| Situation | Freeze loop? | Build verification? |
|---|---|---|
| New video type or template change | Yes | Yes |
| Same template, new topic/episode | No | Yes |
| Trivial tweak inside one template | Optional delta note on template | Yes |
When is a video “reviewed”?
- During build — tests / export checks per
policy/test-tiers.yaml(you define VF tiers in consumerpolicy/). - Before DONE — mandatory
/build-verification-review(always-on Cursor rule). - Before publish — human spot-check or your publish pipeline (outside kit).
There is no separate “freeze spec per video” unless that video is a one-off departure from all templates.
Modularity: molding the kit for VideoFactory (and any project)
The kit is repo-agnostic governance, not a VideoFactory runtime. Customization stays in the consumer repo:
| Extension point | VideoFactory example |
|---|---|
.overseer/config.yaml |
Custom doc paths and display titles |
| Preserved living docs | Status board + handover content and sections |
policy/ |
Video checklists, test tiers, model labels |
docs/video-specs/ |
Frozen format templates (your domain) |
.cursor/rules/ |
VF-specific always-on rules (promoted on migrate if under kit paths) |
.cursor/skills/ |
Optional VF skills (e.g. “verify export against template X”) |
| VCS adapter | git-only, muse-only, or muse+git-mirror per repo |
You do not fork overseer-kit. You install it into VideoFactory; domain templates and video policy live in VideoFactory. Other repos (MuseHub, Knowtation) use the same kit with different doc names and policy files.
Stub / add-on pattern: Core CLI and adapters expose fixed contracts (init, sync, status,
review, governance-sync). Domain-specific behavior is added via consumer policy, preserved
docs, and Cursor skills/rules — not by editing kit source unless you are contributing upstream.
Quick decision guide
| Question | Answer |
|---|---|
| Can I use Video Status Board and a software roadmap at once? | Yes — one pair is auto-synced; use sections on the status board or a manual second roadmap file for engineering. |
| One roadmap per video? | No — one row per video on the repo status board; one branch per video. |
| Thinking model every video? | No — freeze templates once; per-video build verification only. |
| Is the kit ready for VF? | Yes — install with config-videofactory.yaml, add template library in VF, branch-per-video + status rows. |
| Multi-lane auto-sync later? | Optional K8+ docs.lanes[]; not blocking VF install. |