Parent: #421
Outcome
Add a canonical planning policy for "build every eligible derivative" without recursively walking cycles or producing duplicate/source-equivalent artifacts.
Problem
Renderflow's graph intentionally supports reversible and competing edges. A naive exhaustive traversal over edges such as fountain -> fdx -> fountain can loop, duplicate work, and create lower-fidelity derivatives from already-derived artifacts.
Model
Introduce a derivative-forest planning mode that is target-oriented.
For a source artifact and policy:
- enumerate eligible target artifact identities/capabilities;
- exclude source-format identity by default;
- compute one selected simple path per target;
- forbid repeated format nodes inside a selected path;
- deduplicate equivalent target identities;
- prefer higher-fidelity/direct source paths over paths starting from another derivative;
- preserve unavailable/unsupported targets as diagnostics rather than outputs.
Example:
source: fountain
targets: fdx, fadein, osf, json, pdf
fountain ─→ fdx
├→ fadein
├→ osf
├→ json
└→ pdf
Deliverables
- Versioned derivative-forest plan/evidence schema.
- Explicit source-exclusion and target-deduplication rules.
- Simple-path/cycle policy.
- Target identity beyond raw extension where variants/profiles matter.
- Loss/fidelity budget and path-selection evidence.
- Provider-availability filtering.
- CLI/SDK dry-run inspection for the forest.
- Deterministic fixtures including reversible A ↔ B transforms and competing A → C paths.
Acceptance criteria
Non-goals
No new screenplay, subtitle, or AI provider is implemented here.
Parent: #421
Outcome
Add a canonical planning policy for "build every eligible derivative" without recursively walking cycles or producing duplicate/source-equivalent artifacts.
Problem
Renderflow's graph intentionally supports reversible and competing edges. A naive exhaustive traversal over edges such as
fountain -> fdx -> fountaincan loop, duplicate work, and create lower-fidelity derivatives from already-derived artifacts.Model
Introduce a derivative-forest planning mode that is target-oriented.
For a source artifact and policy:
Example:
Deliverables
Acceptance criteria
Non-goals
No new screenplay, subtitle, or AI provider is implemented here.