Config de claude

bastien 147ea73de3 docs(readme,usage): streamline documentation — remove bloat, add self-management section 1 lună în urmă
agents 616c6e9198 refactor(skills): extract skill logic into standalone agent files 1 lună în urmă
hooks 58a7fb182f auto-detect plan, complexity scoring, ctx7 cache, graphify in workflows 1 lună în urmă
lib 58a7fb182f auto-detect plan, complexity scoring, ctx7 cache, graphify in workflows 1 lună în urmă
skills 975ef75ad4 fix(skills-perso): handle both inline and block YAML description formats 1 lună în urmă
skills-external 6e7c5d478a update gstack submodule to c6e6a21 1 lună în urmă
templates 64b9392189 final version seems 1 lună în urmă
.gitignore e4362cadc6 add emil-design-eng skill to install/update pipeline 1 lună în urmă
.gitmodules e9604ddfe2 added git management 1 lună în urmă
.graphifyignore 939fcb396e add .graphifyignore to exclude gstack submodule and install logs 1 lună în urmă
CHANGELOG.md dd77177c72 chore(release): update docs and changelog for v3.4.0 1 lună în urmă
CLAUDE.md 02e4f25f56 docs(claude): rewrite graphify context navigation guidelines 1 lună în urmă
Makefile 9199ad5c9e refactor Makefile: install→bootstrap, add plugin target 1 lună în urmă
README.md 147ea73de3 docs(readme,usage): streamline documentation — remove bloat, add self-management section 1 lună în urmă
TODO.md dd77177c72 chore(release): update docs and changelog for v3.4.0 1 lună în urmă
USAGE.md 147ea73de3 docs(readme,usage): streamline documentation — remove bloat, add self-management section 1 lună în urmă
doctor.sh 26aec20d79 audit fixes: RTK hook, settings unification, graphifyy, statusline 1 lună în urmă
install-plugins.sh 11e69ab882 feat(installer): add shell env vars setup step 1 lună în urmă
install.sh d0f59126e1 track install.sh bootstrap script 1 lună în urmă
link.sh e4362cadc6 add emil-design-eng skill to install/update pipeline 1 lună în urmă
plugins.lock.json e4362cadc6 add emil-design-eng skill to install/update pipeline 1 lună în urmă
settings.json aac985c211 chore: reorder settings.json keys 1 lună în urmă
update-all.sh e4362cadc6 add emil-design-eng skill to install/update pipeline 1 lună în urmă
version.txt dd77177c72 chore(release): update docs and changelog for v3.4.0 1 lună în urmă

README.md

claude-config

Global Claude Code configuration — agents, skills, plugins, and project templates.

Guide d'utilisation complet : voir USAGE.md — workflows typiques, exemples par type de projet (mobile, web, CLI, firmware, monorepo), arbre de décision "quel skill utiliser ?".


Overview

This repo is your personal Claude Code setup, versioned and reproducible across machines.

claude-config/
├── CLAUDE.md              # Global coding preferences (style, rules, workflow)
├── settings.json          # Global permissions (100 deny / 18 ask / 57 allow rules)
├── install.sh             # Bootstrap: Claude Code CLI + auth + shell env vars + link + plugins
├── install-plugins.sh     # One-shot installer: prerequisites + all plugins (reads plugins.lock.json)
├── link.sh                # Symlinks this repo into ~/.claude/
├── doctor.sh              # Setup diagnostic — checks symlinks, plugins, permissions, token budget
├── update-all.sh          # One-command update for all components
├── Makefile               # Unified entry point: make install / doctor / update
├── plugins.lock.json      # Version pinning for non-marketplace dependencies (RTK, GSD v2, ruflo)
├── version.txt            # Semver version of this config
├── CHANGELOG.md           # Release history
├── lib/
│   └── detect-plugins.sh  # Shared plugin detection — sourced by all scripts
├── hooks/
│   ├── session-start.sh   # Health check + toggle plugin status at session start
│   ├── statusline.sh      # Claude Code status line configuration
│   └── rtk-rewrite.sh     # RTK hook for code rewrites
├── skills-external/
│   └── gstack/            # Git submodule — garrytan/gstack (symlinked to ~/.claude/skills/gstack)
├── .gitmodules            # Submodule declaration
├── agents/
│   ├── analyzer.md        # Factual codebase analysis (read-only)
│   ├── bugfixer.md        # Structured bug fix with root cause investigation
│   ├── code-cleaner.md    # Dead code removal, style/norm enforcement
│   ├── commit-changer.md  # Smart commit grouping from staged/unstaged changes
│   ├── doc-syncer.md      # Detect stale docs, audit, and patch
│   ├── feater.md          # Small feature implementation (1-5 files)
│   ├── hotfixer.md        # Quick fix for superficial bugs (max 2 files)
│   ├── interviewer.md     # Project questionnaire → PROJECT BRIEF
│   ├── onboarder.md       # Onboard existing project — CLAUDE.md, settings, optional GSD ROADMAP
│   ├── plugin-advisor.md  # Plugin check: detect signals, apply compatibility matrix, block if needed
│   ├── refactorer.md      # Surgical refactoring with norm enforcement
│   ├── scaffolder.md      # Full project generation (CLAUDE.md, README, code)
│   ├── seo-analyzer.md    # Full SEO/GEO audit and fix
│   └── status-reporter.md # Consolidated project status — read-only snapshot
├── skills/
│   ├── analyze/           # /analyze — deep factual analysis
│   ├── bugfix/            # /bugfix — structured bug fix with root cause investigation
│   ├── code-clean/        # /code-clean — dead code removal, style enforcement
│   ├── commit-change/     # /commit-change — smart commit grouping
│   ├── doc/               # /doc — documentation audit and sync
│   ├── feat/              # /feat — small feature implementation (1-5 files)
│   ├── graphify/          # /graphify — codebase knowledge graph navigation
│   ├── health/            # /health — run setup diagnostic
│   ├── hotfix/            # /hotfix — quick fix for superficial bugs
│   ├── init-project/      # /init-project — full project initialization
│   ├── onboard/           # /onboard — onboard existing project into claude-config
│   ├── plugin-check/      # /plugin-check — check plugin config vs project needs
│   ├── refactor/          # /refactor — improve code without changing behavior
│   ├── seo/               # /seo — full SEO/GEO audit and optimization
│   ├── ship-feature/      # /ship-feature — ship a feature end-to-end
│   ├── skills-perso/      # /skills-perso — list personal (user-created) skills
│   └── status/            # /status — consolidated project snapshot
└── templates/
    ├── project-CLAUDE.md  # Template for per-project CLAUDE.md
    └── settings/
        ├── settings.json         # Template for project .claude/settings.json
        ├── settings.local.json   # Template for personal .claude/settings.local.json
        ├── .claudeignore         # Template for project .claudeignore
        └── SETTINGS.md           # Rule syntax reference (rule types, patterns, defaultMode values)

Architecture principle:

  • skills/ = entry points you invoke via /skill-name
  • agents/ = execution units called by skills (never invoked directly by user)
  • lib/ = shared shell functions sourced by scripts (plugin detection)
  • templates/ = symlinked to ~/.claude/templates/ — copy into projects via per-project setup
  • Custom skills use Superpowers agents for implementation phases (required — auto-detected)
  • Plugins (Superpowers, GStack, GSD v2, ruflo, etc.) install separately and complement custom skills

Fresh install (new machine)

# 1. Clone with submodules — choose any location
git clone --recurse-submodules git@github.com:youruser/claude-config.git
cd claude-config

# 2. Bootstrap (installs Claude Code CLI, authenticates, sets up shell env vars, then runs link.sh + install-plugins.sh)
bash install.sh
# Or step by step:
#   bash link.sh                # symlink into ~/.claude/
#   bash install-plugins.sh     # prerequisites + all plugins

# 4. Context7 CLI (optional — fast-evolving libs docs lookup)
npm install -g ctx7
ctx7 setup --claude    # configures rules for Claude Code
# Higher rate limits: ctx7 login (OAuth) or use --api-key from context7.com/dashboard

# 5. Verify setup
bash doctor.sh

# 6. Restart Claude Code — plugins load automatically

All scripts use their own location to find the repo — run them from anywhere or from the repo directory. Symlinks point to the repo's actual path, so renaming or moving the repo requires re-running bash link.sh.

The install script handles: git, Node.js 22, Rust/Cargo, Python 3, RTK, GStack (submodule), GSD v2, and all marketplace plugins on Linux (apt/dnf/pacman) and macOS (brew).

RTK and GSD v2 versions are pinned in plugins.lock.json. The install script reads those versions automatically. Marketplace plugins install to ~/.claude/plugins/ (user scope).

Install output is logged to install-YYYYMMDD-HHMMSS.log in the repo directory for post-mortem debugging.


Available slash commands

Custom skills (this repo)

Command Description
/analyze Deep factual analysis of code before any modification
/bugfix Structured bug fix with root cause investigation
/code-clean Dead code removal, style/norm enforcement
/commit-change Smart commit grouping from staged/unstaged changes
/doc Documentation audit and sync — detect stale docs, patch
/feat Small feature implementation (1-5 files, lightweight)
/graphify Codebase knowledge graph — navigation for large-scope tasks
/health Run setup diagnostic — check symlinks, plugins, permissions, token budget
/hotfix Quick fix for superficial bugs (typos, CSS, config — max 2 files)
/init-project Initialize a complete project from scratch (full orchestrator)
/onboard Onboard an existing project — generate CLAUDE.md, settings, optional GSD v2 ROADMAP
/plugin-check Check active plugins vs project needs — recommend enable/disable
/refactor Improve code quality without changing behavior (strict norms)
/seo Full SEO/GEO audit and optimization
/ship-feature Ship a feature end-to-end with validation gates (full orchestrator)
/skills-perso List personal (user-created) skills
/status Consolidated project snapshot — plugins, git, GSD milestone

Superpowers skills (auto-invoked or explicit)

Required dependency. Superpowers must be active for /init-project and /ship-feature. The plugin-advisor (STEP 0) blocks and shows install instructions if Superpowers is missing.

Command When it auto-activates
superpowers:brainstorming When you describe something to build
superpowers:writing-plans After design is approved
superpowers:subagent-driven-development With an approved plan
superpowers:requesting-code-review Auto — after a feature step
superpowers:finishing-a-development-branch After review is approved

GStack (Garry Tan — full-product projects only)

Full-product workflow skills for UI + design + deploy + browser QA. Installed as a git submodule. Skip for backend/lib/CLI projects. Docs: github.com/garrytan/gstack

GSD v2 — standalone CLI (multi-session large features)

Standalone TypeScript CLI for multi-session work: crash recovery, per-unit cost tracking, parallel workers, context-fresh execution per task. Not a Claude Code plugin — runs as an external process. Docs: github.com/gsd-build/gsd-2

Ruflo CLI — OFF (disabled by default)

Enterprise multi-agent orchestration CLI (310+ tools, WASM kernel, self-learning architecture). Heavy: ~500-1500 tokens passive cost. For standard multi-session work, GSD v2 is lighter and sufficient. Docs: github.com/ruflo-ai/ruflo

Bundled skills (Claude Code built-in, always available)

Command Description
/batch <instruction> Large-scale parallel refactoring — decomposes into 5–30 units, spawns one background agent per unit in isolated git worktrees
/debug [description] Enable debug logging for the session, analyze the session debug log
/simplify [focus] Review recent changes for code reuse, quality, efficiency issues

Other plugin commands

Command Plugin Description
/pr-review-toolkit:review-pr pr-review-toolkit Multi-agent PR review (6 specialized agents)
/context7:docs <lib> context7 Manual doc lookup for a specific library (via ctx7 CLI)

Workflow patterns

Pattern A — Nouveau projet (court, 1 session)

/plugin-check "description"   → configure plugins
/init-project "description"   → interview → scaffold → implement v1
/ship-feature "feature"       → ship feature by feature

Pattern B — Nouveau projet (long, multi-session)

/plugin-check "description"
/init-project "description"   → à la fin, STEP 13 propose d'init GSD v2
                                 → répondre "yes"
# Ensuite dans un terminal :
gsd                            → démarrer une session GSD
/gsd auto                      → mode autonome — walk away
/gsd status                    → vérifier la progression
/gsd discuss                   → décisions d'architecture en cours de route

À chaque reprise de session :

/status                        → snapshot : plugins, token, git state, milestone GSD en cours

Pattern C — Projet existant (onboarding)

cd mon-projet-existant/
# Dans Claude Code :
/onboard                       → génère CLAUDE.md + settings + .claudeignore
                                 → optionnel : ROADMAP.md pour GSD v2
/status                        → confirmer que l'onboarding est complet + état du projet
/plugin-check "type de projet"
/ship-feature "prochaine feature"

Pattern D — Hotfix / modification ponctuelle

# Bug superficiel (typo, mauvais import, CSS cassé — max 2 fichiers, cause évidente) :
/hotfix "le bouton submit est invisible sur mobile"

# Bug plus complexe (investigation root cause nécessaire) :
/bugfix "les notifications ne partent plus depuis mardi"

Pattern E — Refactoring ciblé

/analyze src/legacy.py         → liste les violations
/refactor src/legacy.py        → corrections sans changement de comportement

Pattern F — Petite feature (1-5 fichiers)

# Pas d'orchestration lourde, pas de brainstorming superpowers
/feat "ajouter un endpoint GET /api/v1/users/:id/stats"
# → planning léger, implémentation directe, tests

Choisir entre /ship-feature, /feat, /hotfix et /bugfix

Critère /ship-feature /feat /bugfix /hotfix
Scope Feature complète 1-5 fichiers Bug complexe Bug superficiel
Orchestration Superpowers pipeline Léger Investigation Direct
Fichiers touchés Illimité ≤ 5 Variable ≤ 2
Validation gate Oui Non Non Non
Code review Auto (superpowers) Non Régression test Non

Choisir entre /ship-feature et gsd auto

Critère /ship-feature gsd auto
Durée estimée < 1 journée > 1 journée
Nombre de tâches < 10 > 10
Crash recovery nécessaire non oui
Suivi de coût par tâche non oui
Workers parallèles non oui (parallel mode)
Contexte fresh par tâche non (même session) oui (Pi SDK)

Orchestrators in detail

/init-project

Same rigor as /ship-feature. Two validation gates. Full TDD subagent pipeline for v1 features. The Scaffolder only creates the skeleton (no features, no README). readme-updater handles the README in two passes: CREATE then SYNC.

STEP 0 blocks if Superpowers is not installed (required for steps 3, 6, 8, 10, 11).

/init-project <project idea>
    │
    ├── STEP 0:  PLUGIN CHECK (plugin-advisor)        ← blocks if Superpowers missing or wrong plugins
    ├── STEP 1:  INTERVIEWER (custom)                 → PROJECT BRIEF
    ├── STEP 2:  ANALYZER (custom)                    → ANALYSIS REPORT
    ├── STEP 3:  superpowers:brainstorming             → VALIDATED DESIGN
    ├── STEP 4:  VALIDATION GATE #1                   → approve architecture
    ├── STEP 5:  SCAFFOLDER (custom)                  → skeleton only (CLAUDE.md +
    │                                                    settings + structure +
    │                                                    empty entry points, NO features,
    │                                                    NO README)
    ├── STEP 5b: README-UPDATER create mode (custom)  → CREATE README from CLAUDE.md
    ├── STEP 6:  superpowers:writing-plans             → decompose v1 features into tasks
    ├── STEP 7:  VALIDATION GATE #2                   → approve task plan
    ├── STEP 8:  superpowers:subagent-driven (TDD)    → implement each feature (isolated)
    ├── STEP 9:  ANALYZER (custom)                    → regression + deviation check
    ├── STEP 10: superpowers:requesting-review         → full code review
    ├── STEP 11: superpowers:finishing-branch          → cleanup + build + tests
    └── STEP 12: README-UPDATER sync mode (custom)    → sync README with implementation

/ship-feature

STEP 0 blocks if Superpowers is not installed (required for steps 1, 2, 4, 6, 7).

/ship-feature <feature description>
    │
    ├── STEP 0: PLUGIN CHECK (plugin-advisor) ← blocks if Superpowers missing or wrong plugins
    ├── STEP 1: superpowers:brainstorming     → VALIDATED DESIGN
    ├── STEP 2: superpowers:writing-plans     → task plan
    ├── STEP 3: VALIDATION GATE               → user approval required
    ├── STEP 4: superpowers:subagent-driven   → implementation (TDD)
    ├── STEP 5: ANALYZER (custom)             → regression / deviation check
    ├── STEP 6: superpowers:requesting-review → code review
    ├── STEP 7: superpowers:finishing-branch  → cleanup
    └── STEP 8: README-UPDATER sync mode      → sync README with new feature

/plugin-check

Standalone command you can run at any time to audit your plugin config against what you're about to do. Also embedded as STEP 0 in both orchestrators.

Blocks if Superpowers is not active (required by orchestrators). Blocks if critical project-specific plugins are missing (frontend tools, Context7, GStack). Warns if ruflo is active with no multi-agent signal, or if GSD v2 CLI is not installed for multi-session work.

/plugin-check "I want to build a React + FastAPI SaaS"

→ Detects active plugins
→ Scans filesystem for project signals (frontend? design? deploy? multi-agent?)
→ Applies compatibility matrix
→ Produces recommendation table with passive cost estimate
→ Warns about plugin conflicts (gstack + ruflo, etc.)
→ Blocks with OPTIONS if critical plugins are missing
→ Or confirms "proceed" if config is optimal

Plugin compatibility matrix

Quick reference

Pair Relation Notes
frontend-design ↔ ui-ux-pro-max ⚠️ Overlap Keep both for design-heavy. Drop ui-ux-pro-max for simple UI.
gstack ↔ gsd v2 ✅ Complementary Different scopes — CC workflow vs CLI orchestration
gstack ↔ ruflo ⚠️ Overlap Both orchestrate multi-step work. Use one or the other. ~3250-4250t combined.
gsd v2 ↔ ruflo ⚠️ Overlap Sequential (GSD) vs parallel swarm (ruflo). Pick based on need.
superpowers ↔ gsd v2 ✅ Complementary Single-session engine + multi-session CLI = no conflict
superpowers ↔ gstack ✅ Complementary Used together by orchestrators
context7 ↔ any ✅ Independent Doc lookup CLI (ctx7) — always safe to combine

Recommended sets by project type

Project type Plugins ON OFF Passive cost
Backend API / microservice superpowers, context7* frontend-design, ui-ux-pro-max, gstack, ruflo ~800t
Frontend SPA / SSR superpowers, frontend-design, ui-ux-pro-max, context7 gstack, ruflo ~1600t
Full-stack SaaS superpowers, gstack, frontend-design, ui-ux-pro-max, context7 ruflo ~4400t
CLI tool / library superpowers all toggles ~800t
Multi-session large feature superpowers + gsd v2 CLI (external) ruflo ~800t CC
Quick fix / hotfix superpowers all toggles ~800t
Design system / component lib superpowers, frontend-design, ui-ux-pro-max gstack, ruflo, gsd ~1600t
Enterprise multi-agent superpowers, ruflo + gsd v2 CLI (external) others ~2300t CC

*context7 only if using fast-evolving libs (Next.js, React 18+, Prisma, Supabase) security-guidance and rtk are ALWAYS ON (0 tokens) — omitted from estimates


Intelligent self-management

This config doesn't just provide tools — it manages itself. The interconnection between plugins, skills, and agents creates an autonomous quality layer.

Plugin advisor — automatic configuration

/plugin-check (or STEP 0 in orchestrators) analyzes your project and recommends the optimal plugin configuration:

  • Signal detection: scans filesystem for project type signals (frontend frameworks, mobile SDKs, embedded toolchains, monorepo markers, deploy configs)
  • Compatibility matrix: knows which plugins overlap, complement, or conflict with each other
  • Cost awareness: estimates passive token cost per plugin combination and warns when approaching budget limits
  • Blocking gate: orchestrators (/init-project, /ship-feature) refuse to start if critical plugins are missing

Token budget management

Every plugin has a passive cost (loaded at session start). The system tracks this:

  • session-start.sh hook displays current passive cost and % of session budget at every session start
  • /health and doctor.sh provide detailed token budget breakdowns
  • /plugin-check recommends disabling unnecessary plugins to reclaim budget
  • Rule: toggle plugins are OFF by default — only enabled when project signals justify the cost

Tool and skill synergies

Skills and tools are designed to work together, not in isolation:

Synergy How it works
/plugin-check/init-project Plugin-check runs as STEP 0, blocks if config is wrong
/analyze/refactor Analyzer produces violation report, refactorer uses it as input
/statusgsd auto Status shows GSD milestone progress, informs session resumption
/init-project STEP 13 → GSD v2 Orchestrator detects multi-session need, proposes GSD init
/ship-feature STEP 0b → /onboard Detects missing CLAUDE.md, redirects to onboarding first
doctor.shlink.sh Doctor diagnoses broken symlinks, link.sh fixes them
/doc → auto-mode Other skills can trigger doc-sync automatically after changes
Superpowers → custom agents Orchestrators use Superpowers for brainstorm/plan/review phases, custom agents for analysis/scaffolding

Passive vs active cost model

Passive (always loaded):        Active (loaded on demand):
├─ CLAUDE.md (~420t)            ├─ Skill body (when /skill invoked)
├─ Plugin descriptions          ├─ Agent content (when skill loads agent)
├─ Hook configs                 └─ Context7 docs (when ctx7 queried)
└─ Session-start output

The system minimizes passive cost by loading skill bodies and agent content only when invoked. Plugin descriptions are the main passive cost lever — hence why /plugin-check exists.


Plugins reference

All plugins below are installed by install-plugins.sh.

How loading works

Only each skill's description field is pre-loaded into the system prompt at session start — the full skill body is loaded on demand when the skill is invoked. CLAUDE.md is the only file loaded in full at every session. Disabling a plugin prevents even its description from loading.

A hooks/session-start.sh hook shows plugin toggle status at every session start. Run /plugin-check anytime to get a recommendation for the current project type.

Plugin Status Passive cost When to use Installed by
security-guidance ✅ ALWAYS ON 0 tokens (hook only) claude-code-plugins
RTK ✅ ALWAYS ON 0 tokens (hook only) cargo (pinned in plugins.lock.json)
Superpowers ✅ REQUIRED ~600–1000 tokens — required by orchestrators superpowers-marketplace
GStack 🔄 TOGGLE ~2500–3000 tokens Full-product: UI + design + deploy + browser QA git submodule
GSD v2 🖥️ CLI 0 tokens (external CLI) Multi-day features, crash recovery, cost tracking, parallel workers npm (pinned in plugins.lock.json)
ruflo ⚫ OFF (disabled) ~500–1500 tokens Enterprise multi-agent swarm (5+ concurrent agents) npm (CLI)
plugin-dev 🔄 TOGGLE ~100 tokens Creating plugins or custom skills claude-code-plugins
pr-review-toolkit 🔄 TOGGLE ~300 tokens PR review sessions claude-code-plugins
frontend-design 🔄 TOGGLE ~200 tokens Any project with a UI claude-code-plugins
ui-ux-pro-max 🔄 TOGGLE ~400 tokens Design system, color/typography choices ui-ux-pro-max-skill
Context7 CLI 🔄 TOGGLE ~200 tokens Fast-evolving libs (Next.js, React, Prisma…) npm (ctx7 CLI)

Rule: toggle plugins are OFF by default. /plugin-check signals when to enable them. If you use /init-project or /ship-feature, plugin-check runs automatically as STEP 0 and blocks if Superpowers is not active.

Marketplaces

Plugins are installed from GitHub-hosted marketplaces. Three are used by this config:

Marketplace GitHub repo Plugins Auto-available
claude-plugins-official anthropics/claude-plugins-official Anthropic-curated third-party plugins ✅ yes
claude-code-plugins anthropics/claude-code Anthropic bundled plugins (security-guidance, frontend-design, pr-review-toolkit, plugin-dev) ❌ add manually
superpowers-marketplace obra/superpowers-marketplace Superpowers workflow plugin ❌ add manually
ui-ux-pro-max-skill nextlevelbuilder/ui-ux-pro-max-skill UI/UX Pro Max design plugin ❌ add manually

install-plugins.sh adds all required marketplaces automatically.

Manual install example:

# Add the marketplace (once)
claude plugin marketplace add anthropics/claude-code

# Install a plugin from it
claude plugin install --scope user frontend-design@claude-code-plugins

# Browse all available plugins
/plugin   # → Discover tab

Version pinning

Non-marketplace tools are pinned in plugins.lock.json:

{
  "rtk":             { "source": "https://github.com/rtk-ai/rtk", "version": "v0.34.3" },
  "gsd":             { "source": "npm:gsd-pi",  "version": "2.64.0" },
  "ruflo":           { "source": "npm:ruflo",   "version": "3.5.58" },
  "ctx7":            { "source": "npm:ctx7",    "version": "latest" },
  "graphifyy":       { "source": "pypi:graphifyy", "managed_by": "pipx" },
  "emil-design-eng": { "source": "https://github.com/emilkowalski/skill", "managed_by": "curl" }
}

install-plugins.sh reads these versions automatically. To update a pinned version: edit plugins.lock.json, then re-run install-plugins.sh. GStack is pinned via its git submodule pointer.

Disabling a plugin for a specific project

# In Claude Code
/plugin
# → Find the plugin → toggle off for this scope

Or in the project's .claude/settings.json:

{
  "enabledPlugins": {
    "gstack@gstack": false
  }
}

Settings and permissions

File hierarchy

Highest
  managed-settings.json        — enterprise, cannot be overridden
  CLI flags                    — --allowedTools / --disallowedTools (session only)
  .claude/settings.local.json  — personal machine overrides (gitignored)
  .claude/settings.json        — project rules (committed to project repo)
  ~/.claude/settings.json      — global user rules (this repo's settings.json)
Lowest

DENY always wins over ALLOW at any level.
.claudeignore applies independently of all permission rules.

Global settings (this repo's settings.json)

100 deny rules, 18 ask rules, 57 allow rules.

Section Purpose
deny — secrets (Read) Blocks Read on .env, .pem, .key, SSH keys, cloud credentials
deny — secrets (Bash) Blocks cat, head, tail, grep, less, more on .env and secret files
deny — env leak Blocks env, printenv, export * — prevents secret exposure via process environment
deny — secret move Blocks cp/mv on .env* and secrets/ — closes copy-then-read bypass
deny — destructive Blocks rm -rf, git push --force, chmod 777
deny — system Blocks sudo, ssh, scp, crontab, systemctl
deny — injection Blocks curl \| bash, wget \| sh
deny — escalation Blocks bash -c, eval, exec, find -delete, perl -e, ruby -e
deny — runtime exec Blocks python3 -c *, node -e *, source /dev/stdin, mkfifo *
deny — exfiltration Blocks xargs * .env*, tar * .env*, zip * .env*, base64 .env*
ask — risky Prompts before git push, docker run, package managers
ask — write tools Prompts before xargs, all sed (including in-place)
ask — stash destructive Prompts before git stash pop, drop, clear
allow — safe reads Auto-approves git read-only, ls, cat, grep, find
allow — stash safe Auto-approves git stash (push), list, show
disableBypassPermissionsMode Prevents YOLO mode globally
disableAutoMode Prevents auto mode globally

Per-project setup

cd your-project
mkdir -p .claude

# Find the repo from any existing symlink
CONF="$(dirname "$(readlink ~/.claude/CLAUDE.md)")"

# Project settings (commit to project git)
cp "$CONF/templates/settings/settings.json" .claude/settings.json

# Personal overrides (never commit — gitignore it)
cp "$CONF/templates/settings/settings.local.json" .claude/settings.local.json
echo ".claude/settings.local.json" >> .gitignore

# Hard file exclusions (commit to project git)
cp "$CONF/templates/settings/.claudeignore" .claudeignore

# Project CLAUDE.md (commit to project git)
cp "$CONF/templates/project-CLAUDE.md" CLAUDE.md

Updating

One-command update (recommended)

# From the repo directory
bash update-all.sh
# Updates Claude CLI, pulls config, prompts before updating GStack (tracks main),
# updates RTK + GSD v2 (pinned), updates ruflo if installed, updates ctx7 + graphifyy,
# refreshes marketplace plugins, refreshes symlinks, runs doctor

Manual updates

git pull          # this repo — symlinks make changes active immediately
bash link.sh      # refresh symlinks if needed

All third-party tools (RTK, GSD v2, ruflo, GStack, ctx7, marketplace plugins) are updated automatically by update-all.sh. Versions are pinned in plugins.lock.json.


Adding a new custom skill

Fastest way:

make new-skill name=myskill
# Creates agents/myskill.md + skills/myskill/SKILL.md with templates filled
# Edit both files, then: bash link.sh

Manually:

  1. Create agents/myagent.md — role, tasks, rules, output format
  2. Create skills/myskill/SKILL.md:

    ---
    name: myskill
    description: What this skill does — front-load key use case (max 250 chars)
    argument-hint: <what to pass>
    disable-model-invocation: true
    allowed-tools: Read, Write, Edit, Bash, Grep, Glob
    ---
    
    Load and follow strictly:
    - $HOME/.claude/agents/myagent.md
    
    Execute on:
    
    $ARGUMENTS
    
  3. Or use /plugin-dev:create-plugin to generate a skill from conversation.


Personal skills (skills-perso)

List your personal skills (created in ~/.claude/skills/) with:

/skills-perso

This lists all skills you've created outside of this repo — useful to remember what custom skills are available across projects.

To create a personal skill:

# Quick way (from this repo)
make new-skill name=myskill
bash link.sh

# Or manually
mkdir -p ~/.claude/skills/myskill/
# Create SKILL.md with frontmatter (see "Adding a new custom skill" above)

Per-project agent overrides

Override any global agent for a specific project:

CONF="$(dirname "$(readlink ~/.claude/CLAUDE.md)")"
cp "$CONF/agents/refactorer.md" .claude/agents/refactorer.md
# Edit .claude/agents/refactorer.md — the local version takes precedence

Maintenance

Diagnostic

# Quick check from terminal (from the repo directory)
bash doctor.sh

# Or from within Claude Code
/health       # full diagnostic (symlinks, plugins, permissions, token budget)
/status       # project snapshot at session start (plugins, git, GSD milestone)

# Unified commands via Makefile (from the repo directory)
make doctor     # diagnostic
make update     # pull + submodules + symlinks + doctor
make install    # bootstrap: Claude Code CLI + auth + symlinks + plugins
make plugin     # install prerequisites + all plugins only
make onboard    # reminder to run /onboard in Claude Code
make new-skill name=myskill  # scaffold agent + skill files

doctor.sh checks 7 axes: symlinks, GStack submodule (with pinning warning), prerequisites (git, Node, Cargo, Python, Claude Code), plugins (RTK, Superpowers, Context7, GSD v2, ruflo), permissions (deny count, bypass mode), token budget (breakdown vs Pro session budget), and config consistency (frontmatter, CRLF detection).

session-start.sh runs a quick health check at every session start (filesystem only, no subprocesses) and displays toggle plugin status, GSD v2 CLI status, with /plugin-check and /health hints.

Both scripts source lib/detect-plugins.sh for consistent plugin detection logic.