feat(marketplace): add video-generic workflow#1639
Conversation
Adds a Remotion-based video generation workflow to the marketplace as the first directory-format entry from an external repo. The workflow turns a freeform prompt (URL, GitHub repo, release notes, topic) into a voiced + animated Remotion video, with three HITL approval gates for spec, script, and live preview. Source: leex279/remotion-video-test/.archon @ 4dac83c2 (directory). This is also the first end-to-end smoke test of the directory-install path (yaml at .archon/ root, with commands/ scripts/ templates/ siblings fanning out into the user's .archon/ on install).
|
No actionable comments were generated in the recent review. 🎉 ℹ️ Recent review info⚙️ Run configurationConfiguration used: defaults Review profile: CHILL Plan: Pro Run ID: 📒 Files selected for processing (1)
📝 WalkthroughWalkthroughA new marketplace entry for ChangesMarketplace Entry Addition
Estimated code review effort🎯 1 (Trivial) | ⏱️ ~2 minutes Poem
🚥 Pre-merge checks | ✅ 5✅ Passed checks (5 passed)
✏️ Tip: You can configure your own custom pre-merge checks in the settings. ✨ Finishing Touches📝 Generate docstrings
🧪 Generate unit tests (beta)
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. Comment |
… register providers (#1645) Two false-positive sources in validate-schema: 1. Provider registry empty when parseWorkflow runs standalone. The CLI normally populates it at startup; this script must call registerBuiltinProviders + registerCommunityProviders or every workflow with provider: claude gets rejected with Unknown provider claude. Registered. 2. Non-workflow YAMLs were being parsed as workflows. Directory submissions ship brand.yaml, config.yaml, template scaffolds alongside the workflow file. parseWorkflow rejects these for missing required workflow fields. Filter to YAMLs with a top-level nodes: block before calling parseWorkflow. Tested locally against PR #1639 submission: now returns valid: true with only video-generic.yaml validated, vs the previous 4 false-positive errors.
… register providers (coleam00#1645) Two false-positive sources in validate-schema: 1. Provider registry empty when parseWorkflow runs standalone. The CLI normally populates it at startup; this script must call registerBuiltinProviders + registerCommunityProviders or every workflow with provider: claude gets rejected with Unknown provider claude. Registered. 2. Non-workflow YAMLs were being parsed as workflows. Directory submissions ship brand.yaml, config.yaml, template scaffolds alongside the workflow file. parseWorkflow rejects these for missing required workflow fields. Filter to YAMLs with a top-level nodes: block before calling parseWorkflow. Tested locally against PR coleam00#1639 submission: now returns valid: true with only video-generic.yaml validated, vs the previous 4 false-positive errors.
Summary
coleam00/Archon's bundled defaults. There was no end-to-end exercise of the directory-format install path from an external repo.commands/+scripts/fan-out, GitHub Contents API walk, SHA pinning) is the path third-party contributors will actually use. v0 lint and install code exist but haven't been smoke-tested against a real outside repo.packages/docs-web/src/data/marketplace.tsfor thevideo-genericRemotion workflow atleex279/remotion-video-test/.archon@4dac83c2. Taggedautomation.UX Journey
Before
After
Architecture Diagram
Before / After
No module changes. Only
packages/docs-web/src/data/marketplace.ts(data) is touched.Connection inventory:
docs-web/marketplace.tslint-marketplace.tsdocs-web/marketplace.ts/workflows/Astro pagesdocs-web/marketplace.tsworkflows.json.tscli/workflow installleex279/remotion-video-testLabel Snapshot
risk: lowsize: XSwebweb:marketplaceChange Metadata
featurewebLinked Issue
Validation Evidence (required)
bun run testandbun run lint— no code paths touched, only a static data row. Pre-commit lint-staged hooks ran eslint + prettier on the change successfully.Security Impact (required)
The new entry points at a third-party GitHub repo (
leex279/remotion-video-test). At install time, the CLI fetches files from a pinned SHA via the existinginstallDirectorypath (isSafePathComponentregex, slug regex, host allowlist). Self-attestation per CONTRIBUTING.md: workflow does not exfiltrate data, does not run destructive ops without confirmation, and the SHA pins a reviewed state.Compatibility / Migration
End users who install
video-genericneedELEVENLABS_API_KEYin their.archon/.envto actually run it — but that's the workflow's own requirement, not an Archon-side change.Human Verification (required)
https://api.github.com/repos/leex279/remotion-video-test/contents/.archon?ref=4dac83c2...→ 200 OK.bun run buildondocs-webproduced all 69 pages including/workflows/index + new detail page.leex279/remotion-video-test) was reshaped so the workflow YAML lives at.archon/root, matching the install layout the v0 directory-install code expects (yaml at sourceUrl root + sibling subdirs)./in the URL first (tree/feat/marketplace-install-layout/.archon) — lint regex (tree/[^/]+/) only matches single-segment refs, so I switched to SHA-in-URL. Worth noting in CLI docs that branch names with slashes don't round-trip through the lint regex; SHA is the safer convention.archon workflow install video-genericon a fresh repo — install logic was eyeballed againstinstallDirectory()inpackages/cli/src/commands/workflow.ts. The workflow'stemplates/claude-code-version/(nested directory) won't install because the fan-out only walks one level deep; only top-level files in each subdir are picked up. Documenting as a known v0 limitation.Side Effects / Blast Radius (required)
docs-webbuild (new detail page generated bygetStaticPaths)workflows.jsonendpoint (one more row)archon workflow search/installCLI surface (one more discoverable slug)leex279/remotion-video-testis deleted or made private, the GitHub Contents API lookup at install time will 404. SHA pinning means the content is immutable at GitHub's storage level, but availability depends on the source repo's continued existence.lint-marketplace.tsruns on every PR touchingmarketplace.ts(existing.github/workflows/marketplace-lint.yml), so a future stale SHA is caught by HEAD/GET.Rollback Plan (required)
archon workflow install video-genericreturning a 404 from the GitHub API.Risks and Mitigations
leex279/remotion-video-test) goes private or is deleted, breaking install.coleam00/.templates/claude-code-version/(nested dir in the workflow source) silently won't install — users opting intoTEMPLATE=claude-code-versionafter install will hit a missing-file error.🤖 Generated with Claude Code
Summary by CodeRabbit