4.7 KiB
Video.js 10 agent guide
Use this file for durable repository rules. Prefer retrieval-led reasoning: inspect the relevant code, tests, package manifest, and nearest AGENTS.md before relying on model memory or these summaries.
Sources of truth
- Setup and contributor workflow:
CONTRIBUTING.md - Available commands and dependency versions: root and package
package.jsonfiles - Workspace topology:
pnpm-workspace.yaml,turbo.json, and package manifests - Formatting and static checks:
biome.json,tsconfig*.json, andbuild/scripts/check-workspace.mjs - Current behavior: implementation and colocated tests
- Public package behavior: package source, exports, and README files
- Architecture rationale:
internal/design/,internal/decisions/, andrfc/
When prose conflicts with executable sources, follow the executable source and update stale prose in the same change.
Repository map
packages/utils: shared utilities; DOM helpers live under its/domexport.packages/element: custom-element base.packages/store: framework-neutral state plus/htmland/reactbindings.packages/spf: stream-processing primitives, DOM bindings, and playback engine.packages/core: runtime-neutral player logic; DOM bindings live under/dom.packages/html,packages/react: platform players.packages/icons,packages/skins: private shared assets and styling.apps/sandbox: Vite playground.templates/is tracked;src/is scratch.apps/e2e: Playwright coverage.site: Astro documentation site; followsite/AGENTS.md.
Keep framework-neutral packages free of DOM or framework dependencies. Put platform behavior in the appropriate adapter or binding package.
Commands
Use pnpm only and run workspace commands from the repository root unless a package documents otherwise.
pnpm install
pnpm dev
pnpm -F <pkg> test [path-or-pattern]
pnpm -F <pkg> build
pnpm typecheck
pnpm lint:fix:file <file>
pnpm check:workspace
Use the narrowest relevant test/build while iterating. Before handoff, run checks proportional to the change. If exported package types changed, build that package before pnpm typecheck; project references consume built declarations.
Code and tests
- Match nearby code before introducing a new abstraction or naming rule.
- Check
@videojs/utilsbefore adding a helper. Prefer its predicate helpers over inline type/null checks where an equivalent exists. - Keep types beside their implementation; do not create generic
types.tsbuckets. - Put package tests in a
tests/directory beside the implementation and name them<module>.test.ts. - Use Vitest and name
describe()after the exact export under test. - Add or update tests for changed observable behavior.
- Keep dev-only warnings, debug helpers, and
displayNameassignments behind__DEV__. - Comments and JSDoc should explain non-obvious intent or contracts, not restate TypeScript or the next line.
- API-reference exports need richer JSDoc because the site builder extracts it; use
write-api-referencefor those changes.
Design records
internal/design/: architecture or feature decisions owned by the author.internal/decisions/: short records of a single tactical choice.rfc/: proposals needing wider approval, especially public API or hard-to-reverse changes..agents/plans/: temporary implementation notes; delete before merge or extract durable rationale into a record.
Skills and agent documentation
Checked-in skills are direct children of .agents/skills/. pnpm install exposes that canonical catalog through generated .claude/skills/ and .opencode/skills/ directory aliases. Load only the specialized workflow needed after inspecting relevant project sources.
- API:
design-api,review-api - UI:
build-ui-component,review-ui-component,implement-accessible-ui,review-accessibility - Docs and records:
write-docs,review-docs,write-api-reference,write-design-doc,write-rfc - Site styling:
migrate-css-to-tailwind,review-tailwind-migration - Delivery:
investigate-issue,create-issue,review-branch,commit-pr - SPF behaviors:
create-spf-behavior,change-spf-behavior - SPF registry:
document-spf-feature,document-spf-use-case,implement-spf-feature,implement-spf-use-case - Agent guidance:
maintain-agent-docs,create-skill
Keep AGENTS.md factual, small, and broadly applicable. Put repeatable vertical procedures in skills. Put detailed or conditional material in a skill reference and state when to read it. Do not duplicate code, schemas, command inventories, or design documents in agent prose.
Run pnpm check:workspace after changing AGENTS.md, CLAUDE.md, or any skill. It validates imports, portable skill metadata, and repository token budgets.