Repository navigation
[EPIC][Artifact Forest] Build truthful screenplay, transcript, and exhaustive derivative workflows #421
Description
October 28, 2026 — selectable demo and SDK publication checkpoint merged
PR #464 merged at c551f87329b5f040ac597530d893a3e2765437b3. PR #465 merged at 93c69b37432234201e92ab5af7580c8d3e24b106 with maintainer authorization. Renderflow has no remaining open PRs at this checkpoint.
The existing forest demo supports exact --job selection and a five-output built-in Fountain walkthrough. The Rust SDK now exposes RunManifest::published_targets() to join explicit published targets to borrowed native artifact/producer evidence, preserving distinct same-content destinations, losses and review state. Missing legacy evidence and contradictory joins return typed errors; run outcome remains separate. This is structural receipt correlation, not file/path verification, complete receipt validation or creative approval. The fixture reader also now uses observed source ID/digest evidence after publication hygiene instead of incorrectly relying on planned source identity.
SDK usage · First forest walkthrough · Handoff
The new checkpoint has ten Rust and two Python regression cases authored, plus coverage added to existing graph/composition cases. All remain unrun. Source review and exact Git blob/tree matches are the evidence; tests, compiler/build/Cargo resolution, lint/format, validators, CLI/fixture/native/provider execution and CI remain deferred. No Actions were dispatched or polled. No wire schemas, dependencies, releases or tags changed.
#430/#421 remain open for actual CLI/SDK and native-provider qualification, source preservation/repeatability, native-application fidelity and released Flow consumption. Original scope, acceptance boxes and earlier historical receipts follow unchanged.
October 28, 2026 — merged export source and remaining epic work
The suite roadmap refresh confirms main c1d1bebfd48369d18e7c46295859d76e3f831499, 0 open Renderflow PRs, 27 open issues and 0 GitHub releases. The complete repository ledger is #367; the suite roadmap is Flow #11.
PR #455 merged October 27 at 0842c16cb50530f37a35b18fb6b0211f3ffc2386. Its bounded direct original-Fountain body exports to canonical screenplay JSON, FDX, Fade In and OSF, the Trelby derivative, and canonical transcript → terminal Text are now merged source. The October 13 note below that lists original-Fountain exports and graph transcript Text as missing is historical. This does not enable Scripttool reverse writers, widen recovery's separate lossy contract or establish native/visual acceptance.
The epic's remaining work is principally evidence and integration for its implemented subsets:
- [Artifact Forest 1/9] Define cycle-safe exhaustive derivative planning #422/[Artifact Forest 2/9] Define canonical screenplay artifacts and capability truth #423/[Artifact Forest 6/9] Add timed-text formats and embedded subtitle extraction #427: qualify cycle-safe target planning, canonical screenplay/capability truth and timed-text/subtitle boundaries.
- [Artifact Forest 3/9] Add bounded scripttool screenplay conversion adapter #424/[Artifact Forest 4/9] Add afterwriting Fountain PDF and screenplay-analysis adapter #425/[Artifact Forest 5/9] Recover screenplay structure from PDF and unstructured text #426: qualify the exact supported screenplay/PDF/recovery directions and retain explicitly rejected directions and review-required loss evidence.
- [Artifact Forest 7/9] Add local speech-to-timed-transcript provider #428/[Speech] Add explicit original-media time maps and aligned subtitle exports #440: qualify local speech/replay and explicit original-media time-map candidates.
- [Artifact Forest 8/9] Add a creative conversion toolchain profile and doctor surface #429: record the actual supported optional provider/model/asset/platform combinations.
- [Artifact Forest 9/9] Prove the multi-family artifact forest and hand it to Flow #430: prove real multi-family CLI/SDK execution, source suppression, unique target publication, repeatability/partial results and consumption of the released contract through the Flow-owned adapter.
- Reconcile [EPIC][Artifact Forest] Build truthful screenplay, transcript, and exhaustive derivative workflows #421 only when its original outcomes have matching evidence. Every acceptance box below remains unchanged and this epic stays open.
The first bounded ordered-page publication release is separately owned by #419 after the #458 locked baseline and #459 documentation acceptance. It does not require finishing every optional creative extension first. Flow #52 owns the consuming Renderflow adapter, using a qualified immutable release rather than sibling source imports.
This is a source/state refresh only. Tests, compiler/build/Cargo resolution, lint/format/schema/documentation validators, native/provider/media/CLI execution and CI remain deferred; no Actions were dispatched or polled. Merged implementation is not passing-test, native-fidelity or released-consumer evidence. Earlier receipts and the full original scope follow unchanged.
Implementation checkpoint — 2026-10-13
Merged PR #448 at 5afae5cc6023dac8bd64881bc9ed29a01be1df2e on 2026-10-13.
The #430 implementation checkpoint adds per-target publication evidence, preserves same-content target provenance and metadata-sensitive hygiene decisions, supplies a bounded public-CLI multi-family fixture and authored synthetic/negative corpus, shares doctor route declarations with generated capability documentation, and documents Flow's native-evidence handoff.
This is authored integration, not executed multi-family proof. Tests, compilation/build, lint/formatting, schema validation, fixture execution, native probes/conversions, platform qualification and CI remain intentionally deferred. Source review, pure capability documentation generation and Git content identity checks were performed. Rust/Python regression cases are authored and unrun. No Actions were dispatched or polled.
Remaining scope: general original-Fountain to FDX/Fade In/OSF/canonical exports remain unsupported; recovery-native exports are a separate lossy route. Plain transcript text export is standalone, not a graph edge. Actual native/media fixtures, CLI/SDK parity, source suppression/repeatability and released Flow consumption still need evidence. Optional unconfigured jobs are unattempted, not successful or observed provider absences.
The #430 handoff, Flow contract, fixture guide, capability matrix and roadmap record these boundaries. The closed #338 capability sweep is historical scope, not proof of every later #421/#430 arrow.
#430 and #421 stay open with their acceptance criteria unchecked. #406 is the next planned implementation lane; #412/#413, #429 and #419 retain fixture/toolchain/release qualification for the later test session. No new audit issues were created.
Prior planner/recovery/toolchain checkpoints merged through #445, #446 and #447. The original epic scope follows unchanged.
Outcome
Make Renderflow capable of taking one artifact and producing a truthful, bounded derivative forest across high-value formats without recursive conversion loops, duplicate outputs, or silent information loss.
This epic closes a gap exposed by the current format model: formats such as Fountain are represented in the v2 graph/capability registry, but the normal execution path and provider ecosystem do not yet make the screenplay family fully executable.
It also adds the transcript/subtitle side needed by media and comic-production workflows, while preserving the ownership boundary that Aniflow owns temporal media workflows and Flow owns cross-tool orchestration.
Product model
A source artifact should be able to request a policy such as "everything valid for this source" and receive each eligible derivative once.
Example:
screenplay.fountain
│
├──→ screenplay.fdx
├──→ screenplay.fadein
├──→ screenplay.osf
├──→ screenplay.json
├──→ screenplay.pdf
└──→ screenplay-report.json
The source format is not regenerated by default.
A different source may enter through a lossy recovery path:
screenplay.pdf
↓
text/layout extraction
↓
screenplay recovery assessment
↓
screenplay intermediate
├──→ fountain
├──→ fdx
├──→ fadein
└──→ osf
The recovered screenplay must remain explicitly derived/lossy and may require review. Renderflow must never claim PDF → Fountain round-trip fidelity.
For media:
video/audio
├──→ existing embedded subtitle streams
└──→ speech transcription
↓
timed transcript
├──→ srt
├──→ webvtt
├──→ json
└──→ text
Core planner rule: derivative forest, not recursive graph traversal
The transformation graph may contain cycles such as Fountain ↔ FDX. Exhaustive execution must therefore be target-oriented rather than edge-recursive.
The planner must:
- compute eligible target formats/capabilities from source + profile + available providers;
- produce each requested target identity at most once;
- exclude source-format identity unless explicitly requested;
- use simple paths without repeated format nodes;
- rank competing paths by explicit policy;
- record information-loss/fidelity transitions;
- stop at unsupported/unavailable/provider-blocked targets without inventing success;
- avoid deriving a target from another derivative when a higher-fidelity source path is available;
- preserve exact lineage and selected-provider evidence.
Initial provider candidates
Evaluate as external command providers; do not vendor or link copyleft implementation into Renderflow core.
- scripttool — FDX/FadeIn/OSF ↔ Fountain plus Fountain → JSON/reporting surface.
- afterwriting-labs / afterwriting CLI — Fountain → formatted PDF and screenplay analysis/statistics.
- Poppler/pdftotext or equivalent — deterministic PDF text extraction candidate.
- Tesseract — OCR fallback for image-only/scanned script pages, already represented in the tool ecosystem.
- FFmpeg/ffprobe — embedded subtitle discovery/extraction and subtitle conversion where proven.
- whisper.cpp or another reviewed local-first provider — speech-to-timed-transcript candidate.
Provider adoption requires current version/license/maintenance/runtime evaluation, bounded direct-argv execution, capability declarations, validation, fixtures, and provenance.
Comic-production relevance
Comics and narrative projects should be able to retain a script artifact alongside visual pages and release products.
Do not pretend screenplay formats preserve comic-specific panel/page semantics losslessly. A later comic-script profile may project canonical comic page/panel/dialogue/caption data into a screenplay-compatible representation, with explicit loss metadata.
The immediate goal is to make Fountain and related script artifacts first-class derivatives so Flow can later request an expansive artifact forest when finalizing a project.
Cross-tool boundary
- Renderflow: static artifact detection, conversion, extraction, screenplay/subtitle/transcript schemas, provider adapters, validation, derivative planning, provenance.
- Aniflow: temporal segmentation/reconstruction and advanced media workflow ownership.
- Flow: orchestrates released Renderflow/Aniflow capabilities into project-level runs, checkpoints, resumability, policy, and final artifact forests.
- Content repositories: own canonical creative source and approval.
Completion
This epic closes only after its checkpoint issues produce:
- cycle-safe derivative-forest planning;
- truthful screenplay format execution;
- Fountain/FDX/FadeIn/OSF provider-backed conversions;
- screenplay PDF/report generation;
- bounded PDF/script recovery;
- subtitle extraction/conversion;
- local speech transcription;
- machine-readable capability truth and fixtures;
- one integration fixture demonstrating a multi-family artifact forest;
- roadmap and downstream Flow handoff updates.
No network publication, source mutation, creative approval, or sibling-source import belongs here.
Checkpoint roadmap
- [Artifact Forest 1/9] Define cycle-safe exhaustive derivative planning #422 — cycle-safe exhaustive derivative planning
- [Artifact Forest 2/9] Define canonical screenplay artifacts and capability truth #423 — canonical screenplay artifacts and capability truth
- [Artifact Forest 3/9] Add bounded scripttool screenplay conversion adapter #424 — scripttool adapter: FDX/FadeIn/OSF ↔ Fountain
- [Artifact Forest 4/9] Add afterwriting Fountain PDF and screenplay-analysis adapter #425 — afterwriting adapter: Fountain → PDF and analysis
- [Artifact Forest 5/9] Recover screenplay structure from PDF and unstructured text #426 — lossy PDF/text → screenplay recovery
- [Artifact Forest 6/9] Add timed-text formats and embedded subtitle extraction #427 — timed-text formats and embedded subtitle extraction
- [Artifact Forest 7/9] Add local speech-to-timed-transcript provider #428 — local speech → timed transcript
- [Artifact Forest 8/9] Add a creative conversion toolchain profile and doctor surface #429 — optional creative provider toolchain/doctor profile
- [Artifact Forest 9/9] Prove the multi-family artifact forest and hand it to Flow #430 — multi-family artifact-forest proof and Flow handoff
Dependency shape
#422 graph policy ─────────────────────────────────────────────┐
│
#423 screenplay model │
├──→ #424 scripttool ───────────────┐ │
├──→ #425 afterwriting ─────────────┤ │
└──→ #426 PDF/text recovery ────────┤ │
│ │
#427 timed text ──→ #428 transcription│ │
├──→ #429 toolchain ─────┤
│ │
└────────────────────────┴──→ #430
Flow handoff
#422 and #423 may begin in parallel. #427 may also proceed independently.
#429 is a consolidation checkpoint, not a reason to block adapter implementation.
Audit-to-roadmap reconciliation — 2026-10-21
Audit: https://github.com/egohygiene/renderflow/blob/audit/flow-suite-20261021T025401Z/audits/flow-suite-20261021T025401Z.md · Complete roadmap: #367
Keep all nine children and their original scenarios; source merge is not exhaustive multi-family proof.
Bounded preparation: Reconcile child source boundaries and unqualified/unsupported routes.
Full outcome remains gated (*): Complete #422–#430 outcomes, exact fixture/provider qualification and released downstream handoff.
The maintainer's implementation-sprint qualification deferral remains in force. This audit ran no Renderflow tests, compiler/build/Cargo resolution, product lint/format/schema qualification, native/CLI/provider/visual execution, installers or new CI. Reading existing exact-source provider records is not a qualification rerun. Source implementation and authored tests are not passing-test, native-fidelity, release or downstream-consumer evidence.
This is an additive planning note. The full original issue, acceptance criteria, scope, parent references and historical checkpoints remain authoritative and unchanged. No acceptance box or issue is closed by this audit. Recommended ledger parent: #367.
Activity
Merge #448: creative forest evidence and Flow handoff [skip ci]
Merge selectable artifact forest checkpoint #464 [skip ci]
Merge artifact forest SDK publication checkpoint #465 [skip ci]