feat(profile): partition skills/plugins/MCPs/CLIs by usage profile

Ship lib/profile.sh + 9 profiles in lib/profiles/. A profile is a
plain-text file listing items + types (gstack | personal | external |
plugin@<marketplace> | mcp | cli). `profile set <name>` enables the
listed items and disables the rest:

  - gstack/personal/external skills: symlink toggle skills/ ↔
    skills-disabled/ (gstack__<name> prefix to avoid collisions; no
    prefix for personal/external).
  - plugins typed `plugin@<marketplace>`: actually toggled via
    `claude plugin enable|disable <name>@<marketplace>`. Allowlist:
    MANAGED_PLUGINS = ui-ux-pro-max, plugin-dev, pr-review-toolkit.
    Denylist: PROTECTED_PLUGINS = caveman, security-guidance,
    superpowers (always-on, never disabled even if absent from a
    profile).
  - mcp magic: delegated to lib/toggle-external.sh which already
    handles the MAGIC_API_KEY env lookup. Other MCPs stay advisory.
  - cli (rtk, gsd, ctx7, graphify): status-only, never auto-installed.

Profiles shipped:
  web        public website work — frontend + content + light dev
  seo        SEO + GEO + W3C audit (search/AI indexability + a11y)
  web-full   production website end-to-end (web ∪ seo ∪ qa-only/canary)
  backend    backend / API / system dev — no design, no SEO
  design     visual QA, design systems, mockups, polish
  dev        daily code work — features, fixes, refactor, ship
  qa         site testing, perf, canary, validation
  audit      comprehensive audit — security + SEO + perf + health
  minimal    strip all gstack skills (quiet session)

Commands:
  profile list / show <name> / current / apply <name> / set <name> /
  reset / diff <a> <b>

`current` heuristic returns "full" when nothing is disabled, otherwise
picks the profile with the highest available-ratio (counts both
"enabled" and "installed" — the latter for CLIs). Tiebreaker: larger
profile total wins, so web-full beats web at a 100% tie.

`reset` re-enables every gstack skill but does NOT touch plugins —
the user re-enables a managed plugin manually or via `apply <profile>`.
This is documented in the trailing info line.

Integration:
  - skills/profile/SKILL.md — `/profile` slash command, lists profiles,
    documents the per-type mechanism, points at lib/profile.sh.
  - agents/plugin-advisor.md — DETECT phase calls `profile current`,
    OUTPUT adds a PROFILE line, and TOGGLING EXTERNAL TOOLS gains a
    "Skill profiles" section with a signal → profile recommendation
    table.
  - lib/toggle-external.sh — header pointer to profile.sh for fine-
    grained activation (toggle-external still owns whole-gstack and
    magic-MCP toggles).
  - Makefile — `make profile cmd="set <name>"`, profile-list,
    profile-current, profile-reset.

Tested end-to-end: `set web` enables ui-ux-pro-max + magic; `set seo`
disables ui-ux-pro-max; `set minimal` disables ui-ux-pro-max but
spares always-on plugins; `reset` restores all 64 skills; shellcheck
clean.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
This commit is contained in:
bastien
2026-05-05 02:09:28 +02:00
co-authored by Claude Opus 4.7
parent d8ad38b131
commit 239d91db67
14 changed files with 970 additions and 1 deletions
+28
View File
@@ -0,0 +1,28 @@
# DESC: Comprehensive audit — security + SEO + GEO + W3C + perf + health
# Activate when: doing a top-to-bottom audit pass on an existing project.
# Wider than `seo` (adds security + dependency review).
# Security
cso
harden personal
analyze personal
# SEO / GEO / web standards
seo personal
geo personal
validate personal
# Code + perf health
health
benchmark
review
# Browser tooling for live audits
browse
open-gstack-browser
# Plugin: PR review toolkit (audit context for diffs)
pr-review-toolkit plugin@claude-code-plugins
# CLI: graphify for code structure
graphify cli
+43
View File
@@ -0,0 +1,43 @@
# DESC: Backend / API / system dev — no design, no SEO, focused on logic
# Activate when: building backend services, APIs, CLIs, libraries, system
# code, data pipelines. UI/visual work is out of scope. SEO/GEO out of scope.
# Code work — primary
feat personal
ship-feature personal
hotfix personal
bugfix personal
investigate
refactor personal
code-clean personal
commit-change personal
analyze personal
# Ship + review + land
ship
review
checkpoint
land-and-deploy
# Second opinion for hard problems
codex
# Security + health (always relevant for backend)
cso
health
# Session hygiene
careful
freeze
unfreeze
guard
learn
retro
# Plugin: PR review toolkit (pre-merge audit)
pr-review-toolkit plugin@claude-code-plugins
# CLIs (advisory)
ctx7 cli
gsd cli
graphify cli
+30
View File
@@ -0,0 +1,30 @@
# DESC: Design work — visual QA, design systems, mockups, polish
# Activate when: building/reviewing UI, picking aesthetics, design tokens.
# Companion CLIs (advisory): graphify (visual structure).
# Core design skills (gstack)
design-shotgun
design-review
design-consultation
design-html
plan-design-review
# Browser tooling — design-review and design-shotgun rely on it
browse
open-gstack-browser
setup-browser-cookies
# Plan-mode review companion (taste decisions before code)
plan-ceo-review
# External: Emil Kowalski's polish philosophy
emil-design-eng external
# Plugin (auto-toggle)
ui-ux-pro-max plugin@ui-ux-pro-max-skill
# MCP — auto-toggle via lib/toggle-external.sh (needs MAGIC_API_KEY in .env)
magic mcp
# CLIs (advisory only — installed/not-installed)
graphify cli
+24
View File
@@ -0,0 +1,24 @@
# DESC: Daily code work — small features, fixes, refactor, ship (any stack)
# Activate when: implementing features, debugging, shipping PRs without a
# specific frontend or backend bias. Lighter than `backend` (no security audit
# baggage) and lighter than `web` (no design pipeline).
# Implementation
feat personal
ship-feature personal
ship
# Bug fixing
hotfix personal
bugfix personal
investigate
# Code health
review
refactor personal
code-clean personal
commit-change personal
# Session hygiene
checkpoint
land-and-deploy
+7
View File
@@ -0,0 +1,7 @@
# DESC: Strip all gstack skills (only essential personal skills + plugins remain)
# Activate when: you want a quiet session with no gstack noise.
#
# Empty by design — `profile set minimal` disables every gstack skill,
# leaves personal skills (analyze, doc, init-project, onboard, plugin-check,
# refactor, seo, validate, harden, etc.) untouched, and makes no plugin/MCP
# changes. To revert: `profile reset`.
+11
View File
@@ -0,0 +1,11 @@
# DESC: QA + testing — site checks, perf, canary, validation
# Activate when: running QA, checking deployed pages, perf regressions.
qa
qa-only
browse
benchmark
canary
validate personal
open-gstack-browser
setup-browser-cookies
+25
View File
@@ -0,0 +1,25 @@
# DESC: SEO + GEO + W3C audit — search/AI indexability + standards
# Activate when: auditing a site for Google/Bing indexability, AI search
# (ChatGPT/Perplexity/Claude/Gemini), W3C HTML/CSS validity, WCAG a11y.
# No design skills, no dev skills — pure audit pipeline.
# SEO + GEO audits (personal)
seo personal
geo personal
# W3C HTML/CSS validity + WCAG a11y
validate personal
# Web hardening (HSTS, CSP, redirects — affects ranking signals)
harden personal
# Code analysis (read structure for audit)
analyze personal
# Browser tooling — needed for live-page audits
browse
open-gstack-browser
# Health check + benchmark — Core Web Vitals, perf signals
health # gstack
benchmark # gstack
+53
View File
@@ -0,0 +1,53 @@
# DESC: Production website — design + dev + SEO + GEO + W3C + perf
# Activate when: shipping a public website end-to-end. Combines `web`
# and `seo` profiles into a single set so the same session can build,
# polish, audit, and verify.
# === Design ===========================================================
design-shotgun
design-review
design-consultation
design-html
plan-design-review
# === Browser + dogfooding =============================================
browse
open-gstack-browser
setup-browser-cookies
# === Plan-mode reviews ================================================
plan-ceo-review
plan-eng-review
# === Code work ========================================================
feat personal
ship-feature personal
hotfix personal
bugfix personal
ship
review
checkpoint
commit-change personal
refactor personal
# === SEO / GEO / standards ===========================================
seo personal
geo personal
validate personal
harden personal
analyze personal
# === Perf + canary ===================================================
health
benchmark
canary
qa-only
# === External + plugin + MCP =========================================
emil-design-eng external
ui-ux-pro-max plugin@ui-ux-pro-max-skill
magic mcp
# === CLIs (advisory) =================================================
ctx7 cli
graphify cli
+46
View File
@@ -0,0 +1,46 @@
# DESC: Public website work — frontend + content + light dev
# Activate when: building/iterating a public-facing website (landing,
# portfolio, marketing, blog) where SEO is NOT the immediate focus.
# For SEO/GEO audit on top, use web-full or apply seo afterwards.
# Design skills (gstack) — full design pipeline
design-shotgun
design-review
design-consultation
design-html
plan-design-review
# Browser tooling for design + dogfooding
browse
open-gstack-browser
setup-browser-cookies
# Plan-mode reviews relevant to web work
plan-ceo-review
plan-eng-review
# Code work skills — needed to actually build the site
feat personal
ship-feature personal
hotfix personal
ship # gstack
review # gstack
checkpoint # gstack
commit-change personal
refactor personal
# Validation companion (basic W3C/a11y check during build)
validate personal
# External: Emil Kowalski's polish philosophy
emil-design-eng external
# Plugin: UI/UX intelligence (auto-toggle)
ui-ux-pro-max plugin@ui-ux-pro-max-skill
# MCP: 21st-dev Magic component generator
magic mcp
# CLI: ctx7 (doc lookup for fast-evolving libs like Next.js)
ctx7 cli
graphify cli