Commit Graph

139 Commits

Author SHA1 Message Date
Calesthio 7cda18df13 Merge pull request #188 from 0xDevNinja/chore/gitattributes-line-endings
chore: add .gitattributes to normalize line endings
2026-06-26 11:22:34 -07:00
Calesthio af778b2340 Merge pull request #162 from mlaniak/claude/friendly-aryabhata-fd5bd4
chore: gitignore downloaded voice models (*.onnx)
2026-06-26 11:12:07 -07:00
Calesthio 05cadb74ee Merge pull request #195 from 0xDevNinja/fix/issue-60-reference-analyst-runtime-default
fix: defer composition runtime choice to Present Both gate in reference-analyst
2026-06-26 11:10:22 -07:00
Calesthio ff93b20339 Merge pull request #196 from An-idd/fix/provider-model-default-drift
fix(video): runway/higgsfield model defaults diverge from schema → wrong cost & silent model swap
2026-06-26 11:09:25 -07:00
Calesthio 27144c70e6 Merge pull request #197 from 0xDevNinja/chore/issue-61-orphaned-agents-stale-gsap
docs: resolve orphaned skill AGENTS.md scope and stale gsap README (#61)
2026-06-26 11:08:44 -07:00
0xDevNinja 8cb971b233 docs: de-stale gsap/README.md and mark it a non-loadable nav map
The GSAP family README described HyperFrames as a 'future' engine ('if the
parallel HyperFrames engine gets wired in', 'becomes a day-1 skill', 'Future
hyperframes_compose tool — if added'). Every other artifact (AGENT_GUIDE.md,
skills/core/hyperframes.md, skills/INDEX.md) treats HyperFrames as a fully
production composition runtime, and hyperframes_compose is a registered tool.

Update the HyperFrames references to present-tense production reality. Also add
a scope note: this directory has no SKILL.md and is not a loadable skill — it
is a navigation map for the sibling gsap-* skills, which removes the ambiguity
about why it is not loadable via agent_skills[].

Closes #61
2026-06-26 13:18:35 +05:30
0xDevNinja 9631e077a2 docs: scope orphaned skill-level AGENTS.md as supplementary references
Three skill directories ship a long-form upstream AGENTS.md alongside their
loadable SKILL.md:

  .agents/skills/flux-best-practices/AGENTS.md
  .agents/skills/vercel-composition-patterns/AGENTS.md
  .agents/skills/vercel-react-best-practices/AGENTS.md

None were referenced by their parent SKILL.md, skills/INDEX.md, AGENT_GUIDE.md,
or any pipeline manifest, leaving their authority scope undefined relative to
the repository-root AGENTS.md (override / extend / ignore?).

Reference each from its SKILL.md with explicit scope: the AGENTS.md is
supplementary upstream reference material for that skill only, SKILL.md is the
loadable entry point and the authority, and it does not override or extend the
root AGENTS.md / AGENT_GUIDE.md. Preserves the vendored content while removing
the ambiguity.

Refs #61
2026-06-26 13:18:35 +05:30
An-idd 93d96de8f1 fix(video): runway/higgsfield model defaults diverge from schema
runway (estimate_cost/estimate_runtime/execute) defaulted to gen4_turbo and
higgsfield (execute) defaulted to kling_3.0, while both schemas advertise
seedance_2.0 as model.default. Omitting model under-quoted cost (runway 6x:
$0.25 vs $1.50) and silently generated a different model than advertised,
violating the Decision-Communication / cost-accuracy contract.

Root cause was a default duplicated across schema + 3 methods that drifted.
Collapse it to a single _DEFAULT_MODEL constant referenced everywhere.

Add tests/tools/test_provider_model_defaults.py to lock each tool's
estimate default to its schema default and guard the execute path.
2026-06-26 15:30:22 +08:00
0xDevNinja 00604e293d fix: defer composition runtime choice to Present Both gate in reference-analyst
The video-reference-analyst capability audit pre-locked Remotion as the
default composition engine ('Remotion is the default ... Never default to
FFmpeg when Remotion is available'). Because the analyst skill runs first
in any reference-led flow, this silently locked the runtime before the user
was ever offered a choice — violating the 'Present Both Composition Runtimes
(HARD RULE)' in AGENT_GUIDE.md, which forbids silently picking a default and
treats Remotion and HyperFrames as parallel, non-ranked runtimes.

It also omitted HyperFrames from the engine list entirely, so it was never
surfaced as an option in the reference-led path.

Update Step 2 (Capability Audit) to:
- add HyperFrames to the audited runtime list
- remove the 'Remotion is the default / preferred' framing
- defer engine selection to the AGENT_GUIDE 'Present Both' gate
- keep FFmpeg scoped to standalone ops, not composition

Closes #60
2026-06-26 12:53:20 +05:30
Mike Laniak cf3bb2b8ed fix(setup): add numpy to requirements; gitignore downloaded voice models
tools/video/green_screen_composite.py imports numpy at module level (and
declares "python:numpy" as a dependency), but numpy was missing from
requirements.txt. Because registry.discover() imports every tool module,
a fresh `make setup` followed by the mandatory preflight crashes with
ModuleNotFoundError: No module named 'numpy'. Add numpy>=1.24.

Also gitignore *.onnx/*.onnx.json so Piper TTS voice models fetched at
runtime (e.g. en_US-lessac-medium.onnx, ~60MB) aren't accidentally
committed to the repo root.

Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>
2026-06-25 20:45:50 -05:00
Calesthio 0d917ea2ca Merge pull request #193 from calesthio/codex/add-ci-pipeline
[codex] Add GitHub Actions CI pipeline
2026-06-25 16:56:27 -07:00
calesthio 6419cfcf97 ci: add GitHub Actions validation pipeline 2026-06-25 13:19:12 -07:00
Calesthio 758f6ebd21 Merge pull request #190 from 0xDevNinja/chore/issue-pr-templates
chore: add issue templates and a pull-request template
2026-06-25 12:38:17 -07:00
Calesthio 928311bf58 Merge pull request #191 from harshdadiya-wappnet/fix/skill-warnings-and-references
fix: resolve skill loading warnings and correct video-toolkit naming
2026-06-25 11:58:19 -07:00
Calesthio 82c5cff606 Merge pull request #186 from 0xDevNinja/fix/windows-remotion-props-equals
fix: use --props=<path> equals form for Remotion render on Windows
2026-06-25 11:40:01 -07:00
Harsh Dadiya Wappnet 3656222356 fix: resolve skill loading warnings and correct video-toolkit naming 2026-06-25 19:00:47 +05:30
0xDevNinja bbb0e929ac chore: add issue templates and a pull-request template
The repo had no .github issue or PR templates, so bug reports arrived
with inconsistent detail and questions landed on the tracker instead of
Discussions.

Add GitHub community templates:
- ISSUE_TEMPLATE/bug_report.yml: structured form (OS, pipeline, runtime,
  repro, expected vs actual, logs)
- ISSUE_TEMPLATE/feature_request.yml: problem / solution / alternatives
- ISSUE_TEMPLATE/config.yml: disables blank issues and routes questions,
  ideas, and show-and-tell to the existing Discussions categories
- PULL_REQUEST_TEMPLATE.md: summary, linked issue, testing, checklist

Additive only; no source changes.

Closes #189
2026-06-25 18:52:25 +05:30
0xDevNinja 4bb9f54084 chore: add .gitattributes to normalize line endings
Without a .gitattributes, line-ending normalization depends on each
contributor's local core.autocrlf. On Windows checkouts this can
materialize text files — and shell scripts like render-demo.sh — with
CRLF, which breaks script shebangs and produces noisy cross-platform
diffs.

Add a root .gitattributes that:
- defaults all text files to LF (* text=auto eol=lf)
- pins shell scripts, Makefile and .env.example to LF explicitly
- keeps .bat/.cmd as CRLF
- marks image/video/audio/font assets as binary so Git never
  normalizes or diffs them

Only the policy file is added; existing files are intentionally left
unrenormalized to keep this change reviewable.

Closes #187
2026-06-25 18:49:45 +05:30
0xDevNinja c5f6859a83 fix: use --props=<path> equals form for Remotion render
On Windows, passing --props and the JSON path as two separate CLI
arguments causes Remotion to mis-parse the value due to platform quote
escaping, failing with "neither valid JSON nor a file path to a valid
JSON file". Switch to the --props=<path> equals form, which Remotion
recommends for file paths and which works consistently across
platforms.

Fixes #172
2026-06-25 18:23:28 +05:30
calesthio 7ee36dd6b6 docs: add provider viability review guidance 2026-06-24 10:55:33 -07:00
Calesthio 704b281a8f Merge pull request #159 from KasuganoMeow/feat/zh-CN-README
i18n: add README zh-CN translation
2026-06-24 10:38:06 -07:00
Calesthio 29fe30401b Merge pull request #171 from calesthio/codex/add-pr-review-guide
Add public PR review guide
2026-06-24 10:04:10 -07:00
calesthio 69e2ff1f00 docs: add PR review guide 2026-06-24 09:32:18 -07:00
calesthio a5b5b12142 docs(readme): add sponsor link 2026-06-23 17:05:25 -07:00
calesthio ddfd567c92 chore: enable GitHub Sponsors button 2026-06-23 17:02:37 -07:00
Kasugano2563 1ef5db12a6 i18n: add README zh-CN translation
Signed-off-by: Kasugano2563 <kasugano1966@proton.me>
2026-06-24 06:35:59 +08:00
Calesthio beb7fdc846 Merge pull request #140 from Diwakar-odds/feat-checkpoint-resume
feat: add intra-stage generation checkpoint and resume support (closes #129)
2026-06-23 12:27:52 -07:00
calesthio d9793ed0e4 docs: clarify partial checkpoint validation 2026-06-23 12:12:32 -07:00
Calesthio 32836fc99a Merge pull request #132 from shubham21155102/feat/google-service-account-auth
feat(google): service-account auth for TTS + Imagen (Vertex AI), fix false-availability bugs
2026-06-23 12:00:56 -07:00
Calesthio 8ce5c042f0 Merge pull request #138 from evanclan/fix/e2e-edit-decisions-render-runtime
fix(tests): carry render_runtime into e2e edit_decisions fixture (#69)
2026-06-23 11:14:51 -07:00
Calesthio 58578ce290 Merge pull request #139 from CooperSheroy/catalina/makefile-python3-lint-20260623
Make Makefile Python targets use python3
2026-06-23 11:00:35 -07:00
Diwakar-odds c49d1ddb9e feat: add intra-stage generation checkpoint and resume support (closes #129) 2026-06-23 13:48:17 +05:30
CooperSheroy 1948dce913 build: make Python targets use python3 2026-06-23 11:23:37 +05:30
Evan Alferez 6b72f954a7 fix(tests): carry render_runtime into e2e edit_decisions fixture (#69)
tests/qa/test_08_end_to_end.py runs at module import, so pytest fails
collection with CheckpointValidationError: the Stage 5 edit_decisions
fixture omits render_runtime, which edit_decisions.schema.json lists as
required. Per AGENT_GUIDE the runtime is locked at proposal and carried
through edit unchanged, so the fixture now sources it from the same
proposal_packet["production_plan"]["render_runtime"] ("remotion")
instead of hardcoding an unrelated value, keeping the fixture internally
consistent with the proposal it builds on.
2026-06-23 08:43:55 +09:00
calesthio 28dda8c808 docs(readme): add #1 GitHub Trending badge 2026-06-22 11:12:00 -07:00
Shubham 806f7ee1ac feat(google): support service-account auth for TTS + Imagen, fix false availability
Google's TTS and Imagen tools advertised service-account auth
(GOOGLE_APPLICATION_CREDENTIALS) but only ever authenticated with an API
key string, so users with a service-account JSON could not use either tool.
google_tts.get_status() also over-reported availability when the JSON was
set, then failed at execute() — a silent-availability bug.

Separately, both hand-rolled _load_dotenv parsers kept inline comments as
values, so after `cp .env.example .env` every keyed tool falsely reported
"available" with no real credentials.

Changes:
- Add tools/google_credentials.py: lazy google-auth Bearer-token helper.
- google_tts: authenticate via Cloud TTS Bearer token when only a service
  account is configured; make get_status() honest.
- google_imagen: route service-account auth to Vertex AI
  ({location}-aiplatform.googleapis.com) with project/location resolution,
  alongside the existing AI Studio API-key path.
- Fix both _load_dotenv parsers to strip inline comments (quote-aware).
- Add google-auth to requirements; document the new env vars in .env.example.
- .gitignore: never commit GCP service-account key files.

Verified locally with a real service account: TTS produced a valid MP3 and
Imagen produced a valid 1408x768 PNG via Vertex AI. Existing test suite
passes (2 unrelated pre-existing failures only).

Closes #131

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-06-22 17:53:10 +05:30
Calesthio 9066dcb2e3 Merge pull request #57 from RayJiang4S/doubao-tts-provider
Add Doubao Speech TTS provider
2026-05-07 05:12:35 -07:00
jiangjiahui5 3ee8548226 feat(tts): add Doubao Speech provider
Add Volcengine Doubao Speech 2.0 as a TTS provider for Mandarin narration with async timestamp metadata, provider documentation, and setup guidance.
2026-05-04 21:40:17 +08:00
calesthio fdd6457fed docs(prompting): adopt 5-aspect video specification across skills
Incorporate the structured taxonomy from Lin et al. "Building a Precise
Video Language with Human-AI Oversight" (CMU/Harvard, arXiv 2604.21718v2).
The paper proves prompts structured around five aspects (Subject /
Subject Motion / Scene / Spatial Framing / Camera) unlock controllable
cinematography in fine-tuned video generation models. Off-the-shelf VLMs
already nail subject and scene; the gains live in motion, spatial, and
camera, which prompts routinely omit.

Universal layer (skills/creative/video-gen-prompting.md, +125 lines):
- 5-aspect prompt skeleton replaces flat formula
- Camera movements regrouped (translation / rotation / lens-only) with
  dolly!=zoom, pan!=truck, bird's-eye!=aerial disambiguations
- New primitive tables: camera height, camera angle, POV, lens
  distortion (fisheye vs barrel), focus / DoF (rack / pull / tracking),
  playback speed (6 modes), subject transitions
- Order-matters and self-contained-prompt rules
- Identity anchoring rule for multi-shot
- Strict static-shot rule, anti-subjective callout, overlays-not-depth
- Per-model word-count guidance

Per-model guides (sora, veo, hunyuan, ltx, seedance):
- Add the primitives each model honors literally
- Word-count sweet spots per model
- Strengthen seedance verbatim-identity and subject-transition guidance

Pipeline directors (cinematic / explainer / animation scene-director,
cinematic / explainer asset-director):
- 5-aspect scene-plan checklist (per-pipeline adapted)
- Overlays-not-depth callout
- Pre / critique / post self-review loop for generation prompts

Reviewer (skills/meta/reviewer.md):
- CHAI critique-quality rules: accurate / complete / constructive
- Critical findings now require a proposed_fix

Storytelling, cinematic, broll, video-reference-analyst:
- Anti-subjective rule (replace mood adjectives with visual causes)
- Camera-intent-per-beat for script writers
- POV column in stock-footage query templates
- 5-aspect structured output mandatory for reference-video analysis

skills/INDEX.md: video-gen-prompting marked as canonical 5-aspect spec.
2026-04-28 08:11:31 -07:00
calesthio 2b0801030c feat(character-animation): add local rigged character pipeline
New beta pipeline for reusable cartoon characters with SVG rigs, pose
libraries, action timelines, and Canvas/Remotion/HyperFrames rendering.

- pipeline_defs/character-animation.yaml: 11-stage manifest
- skills/pipelines/character-animation/: 11 stage director skills
- tools/character/: BaseTool implementations for char design, rigging,
  pose libraries, action timelines, previews, and QA
- schemas/artifacts/{character_design,rig_plan,pose_library,
  action_timeline,character_qa_report}.schema.json: canonical artifacts
- schemas/artifacts/scene_plan.schema.json: extended for character-led
  scenes
- .agents/skills/{canvas-procedural-animation,character-animation-qa,
  character-rigging,pose-library-design,svg-character-animation}/:
  Layer 3 vendor knowledge
- AGENT_GUIDE / PROJECT_CONTEXT / README / ARCHITECTURE / PROVIDERS:
  surface the new pipeline and its capability family
- tools/video/hyperframes_compose.py: SVG character rig support
- tests/contracts/test_character_animation_pipeline.py: contract tests
2026-04-28 08:11:02 -07:00
calesthio 386338c92b feat(remotion): upgrade cinematic TitleCard + add new scene components
- CinematicRenderer.tsx / cinematic/types.ts: TitleCard now supports
  ghosted video background, word-by-word stagger reveal with blur->sharp
  transition, proper newline handling, and growing accent lines. Title
  scenes accept backgroundSrc/backgroundTrimBeforeSeconds/
  backgroundTrimAfterSeconds plus a plate|overlay variant.
- Add CollageBurst, LyricOverlay, ScreenshotScene components.
- Explainer, Root, components/index.ts wiring updates.
- SCENE_TYPES.md reflects the new components.
- seedance-2-0 skill + seedance_video.py: small fixes.
2026-04-23 23:30:23 -07:00
Calesthio 578d77e336 Merge pull request #47 from itsuzef/fix/architecture-hyperframes-package-name
docs(architecture): fix HyperFrames npm package name
2026-04-23 16:42:00 -07:00
Calesthio 676aec6e05 Merge pull request #46 from itsuzef/fix/source-media-review-get-tool
fix(source_media_review): use registry.get() not get_tool()
2026-04-23 16:41:39 -07:00
Calesthio d88b048938 Merge pull request #45 from itsuzef/fix/seedance-upload-image-name
fix(seedance): correct upload_image_fal call name
2026-04-23 16:36:38 -07:00
itsuzef 36c921e3a9 docs(architecture): fix HyperFrames npm package name
ARCHITECTURE.md said `npx @hyperframes/cli` but that scoped package
is a 404. The published npm package is `hyperframes`, consumed as
`npx hyperframes`. hyperframes_compose.py already documents this
distinction in its _NPM_PACKAGE constant and install_instructions.
2026-04-23 01:47:52 -04:00
itsuzef f53f0785e4 fix(source_media_review): use registry.get() not get_tool()
ToolRegistry exposes get(name) but source_media_review called the
non-existent get_tool(name) in four places — audio_probe (×2),
frame_sampler, and transcriber. All four renamed to .get().
2026-04-23 01:45:00 -04:00
itsuzef 099cde37b6 fix(seedance): correct upload_image_fal call name
Lines 219 and 227 imported upload_image_fal from _shared but called
the non-existent upload_image_to_fal, raising a NameError whenever
image_to_video or reference_to_video used local image paths.
2026-04-23 01:42:08 -04:00
calesthio 0efed7427c video-compose: catch TTS punctuation leaks in final review
Adds a transcript_comparison check to VideoCompose._run_final_review
that word-diffs the whisper/whisperx transcript against script.txt and
fails loudly when the TTS engine literally voiced punctuation tokens
(dot, dots, ellipsis, comma, dash, hyphen, period). Chirp3-HD did this
to ellipses in a production run and it slipped past review; now it
cannot.

Also corrects the "tiny background video" gotcha in
skills/core/hyperframes.md. After six renders of blaming HyperFrames
CSS, the real root cause was 640x360 Pexels sources combined with a
fit-and-pad pre-transform — HyperFrames was rendering the letterboxed
input faithfully. Gotcha now walks through the ffprobe diagnostic and
the scale-to-cover fix, and keeps the wrapper-div pattern for the
right reasons (aspect mismatch handling, not framework bug workaround).

Four regression tests cover the new check: punctuation-leak detection,
clean-audio false-positive guard, graceful skip when inputs missing,
and always-present transcript_comparison section.
2026-04-18 22:16:27 -07:00
calesthio b6ce481073 hyperframes skill: document the six gotchas hard-earned on the first production
Surfaces six real traps an agent learns the expensive way: full-frame
videos need BOTH HTML width/height attrs AND `!important` CSS because
the runtime applies inline size from intrinsic dimensions; preview-scrub
matters more than a 60-minute render for visual bugs; legibility comes
from scrims + text-shadow, not from lowering video opacity; downloaded
stock needs dense keyframes (-g 30) before render or parallel capture
times out; --workers 1 is mandatory for video-heavy compositions; the
deterministic-font compiler silently replaces unmapped families like
Space Grotesk, use Outfit/Inter/JetBrains Mono/Poppins instead. Each
gotcha documented with the fix-at-author-time pattern so the next agent
ships a clean first render.
2026-04-18 20:13:19 -07:00
calesthio b4f7ec4eee hyperframes: add HTML/CSS/GSAP as a parallel composition runtime
Separates creative grammar (renderer_family) from technical engine
(render_runtime) so HyperFrames can stand alongside Remotion as a
first-class runtime instead of masquerading as a Remotion sub-case.
Locks runtime choice at proposal stage and enforces it end-to-end: the
schemas require it, video_compose routes by it, the reviewer fails
closed on silent swaps, and a parametrized contract test walks every
pipeline manifest to ensure each planning-stage skill explains the
conversation to the user. Adds hyperframes_compose (scaffold/lint/
validate/render/doctor/add_block), a playbook -> CSS style bridge, and
vendored HyperFrames Layer 3 skills from commit d291358, pinned via
PROVENANCE.md for future re-sync. Final_review now records
render_runtime_used and runtime_swap_detected so compose lies are
catchable after the fact.
2026-04-18 18:37:00 -07:00