All notable changes to claude-mods are documented here. Format follows Keep a Changelog; versions follow Semantic Versioning. Fuller narrative entries for feature releases live in the README "Recent Updates" section.
Nothing yet.
ytdlp-ops skill - yt-dlp as the media ACQUISITION layer feeding
ffmpeg-ops: format selection doctrine (-S sort over -f filters, codec
targeting that avoids post-download transcodes), --download-sections
clip-at-download, audio-only STT extraction (-x --audio-format opus =
stream copy), playlist + --download-archive incremental channel syncs
(--break-on-existing --lazy-playlist cron pattern), cookies/auth
(--cookies-from-browser, Chrome 127+ Windows caveat, ban avoidance),
rate limiting/politeness, SponsorBlock mark-vs-remove, output-template
conventions ([%(id)s], byte-safe .100B truncation), subtitles-as-cheap-
transcripts, remux-vs-recode doctrine, livestream/premiere capture
(--live-from-start, --wait-for-video), batch dry-runs (--print
filename), a beyond-YouTube note, and a failure-triage ladder (the
nsig/403/429/geo classes incl. TLS-fingerprint blocks → --impersonate,
and the EJS class: missing formats from no JS runtime → deno default /
--js-runtimes node opt-in, surfaced by the verifier as a warning;
"outdated yt-dlp" is the diagnosis for most). Completes the acquire →
process chain with ffmpeg-ops. Ships a §7 staleness
verifier (check-ytdlp-version.sh: --offline structural in PR CI;
--live = installed version >60 days behind the latest GitHub release,
a documented core flag vanished from yt-dlp --help, or smoke-extraction
failure → exit 10, network unreachable → exit 7 advisory; wired into
tests/check-resources.sh + freshness.yml). 6 references, 1 date-stamped
preset asset, 28-assertion offline self-test (age logic exercised via test
seams - no network in tests).ffmpeg-ops skill - probe-first ffmpeg/ffprobe operations: ~30-command
cookbook with footgun table (seek/keyframe semantics, yuv420p+faststart,
quoting, VFR), EDL-driven editing (edit-as-code: schema asset +
cut-from-edl.py, dry-run by default), .cube LUT grading with
human-picks-the-grade chooser (gen-luts.py), STT/Whisper prep + the
transcript-JSON contract, silence/scene segmentation (detect-segments.py),
VMAF/SSIM quality gates (quality-compare.py), two-pass loudnorm automation,
hw-encoder proof-encoding (capability-scan.sh - listed ≠ working), chapter
authoring from scene/silence detection (make-chapters.py - ffmetadata mux /
YouTube description / WebVTT), probe --doctor triage (each hazard - VFR,
HDR transfer, rotation, interlacing, non-yuv420p, moov-at-EOF - paired with
its exact fix command, exit 10), target-size compression
(smart-compress.py - computed two-pass bitrate, auto audio/downscale,
size-verified), scrub-preview sprites + WebVTT thumbnail track
(make-sprites.py), an error-decoder reference (cryptic message → cause →
fix), and a §7 staleness verifier (verify-commands.sh, wired into PR CI +
freshness). Color grading is a first-class wing: a ~40-recipe look catalog
(film stocks incl. CineStill halation as a verified composite, signature
movie grades, era/genre moods, Sin City colorhold) with per-look scope
checks and failure modes, an 18-variant mono/duo/tritone tone-map family
(chroma = stop distance from the grey axis), the Hald-CLUT
grade-anywhere→LUT workflow, a scope-matching ladder with its governing
rule (transfer the chroma fingerprint globally; match key per scene-type,
never the global mean) and a real-footage worked extraction (grimdark),
plus a skin-tone equity caveat verified on the Kodak test portraits.
gen-luts.py carries 32 parametric looks (channel-mix + 2/3-stop gradient
maps). 19 references, 3 assets, 107-assertion self-test with
lavfi-synthesized fixtures (no binary fixtures in repo).ffmpeg-ops/cut-from-edl.py (found by real-media E2E):
the output directory was created after ffmpeg opened the temp output, so
any -o into a not-yet-existing directory died with a cryptic
"Error opening output files"; and CLI -o resolved against the EDL's
directory instead of the CWD (-o work/final.mp4 with the EDL in work/
silently meant work/work/final.mp4). -o is now CWD-relative (the EDL's
own output field stays EDL-relative per the schema), and the destination
dir is created before the concat runs.docs/SKILL-RESOURCE-PROTOCOL.md - the build standard for skill scripts/,
assets/, and references/: stream separation, semantic exit codes, --help
with EXAMPLES, first-comment-block contract, --json envelopes, agent safety,
the resource-scaffold checklist, and the staleness-verifier pattern (an
--offline structural check that gates PR CI plus a --live drift check that
runs scheduled, never blocking a PR on a network blip)claude-api-ops/check-model-table.py (model+pricing table drift),
terraform-ops/check-action-refs.sh (GitHub Action uses: refs resolve —
catches the exact trivy-action tag bug from v3.0),
claude-code-ops/validate-hooks-json.py (lint a hooks.json against the
30-event catalog), playwright-ops/triage-flakes.py (rank flaky tests from a
JSON report). Plus assets: agentic-loop.py, output-schema.json,
hooks.json.templatetests/check-resources.sh runs the offline verifiers in PR CI;
.github/workflows/freshness.yml runs the live drift checks weekly (advisory)-ops skill twins (python,
typescript, javascript, go, rust, react, vue, astro, laravel, sql, postgres)cypress-ops; cloudflare-expert + wrangler-expert →
cloudflare-ops; bash-expert → bash-ops; craftcms-expert → craftcms-ops;
payloadcms-expert → payloadcms-ops; asus-router-expert → asus-router-opsclaude-code-ops; aws-fargate-ecs-expert →
folded into container-orchestration
Per Anthropic's guidance, knowledge belongs in skills (progressive disclosure,
single source of truth); subagents are reserved for context isolation. The
only agents that remain are pure isolation/worker roles: git-agent,
firecrawl-expert, project-organizer. Dispatching skills route
general-purpose agents with skill preloading.claude-code-debug, claude-code-headless, claude-code-hooks skills -
merged into claude-code-ops (content was written against Claude Code
~2.0; the stale $TOOL_INPUT hook contract is gone, stdin JSON is current)claude-api-ops skill - building ON Claude: Messages API, tool use,
prompt caching, structured outputs (output_config.format), batches,
extended thinking, model selection, Agent SDK (Python + TypeScript)playwright-ops skill - e2e testing: selector hierarchy, fixtures/POM,
network mocking, auth storageState, CI sharding, flake hunting, config templateterraform-ops skill - Terraform/OpenTofu IaC: state management,
module patterns, OIDC CI/CD workflow template, drift detection, write-only
secrets, native terraform testclaude-code-ops skill - merges + refreshes claude-code-debug,
claude-code-headless, claude-code-hooks against current docs: 30-event hook
catalog with JSON contracts, current skill frontmatter spec, headless/CLI
reference, extension debugging decision trees (+ extension-architecture from
claude-architect)cypress-ops, cloudflare-ops, bash-ops skills - converted from the
cypress/cloudflare/wrangler/bash agents and refreshed against current docs
(Cypress data-test/Test Replay/cy.session; wrangler deploy not publish,
jsonc config, Workers static assets; defensive bash to the resource protocol)craftcms-ops, payloadcms-ops, asus-router-ops skills - converted
from the niche CMS/router agents and refreshed against current docs (Craft 5
Matrix-as-entries; Payload 3 Next.js-native + Local API; Asuswrt-Merlin
hardening + WireGuard)config-change-guard.sh (ConfigChange event -
scans edited Claude settings files for worm-persistence IOCs the moment
they're written, reusing integrity-audit patterns) and worktree-guard.sh
(PreToolUse - mechanically enforces rules/worktree-boundaries.md)hooks/hooks.json) - plugin installs get the
security-advisory hook set (pre-install-scan, manifest-dep-scan,
session-start unicode scan, config-change guard, worktree guard) with zero
hand-wiring; formatting/lint hooks stay opt-in examplesfleet track command - register natively-spawned branches as fleet laneswhen_to_use (10 skills),
argument-hint (iterate/review/testgen/explain), effort: high
(iterate/review)skillOverrides, 1,536-char per-skill captests/doc-drift.sh) - docs must match disktests/run-skill-tests.sh)fleet.sh ensure_fleet_dir returned 1 under set -e on every invocation
after the first, silently killing post-init commandsfleet.sh no longer uses
(now 29/29 against real behaviour)rules/thinking.md, docs/DASH.md)tests/skills/functional/git-workflow.* renamed to git-cli-tools.*claude plugin validate added as a CI gate (#4)prompt-injection-defense skill - instruction-integrity defense: hidden-Unicode
scanner (bidi/Trojan Source, tag-block smuggling, zero-width), byte-faithful
sanitizer, SessionStart + git pre-commit hooks, rules/prompt-injection.mdsupply-chain-defense skill - behavioural-first dependency security:
Socket.dev integration (free CLI + zero-auth depscore MCP), exposure-check
across 6 ecosystems + editor extensions, integrity-audit for worm persistence,
7-day release cooldown, install + manifest advisory hooks,
rules/supply-chain.md, 42-assertion offline test suitemac-ops skill finalized - macOS workstation diagnostics, peer to
windows-ops: 23 scripts + 11 references (TCC privacy, wake reasons,
Spotlight, APFS storage pressure)mac-ops incremental build-up: kext/firewall/keychain/bluetooth/font audits,
brew-health, sysdiagnose-helper, quickrun consolidator, worked exampleswindows-ops skill - Windows workstation diagnostics: health-audit panel,
crash-triage (Event 41 BugCheck decoding), recover-clone for dying drivesnet-ops skill - cross-platform network troubleshooting ladder (link → app),
IPv6 classifier, MTU/PMTU, DoH detection, --watch/--json/--redactportless-ops skill - local-dev HTTPS proxy operations for Vercel Labs portlessprocess-compose-ops skill - Process Compose supervisor operationssummon + fleet-ops registered in plugin manifest (were committed but unindexed)/canvas command + canvas-tui package - experimental, Warp-specific, unused;
removes the only npm runtime-dep surfaceinstall.sh made cross-platform (Linux/macOS/Windows Git Bash)summon skill - transfer Claude Desktop Code-tab sessions between accountsgithub-ops Recent Updates rule sharpened: features-not-bugs criteriagit-ops hygiene checks - status.sh flags feature-branch checkouts, stale mergesdocs/references/claude-desktop-internals.md - Desktop session architecture mappush-gate first-push to new remote (gitleaks scan branches on remote-ref existence)github-ops skill - GitHub remote operations: repo creation, releases,
metadata, README Recent Updates convention; three modes (new/update/audit)leveldb-ops skill - read Chromium/Electron LevelDB stores via ccl_chromium_reader/iterate enhancements - Batch+bisect, Until/Stagnation stop conditions,
branch isolation, iterate/best tag, always-summarize-on-exitgit-ops (status.sh + worktree-survey.sh)push-gate skill - pre-push secret/forbidden-file gate, no bypassrules/worktree-boundaries.mdauto-skill suggestions persisted to pending.log, surfaced at /syncauto-skill skill - self-learning skill creation via PostToolUse/Stop hookspigeon skill (renamed from agentmail) - inter-session pmail, SQLite-backedgenart-ops skill (1,843 lines)git-ops + git-agent (replaces
git-workflow), perf-ops, security-ops parallel auditsmodel: sonnet for expert dispatch/introspect Session Insights; /setperms 74 default permissionsclaude-code-templates (redundant with first-party skill-creator)/iterate skill - autonomous improvement loop (Karpathy autoresearch pattern)-ops skills (React, Vue, Go, Rust, TypeScript, Docker, CI/CD,
PostgreSQL, Nginx, Auth, Monitoring, Debug, MCP, Tailwind, and more)-patterns skills renamed to -ops/save + /sync, schema v3.1), expert
agents, Python skill family, tech-debt scanner, modern CLI toolkit, validation
suite