TasteForge Video

← Back to skills

TasteForge turns "make it feel like this reference" into a repeatable, inspectable workflow: interview taste, distill it into a structured style pack, validate the pack, apply its measured cadence and look to local media, and export an editable timeline. The canonical implementation is the `tasteforge` package in the Itô video repository; ECC orchestrates and explains it and does not vendor or duplicate its code.

Category: Marketing & Content
Repo: affaan-m-everything-claude-code
Path: skills/tasteforge-video/SKILL.md
Updated: 8/19/2026, 11:31:56 PM

AI Summary

TasteForge turns "make it feel like this reference" into a repeatable, inspectable workflow: interview taste, distill it into a structured style pack, validate the pack, apply its measured cadence and look to local media, and export an editable timeline. The canonical implementation is the `tasteforge` package in the Itô video repository; ECC orchestrates and explains it and does not vendor or duplicate its code. It is useful for content creation, SEO, copywriting, marketing automation, and social media. Source: affaan-m-everything-claude-code (skills/tasteforge-video/SKILL.md).

TasteForge Video

TasteForge turns "make it feel like this reference" into a repeatable, inspectable workflow: interview taste, distill it into a structured style pack, validate the pack, apply its measured cadence and look to local media, and export an editable timeline. The canonical implementation is the tasteforge package in the Itô video repository; ECC orchestrates and explains it and does not vendor or duplicate its code.

When to Use

  • The user asks to interview for video taste before any footage is made ("ask me about the look", "interview me about aesthetic direction").
  • The user wants to distill an aesthetic into structured constraints — a reusable style pack rather than vibes ("turn these references into a pack").
  • The user wants to validate a style pack (is the metadata complete, schema-valid, cadence measured, spec distilled?).
  • The user wants to apply a style pack to local footage — plan a cut from the pack's measured cadence over local clips, deterministically.
  • The user wants to export EDL/FCPXML — an editable, frame-exact handoff to DaVinci Resolve / Premiere / Final Cut.
  • The user asks for a generated-media provenance audit — where did this pack, spec, or cut come from; what was measured locally versus generated by a provider; what was dry-run.
  • The user asks to discover or plan file-driven multimodal image, video, or 3D-asset outputs from local reference files, including separate manifests, subject-anchored CV effects, or Resolve effect recipes.
  • The user mentions TasteForge, style packs, flashethereal, taste distillation, cadence/rhythm planning, multimodal discovery, distill/apply workflows, or a taste interview for video.

Local Deterministic Operations vs Provider Generation

This boundary is the core of the skill. Everything ECC can actually run is local, deterministic, and offline:

OperationDeterministic?ECC may run
Taste interview → profileyes (offline)yes
Pack inspect / validate against schemasyesyes
Distill profile (+ measured grounding) → specyes (dry-run semantics)yes
Apply pack cadence to local media → report + timelineyesyes
Export EDL (CMX3600) / FCPXML 1.9yesyes
Provenance / lineage reportyesyes
Vision-model distillation of stillsprovider generationno
Reference-to-video, image-to-3D, hosted composeprovider generationno

Provider generation must fail closed in ECC. Any live Fal (or other provider) call — generating shots, minting prop meshes, hosted VLM distillation — requires explicit separately authorized execution under a separate lane with its own review. ECC never calls Fal, never reads any API key or other credentials (FAL_KEY included), uploads no media, and mutates no provider account state. When a request needs provider generation, state exactly that boundary, run the local half (interview, pack validation, planning, export), and stop.

Never claim a Fal workflow is saved. A local reference to a Fal endpoint, model id, or dry-run URL (they appear inside pack metadata) is reference-only: it never means a provider-side workflow was saved, persisted, or is authorized to run. Anything produced offline carries dry-run/dry_run semantics — say "dry-run spec" or "deterministic plan", never "generated by the model".

Canonical Implementation

  • Repository: Ito-Markets/ito-video — find it under the workspace's canonical local GitHub checkout root (never a hard-coded machine path); package directory tasteforge/.
  • CLI: python3 -m tasteforge <command>provenance, inspect, validate, interview, distill, apply, export, multimodal. --live flags exit with code 2 and refuse.
  • Schemas are the contract: taste profile, pack manifest, grade, cadence, spec, timeline events, application reports (provider is enum-locked to "none"; dry_run to true).
  • Recovered-source lineage and deliberate exclusions live in the repo's PROVENANCE.md. Run python3 -m tasteforge provenance for the machine- readable version.

ECC's job is to route here, run the local deterministic commands, and interpret their JSON — not to reimplement cadence planning, LUT/grade statistics, or timeline emission. If the canonical package is absent, say so and stop; do not reconstruct its logic inline.

Workflow

  1. Interview (interview): collect answers for the look axes — palette, grain, lighting, focal length, camera motion, subject framing, grade, mood adjectives, avoid list — and separately the content brief. Keep look and content separate; merging them is the classic failure.
  2. Distill (distill): map the profile onto the spec schema offline, embedding the pack's measured grounding (black/white point, contrast, per-zone chroma, palette, cut rhythm) when a pack is supplied. The result is a dry-run spec: deterministic, provider "none".
  3. Validate (validate / inspect): check the pack against its schemas; report errors vs warnings (missing stills in a metadata-only pack are a warning, not an error).
  4. Apply (apply): plan shot durations from the pack's measured cadence (seeded, deterministic) over the user's local clips; produce the application report and frame-exact timeline events.
  5. Export (export): write CMX3600 EDL + FCPXML 1.9 with rational, NTSC-safe times for import into a real NLE.
  6. Audit (provenance): report lineage — recovered-source digests, generation history, fixture provenance, provider references as pointer-only records.

File-Driven Multimodal Contract

Use this path when local references must drive dry-run generation plans for image, video, and 3D-asset outputs while preserving genre separation:

python3 -m tasteforge multimodal --config workflow.json --out-dir out/multimodal

The config names numbered genres and local evidence files. Keep these candidate genres distinct rather than blending them into one generic aesthetic:

  1. Flash Ethereal
  2. 3D Cyber Glitch
  3. Fluid Sketch

The command measures local references with ffprobe/ffmpeg and emits one style spec per genre, separate image, video, and 3D-asset manifests, provenance, and a Resolve effect recipe. The effect schedule must be seeded aperiodic. CV effects require a real subject anchor whose exact lost-track policy is disable_effect_until_track_recovers; continue_without_anchor and every other policy fail closed. Every effect carries placement constraints that preserve faces and readable type and prevent decorative corner meshes from replacing full-frame 3D work.

The returned receipt is the bundle boundary. It binds every emitted evidence artifact by relative path, byte size, SHA-256, genre, modality, provider_execution:false, and exact reference/time provenance. The receipt requires provider_calls:0 as an exact integer (the JSON boolean false is invalid), provider_execution:false, and dry_run:true. Every genre spec also requires explicit dry_run:true. The Resolve effect recipe requires that same exact integer provider_calls:0, provider_execution:false, and dry_run:true. Every modality manifest and every nested request must contain all four exact fail-closed fields: integer provider_calls:0, provider_execution:false, dry_run:true, and submit:false; each request also requires provider_call_mode:"disabled". A missing field is a rejection, not a default, and dry_run:false must be rejected before output is written.

Treat booleans as invalid numbers everywhere in timeline, evidence, probe, and source-duration data. Every such numeric value must be a finite real: reject true, false, NaN, infinities, negative event starts, non-positive durations, out-of-range evidence times, and events ending beyond the declared finite positive timeline. Whole-file evidence uses an explicit whole-file time basis and never invents timestamps.

Receipt references are the duration authority. Key each validated reference duration by its cited SHA-256; duplicate occurrences of one digest must agree on duration or the bundle is invalid. Every effect evidence source_duration and every subject-anchor source_duration must equal that digest's validated receipt duration, not merely contain its cited time. Probe duration and all probe measurements must describe the same stable bytes used for byte count and SHA-256. If the source mutates while probing or rehashes differently while it is still available, fail closed rather than emitting or accepting a receipt.

Always run bundle validation after creation. A missing image, video, or 3D-asset manifest must fail closed. Genericized or duplicate genres, periodic schedules, unanchored CV effects, missing placement constraints, provider-execution flags, unbound output files, byte-size drift, or SHA-256 tampering must fail closed. Reject output roots, intermediates, or artifacts that are symlinks, and reject special files (including FIFOs and devices); outputs must remain regular files under a real directory tree. If local ffmpeg or ffprobe is unavailable, the CLI must return its bounded nonzero local-media-processing error without a Python traceback. Do not repair a failed receipt by deleting evidence or weakening validation.

Example Session

# in the canonical ito-video checkout
python3 -m tasteforge validate stylepacks/flashethereal
python3 -m tasteforge interview --answers answers.json --genre flashethereal --out profile.json
python3 -m tasteforge distill --profile profile.json --pack stylepacks/flashethereal --out spec.json
python3 -m tasteforge apply --pack stylepacks/flashethereal --media media.json --duration 20 --out report.json
python3 -m tasteforge export --events events.json --out-dir out --title flashethereal-cut
python3 -m tasteforge provenance

If the user asks for the shots to actually be generated: stop, explain the fail-closed provider boundary, and deliver the deterministic plan, spec, and editable timeline instead.

Related skills