All notable changes to claude-config will be documented in this file.
Format follows Keep a Changelog.
security-guidance removed โ never existed as a marketplace plugin (anthropic/claude-plugins-official is a non-existent repo). RTK covers security hooks.pr-review-toolkit removed โ same non-existent marketplace. No replacement available.frontend-design reclassified from TOGGLE plugin to built-in Claude Code skill (/mnt/skills/public/frontend-design/). Always available, 0 token cost, not toggleable.skill-creator reclassified from TOGGLE plugin to built-in Claude Code skill (/mnt/skills/examples/skill-creator/). Always available, 0 token cost, not toggleable.anthropic/claude-plugins-official marketplace reference removed from install-plugins.sh โ this GitHub repo does not exist.install-plugins.sh: fake marketplace block replaced with built-in skill notes; install summary updatedlib/detect-plugins.sh: detect_frontend_design() removed (built-in skill, always available); notes added for all removed pluginshooks/session-start.sh: frontend_design removed from toggle loop; security-guidance removed from always-on display; new ๐ต BUILT-IN line shows frontend-design skill-creator; token cost estimate no longer counts frontend-designagents/plugin-advisor.md: decision table, compatibility matrix, recommended sets, conditional rules all updated โ frontend-design and skill-creator marked as built-in (0t, not toggleable); security-guidance and pr-review-toolkit removed; passive cost estimates recalculatedREADME.md: plugin reference table split into installable plugins + built-in skills; compatibility matrix updated; recommended sets recalculated; removed pr-review-toolkit from slash commands; added "Removed plugins" note explaining what happenedUSAGE.md: all references updated โ quick reference, case studies, session-start boxes, signalโplugin tableversion.txt: 3.2.1 โ 3.3.0agents/plugin-advisor.md: 4 signals had entries in the signal table but no conditional rule โ added rules for skill-creation, browser-qa, design-system, and complex-archversion.txt: 3.2.0 โ 3.2.1doctor.sh: EXPECTED_SKILLS pass message uses ${#EXPECTED_SKILLS[@]} (dynamic count) instead of hardcoded 9agents/plugin-advisor.md: setup.py and pyproject.toml added as counterindicators for embedded signal โ prevents Python C-extensions from false-triggering embeddedagents/status-reporter.md: PHP phpunit added to manifest fallback (composer.json โ ./vendor/bin/phpunit)skills/health/SKILL.md: post-result guidance added โ CRITICAL/WARNING/errors/warnings/all-pass handlingUSAGE.md: "Erreurs frรฉquentes" โ embedded signal not detected entryversion.txt: 3.1.0 โ 3.2.0agents/plugin-advisor.md: Makefile restored as embedded indicator โ Makefile + src/*.c + no Node/Rust/Go manifest = embedded; .c files alone still not sufficient (Rust FFI counterindicated)agents/onboarder.md: PHASE 6 โ check command -v gsd before generating ROADMAP.md; if absent, ROADMAP.md still generated with install instructions; same pattern as init-project STEP 13doctor.sh: expected skills check โ verifies all 9 skills (analyze, health, init-project, onboard, plugin-check, readme, refactor, ship-feature, status) present in ~/.claude/skills/skills/analyze/SKILL.md: description updated to mention DEBUG mode (read-only analysis OR error/stack trace โ DEBUG mode)USAGE.md: token cost estimates on workflow patterns (Pattern A ~3000-5000t, B ~1500-2500t/session, D ~500-800t, E ~600-900t); budget note at top of Patterns sectionversion.txt: 3.0.0 โ 3.1.0agents/plugin-advisor.md: embedded false positive removed โ src/*.c alone no longer triggers embedded signal (Rust FFI projects have .c files); only platformio.ini or *.ld/*.lds linker scripts are reliable triggersagents/status-reporter.md: flat awk scoped to ## Milestone headings โ no longer matches ## Prerequisites, ## Notes, or other non-milestone ## headings in ROADMAP.mdagents/status-reporter.md: Go test runner in manifest fallback (go.mod โ "go test ./...")USAGE.md: GSD v2 active/interrupted node in decision tree โ /gsd auto, /gsd steer, /gsd forensicsskills/analyze/SKILL.md: argument-hint updated to mention DEBUG mode (pass error/stack trace)agents/plugin-advisor.md: embedded detection no longer triggers on C/C++ files alone โ projects relying on .c file detection must add platformio.ini or a *.ld linker scriptversion.txt: 2.9.0 โ 3.0.0agents/plugin-advisor.md: PHASE 1 โ filesystem embedded detection added (platformio.ini, .ld linker scripts, src/.c without package.json/Dockerfile); signal description updatedagents/status-reporter.md: PHASE 3 โ flat ROADMAP fallback awk command for milestones with tasks directly under ## (no ### slices); marked with "(flat)" in outputagents/status-reporter.md: pytest cache parsing โ JSON {} = "all passing" instead of "0 failing"; uses python3 for proper JSON parse instead of cat | headUSAGE.md: analyze โ refactor โ analyze cycle documented in decision tree (refactoring profond)README.md: link to USAGE.md in intro sectionversion.txt: 2.8.0 โ 2.9.0agents/status-reporter.md: awk milestone detection uses index() instead of regex negation โ portable across macOS nawk and GNU awkagents/status-reporter.md: Tests field fallback improved โ shows "run '' to check" when no result found but test manifest exists; shows "N/A" only when no test infrastructure at all
agents/plugin-advisor.md: embedded signal added โ firmware/bare-metal/microcontroller detection; DECISION TABLE row; conditional rule disabling all toggles, superpowers optionaldoctor.sh: agents pass message now lists all 8 agent names inline for quick visual confirmationUSAGE.md: section "Quel skill utiliser ?" โ decision tree for all 9 skills with quick-reference tableREADME.md: /status added to Maintenance Diagnostic section alongside /healthversion.txt: 2.7.0 โ 2.8.0agents/status-reporter.md: milestone detection algorithm โ uses awk to find first ## heading with pending ### slices (top-to-bottom scan), not tail -5 of all ## headingsskills/ship-feature/SKILL.md: git log now uses --format="%h %<(50,trunc)%s" to truncate long commit messages at 50 charsagents/status-reporter.md: PHASE 2 โ best-effort build/test status check (pytest cache, Jest coverage, log files); Tests field in outputdoctor.sh: check_symlink "lib" added; _EXPECTED_LINKS updated 6 โ 7agents/plugin-advisor.md: skill-creation signal added to PHASE 2; WARN rule if skill-creator active without skill-creation signalUSAGE.md: Exemple 9 โ firmware C/C++ STM32, workflow minimaliste sans superpowers ni GSDversion.txt: 2.6.0 โ 2.7.0agents/status-reporter.md: PHASE 3 now counts slices (### headings) not tasks (- [ ]) โ correct progress metric matching GSD v2 dashboardhooks/session-start.sh: continuation line uses 13-space prefix (verified 60 bytes) for consistent box alignmentagents/onboarder.md: PHASE 5b clarifies .gitignore target path per mode (A=workspace root, B=PACKAGE_ROOT, C=per-package)skills/ship-feature/SKILL.md: STEP 0b now prints PROJECT CONTEXT header when CLAUDE.md found โ project name, stack, current branch, last 3 commits, GSD milestoneUSAGE.md: Exemple 8 โ full session resume workflow with /status + GSD v2 step mode + /gsd discussversion.txt: 2.5.0 โ 2.6.0skills/init-project/SKILL.md: STEP 1 โ checks both CLAUDE.md and .claude/CLAUDE.md; pre-fills interview from either locationagents/status-reporter.md: PHASE 3 GSD โ replaced fragile STATUS.md read with robust ROADMAP.md checkbox parsing; handles missing ROADMAP.md; never reads binary state.dbagents/onboarder.md: PHASE 5b added โ .gitignore safety check; appends .claude/settings.local.json to existing .gitignore or creates minimal one; applies to all monorepo optionsdoctor.sh: expected agents check in Consistency section โ warns if any of 8 expected .md agent files are missing from ~/.claude/agents/README.md + USAGE.md: /status added to Pattern B (multi-session) and Pattern C (onboarding) workflowshooks/session-start.sh: 2-line display for >4 active/inactive plugins โ all plugin names shown, split at 4 per lineversion.txt: 2.4.0 โ 2.5.0skills/init-project/SKILL.md: STEP 1 โ reads existing CLAUDE.md if present; pre-fills interview answers already documented; asks only genuinely missing fieldsagents/onboarder.md: Option B fully implemented โ explicit PACKAGE_ROOT scoping; all PHASE 3-5 paths relative to selected package; no root CLAUDE.md generatedagents/plugin-advisor.md: upstream monorepo detection in PHASE 1 โ checks ../turbo.json, ../pnpm-workspace.yaml, ../../turbo.json for sub-package context; signal table updated to describe upstream detectionagents/status-reporter.md + skills/status/SKILL.md: new /status skill โ consolidated read-only snapshot (plugins + token cost + git state + recent commits + GSD v2 milestone)USAGE.md: section "Erreurs frรฉquentes" โ quick-reference table of 14 common errors with causes and solutionsdoctor.sh: symlink counter โ reports N/6 OK after symlink checkshooks/session-start.sh: +N more display โ shows first 2 active/inactive plugins + count of remaining instead of truncated stringREADME.md: /status added to skill table and file treeversion.txt: 2.3.0 โ 2.4.0skills/ship-feature/SKILL.md: STEP 0b added โ checks for CLAUDE.md before starting; blocks with /onboard instruction if missingskills/ship-feature/SKILL.md: STEP 4b option B enhanced โ scans remaining tasks for dependents before skipping a failed task; prompts to skip dependent tasks tooagents/onboarder.md: Option C (sequential monorepo onboarding) fully implemented โ iterates all packages, generates per-package CLAUDE.md + settings + .claudeignore, summary table, optional root ROADMAP.mdagents/plugin-advisor.md: monorepo signal added to PHASE 1 detection (turbo.json, pnpm-workspace, nx.json), PHASE 2 signal table, DECISION TABLE, and conditional rules โ recommends plugins per-package, not for the whole repodoctor.sh: check_symlink "templates" added โ detects missing templates/ symlink (pre-v2.0.0 installations)hooks/session-start.sh: ACTIVE_STR and INACTIVE_STR truncated to 37 chars + โฆ indicator when overflow detectedUSAGE.md: Exemple 7 โ refactoring module Python legacy; full /analyze โ /refactor โ /analyze cycle; shows report-before-modify behavior and test-first recommendationversion.txt: 2.2.0 โ 2.3.0skills/init-project/SKILL.md: STEP 13 โ guard command -v gsd before running gsd init; prints install instructions if GSD v2 not in PATH instead of failing silentlyskills/ship-feature/SKILL.md: STEP 4b added โ structured error recovery when a subagent fails (build error, failing test, type error); DEBUG mode analysis + user gate before any fix; max 2 retry attempts; never auto-patchesagents/onboarder.md: monorepo detection added (PHASE 1) โ detects apps/, packages/, pnpm-workspace.yaml, turbo.json, nx.json, lerna.json; interactive gate (onboard whole workspace / single package / each separately)agents/plugin-advisor.md: mobile signal added to PHASE 2 signal table + DECISION TABLE + conditional rules โ React Native / Expo / Flutter explicitly handled; gstack disabled for mobile, Docker N/Adoctor.sh: GStack skills/ subdirectory check added after symlink verification โ warns if GStack is symlinked but has no skills (needs ./setup)hooks/session-start.sh: TOKEN_WARN truncated to 44 chars to prevent box overflow with emoji widthUSAGE.md: Exemple 6 โ CLI Rust from scratch; illustrates minimal workflow (superpowers only, no frontend plugins, cargo check as verify, no GSD v2)version.txt: 2.1.0 โ 2.2.0agents/scaffolder.md: React Native/Expo + Flutter support โ PHASE 0 (Docker exclusion), PHASE 3 (stack templates), PHASE 4 (install commands), PHASE 5 (verify commands per stack)agents/analyzer.md: DEBUG MODE section โ structured error diagnosis with root cause hypotheses, trace, and affected filesagents/onboarder.md: new agent โ onboard existing projects (discovery โ interview โ CLAUDE.md + settings + .claudeignore + optional GSD v2 ROADMAP)skills/onboard/SKILL.md: new skill /onboard invoking the onboarder agentskills/init-project/SKILL.md: STEP 13 (optional) โ propose GSD v2 init at end of init-project when multi-session signal detectedMakefile: make onboard targetREADME.md: Workflow patterns section (5 patterns: new short, new long, onboarding, hotfix, refactor); /onboard in skill table and tree; make onboard in maintenanceagents/plugin-advisor.md: "Next.js + context7 not configured" moved from BLOCK โ WARN with force option โ Context7 requires manual API key, should not hard-block project startlib/detect-plugins.sh: detect_ruflo() now uses 3-level fallback (npm binary โ MCP config grep + ruvnet/claude-flow variants โ claude mcp list)hooks/session-start.sh: passive token cost estimate added to session display โ warns at >25%, alerts at >50% of Pro session budgetversion.txt: 2.0.0 โ 2.1.0glittercowboy/get-shit-done-cc) removed entirely/gsd:discuss-phase, /gsd:plan-phase, /gsd:execute-phase, /gsd:ship, /gsd:next) no longer available โ these were Claude Code slash commands; they do not exist in v2gsd-pi) is a standalone CLI (Pi SDK), not a Claude Code plugin โ usage model is entirely differentgsd-build/gsd-2, npm: gsd-pi 2.64.0) โ standalone CLI with autonomous mode (/gsd auto), state machine per-task execution, crash recovery, cost tracking, parallel workers, worktree isolationruvnet/ruflo, npm: ruflo 3.5.58) โ enterprise multi-agent MCP server (formerly claude-flow), 310+ tools, 100+ agent types, WASM kernel; ๐ TOGGLE, ~500-1500t passiveagents/plugin-advisor.md โ all 12 plugins analyzed pairwise, conditional rules, recommended sets by project typelib/detect-plugins.sh, doctor.sh, hooks/session-start.shsession-start.sh โ dedicated ๐ฅ๏ธ CLI line (separate from CC plugin toggles)settings.json: source /dev/stdin, mkfifo *, python3 -c *, node -e *, xargs * .env*, tar * .env*, zip * .env*, base64 .env* โ covers runtime secret access and exfiltration vectorsdisableAutoMode: "disable" added to global settings.json # TODO: VERIFY syntax in CC v2.1.89templates/ symlink in link.sh โ ~/.claude/templates/ now resolves correctly for scaffolder and init-projectdoctor.sh โ CLAUDE.md + skill descriptions + plugin passive cost, thresholds vs Pro session budget (~11k tokens/5h)doctor.sh and update-all.sh (confirmation prompt before --remote update)doctor.sh โ submodule check now requires .git presence, not just directory existenceinstall-plugins.sh (Step 5, manual โ enterprise tool)update-all.shupdate-all.shplugins.lock.json: GSD v1 (npm:get-shit-done-cc) โ GSD v2 (npm:gsd-pi 2.64.0); ruflo (npm:ruflo 3.5.58) addedinstall-plugins.sh: STEP 4 GSD v2 (npm install -g gsd-pi), STEP 5 ruflo (manual instructions), steps renumbered 6-7lib/detect-plugins.sh: detect_gsd() now checks command -v gsd (not ~/.claude/skills/ grep); detect_ruflo() addeddoctor.sh: GSD v2 check, ruflo check, GStack false-positive fix, GStack pinning warning, EXPECTED_DENY 92โ100, token budget Pro-aware with breakdown, readlink -f portability fixhooks/session-start.sh: GSD v2 removed from toggle loop โ dedicated ๐ฅ๏ธ CLI line; ruflo added to toggle loopupdate-all.sh: GStack confirmation prompt, GSD v2 update step, ruflo update step, steps renumbered 1-7agents/plugin-advisor.md: complete rewrite โ PHASE 1 detection (GSD v2, ruflo), PHASE 2 signal table, full compatibility matrix, conditional rules, recommended sets by project type, WARN/BLOCK updatedlink.sh: templates/ added to symlink loopsettings.json: 92โ100 deny rules, disableAutoMode addedREADME.md: comprehensive update โ GSD v2 full usage guide, ruflo install/usage, plugin compatibility matrix section, updated plugin table (GSD v2 as CLI, ruflo as TOGGLE), version pinning examples, troubleshooting entries for GSD v2 and ruflo, Known Limitations updatedversion.txt: 1.0.4 โ 2.0.0link.sh: templates/ not symlinked โ scaffolder and init-project now find ~/.claude/templates/project-CLAUDE.mddoctor.sh: GStack submodule check was a false positive when directory existed but submodule was uninitialiseddoctor.sh: readlink -f fallback made explicit for BSD macOS compatibilitydoctor.sh: token budget used incorrect "~8000 tokens" reference โ now uses Pro session budget (~11k)doctor.sh: EXPECTED_DENY hardcoded at 92 โ updated to 100 after new deny rulesupdate-all.sh: GStack update had no confirmation prompt โ added; GStack step structure had mismatched if/fiagents/plugin-advisor.md: GSD detection used ls ~/.claude/skills/ | grep gsd โ broken for v2 (CLI not a skill)hooks/session-start.sh: GSD v2 (standalone CLI) was in the CC plugin toggle loop โ incorrect, moved to dedicated CLI lineskills/*/SKILL.md: agent paths changed from .claude/agents/ to $HOME/.claude/agents/ โ unambiguous user-scope resolution regardless of working directoryhooks/session-start.sh: CONFIG_VERSION now displayed in session-start box (was computed but never shown)settings.json + templates: removed non-standard _readme key (silently ignored by Claude Code but triggers schema warnings)agents/plugin-advisor.md: RTK detection re-added in PHASE 1 (was removed in v1.0.3 compression)skills/health/SKILL.md: fallback command simplified โ removed 3-level quote nestinginstall-plugins.sh: removed duplicate "โ Restart Claude Code" linesuperpowers:brainstorming, superpowers:writing-plans, superpowers:subagent-driven-development, etc.)/reload-plugins (nonexistent command) with "Restart Claude Code โ plugins load automatically"context7.com to upstash.comdisableAutoMode notemake new-skilllib/detect-plugins.sh: detect_context7() no longer spawns claude CLI โ reads ~/.claude.json and ~/.mcp.json directly (no subprocess overhead at session start)CLAUDE.md: 1414t โ 418t (-70%) โ rewritten as dense rule list, no prose paddingagents/plugin-advisor.md: 1251t โ 536t (-57%) โ DECISION MATRIX removed (duplicated THRESHOLDS), output template compressedagents/interviewer.md: 1088t โ 438t (-60%) โ PROJECT BRIEF ASCII art โ compact YAML-style, question groups flattenedagents/readme-updater.md: 2224t โ 792t (-64%) โ Docker detection unified to one block, template skeleton condensed, phases as tight checklistsagents/scaffolder.md: 2402t โ 1041t (-57%) โ Dockerfile/compose templates replaced by 3-line descriptions, Phase 0 compressedskills/init-project/SKILL.md: 2452t โ 915t (-63%) โ AGENTS LOADED section removed, each STEP condensed to 2-4 linesskills/ship-feature/SKILL.md: 1236t โ 537t (-57%) โ same treatment as init-projectagents/interviewer.md: if prompt already contains name + purpose + stack + features + architecture โ generate BRIEF directly, no questions askedagents/readme-updater.md: Docker detection defined once at top, referenced in all modes (no duplication)hooks/session-start.sh: always-on plugins (security-guidance, rtk, superpowers) now explicitly shown in session start displayskills/health/SKILL.md: fallback path when ~/.claude/doctor.sh not found (follows CLAUDE.md symlink to locate repo)skills/plugin-check/SKILL.md: argument-hint now shows concrete exampleMakefile: make new-skill name=<n> โ scaffolds agent + skill files from template in one commandtemplates/project-CLAUDE.md: inline examples per section (FastAPI-based) โ usable without /init-project/batch, /debug, /simplify)link.sh: idempotent โ reports "already up to date" or count of updated symlinksBash(git add .env*) and Bash(git add **/.env*) added to deny โ prevents staging secretsBash(cp **/id_rsa*), Bash(cp **/id_ed25519*), Bash(cp **/.ssh/*) added to deny โ closes SSH key copy bypassdeny total: 87 โ 92 rulesnpx * moved from allow to ask in project template settings โ arbitrary npm package execution now requires confirmationdocker stop * and docker rm * moved from allow to ask in project template settingsskill-creator and pr-review-toolkit reclassified from ALWAYS ON to TOGGLE โ saves ~400 tokens/session by defaultagents/scaffolder.md: removed Go, PHP/WordPress, Flutter/Dart stack templates (unused)CLAUDE.md: STRICT MODE section removed โ rules inlined into skills/init-project/SKILL.md and skills/ship-feature/SKILL.md where they apply, reducing global context weightCLAUDE.md: FAIL FAST MODE cleaned up (removed contradictory "override all" claim)agents/readme-updater.md: mode detection changed from substring match to exact first-word match โ /readme update X no longer silently triggers SYNC modetemplates/settings/SETTINGS.md: stripped sections duplicating README (precedence table, what-goes-where) โ 132 โ 58 linesplugins.lock.json: removed unused install_cmd and node fieldsinstall-plugins.sh: GStack ./setup now runs in subshell with existence+executable guard (same fix as update-all.sh)install-plugins.sh: log setup guarded against read-only filesystem โ no longer crashes before outputinstall-plugins.sh: rtk init -g now skipped if RTK hook already present in settings.jsondoctor.sh: CRLF detection ported from grep -qP (Linux-only) to grep -c $'\r' (portable macOS/Linux)doctor.sh: token budget breakdown now lists top consumers per file when estimate exceeds 2000 tokenslib/detect-plugins.sh: removed three never-called functions (detect_security_guidance, detect_skill_creator, detect_pr_review_toolkit)hooks/session-start.sh: removed unreachable inline fallback โ replaced with clean exit messageenv and printenv * moved from allow to deny โ blocks secret exposure via process environmentexport * added to deny โ prevents environment variable injectioncp .env*, cp **/.env*, mv .env*, mv **/.env* added to deny โ closes copy-then-read bypass on secret filescp **/secrets/*, mv **/secrets/* added to deny โ extends secret move protection to secrets/ directorysed * moved from allow to ask โ all sed (including in-place -i) now requires confirmationsed -i * and sed -i'' * removed from ask (consolidated into sed *)git stash* (broad allow) split into safe variants in allow (git stash, push*, list*, show*) and destructive variants in ask (pop*, drop*, clear)doctor.sh token budget estimate now uses full skill/agent file sizes instead of description-only char count โ produces accurate token estimates (~4 chars/token)doctor.sh deny rule count now checks against expected value (87) and warns on mismatchdoctor.sh python3 one-liner wrapped in || echo "?" โ diagnosis no longer crashes on missing python3update-all.sh GStack ./setup now runs in a subshell โ upstream setup failure no longer crashes the update script mid-execution under set -euo pipefailupdate-all.sh guards ./setup existence and executable bit before invoking it