adam-s-daniel/adam-local
Adam's machine-bound skills that need local resources (WSL/Windows homes, local files, a signed-in browser): PDF tooling, Claude Code session/settings/memory management, skill sync, school bell schedule.
Compare pairs of PDFs (name.pdf + name<suffix>.pdf in the same folder) to determine whether they would produce identical printouts and whether their embedded text differs — e.g. to safely delete redundant "-signed" or "-needsocr" duplicates. Recursively finds every pair under a directory, rasterizes pages and compares hashes, and diffs extracted text. Triggers: "compare pdf pairs", "find duplicate pdfs", "are these pdfs identical", "which suffixed pdfs can I delete", "dedupe scanned pdfs".
Launch a detached, interactive Claude Code session inside WSL from a Windows Claude Code session — in a specific repo/folder, optionally remote-controllable and optionally seeded with an initial prompt. Use this WHENEVER the user wants to open / launch / spawn / start / fire off a separate (or background, detached, standalone, "and ignore it") Claude session in WSL, in a given directory, especially so it shows up in their remote Claude sessions list, even if they don't name every detail. It handles the Windows→WSL launch quirks that silently break naive attempts: ConPTY via Windows Terminal, PowerShell path passing, session-id vs initial-prompt openers, prompt quoting, and the workspace-trust gate.
Inventory, clean up, and migrate Claude Code auto-memory stores found under ~/.claude/projects/<munged-path>/memory/ on this machine. Use this skill to list every memory store with its decoded project path, file count, size, and freshness; to identify ORPHANED stores whose original workspace no longer exists (so a human can review and delete them); and to migrate a chosen store into a repo's git-tracked .claude/memory/ directory so the memory travels with the repo across machines and is visible to hosted/cloud Claude sessions. Trigger on requests like "clean up claude memory", "migrate claude memory", "inventory memory stores", "orphaned memory", "sync memory across machines", "make memory portable", or any mention of ~/.claude/projects or autoMemoryDirectory. LOCAL-ONLY: this skill reads and writes files under this machine's ~/.claude directory and CANNOT run in a hosted/cloud Claude session that has no local ~/.claude on disk — do not invoke it there.
Batch-OCR scanned PDFs flagged as needing OCR, then visually review results with a WPF side-by-side comparison tool.
Audit PDF files to determine whether OCR (optical character recognition) is needed to make them fully text-searchable. Use this skill whenever the user asks about PDF searchability, OCR status, whether PDFs have embedded text, which PDFs are scans, or wants to audit/inventory a folder of PDFs for text extraction readiness. Also triggers for: "which PDFs need OCR", "are my PDFs searchable", "do these PDFs have text layers", "audit my PDFs", "find scanned PDFs".
Rename already-searchable PDFs in a specified folder to descriptive, date-prefixed names, proposing each name from the PDF's own content and prompting for per-file confirmation or edit before applying. Use after running ocr-pdfs to clean up scanner-output filenames like "Scan from 2024-03-15.pdf", "QuickScan_001.pdf", or "Document(47).pdf" — or for any folder of PDFs that already have text layers but unhelpful filenames. Triggers: "rename my pdfs", "clean up pdf filenames", "rename searchable pdfs", "give my pdfs descriptive names", "rename scanned pdfs", "tidy pdf names".
Sync Claude Code settings.json between a Windows home and a WSL home. Triggers on requests to "sync Claude Code settings", "merge my settings.json", "keep WSL and Windows Claude settings in sync", or mentions of reconciling %USERPROFILE%\.claude\settings.json with ~/.claude/settings.json in WSL. Backs up both files with an Eastern-time-stamped prefix, then merges per property (union for permissions.allow/deny and spinnerVerbs.verbs; more-recently-modified-wins with optional prompt for scalars like theme, model, effortLevel, tui, verbose, etc.; statusLine and defaultShell are kept per-file). Preserves each file's native newline format (CRLF for Windows, LF for WSL) and UTF-8 BOM presence. Windows-only (needs PowerShell 7+ and access to the WSL UNC share, e.g. \\wsl.localhost\Ubuntu\...). Use when the user wants the two settings.json files reconciled, not when they want a single file edited in place.
Sync local skill folders from git repos to Claude.ai (and other agent targets) via the upload-skill API. Trigger when the user says "sync skills", "push skills to Claude", "upload skill", or after editing SKILL.md files locally. Requires a claude.ai tab open in Chrome (uses browser session cookies via javascript_tool). Works on Adam's computer wherever the agentskills clones live, but the helper does not guess where: it scans its own checkout, and any other clone must be named with --repos or $AGENTSKILLS_REPOS.
Answer questions about the current or next class period, break, passing period, lunch, or bell at Walter Johnson High School (WJ / WJHS, Bethesda MD). Use whenever the user asks about Walter Johnson's schedule — "when does lunch end", "what period is it right now", "when's the next break", "is school on today", "what time do classes end" — or mentions WJ bells, periods, or dismissal. Knows all six WJ bell-schedule variants (regular, early dismissal, 2-hour delay, homeroom, two assembly variants) plus spring testing-day adjusted schedules, and relies on the agent's judgment — informed by the user's subscribed WJHS calendar, web search, and other context — to pick which one applies today.