mirror of
https://github.com/affaan-m/ECC.git
synced 2026-09-08 07:37:48 +02:00
docs(skills): define TasteForge multimodal contract
This commit is contained in:
@@ -106,6 +106,42 @@ and stop; do not reconstruct its logic inline.
|
||||
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:
|
||||
|
||||
```bash
|
||||
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 with fail-closed track-loss behavior.
|
||||
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. Manifests and
|
||||
requests also require `provider_calls: 0`, `provider_execution: false`,
|
||||
`submit: false`, and disabled provider-call mode. Whole-file evidence uses an
|
||||
explicit whole-file time basis and never invents timestamps.
|
||||
|
||||
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.
|
||||
Do not repair a failed receipt by deleting evidence or weakening validation.
|
||||
|
||||
## Example Session
|
||||
|
||||
```bash
|
||||
|
||||
@@ -81,6 +81,27 @@ test("describes the deterministic workflow surface faithfully", () => {
|
||||
assert.match(skill, /style pack/i);
|
||||
});
|
||||
|
||||
test("defines the fail-closed file-driven multimodal contract", () => {
|
||||
const skill = read("skills/tasteforge-video/SKILL.md");
|
||||
assert.match(skill, /python3 -m tasteforge multimodal --config/);
|
||||
for (const phrase of [
|
||||
/Flash Ethereal/,
|
||||
/3D Cyber Glitch/,
|
||||
/Fluid Sketch/,
|
||||
/image.*video.*3D-asset/is,
|
||||
/seeded aperiodic/i,
|
||||
/subject anchor/i,
|
||||
/placement constraints/i,
|
||||
/provider_execution:\s*false/i,
|
||||
/path.*byte size.*SHA-256/is,
|
||||
/genre.*modality/is,
|
||||
/exact reference\/time provenance/i,
|
||||
/provider_calls:\s*0/i,
|
||||
]) assert.match(skill, phrase);
|
||||
assert.match(skill, /missing.*manifest.*fail closed/is);
|
||||
assert.match(skill, /tamper.*fail closed/is);
|
||||
});
|
||||
|
||||
test("ships through the opt-in media-generation install module and npm package", () => {
|
||||
const modules = readJson("manifests/install-modules.json").modules;
|
||||
const module = modules.find((candidate) => candidate.id === "media-generation");
|
||||
|
||||
Reference in New Issue
Block a user