Thanks for helping improve ARS. This project is a Claude Code plugin, CLI, generated repo template, and Remotion engine bundle, so small-looking changes can affect installed content repos. Please keep PRs focused and easy to review.
- Use Node.js
>= 22.12.0. - Run
npm installfrom the ARS source checkout. - Prefer one logical change per PR.
- Open an issue or discussion first for broad workflow, schema, generated repo, or public API changes.
Every PR should include:
- a short problem statement
- a clear summary of changed behavior
- screenshots or Studio notes for UI changes
- migration notes when generated repos,
.ars/state, skills, hooks, or CLI behavior changes - verification commands that were run
Keep unrelated formatting, generated output, local cache files, and dogfood episode changes out of source PRs.
If an agent prepares the PR, it should follow the project contract in AGENTS.md and include an auditable PR body:
## Summary
- ...
## Compatibility / Migration
- Release-sensitive surfaces touched:
- Migration decision:
## Verification
- [ ] npm run lint
- [ ] npm run build:studio
- [ ] npm test
- [ ] npx ars episode validate template/ep-demo
- [ ] npm pack --dry-run (when package/release surface changed)
## Notes
- Screenshots / Studio notes:
- Known risks:Agents should not publish to npm, create public release tags, or push release tags without explicit maintainer confirmation.
Treat these as release-sensitive surfaces:
ars init,ars update,ars studio,ars prepare,ars publish.ars/config.json,.ars/.ars-version.json, workstate, and Studio intent schemassrc/engine/shared/types.ts- card
spec.tsand registry contracts - generated support files copied by
syncEngineFiles - plugin skills, agents, hooks, and statusline scripts
- npm package
filesallowlist
If your PR changes one of these surfaces, say whether ars update needs a migration. If a deterministic migration is possible, prefer implementing it over relying on release notes.
Run the baseline before requesting review:
npm run lint
npm run build:studio
npm test
npx ars episode validate template/ep-demoFor package or release-surface changes, also run:
npm pack --dry-runFor new card types, also verify:
npx ars episode stats template --alland include a template episode step that renders the card.
- Follow existing patterns before adding new abstractions.
- Keep core engine cards independent from
src/episodes/. - Do not import
src/engine/shared/card-catalog.tsinto browser/Remotion code. - Do not import
src/engine/cards/registry.tsinto CLI/Node code. - Avoid new dependencies unless the PR explains why the existing stack is insufficient.
Skills are part of the shipped product. For changes under plugin/skills/:
- keep instructions concise and operational
- avoid stale examples that mention removed commands
- update related docs when the workflow changes
- run
npm test, because skill-surface tests guard important prompt contracts
Contributors do not need to publish releases. Maintainers handle version bumps, tags, and npm publishing through the release process in docs/release-process.md.