Best for
- The user asks to interview for video taste before any footage is made
- The user wants to distill an aesthetic into structured constraints — a
- The user wants to validate a style pack (is the metadata complete,
affaan-m/ECC/skills/tasteforge-video/SKILL.md
Use for file-driven multimodal image, video, and 3D-asset discovery; taste interviews; distill or apply workflows; style-pack validation; editable EDL/FCPXML export; provenance audits; and offline planning that must fail closed before provider generation.
Decision brief
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 implementa…
Compatibility matrix
| Platform | Status | Evidence | What to check |
|---|---|---|---|
| Codex | Not declared | No explicit evidence | Portability before use |
| Claude Code | Not declared | No explicit evidence | Portability before use |
| Cursor | Not declared | No explicit evidence | Portability before use |
| Gemini CLI | Not declared | No explicit evidence | Portability before use |
Installation
The source command is displayed only when detected. A safe inspection prompt is always available so your agent can explain every action before execution.
npx skills add https://github.com/affaan-m/ECC --skill "skills/tasteforge-video"Inspect the Agent Skill "tasteforge-video" from https://github.com/affaan-m/ECC/blob/d8409a4b0813771235555e32e3d8046a73988bfa/skills/tasteforge-video/SKILL.md at commit d8409a4b0813771235555e32e3d8046a73988bfa. List every install step, command, network request, credential, file read/write, external action, and rollback step. Explain whether it fits my task. Do not install or execute anything until I approve.
Workflow
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.
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. Di…
The user asks to interview for video taste before any footage is made
This boundary is the core of the skill. Everything ECC can actually run is local, deterministic, and offline:
Use this path when local references must drive dry-run generation plans for image, video, and 3D-asset outputs while preserving genre separation:
Permission review
The documentation asks the agent to run terminal commands or scripts.
python3 -m tasteforge multimodal --config workflow.json --out-dir out/multimodalThe documentation asks the agent to run terminal commands or scripts.
python3 -m tasteforge validate stylepacks/flashetherealEvidence record
| Signal | Value | Evidence type | Meaning |
|---|---|---|---|
| Quality score | 93/100 | Computed | Documentation, specificity, maintenance, and trust rules |
| Repository stars | 242,963 | Source | Repository attention, not individual Skill quality |
| Compatibility | 0 platforms | Source | Declared in the catalog source record |
| Usage guide | automated source guide | Editorial | Generated or reviewed according to the visible evidence level |
Pinned source
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.
This boundary is the core of the skill. Everything ECC can actually run is local, deterministic, and offline:
| Operation | Deterministic? | ECC may run |
|---|---|---|
| Taste interview → profile | yes (offline) | yes |
| Pack inspect / validate against schemas | yes | yes |
| Distill profile (+ measured grounding) → spec | yes (dry-run semantics) | yes |
| Apply pack cadence to local media → report + timeline | yes | yes |
| Export EDL (CMX3600) / FCPXML 1.9 | yes | yes |
| Provenance / lineage report | yes | yes |
| Vision-model distillation of stills | provider generation | no |
| Reference-to-video, image-to-3D, hosted compose | provider generation | no |
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".
Ito-Markets/ito-video — find it under the workspace's
canonical local GitHub checkout root (never a hard-coded machine path);
package directory tasteforge/.python3 -m tasteforge <command> — provenance, inspect, validate,
interview, distill, apply, export, multimodal. --live flags exit
with code 2 and refuse.provider is enum-locked to
"none"; dry_run to true).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.
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.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".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).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.export): write CMX3600 EDL + FCPXML 1.9 with rational,
NTSC-safe times for import into a real NLE.provenance): report lineage — recovered-source digests,
generation history, fixture provenance, provider references as
pointer-only records.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:
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.
# 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.
Frequently asked questions
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 implementa…
The source record exposes this install command: npx skills add https://github.com/affaan-m/ECC --skill "skills/tasteforge-video". Inspect the command and pinned source before running it.
Static rules flagged exec-script in the source; the page lists the matching lines and excerpts.
Alternatives
garrytan/gbrain
End-to-end discipline for turning any large data source (audio libraries, email takeouts, document corpora, chat exports, API dumps) into brain pages at scale. The lifecycle spine: SCHEMA → ACCESS → TRIAL → EVALUATE → IMPROVE → CODIFY → TEST → SKILLIFY → BULK → MONITOR. State is tracked in a durable JSON manifest (see MANIFEST-PATTERN.md) so any crash, session boundary, or subagent fan-out resumes from ground truth instead of memory.
alirezarezvani/claude-skills
App Store Optimization (ASO) toolkit for researching keywords, analyzing competitor rankings, generating metadata suggestions, and improving app visibility on Apple App Store and Google Play Store. Use when the user asks about ASO, app store rankings, app metadata, app titles and descriptions, app store listings, app visibility, or mobile app marketing on iOS or Android. Supports keyword research and scoring, competitor keyword analysis, metadata optimization, A/B test planning, launch checklist
wanshuiyin/Auto-claude-code-research-in-sleep
Use it for operations and research tasks; the detail page covers purpose, installation, and practical steps.
prowler-cloud/prowler
PostgreSQL indexing best practices for Prowler: index design, partial indexes, partitioned table indexing, EXPLAIN ANALYZE validation, concurrent operations, monitoring, and maintenance. Trigger: When creating or modifying PostgreSQL indexes, analyzing query performance with EXPLAIN, debugging slow queries, reviewing index usage statistics, reindexing, dropping indexes, or working with partitioned table indexes. Also trigger when discussing index strategies, partial indexes, or index maintenance