Take screenshots and interact with the rendered Jekyll website
Render the Jekyll site locally, take screenshots, and verify design changes visually using ChromeDriver and browser automation.
Use this skill when:
_layouts/) or includes (_includes/)Invoke this skill proactively after making visual changes to the site.
Before taking screenshots, verify both Jekyll and ChromeDriver are running.
Check Jekyll server:
curl -s -o /dev/null -w "%{http_code}" http://localhost:4000/ 2>/dev/null || echo "not running"
If not running (not 200), start it in background:
bundle exec jekyll serve --host 0.0.0.0 &
Wait a few seconds for it to build.
Check ChromeDriver:
cat /tmp/chromedriver_port 2>/dev/null || echo "not running"
If not running, start it:
./browser.sh chromedriver
This finds Chrome automatically and starts ChromeDriver on a free port.
Use ./browser.sh for browser automation:
./browser.sh start http://localhost:4000/
./browser.sh screenshot /tmp/preview.png
./browser.sh dark
./browser.sh screenshot /tmp/preview-dark.png
./browser.sh mobile
./browser.sh screenshot /tmp/preview-mobile-dark.png
./browser.sh light
./browser.sh screenshot /tmp/preview-mobile-light.png
./browser.sh desktop
./browser.sh nav http://localhost:4000/2026/course-shell/
./browser.sh screenshot /tmp/course-shell.png
./browser.sh stop
Mode commands (dark, light, mobile, desktop) persist until changed.
After taking a screenshot, use the Read tool to view it:
Read /tmp/preview.png
Execute JavaScript to query the page:
./browser.sh js "document.querySelector('nav').getBoundingClientRect()"
After modifying CSS/HTML:
./browser.sh nav http://localhost:4000/http://localhost:4000/http://localhost:4000/2026/http://localhost:4000/2026/course-shell/http://localhost:4000/about/Keep ChromeDriver running across multiple previews during a session. Only kill it when no more browser interactions are expected.
./browser.sh stop - Ends the browser session (optional between screenshots)./browser.sh kill - Stops ChromeDriver entirely (only when done with all design work)You do not need to run ./browser.sh kill after each preview. Start ChromeDriver once at the beginning and leave it running.
Jekyll not rebuilding: Run bundle exec jekyll build manually
ChromeDriver errors: Kill and restart
./browser.sh kill
./browser.sh chromedriver
Session errors: Stop any existing session first
./browser.sh stop
npx skills add missing-semester/website-preview下载完整 Skill 目录,包含 SKILL.md 及所有相关文件
Delegate coding tasks to Codex, Claude Code, or Pi agents via background process. Use when: (1) building/creating new features or apps, (2) reviewing PRs (spawn in temp dir), (3) refactoring large codebases, (4) iterative coding that needs file exploration. NOT for: simple one-liner fixes (just edit), reading code (use read tool), thread-bound ACP harness requests in chat (for example spawn/run Codex or Claude Code in a Discord thread; use sessions_spawn with runtime:"acp"), or any work in ~/clawd workspace (never spawn agents here). Claude Code: use --print --permission-mode bypassPermissions (no PTY). Codex/Pi/OpenCode: pty:true required.
Transcribe audio via OpenAI Audio Transcriptions API (Whisper).
Search for places (restaurants, cafes, etc.) via Google Places API proxy on localhost.
Search and analyze your own session logs (older/parent conversations) using jq.
Query Google Places API (New) via the goplaces CLI for text search, place details, resolve, and reviews. Use for human-friendly place lookup or JSON output for scripts.
Best practices for using the oracle CLI (prompt + file bundling, engines, sessions, and file attachment patterns).
Category:developer