Disable + uninstall caveman@caveman and delete every repo dependency on it: SessionStart/UserPromptSubmit hook blocks, standalone hook files, settings.json enabledPlugins + marketplace entries, install-plugins.sh STEP 5.5, update-all.sh refresh step, plugins.lock.json entry, doctor.sh checks, lib/detect-plugins.sh helpers, lib/profile.sh + plugin-advisor + skills/profile protected-list entries, .gitignore runtime-file block, and README/USAGE docs. Dead /caveman:compress refs replaced with manual/claude.ai guidance. Memory-registry terse-format convention kept (separate subsystem). Version 3.4.0 -> 3.5.0. On a subscription plan caveman's ~75% output-token compression has no cost benefit, and the always-on hooks added friction on validation gates and client deliverables. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com> Claude-Session: https://claude.ai/code/session_01X3e8LaH2vymmxyh36h3jFU
31 KiB
31 KiB
Changelog
All notable changes to claude-config will be documented in this file.
Format follows Keep a Changelog.
[Unreleased]
Added
/audit-delta— recurring multi-axis audit (norms / bugs / dead code / security) scoped to changes since last run, with per-axis SHA markers/capitalize— flush uncapitalized context to the memory registries before/clearor/compact/prune-memory— curate and compress the.claude/memory/registries/close— end-of-session memory ritual (decisions / learnings / blockers)/pdf-translate— translate a PDF to another language, output as HTML (via Vision)/harden— web hardening audit (SSL/TLS, HSTS, CSP, headers)/validate— W3C HTML/CSS validity + WCAG accessibility audit/client-handover— final ship + branded client deliverable (Markdown / HTML / PDF)/profile— partition skills by usage profile (design / dev / qa / audit / minimal / full)frontend-designanddesign-motion-principlesskills (external marketplaces)- Project archetype library + detection for
/onboard .claude/{tasks,memory,audits}/governance layout + 5 memory registries (decisions, learnings, blockers, journal, evals)
Changed
/seosplit into parallelseo+geoagents with shared resources/onboardrewritten: archetype-aware pipeline (orchestrator + config-only agent), security audit archetype-awaredoc-syncer: stack-aware audit + deploy-doc gating; later scoped to public docs only,.claude/read-only; sync-only ROADMAP handling — planned→shipped reconciliation from code/git, never from.claude/; numeric incoherence → HUMAN questionCLAUDE.md: major refactor (contradiction purge, restructure), subagent-delegation rule, design-toolchain mandate, memory-registry governance- Memory registries: enforced English + caveman format
- Default model / effort settings updated
Removed
disable-model-invocationfrontmatter removed repo-wide (aligns skills with CLAUDE.md routing)- Caveman plugin always-on integration purged — plugin disabled + uninstalled; SessionStart/UserPromptSubmit hooks, standalone hook files,
install-plugins.shSTEP 5.5,update-all.shrefresh step,plugins.lock.jsonentry,doctor.shchecks, and docs removed. On a subscription plan its ~75% output-token compression has no cost benefit, and the always-on hooks added friction on validation gates + client deliverables. The unrelated memory-registry terse-format convention is kept.
Fixed
- Numerous skill/agent fixes across darwin optimization rounds (geo-analyzer, onboard, init-project, analyzer, plugin-check, prune-memory, …)
[3.4.0] — 2026-04-15
Added
- 9 new skills:
/bugfix,/code-clean,/commit-change,/doc,/feat,/graphify,/hotfix,/seo,/skills-perso - 7 new agents:
bugfixer.md,code-cleaner.md,commit-changer.md,doc-syncer.md,feater.md,hotfixer.md,seo-analyzer.md install.sh: bootstrap script — installs Claude Code CLI, authenticates, sets up shell env vars, then runs link.sh + install-plugins.shhooks/statusline.sh: Claude Code status line configuration hookhooks/rtk-rewrite.sh: RTK hook for code rewritesplugins.lock.json: ctx7, graphifyy, and emil-design-eng entries addedskills-perso: lists personal (user-created) skills from~/.claude/skills/.graphifyignore: excludes gstack submodule and install logs from graphify indexing
Changed
Makefile:installtarget now runsinstall.sh(bootstrap); newplugintarget runsinstall-plugins.shonlyupdate-all.sh: now also updates Claude CLI, ctx7, graphifyy, and marketplace pluginsinstall-plugins.sh: added emil-design-eng skill download step; fixed skill-creator install to useanthropics/skillsmarketplaceskills/: logic extracted from inline SKILL.md into standalone agent.mdfiles — skills now delegate to agentsskills/commit-change/: renamed fromgit-smart-commit; confirmation step removedsettings.json: keys reordered for readabilityCLAUDE.md: added architecture decisions (no SPA for public sites, versioned APIs, security defaults), communication mode (radical honesty), graphify context navigation guidelinesREADME.md: file tree, skill table, install section, plugins.lock section, Makefile targets, update-all description all updated for new skills/agentsUSAGE.md: command table expanded (9 → 18), decision tree restructured with lightweight skill routingversion.txt: 3.3.0 → 3.4.0
Removed
agents/readme-updater.md: replaced byagents/doc-syncer.md(broader scope — all docs, not just README)skills/readme/: replaced byskills/doc/
Fixed
skills-perso: YAML description parsing handles both inline and block formats; detects personal skills via agent reference; excludes framework/gstack skills from listinginstall-plugins.sh: skill-creator install corrected to useanthropics/skillsmarketplace- GStack skill symlinks untracked from git — auto-created by
install-plugins.sh
[3.3.0] — 2026-04-08
Fixed
install-plugins.sh: marketplace org wasanthropic(missing 's') — corrected toanthropicsinstall-plugins.sh: pluginssecurity-guidance,frontend-design,pr-review-toolkitwere installed from non-existent marketplaceclaude-plugins-official— corrected toclaude-code-plugins(fromanthropics/claude-coderepo)install-plugins.sh:skill-creatorplugin does not exist — replaced withplugin-dev@claude-code-plugins(correct plugin name)
Changed
install-plugins.sh: addsanthropics/claude-codemarketplace before installing bundled plugins; install summary updated with correct marketplace sourceslib/detect-plugins.sh: addeddetect_security_guidance(),detect_plugin_dev()functions; removed reference to non-existentdetect_skill_creatorhooks/session-start.sh: addedplugin_devto toggle loop and token cost estimateagents/plugin-advisor.md: all references toskill-creator→plugin-dev; signalskill-creationnow recommendsplugin-dev ONREADME.md: plugin table updated with correct marketplace sources per plugin; new "Marketplaces" subsection documenting all 4 marketplace sources and manual install commands;/plugin-dev:create-pluginreplaces/skill-creatorUSAGE.md: all references toskill-creator→plugin-devversion.txt: 3.2.1 → 3.3.0
[3.2.1] — 2026-04-07
Fixed
agents/plugin-advisor.md: 4 signals had entries in the signal table but no conditional rule — added rules forskill-creation,browser-qa,design-system, andcomplex-arch
Changed
version.txt: 3.2.0 → 3.2.1
[3.2.0] — 2026-04-07
Fixed
doctor.sh: EXPECTED_SKILLS pass message uses${#EXPECTED_SKILLS[@]}(dynamic count) instead of hardcoded 9agents/plugin-advisor.md:setup.pyandpyproject.tomladded 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 handling
Added
USAGE.md: "Erreurs fréquentes" — embedded signal not detected entry
Changed
version.txt: 3.1.0 → 3.2.0
[3.1.0] — 2026-04-07
Fixed
agents/plugin-advisor.md:Makefilerestored as embedded indicator —Makefile+src/*.c+ no Node/Rust/Go manifest = embedded;.cfiles alone still not sufficient (Rust FFI counterindicated)agents/onboarder.md: PHASE 6 — checkcommand -v gsdbefore generating ROADMAP.md; if absent, ROADMAP.md still generated with install instructions; same pattern as init-project STEP 13
Added
doctor.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 section
Changed
version.txt: 3.0.0 → 3.1.0
[3.0.0] — 2026-04-07
Fixed
agents/plugin-advisor.md: embedded false positive removed —src/*.calone no longer triggers embedded signal (Rust FFI projects have .c files); onlyplatformio.inior*.ld/*.ldslinker scripts are reliable triggersagents/status-reporter.md: flat awk scoped to## Milestoneheadings — no longer matches## Prerequisites,## Notes, or other non-milestone##headings in ROADMAP.md
Added
agents/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)
Breaking
agents/plugin-advisor.md: embedded detection no longer triggers on C/C++ files alone — projects relying on .c file detection must addplatformio.inior a*.ldlinker script
Changed
version.txt: 2.9.0 → 3.0.0
[2.9.0] — 2026-04-07
Fixed
agents/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 ofcat | head
Added
USAGE.md: analyze → refactor → analyze cycle documented in decision tree (refactoring profond)README.md: link to USAGE.md in intro section
Changed
version.txt: 2.8.0 → 2.9.0
[2.8.0] — 2026-04-07
Fixed
agents/status-reporter.md: awk milestone detection usesindex()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
Added
agents/plugin-advisor.md:embeddedsignal 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:/statusadded to Maintenance Diagnostic section alongside/health
Changed
version.txt: 2.7.0 → 2.8.0
[2.7.0] — 2026-04-07
Fixed
agents/status-reporter.md: milestone detection algorithm — usesawkto find first##heading with pending###slices (top-to-bottom scan), nottail -5of all##headingsskills/ship-feature/SKILL.md:git lognow uses--format="%h %<(50,trunc)%s"to truncate long commit messages at 50 chars
Added
agents/status-reporter.md: PHASE 2 — best-effort build/test status check (pytest cache, Jest coverage, log files);Testsfield in outputdoctor.sh:check_symlink "lib"added;_EXPECTED_LINKSupdated 6 → 7agents/plugin-advisor.md:skill-creationsignal 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 GSD
Changed
version.txt: 2.6.0 → 2.7.0
[2.6.0] — 2026-04-07
Fixed
agents/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)
Added
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 discuss
Changed
version.txt: 2.5.0 → 2.6.0
[2.5.0] — 2026-04-07
Fixed
skills/init-project/SKILL.md: STEP 1 — checks bothCLAUDE.mdand.claude/CLAUDE.md; pre-fills interview from either locationagents/status-reporter.md: PHASE 3 GSD — replaced fragileSTATUS.mdread with robust ROADMAP.md checkbox parsing; handles missing ROADMAP.md; never reads binarystate.dbagents/onboarder.md: PHASE 5b added — .gitignore safety check; appends.claude/settings.local.jsonto existing .gitignore or creates minimal one; applies to all monorepo options
Added
doctor.sh: expected agents check in Consistency section — warns if any of 8 expected.mdagent files are missing from~/.claude/agents/README.md+USAGE.md:/statusadded 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 line
Changed
version.txt: 2.4.0 → 2.5.0
[2.4.0] — 2026-04-07
Fixed
skills/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.jsonfor sub-package context; signal table updated to describe upstream detection
Added
agents/status-reporter.md+skills/status/SKILL.md: new/statusskill — 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 — reportsN/6 OKafter symlink checkshooks/session-start.sh:+N moredisplay — shows first 2 active/inactive plugins + count of remaining instead of truncated stringREADME.md: /status added to skill table and file tree
Changed
version.txt: 2.3.0 → 2.4.0
[2.3.0] — 2026-04-07
Fixed
skills/ship-feature/SKILL.md: STEP 0b added — checks for CLAUDE.md before starting; blocks with/onboardinstruction 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:monoreposignal 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 detected
Added
USAGE.md: Exemple 7 — refactoring module Python legacy; full/analyze→/refactor→/analyzecycle; shows report-before-modify behavior and test-first recommendation
Changed
version.txt: 2.2.0 → 2.3.0
[2.2.0] — 2026-04-07
Fixed (bugs identified via case study simulation)
skills/init-project/SKILL.md: STEP 13 — guardcommand -v gsdbefore runninggsd 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) — detectsapps/,packages/,pnpm-workspace.yaml,turbo.json,nx.json,lerna.json; interactive gate (onboard whole workspace / single package / each separately)agents/plugin-advisor.md:mobilesignal added to PHASE 2 signal table + DECISION TABLE + conditional rules — React Native / Expo / Flutter explicitly handled; gstack disabled for mobile, Docker N/Adoctor.sh: GStackskills/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 width
Added
USAGE.md: Exemple 6 — CLI Rust from scratch; illustrates minimal workflow (superpowers only, no frontend plugins, cargo check as verify, no GSD v2)
Changed
version.txt: 2.1.0 → 2.2.0
[2.1.0] — 2026-04-07
Added
agents/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/onboardinvoking 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 onboardtargetREADME.md: Workflow patterns section (5 patterns: new short, new long, onboarding, hotfix, refactor); /onboard in skill table and tree; make onboard in maintenance
Fixed
agents/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 budget
Changed
version.txt: 2.0.0 → 2.1.0
[2.0.0] — 2026-04-06
Breaking
- GSD v1 (
glittercowboy/get-shit-done-cc) removed entirely - GSD v1 commands (
/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 v2 - GSD v2 (
gsd-pi) is a standalone CLI (Pi SDK), not a Claude Code plugin — usage model is entirely different
Added
- GSD v2 integration (
gsd-build/gsd-2, npm:gsd-pi2.64.0) — standalone CLI with autonomous mode (/gsd auto), state machine per-task execution, crash recovery, cost tracking, parallel workers, worktree isolation - Ruflo plugin (
ruvnet/ruflo, npm:ruflo3.5.58) — enterprise multi-agent MCP server (formerly claude-flow), 310+ tools, 100+ agent types, WASM kernel; 🔄 TOGGLE, ~500-1500t passive - Full plugin compatibility matrix in
agents/plugin-advisor.md— all 12 plugins analyzed pairwise, conditional rules, recommended sets by project type - Ruflo auto-detection in
lib/detect-plugins.sh,doctor.sh,hooks/session-start.sh - GSD v2 CLI status in
session-start.sh— dedicated🖥️ CLIline (separate from CC plugin toggles) - 8 new deny rules in
settings.json:source /dev/stdin,mkfifo *,python3 -c *,node -e *,xargs * .env*,tar * .env*,zip * .env*,base64 .env*— covers runtime secret access and exfiltration vectors disableAutoMode: "disable"added to globalsettings.json# TODO: VERIFY syntax in CC v2.1.89templates/symlink inlink.sh—~/.claude/templates/now resolves correctly for scaffolder and init-project- Token budget breakdown in
doctor.sh— CLAUDE.md + skill descriptions + plugin passive cost, thresholds vs Pro session budget (~11k tokens/5h) - GStack pinning warning in
doctor.shandupdate-all.sh(confirmation prompt before--remoteupdate) - GStack false-positive fix in
doctor.sh— submodule check now requires.gitpresence, not just directory existence - Ruflo install instructions in
install-plugins.sh(Step 5, manual — enterprise tool) - Ruflo update step in
update-all.sh - GSD v2 update step in
update-all.sh
Changed
plugins.lock.json: GSD v1 (npm:get-shit-done-cc) → GSD v2 (npm:gsd-pi2.64.0); ruflo (npm:ruflo3.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 checkscommand -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 -fportability fixhooks/session-start.sh: GSD v2 removed from toggle loop → dedicated🖥️ CLIline; 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,disableAutoModeaddedREADME.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.0
Fixed
link.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 -ffallback 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 mismatchedif/fiagents/plugin-advisor.md: GSD detection usedls ~/.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 line
[1.0.4] — 2026-04-05
Fixed
skills/*/SKILL.md: agent paths changed from.claude/agents/to$HOME/.claude/agents/— unambiguous user-scope resolution regardless of working directoryhooks/session-start.sh:CONFIG_VERSIONnow displayed in session-start box (was computed but never shown)settings.json+ templates: removed non-standard_readmekey (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" line
Changed
- README: Superpowers command table now shows actual skill names (
superpowers:brainstorming,superpowers:writing-plans,superpowers:subagent-driven-development, etc.) - README: install step 6 — replaced
/reload-plugins(nonexistent command) with "Restart Claude Code — plugins load automatically" - README: Context7 API key URL corrected from
context7.comtoupstash.com - README: Known Limitations — clarified agent frontmatter fields ARE enforced in v2.1.x; added
disableAutoModenote - README: Makefile command list in Maintenance section now includes
make new-skill lib/detect-plugins.sh:detect_context7()no longer spawnsclaudeCLI — reads~/.claude.jsonand~/.mcp.jsondirectly (no subprocess overhead at session start)
[1.0.3] — 2026-04-05
Token savings (~57% reduction across agents/skills)
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-project
Changed behavior
agents/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.shnot found (follows CLAUDE.md symlink to locate repo)skills/plugin-check/SKILL.md: argument-hint now shows concrete example
Added
Makefile: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- README: bundled skills section (
/batch,/debug,/simplify) - README: accurate progressive loading explanation (description only at startup, body on-demand)
link.sh: idempotent — reports "already up to date" or count of updated symlinks
[1.0.2] — 2026-04-04
Security
Bash(git add .env*)andBash(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 bypassdenytotal: 87 → 92 rulesnpx *moved from allow to ask in project template settings — arbitrary npm package execution now requires confirmationdocker stop *anddocker rm *moved from allow to ask in project template settings
Changed
skill-creatorandpr-review-toolkitreclassified 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 intoskills/init-project/SKILL.mdandskills/ship-feature/SKILL.mdwhere 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 Xno longer silently triggers SYNC modetemplates/settings/SETTINGS.md: stripped sections duplicating README (precedence table, what-goes-where) — 132 → 58 linesplugins.lock.json: removed unusedinstall_cmdandnodefields- README: GStack 14-command table collapsed to a single reference line
- README: plugin table updated to reflect new toggle status
Fixed
install-plugins.sh: GStack./setupnow 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 -gnow skipped if RTK hook already present in settings.jsondoctor.sh: CRLF detection ported fromgrep -qP(Linux-only) togrep -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 message
[1.0.1] — 2026-04-03
Security
envandprintenv *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 *andsed -i'' *removed from ask (consolidated intosed *)
Changed
git stash*(broad allow) split into safe variants in allow (git stash,push*,list*,show*) and destructive variants in ask (pop*,drop*,clear)doctor.shtoken budget estimate now uses full skill/agent file sizes instead of description-only char count — produces accurate token estimates (~4 chars/token)doctor.shdeny rule count now checks against expected value (87) and warns on mismatchdoctor.shpython3 one-liner wrapped in|| echo "?"— diagnosis no longer crashes on missing python3
Fixed
update-all.shGStack./setupnow runs in a subshell — upstream setup failure no longer crashes the update script mid-execution underset -euo pipefailupdate-all.shguards./setupexistence and executable bit before invoking it
[1.0.0] — 2025-04-03
Added
- 6 custom agents: analyzer, interviewer, plugin-advisor, readme-updater, refactorer, scaffolder
- 6 custom skills: analyze, init-project, plugin-check, readme, refactor, ship-feature
- 2 orchestrators with validation gates: init-project (13 steps), ship-feature (8 steps)
- Multi-OS install script (apt/dnf/pacman/brew)
- GStack as git submodule at skills-external/gstack
- Session start hook with plugin toggle status and health check
- Global settings.json with deny/ask/allow permission tiers
- Per-project templates: settings.json, settings.local.json, .claudeignore, project-CLAUDE.md
- Settings reference (SETTINGS.md)
- doctor.sh — full setup diagnostic
- update-all.sh — one-command update for all components
- plugins.lock.json — version pinning for non-marketplace dependencies
- /health skill — run doctor.sh from within Claude Code
- Makefile — unified entry point for install/link/doctor/update
Security
- deny rules cover: destructive commands, secrets access, privilege escalation, code injection (eval, bash -c, xargs), pipe-to-shell, and secrets via bash (cat .env)
- disableBypassPermissionsMode enforced globally
- .claudeignore template with comprehensive exclusions