Deprecation Plan
Last reviewed 2026-09-09.
This document defines the deprecation path from the original videoclaw (v0.11.x) and the intermediate vclaw-video-core rebuild to videoclaw-v3 — the merged successor (npm package: videoclaw).
Goal
Make videoclaw-v3 the primary execution surface without pretending the predecessor repos never existed.
Current decision
Primary:
videoclaw-v3(npm:videoclaw)
Reference/fallback only:
videoclawv0.11.x (the original repo) — legacy reference / migration sourcevclaw-video-core— intermediate clean-room rebuild whose foundation was merged into videoclaw-v3
Deprecation boundaries
What should stop growing in the old repo:
- new user-facing workflow surfaces
- new canonical artifact contracts
- new reporting layers
- new migration-target state models
What can still be consulted in the old repo:
- legacy scripts
- older provider behaviors
- reference patterns not yet ported
Cutover criteria
The clean repo is considered the primary product surface once these are true:
- provider status works
- produce / execute-status works
- clone-execute works
- template and prompt-library surfaces exist
- migration docs exist
- core tests are green
Those conditions are now satisfied.
Remaining non-blocking work
- richer provider-specific options
- better automatic prompt guidance during execution
- user education and release communication
Operational policy
When a user asks to create or run video work:
- prefer
videoclaw-v3(vclawCLI) - fall back to the legacy
videoclawv0.11.x runtime only when the missing feature is clearly identified - track every such fallback as a porting task
Suggested release language
Use this internal framing:
videoclaw-v3(npm:videoclaw) is now the recommended runtimevideoclawv0.11.x andvclaw-video-coreremain available as migration/reference sources- old workflows should not be expanded further unless they are being ported
Command lifecycle
Individual vclaw video commands and spellings follow a three-step ladder that is encoded in the schema, not remembered:
- Declared alias. A second spelling of a command is an
aliasesentry on the canonicalCommandSpecinsrc/video/cli-schema.ts— one schema entry, one handler, andsrc/tests/cli-dispatch-table.test.tsfails on a dispatch key that shares a handler but is declared nowhere. Supported aliases (execute,execution-plan) print nothing and stay. - Deprecated. A whole command carries
deprecated: { since, replacement?, note? }; one spelling carriesdeprecatedAliases: [{ name, since, replacement?, note? }](an alias's replacement defaults to the canonical name). From that release, every invocation prints exactly one line tostderr—vclaw: 'video X' is deprecated since <version>; use 'video Y'when a command replaces it,vclaw: 'video X' is deprecated since <version> and will be removed; <note>when nothing does — and then runs unchanged — same stdout, same exit code — so agents reading JSON are never broken andvclaw schema --jsonshows the mark. - Removed. After at least one minor release with the notice, the dispatch key and the schema mark go together. A historical-only command (one that reads data an older release wrote — the legacy batch queue,
import-legacy,cinema-migrate,cinema-history-import) needs a documented data-migration exit before step 3, not just the notice.
Marked as of 3.0.0-alpha.13
Notice-only spellings (the canonical command is unchanged): template-create → template-save, clone-ad → clone-execute, analyze-template → analyze, preflight → director-preflight, library find → find-library.
Deprecated commands (still run; removal needs the data-migration exit above for the historical ones): approve → produce --approve (it forwards to the one produce handler, adding --mode director when no mode is typed); batch-monitor → cinema-sync and batch-status → cinema-status (they only read a legacy batch-queue.json); candidates-migrate-from-assets and migrate-home (one-shot consolidations, honoured while there is still something to move); import-legacy, cinema-migrate, cinema-history-import (historical-only imports with no successor — they read what older releases wrote; docs/MIGRATION.md is the path). execute and execution-plan are NOT deprecated: the product emits them.
Sunset rule
Do not archive or delete the old repo until:
- migration of active users is complete
- no critical workflow depends exclusively on the old runtime
- the clean repo has been stable through multiple real runs
