We use anonymous analytics to improve VanillaSky. No personal data is collected. Learn more

    Contributing to VanillaSky

    The registry is a shared catalog: contribute a template, primitive, or track once, and every agent user everywhere gets it on their next index fetch.

    What can be contributed

    ArtifactRegistry typeBar to accept
    Scene templateregistry:blockFollows the template constraints, passes the export QA harness, and fills a real gap — ideally an open “template wanted” issue.
    Motion primitiveregistry:uiConsumed by at least one template or a clear composition story; export-verified (preview/export parity).
    Music trackmanifest entryContributor holds or grants redistribution rights, license verified before anything ships — no exceptions.
    Format definitionregistry:fileRare; needs a real composition rationale.
    Docs, fixtures, bug reportsAlways welcome — the lowest-friction way to make a first contribution.

    How contributions land

    The public VanillaSkyAi/skills repo is a generated release snapshot, so PRs are not merged into it directly. Instead:

    • Open your PR (or issue) on the public repo — that is the front door, and it's welcome.
    • Accepted contributions are triaged and ported into the source tree by a maintainer, with your authorship preserved: your name and link go on the registry item's author field, which flows into r/<id>.json and the index.
    • You're also credited in the release notes of the export that ships your item and in the contributors section of the repo README, and the port links back to your original PR.
    • Attribution is permanent — it never drops on refactor. If a template is later rewritten beyond recognition, the original author stays in the item's provenance note.

    Contributing a template

    1. Find the gap. Browse the repo's open "template wanted" issues, or open one from a real need ("I wanted a pricing-table reveal, nothing fit").
    2. Start from a working exemplar. The registry ships full source precisely so you can eject the nearest existing template and build from it, not from a blank file.
    3. Follow the constraints. Inline styles only, no CSS filter, progress-driven animation (no requestAnimationFrame, no CSS transitions), deterministic (same progress + variables = same output), orientation-aware sizing for both 1080x1920 and 1920x1080, camelCase id.
    4. Prove it. Author boundary fixtures and run the export QA harness. Visual inspection of the rendered output is the verification — lint and tests alone don't catch export rendering bugs.
    5. PR it. Template file, fixtures, and registry metadata — use-when guidance, jobs, duration, variable schema. The registry generator refuses items without agent-facing guidance, so metadata quality is mechanically enforced.
    6. Review. Maintainers review for motion craft (the anti-boring composition rules) and metadata quality, then port and credit as above. Once the registry regenerates and the release ships, the live index updates — and every agent composing a video can select your template.

    Contributing audio

    Tracks are the smallest surface with the highest legal care: a manifest entry (title, license, mood/energy metadata, hosted URL) plus verified redistribution rights. License verification happens before anything ships — no exceptions. Rights-unverified audio is the documented anti-pattern.

    Where to start

    Docs fixes, example configs, and bug reports are the lowest-friction first contribution. For templates, card-led archetypes are the gentlest on-ramp — look for issues labeled as good first templates, or open an issue describing the brief your video needed and the catalog couldn't serve.