Skip to content

[EPIC][Artifact Forest] Build truthful screenplay, transcript, and exhaustive derivative workflows #421

Open
0 of 10 issues completed

Description

@szmyty

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:

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

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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions