Detect and fix color contrast problems in source files and images: compute WCAG contrast ratios, then apply hue-preserving replacements to the failing hex values directly in the repo's source files so every color passes. Fixing the source is the primary outcome; the audit documents the result. Owns docs/PALETTE_CONTRAST_AUDIT.md end to end: writes or refreshes the per-repo palette audit from evidence gathered in the target repo this run, while citing the propagated generic docs/COLOR_CONTRAST_ACCESSIBILITY.md method doc. Use for color contrast, WCAG, accessibility, luminance, contrast ratio, palette audit, a11y, and dark mode contrast tasks: auditing and fixing a repo's color palette, applying accessible color replacements across source files, checking a specific foreground/background pair, darkening or brightening a failing color, spot-checking contrast in a screenshot or rendered image, generating a new set of accessible colors, or writing up a repo's palette contrast audit from real evidence.
Design, implement, verify, and debug Apple Liquid Glass surfaces in SwiftUI on macOS 26+ and iOS 26: `.glassEffect`, `GlassEffectContainer`, `glassEffectID` morphing, `.interactive()`, tint, layer order, and backdrop sampling. Use when glass looks flat, gray, missing, or invisible, when a screenshot cannot prove the effect is live, when deciding which surfaces should be glass versus stable content, or when guaranteeing text contrast over glass (Reduce Transparency, Increase Contrast, vibrancy, scrims, WCAG ratios). Covers capture-path hazards (cacheDisplay / bitmapImageRepForCachingDisplay / ImageRenderer omit backdrop compositing; capture on screen with screencapture), differential proof via Reduce Transparency, expected appearance per backdrop, and a drop-in GlassSurface wrapper with accessibility fallbacks.
Watchdog for background subagents that catches a stuck, stalled, or hung agent without killing a healthy one. Use when one or more subagents or background agents are running and you want periodic hang detection. Trigger phrases: hang check, agent stuck, agent hung, stalled subagent, watchdog, no output, monitor running agents.
Resolve TypeScript errors, eliminate `any`, and design modular, strict TypeScript types including generics, conditional types, mapped types, template literal types, branded or opaque types, and deep inference. Use for type-inference problems, `infer` or `extends` questions, utility types such as `Partial`, `Record`, `ReturnType`, `Awaited`, `NoInfer`, `satisfies`, module-boundary type design, function overloads, declaration merging, strict-mode refactors, and production-grade type-safety reviews.
Create, edit, and lint WeBWorK PG/PGML questions following docs/webwork guidance, HTML whitelist constraints, and renderer-based lint checks. Use for tasks like authoring new PGML problems, adjusting randomization or grading, fixing PGML rendering issues, and running renderer API linting.
Capture screenshots of a running app and embed them into README.md and docs/ to make GitHub landing pages novice-friendly. Classifies the app as PySide6 GUI, Swift GUI, terminal/CLI, or web app, captures with the appropriate backend (easy-screenshot for local windows, Playwright for web), writes PNGs to docs/screenshots/, and inserts embed lines into README/docs. Rewrites the readme-docs managed screenshot block (begin/end sentinels) with real embeds, idempotently. Use after readme-docs runs, when screenshots are stale or absent, or when adding a new app kind. Writes docs/screenshots/ PNG files and edits README/docs embed lines; runs in Wave 2 of the docset-updater refresh, after readme-docs. App code is read-only.
Refresh the whole repo doc set in one pass by invoking the per-doc skills in dependency order (`arch-docs`, `setup-install-usage-docs`, `readme-docs`, `related-projects-docs`, `news-release-docs`, `screenshot-docs`, `agents-md-fixer`), then audit any remaining `docs/` files those skills do not own. Use when the user wants all docs brought current at once, or the doc set as a whole is missing, drifted, or unaudited.
Create or refresh `docs/RELEASE_HISTORY.md` and `docs/NEWS.md` from `docs/CHANGELOG.md`, authoring two differentiated docs (full versioned dated log vs short curated highlights) and emitting a `/tmp` notes-file body for `devel/make_release.py --notes-file`. Use when preparing a release or when the release docs are drifted, empty, or out of sync with the changelog. Does NOT touch `docs/CHANGELOG.md`, `README.md`, or the broader doc set (use `docset-updater` for the rest).