Agent skill for verifying Boot.dev lessons and scaffolding visible Boot.dev editor files into a local learner workspace.
The skill uses Playwright instead of static page fetches so it can read JavaScript-rendered Boot.dev lesson content, editor tabs, and guest-mode overlays.
- Fetches rendered Boot.dev lesson text with Chromium.
- Extracts visible Boot.dev editor tabs, including files such as
main.pyandmain_test.py. - Previews starter-file scaffolding before writing anything.
- Verifies learner work without running assignment commands or silently solving the lesson.
- Handles multiple-choice quiz grading without leaking answers.
SKILL.md- agent-facing workflow and safety rules.scripts/fetch-rendered-page.mjs- Playwright renderer and editor extractor.scripts/scaffold-lesson.mjs- safe preview/write helper for starter files.package.json- local Node/Playwright dependency definition.package-lock.json- locked dependency versions.
- Node.js 18 or newer.
- npm.
- Internet access during installation.
- A Chromium browser downloaded by Playwright.
On Linux, Playwright may need extra system packages for Chromium. If browser launch fails because shared libraries are missing, run:
npx playwright install --with-deps chromiumOn Windows, run commands from PowerShell, Command Prompt, Git Bash, or the terminal used by your agent CLI.
Install this once in a stable skill directory, not inside each Boot.dev lesson project.
Common locations:
- Linux/macOS:
~/.agents/skills/bootdev-test-runner - Windows PowerShell:
$HOME\.agents\skills\bootdev-test-runner - Any agent-specific config directory, if your CLI expects skills/tools there.
The learner's coding workspace can be anywhere else. The skill scripts accept an explicit --workspace path when they need to write starter files.
- Copy or clone this directory into your agent skills folder:
mkdir -p ~/.agents/skills
cp -R /path/to/bootdev-test-runner ~/.agents/skills/bootdev-test-runner
cd ~/.agents/skills/bootdev-test-runner- Install Node dependencies locally:
npm install- Install the Playwright Chromium browser:
npx playwright install chromium- Smoke test Playwright:
npm run fetch-rendered -- "data:text/html,<html><body><script>document.body.innerText='rendered ok'</script></body></html>"Expected output includes:
rendered ok
- Copy or clone this directory into a stable location:
New-Item -ItemType Directory -Force "$HOME\.agents\skills" | Out-Null
Copy-Item -Recurse "C:\path\to\bootdev-test-runner" "$HOME\.agents\skills\bootdev-test-runner"
Set-Location "$HOME\.agents\skills\bootdev-test-runner"- Install Node dependencies locally:
npm install- Install the Playwright Chromium browser:
npx playwright install chromium- Smoke test Playwright:
npm run fetch-rendered -- "data:text/html,<html><body><script>document.body.innerText='rendered ok'</script></body></html>"Expected output includes:
rendered ok
Different coding agents discover reusable instructions differently. The portable rule is:
- Put this directory somewhere stable.
- Install dependencies in that same directory.
- Tell your agent to read and follow
SKILL.mdwhen the user asks about Boot.dev lesson verification or scaffolding. - Tell your agent to run helper commands from the skill directory, not from the learner project directory.
For agents that use repository instruction files, add a short pointer like this to the relevant instruction file:
When the user provides a Boot.dev lesson URL and asks to verify, test, grade, scaffold, create starter files, or recreate editor files, use the Boot.dev Test Runner skill at:
Linux/macOS:
~/.agents/skills/bootdev-test-runner/SKILL.md
Windows:
%USERPROFILE%\.agents\skills\bootdev-test-runner\SKILL.md
Run Playwright helper commands from the skill directory. Use the learner project path only as the explicit --workspace target.This repository already follows the simple ~/.agents/skills/<skill-name>/SKILL.md layout.
Install:
mkdir -p ~/.agents/skills
cp -R /path/to/bootdev-test-runner ~/.agents/skills/bootdev-test-runner
cd ~/.agents/skills/bootdev-test-runner
npm install
npx playwright install chromiumThen ensure your Codex or agent instructions include this skill directory in the available skills list, or add an AGENTS.md pointer that tells Codex to use SKILL.md for Boot.dev lesson URLs.
In Codex's restricted sandbox, launching Chromium may require command escalation even after installation. The package and browser can be installed once; the runtime browser launch is the part that may need approval.
These tools may not share one standard skill directory. Use the same installation steps, then register the skill in the tool's native instruction mechanism:
- Claude Code: add a project or user instruction that points to
SKILL.md. - Gemini CLI: add a project or global instruction that points to
SKILL.md. - OpenCode: add the skill path to your global or project instructions.
- Other agents: add an equivalent instruction that says to load
SKILL.mdfor Boot.dev lesson URLs.
The important part is not the folder name. The important part is that the agent can read SKILL.md and run these commands from this directory:
npm run fetch-rendered -- "https://www.boot.dev/lessons/<lesson-id>"
npm run fetch-editor -- "https://www.boot.dev/lessons/<lesson-id>"
npm run scaffold -- "https://www.boot.dev/lessons/<lesson-id>" --workspace "/absolute/path/to/learner/workspace"On Windows, use an absolute Windows path for --workspace, for example:
npm run scaffold -- "https://www.boot.dev/lessons/<lesson-id>" --workspace "C:\Users\you\code\lesson"Paste this prompt into any coding agent that has filesystem and terminal access:
Install the Boot.dev Test Runner skill.
Goal:
- Place the skill in a stable directory such as ~/.agents/skills/bootdev-test-runner on Linux/macOS or %USERPROFILE%\.agents\skills\bootdev-test-runner on Windows.
- Install its Node dependencies locally in that skill directory.
- Install Playwright Chromium for that same local package.
- Register the skill by adding or updating the agent's instruction file so Boot.dev lesson verification/scaffolding requests use SKILL.md.
Steps:
1. Locate or create the skill directory.
2. Copy the full bootdev-test-runner directory there, including SKILL.md, package.json, package-lock.json, scripts/, and README.md. Do not copy node_modules if installing fresh.
3. From the skill directory, run npm install.
4. From the skill directory, run npx playwright install chromium.
5. Smoke test with:
npm run fetch-rendered -- "data:text/html,<html><body><script>document.body.innerText='rendered ok'</script></body></html>"
6. Add an instruction to the target agent:
When the user provides a Boot.dev lesson URL and asks to verify, test, grade, scaffold, create starter files, or recreate editor files, read and follow <absolute-path-to-skill>/SKILL.md. Run helper commands from the skill directory. Use the learner project only as the --workspace target.
7. Report the final skill path and whether the smoke test printed "rendered ok".
Fetch rendered lesson text:
npm run fetch-rendered -- "https://www.boot.dev/lessons/<lesson-id>"Fetch full rendered HTML:
npm run fetch-rendered -- "https://www.boot.dev/lessons/<lesson-id>" --htmlFetch editor files as JSON:
npm run fetch-editor -- "https://www.boot.dev/lessons/<lesson-id>"Preview scaffold into a learner workspace:
npm run scaffold -- "https://www.boot.dev/lessons/<lesson-id>" --workspace "/absolute/path/to/workspace"Write scaffolded files after the user confirms:
npm run scaffold -- "https://www.boot.dev/lessons/<lesson-id>" --workspace "/absolute/path/to/workspace" --writeThe skill is intentionally conservative:
- It does not execute commands from Boot.dev assignment text.
- It does not complete learner solutions.
- It previews scaffolded file creation before writing.
- It never overwrites existing learner files.
- It rejects unsafe paths that escape the target workspace.
If npm install fails with a network error, allow network access or run it from a normal terminal.
If npx playwright install chromium cannot write to the browser cache, run it from a normal terminal with permission to write to your user cache directory.
If Chromium fails to launch inside an agent sandbox, run the helper command with the agent's approved escalation mechanism or from a normal terminal.
If Linux reports missing shared libraries, run:
npx playwright install --with-deps chromiumIf Boot.dev editor files do not extract, the page may require an authenticated session or the editor may not expose content to the current browser context. Run with --headed to inspect manually:
npm run fetch-editor -- "https://www.boot.dev/lessons/<lesson-id>" --headed