Skip to content

docs(root): fix stale references and document sandbox workflow#1464

Merged
decepulis merged 10 commits intomainfrom
claude/update-docs-oYxVW
Apr 24, 2026
Merged

docs(root): fix stale references and document sandbox workflow#1464
decepulis merged 10 commits intomainfrom
claude/update-docs-oYxVW

Conversation

@decepulis
Copy link
Copy Markdown
Collaborator

@decepulis decepulis commented Apr 24, 2026

Summary

Review pass over README.md, CONTRIBUTING.md, CLAUDE.md, and the package READMEs. This first commit covers the unambiguous fixes; a few decisions are still open (see below).

Fixed

  • Stale cd vjs-10 step in the clone instructions (CONTRIBUTING.md).
  • Stale vjs-10-monorepo.git URL in the root package.json.
  • apps/sandbox/README.md filter shortcuts (prefer pnpm dev:sandbox and the full @videojs/sandbox scope).
  • Inconsistent Beta tagline in packages/spf/README.md.

Added / expanded

  • CONTRIBUTING.md
    • New "Manual Testing with the Sandbox" section explaining templates/ vs src/ and warning about the gitignore trap.
    • New Typechecking section (pnpm typecheck, with the "build types first" tip).
    • New Workspace Consistency section (pnpm check:workspace).
    • Added dev:packages / dev:sandbox to the Build & Development commands.
    • Added lint:fix:file to the lint commands.
    • Expanded the Slash Commands and Skills tables; canonical list lives in .claude/skills/README.md.
  • CLAUDE.md
    • Added packages/cli and apps/e2e to the Package Layout table.
    • Added icons, skins → html / react to the runtime dependency summary.

Still open (not in this PR)

  • README timeline needs updating to reflect current release stage.
  • packages/cli/README.md is missing (package is publicly published).
  • packages/skins/README.md — stub or skip?
  • packages/react-native/ empty directory — keep or remove?
  • internal/decisions/ is undocumented in the Design Docs section of CLAUDE.md.

Test plan

  • pnpm typecheck
  • pnpm check:workspace
  • Spot-check rendered Markdown on GitHub (anchors, tables, callouts).

https://claude.ai/code/session_01X2pMP6QdefgPf1VSjQ4B4b


Generated by Claude Code


Note

Low Risk
Low risk: changes are documentation/metadata only and do not affect runtime behavior; main risk is minor confusion if instructions/links are incorrect.

Overview
Refreshes root docs (README.md, CONTRIBUTING.md, CLAUDE.md) to fix stale repo references/commands, expand contributor workflow guidance (typechecking, workspace checks, linting), and document how to manually test changes via the sandbox.

Introduces a clearer design documentation taxonomy by adding internal/decisions/README.md and updating CLAUDE.md/internal/design/README.md to distinguish design docs vs ADR-style decisions.

Adds missing package READMEs for @videojs/cli and internal @videojs/skins, and updates root package.json repository URL.

Reviewed by Cursor Bugbot for commit 1c9a243. Bugbot is set up for automated code reviews on this repo. Configure here.

Update contributor-facing docs to match the current workspace and help
newcomers discover how to manually test player changes.

- Fix broken `cd vjs-10` step in the clone instructions.
- Fix stale `vjs-10-monorepo.git` URL in the root package.json.
- Document typecheck, check:workspace, and single-file lint commands.
- Add "Manual Testing with the Sandbox" section covering the
  templates/src split and the gitignore trap.
- Expand slash-command and skills tables; point to the skills README
  as the canonical index.
- Add packages/cli and apps/e2e to the CLAUDE.md package layout;
  include icons/skins in the runtime dependency summary.
- Fix sandbox README filter shortcuts (prefer dev:sandbox and the
  full @videojs/sandbox scope).
- Standardize the Beta tagline in the spf README.
@vercel
Copy link
Copy Markdown

vercel Bot commented Apr 24, 2026

The latest updates on your projects. Learn more about Vercel for GitHub.

Project Deployment Actions Updated (UTC)
v10-sandbox Ready Ready Preview, Comment Apr 24, 2026 7:21pm

Request Review

@netlify
Copy link
Copy Markdown

netlify Bot commented Apr 24, 2026

Deploy Preview for vjs10-site ready!

Name Link
🔨 Latest commit 1c9a243
🔍 Latest deploy log https://app.netlify.com/projects/vjs10-site/deploys/69ebc28ead8b2000089b2263
😎 Deploy Preview https://deploy-preview-1464--vjs10-site.netlify.app
📱 Preview on mobile
Toggle QR Code...

QR Code

Use your smartphone camera to open QR code link.

To edit notification comments on pull requests, go to your Netlify project configuration.

@github-actions
Copy link
Copy Markdown
Contributor

github-actions Bot commented Apr 24, 2026

📦 Bundle Size Report

🎨 @videojs/html — no changes
Presets (7)
Entry Size
/video (default) 28.72 kB
/video (default + hls) 161.12 kB
/video (minimal) 26.25 kB
/video (minimal + hls) 158.87 kB
/audio (default) 26.64 kB
/audio (minimal) 24.21 kB
/background 4.16 kB
Media (8)
Entry Size
/media/background-video 1.04 kB
/media/container 1.72 kB
/media/dash-video 236.54 kB
/media/hls-video 134.01 kB
/media/mux-audio 160.06 kB
/media/mux-video 160.07 kB
/media/native-hls-video 3.77 kB
/media/simple-hls-video 15.80 kB
Players (3)
Entry Size
/video/player 7.04 kB
/audio/player 5.12 kB
/background/player 3.86 kB
Skins (29)
Entry Type Size
/video/minimal-skin.css css 3.50 kB
/video/skin.css css 3.53 kB
/video/minimal-skin js 26.26 kB
/video/minimal-skin.tailwind js 26.48 kB
/video/skin js 28.76 kB
/video/skin.tailwind js 28.88 kB
/audio/minimal-skin.css css 2.54 kB
/audio/skin.css css 2.50 kB
/audio/minimal-skin js 24.20 kB
/audio/minimal-skin.tailwind js 24.40 kB
/audio/skin js 26.64 kB
/audio/skin.tailwind js 26.78 kB
/background/skin.css css 117 B
/background/skin js 1.14 kB
/live-video/minimal-skin.css css 3.50 kB
/live-video/skin.css css 3.53 kB
/live-video/minimal-skin js 26.04 kB
/live-video/minimal-skin.tailwind js 26.07 kB
/live-video/skin js 28.45 kB
/live-video/skin.tailwind js 28.52 kB
/live-audio/minimal-skin.css css 2.54 kB
/live-audio/skin.css css 2.50 kB
/live-audio/minimal-skin js 23.99 kB
/live-audio/minimal-skin.tailwind js 23.99 kB
/live-audio/skin js 26.35 kB
/live-audio/skin.tailwind js 26.42 kB
/base.css css 157 B
/shared.css css 88 B
/skin-element js 1.36 kB
UI Components (25)
Entry Size
/ui/alert-dialog 1.00 kB
/ui/alert-dialog-close 467 B
/ui/alert-dialog-description 423 B
/ui/alert-dialog-title 420 B
/ui/buffering-indicator 2.50 kB
/ui/captions-button 2.67 kB
/ui/cast-button 2.66 kB
/ui/compounds 4.20 kB
/ui/controls 2.33 kB
/ui/error-dialog 3.07 kB
/ui/fullscreen-button 2.70 kB
/ui/hotkey 1.94 kB
/ui/mute-button 2.67 kB
/ui/pip-button 2.71 kB
/ui/play-button 2.68 kB
/ui/playback-rate-button 2.66 kB
/ui/popover 1.83 kB
/ui/poster 2.28 kB
/ui/seek-button 2.69 kB
/ui/slider 1.50 kB
/ui/thumbnail 2.92 kB
/ui/time 2.54 kB
/ui/time-slider 3.94 kB
/ui/tooltip 2.02 kB
/ui/volume-slider 2.66 kB

Sizes are marginal over the root entry point.

⚛️ @videojs/react — no changes
Presets (7)
Entry Size
/video (default) 23.48 kB
/video (default + hls) 154.91 kB
/video (minimal) 21.11 kB
/video (minimal + hls) 152.51 kB
/audio (default) 19.06 kB
/audio (minimal) 17.61 kB
/background 755 B
Media (7)
Entry Size
/media/background-video 575 B
/media/dash-video 235.04 kB
/media/hls-video 132.49 kB
/media/mux-audio 158.70 kB
/media/mux-video 158.57 kB
/media/native-hls-video 2.26 kB
/media/simple-hls-video 14.36 kB
Skins (26)
Entry Type Size
/video/minimal-skin.css css 3.44 kB
/video/skin.css css 3.46 kB
/video/minimal-skin js 21.04 kB
/video/minimal-skin.tailwind js 24.53 kB
/video/skin js 23.40 kB
/video/skin.tailwind js 24.66 kB
/audio/minimal-skin.css css 2.44 kB
/audio/skin.css css 2.39 kB
/audio/minimal-skin js 17.52 kB
/audio/minimal-skin.tailwind js 20.04 kB
/audio/skin js 18.98 kB
/audio/skin.tailwind js 19.97 kB
/background/skin.css css 90 B
/background/skin js 272 B
/live-video/minimal-skin.css css 3.44 kB
/live-video/skin.css css 3.46 kB
/live-video/minimal-skin js 17.74 kB
/live-video/minimal-skin.tailwind js 21.15 kB
/live-video/skin js 20.14 kB
/live-video/skin.tailwind js 21.32 kB
/live-audio/minimal-skin.css css 2.44 kB
/live-audio/skin.css css 2.39 kB
/live-audio/minimal-skin js 15.72 kB
/live-audio/minimal-skin.tailwind js 18.03 kB
/live-audio/skin js 17.21 kB
/live-audio/skin.tailwind js 18.12 kB
UI Components (20)
Entry Size
/ui/alert-dialog 1.09 kB
/ui/buffering-indicator 1.79 kB
/ui/captions-button 2.02 kB
/ui/cast-button 2.04 kB
/ui/controls 1.76 kB
/ui/error-dialog 2.25 kB
/ui/fullscreen-button 2.06 kB
/ui/mute-button 2.03 kB
/ui/pip-button 2.00 kB
/ui/play-button 1.99 kB
/ui/playback-rate-button 1.89 kB
/ui/popover 1.86 kB
/ui/poster 1.67 kB
/ui/seek-button 2.10 kB
/ui/slider 2.66 kB
/ui/thumbnail 2.07 kB
/ui/time 2.06 kB
/ui/time-slider 2.36 kB
/ui/tooltip 2.17 kB
/ui/volume-slider 3.18 kB

Sizes are marginal over the root entry point.

🧩 @videojs/core — no changes
Entries (9)
Entry Size
. 4.96 kB
/dom 11.87 kB
/dom/media/custom-media-element 1.90 kB
/dom/media/dash 234.13 kB
/dom/media/google-cast 4.07 kB
/dom/media/hls 131.85 kB
/dom/media/mux 158.10 kB
/dom/media/native-hls 1.61 kB
/dom/media/simple-hls 13.73 kB
🏷️ @videojs/element — no changes
Entries (2)
Entry Size
. 996 B
/context 943 B
📦 @videojs/store — no changes
Entries (3)
Entry Size
. 1.39 kB
/html 695 B
/react 360 B
🔧 @videojs/utils — no changes
Entries (10)
Entry Size
/array 104 B
/dom 1.92 kB
/events 319 B
/function 327 B
/object 275 B
/predicate 265 B
/string 148 B
/style 190 B
/time 478 B
/number 158 B
📦 @videojs/spf — no changes
Entries (3)
Entry Size
. 40 B
/dom 13.33 kB
/playback-engine 13.24 kB

ℹ️ How to interpret

All sizes are standalone totals (minified + brotli).

Icon Meaning
No change
🔺 Increased ≤ 10%
🔴 Increased > 10%
🔽 Decreased
🆕 New (no baseline)

Run pnpm size locally to check current sizes.

Repo is past both milestones and heads-down on GA.
The package is published to npm but had no README, leaving a blank
landing page. Adds command reference, install flags, and config keys.
Removes duplicated flag/option tables that restate what 'videojs --help',
'videojs docs --help', and 'videojs config --help' already print. Keeps
one example per command and the installation snippet demo.
Signals that @videojs/skins is not meant to be installed directly and
points contributors to the html/react packages that re-export skins.
Adds internal/decisions/ to CLAUDE.md's Design Documents table with a
short distinction from internal/design/ (ADR-style single-decision
records vs architecture/feature specs), a README explaining the format
and naming convention, and a cross-link from internal/design/README.md.
@decepulis decepulis marked this pull request as ready for review April 24, 2026 18:57
Per-command subheadings and docs --list example removed — --help is the
source of truth for flag reference. Keeps one doc-reader example and the
interactive installation snippet since that's the distinctive feature.

Also drops 'Close to stable' from the Beta banner and rewords the cli
description in CLAUDE.md's Package Layout to acknowledge future scope
beyond docs.
Reverts the earlier standardization — SPF isn't close to stable yet, so
the banner shouldn't imply it is.
…e claims

- Sandboxes table listed entry names that don't exist (core, html,
  html-tailwind, react, etc.) — replaced with pointer to the dynamic
  root index and templates/ directory.
- How it works now describes all three participating directories
  (app/ shell + shared, templates/, src/) instead of two, and explains
  the @app/* alias that templates use to import shared helpers.
- Add a Resetting section for 'pnpm -F @videojs/sandbox reset' — the
  destructive counterpart to sync.
- Correct 'gitignored (except index.html)' — .gitignore is src/* with
  no exception; src/index.html is generated by the serve-app-shell
  Vite plugin on every dev/build.
- Adding a new sandbox: drop the stale steps about editing
  templates/index.html (doesn't exist) and registering entries in
  vite.config.ts (auto-discovered via getSandboxEntries).

CONTRIBUTING.md carried the same stale entry list and gitignore-trap
wording from the old sandbox README — fixed to match reality. Also
fixes an inconsistent plans link in internal/decisions/README.md.
…tations

The root route isn't a directory listing — it's an interactive shell
(app/shell/app.tsx) with dropdowns for platform/preset/skin/styling/source
driving an iframe preview of the selected combination. One-off templates
outside that matrix (firefox-mse-repro, spf-segment-loading, etc.) are
reachable only by direct URL.

Also correct the dev command commentary: 'pnpm dev:sandbox' already runs
all workspace package deps in watch mode (turbo filter '...' includes
deps, every package has a 'dev' → build:watch script). The difference
from 'pnpm dev' is whether the docs site also runs, not whether packages
watch.
@decepulis decepulis merged commit 8959429 into main Apr 24, 2026
26 checks passed
@decepulis decepulis deleted the claude/update-docs-oYxVW branch April 24, 2026 19:29
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants