Add /add-study-note skill for authoring interactive study notes#31
Merged
Conversation
- README: rewrite Structure/CI sections to match the actual tree and workflow (removed references to nonexistent head/header/footer.html, about.md, blog.md; correct the CI trigger description). - Gemfile: drop unused jekyll-seo-tag (meta is hand-rolled in _includes/meta.html); add html-proofer in a :test group for CI. - Remove dead Disqus code (site.disqus was never configured, so it never rendered): delete _includes/disqus.html and its include in post.html. - default.html: remove the IE<9 html5shiv block (dead http:// googlecode URL) and the leftover "Created with Jekyll Now" comment. - Harden insecure/protocol-relative URLs to https:// (svg-icons StackOverflow link, GoatCounter analytics script). - _config.yml: trim empty footer-links template fields; drop CNAME from exclude (the file no longer exists). - Commit Gemfile.lock for reproducible builds (un-ignore it). - CI: add a pull_request job that runs jekyll build + html-proofer (internal links/images, UTF-8 locale) so branches are verified before merge; gate the CV-build/deploy job to non-PR events. - CLAUDE.md: generalize the stale hard-coded development-branch reference. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019R3LLsWZr5fdbLwuumEov3
html-proofer 5.2.1 pulls in async → console 1.36, which requires Ruby >= 3.3. The workflow pinned Ruby 3.2, so `bundle install` failed to resolve the locked gems. Bump both jobs to Ruby 3.3 to match the committed Gemfile.lock, and update the matching note in CLAUDE.md. Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019R3LLsWZr5fdbLwuumEov3
Adds a skill at .claude/skills/add-study-note/ that scaffolds, fact-checks, and previews the site's interactive Study Note posts: - driver.mjs: builds the Jekyll site and screenshots a note in light + dark with headless Chrome (puppeteer-core + chrome-headless-shell), plus the /study-notes/ index, so a new note can be verified visually before push. - template.html: a conventions-correct scaffold (.study-note wrapper, --sn-* tokens, slider demo, adaptive SVG chart with the theme MutationObserver). - SKILL.md: the authoring workflow — research/fact-check with /deep-research, write per docs/_posts/CLAUDE.md, then preview via the driver. Documents the rbenv jekyll-binstub workaround and the placeholder-date build gotcha. node_modules/ and screenshots/ are gitignored (regenerated artifacts). Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_019R3LLsWZr5fdbLwuumEov3
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds a Claude Code skill at
.claude/skills/add-study-note/(discoverable as/add-study-note) that scaffolds, fact-checks, and visually verifies the site's interactive Study Note posts before they're pushed.Contents
driver.mjs— the preview harness. Builds the Jekyll site and screenshots a note in light + dark (plus the/study-notes/index) using headless Chrome (puppeteer-core+chrome-headless-shell). A study note's whole point is its interactive demos and cyan/teal theming in both modes, so the only real verification is to render it and look — this does exactly that.template.html— a conventions-correct scaffold: the{% include study-note-styles.html %}+.study-notewrapper,--sn-*design tokens, a slider demo, and an adaptive SVG chart wired to the themeMutationObserverredraw pattern.SKILL.md— the authoring workflow: research/fact-check with/deep-research→ write perdocs/_posts/CLAUDE.md→ preview via the driver. Documents two real gotchas hit during authoring (see below)..gitignore,package.json/package-lock.json— skill-localpuppeteer-core.node_modules/andscreenshots/are gitignored as regenerated artifacts.Verification
Every command in
SKILL.mdwas run in this environment:bundle install+ built the site and screenshotted an existing post — charts, demos, and theming render correctly in both light and dark.template.html, built, and confirmed it renders and appears atop the/study-notes/index with its excerpt.Gotchas documented (both hit while building this)
bundle exec jekyll buildfails withcommand not found: jekyllunder this repo's rbenv setup even thoughbundle show jekyllresolves. The driver works around it viabundle exec ruby "$(bundle show jekyll)/exe/jekyll" build.date: YYYY-MM-DDaborts the whole build (Invalid date). The template now ships a build-safe2026-01-01placeholder, and there's a troubleshooting entry.Note
The
/deep-researchstep needs outbound web access, which depends on the environment's network policy; the scaffold + preview steps are fully offline.🤖 Generated with Claude Code
https://claude.ai/code/session_019R3LLsWZr5fdbLwuumEov3
Generated by Claude Code