From 94189adbc61fc7f183d2ea6b5a7d26a74b21d742 Mon Sep 17 00:00:00 2001 From: bastien Date: Mon, 28 Sep 2026 19:11:21 +0200 Subject: [PATCH] feat(effort): entry effort level on the 31 user-invoked skills (spec D3) MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit A/B /reconcile headless — BEFORE requests=18 output=12374 thinking=3135 effort={'high'} duration_ms=96518 / AFTER requests=15 output=9038 thinking=2248 effort={'low'} duration_ms=78410 --- lib/tests/effort-routing.test.sh | 6 ++++++ skills/analyze/SKILL.md | 1 + skills/audit-delta/SKILL.md | 1 + skills/bugfix/SKILL.md | 1 + skills/capitalize/SKILL.md | 1 + skills/client-handover/SKILL.md | 1 + skills/close/SKILL.md | 1 + skills/code-clean/SKILL.md | 1 + skills/commit-change/SKILL.md | 1 + skills/deploy/SKILL.md | 1 + skills/doc/SKILL.md | 1 + skills/feat/SKILL.md | 1 + skills/geo/SKILL.md | 1 + skills/gitflow/SKILL.md | 1 + skills/harden/SKILL.md | 1 + skills/hotfix/SKILL.md | 1 + skills/init-project/SKILL.md | 1 + skills/onboard/SKILL.md | 1 + skills/plugin-check/SKILL.md | 1 + skills/profile/SKILL.md | 1 + skills/prune-memory/SKILL.md | 1 + skills/reconcile/SKILL.md | 1 + skills/refactor/SKILL.md | 1 + skills/release-candidate/SKILL.md | 1 + skills/seo/SKILL.md | 1 + skills/ship-feature/SKILL.md | 1 + skills/status/SKILL.md | 1 + skills/tour/SKILL.md | 1 + skills/web-validate/SKILL.md | 1 + 29 files changed, 34 insertions(+) diff --git a/lib/tests/effort-routing.test.sh b/lib/tests/effort-routing.test.sh index a34a89b..4944d82 100755 --- a/lib/tests/effort-routing.test.sh +++ b/lib/tests/effort-routing.test.sh @@ -41,6 +41,12 @@ for a in plan-challenger plugin-advisor verifier security-auditor seo-analyzer g for a in interviewer client-handover-writer status-reporter; do fm_no_effort "agents/$a.md"; done has "skills/init-project/SKILL.md" 'pin sonnet, effort medium' +# ── 4) skill entry levels (spec D3): the user's invocation sets the run's level +for s in status commit-change release-candidate doc capitalize close reconcile deploy profile plugin-check; do fm_has_effort "skills/$s/SKILL.md" low; done +for s in gitflow prune-memory find-docs; do fm_has_effort "skills/$s/SKILL.md" medium; done +for s in feat hotfix bugfix refactor web-validate harden seo geo; do fm_has_effort "skills/$s/SKILL.md" high; done +for s in ship-feature init-project onboard tour audit-delta analyze code-clean client-handover; do fm_has_effort "skills/$s/SKILL.md" xhigh; done + # ── summary (later tasks insert their locks ABOVE this line) printf 'effort-routing census: %d pass, %d fail\n' "$pass" "$fail" [ "$fail" -eq 0 ] diff --git a/skills/analyze/SKILL.md b/skills/analyze/SKILL.md index db6c353..8e5944b 100644 --- a/skills/analyze/SKILL.md +++ b/skills/analyze/SKILL.md @@ -1,5 +1,6 @@ --- name: analyze +effort: xhigh description: 'Deep factual code analysis (read-only) or DEBUG mode (pass error/stack trace) — no solutions proposed, no file modifications. Triggers: "analyze", "analyse", "how does X work", "comment ça marche", "investigate only", "root cause only, no fix", "pourquoi ce comportement", "debug analysis". Fix wanted → /bugfix or /hotfix instead.' argument-hint: allowed-tools: Read, Grep, Glob, Bash diff --git a/skills/audit-delta/SKILL.md b/skills/audit-delta/SKILL.md index 82f8b43..02ac235 100644 --- a/skills/audit-delta/SKILL.md +++ b/skills/audit-delta/SKILL.md @@ -1,5 +1,6 @@ --- name: audit-delta +effort: xhigh description: | Use when the user wants a recurring code audit scoped to changes since the previous run (full codebase on first run), on selectable axes: diff --git a/skills/bugfix/SKILL.md b/skills/bugfix/SKILL.md index 733b314..7366e07 100644 --- a/skills/bugfix/SKILL.md +++ b/skills/bugfix/SKILL.md @@ -1,5 +1,6 @@ --- name: bugfix +effort: high description: | Structured bug fix with root cause investigation. For bugs where the cause isn't immediately obvious, spans multiple files, or diff --git a/skills/capitalize/SKILL.md b/skills/capitalize/SKILL.md index c637b7c..74b96fb 100644 --- a/skills/capitalize/SKILL.md +++ b/skills/capitalize/SKILL.md @@ -1,5 +1,6 @@ --- name: capitalize +effort: low description: | Use when about to /clear or /compact, or closing a session, with decisions, learnings, blockers, evals, or TODO changes not yet written diff --git a/skills/client-handover/SKILL.md b/skills/client-handover/SKILL.md index 8d07813..73ebfaf 100644 --- a/skills/client-handover/SKILL.md +++ b/skills/client-handover/SKILL.md @@ -1,5 +1,6 @@ --- name: client-handover +effort: xhigh description: | Use when finalizing a project for non-technical client delivery — final audits, live-site validation, branded deliverable (MD + HTML + diff --git a/skills/close/SKILL.md b/skills/close/SKILL.md index 014faef..af68e3b 100644 --- a/skills/close/SKILL.md +++ b/skills/close/SKILL.md @@ -1,5 +1,6 @@ --- name: close +effort: low description: | End-of-session ritual — flush what was decided, learned, and blocked into `.claude/memory/`, reconcile `.claude/tasks/TODO.md`, and log a journal line. diff --git a/skills/code-clean/SKILL.md b/skills/code-clean/SKILL.md index 56fc4ce..30079f2 100644 --- a/skills/code-clean/SKILL.md +++ b/skills/code-clean/SKILL.md @@ -1,5 +1,6 @@ --- name: code-clean +effort: xhigh description: | Full codebase cleanup: dead code, style/norm enforcement, structural issues. Two-phase: read-only audit, then approved fixes only diff --git a/skills/commit-change/SKILL.md b/skills/commit-change/SKILL.md index f2b2579..876b162 100644 --- a/skills/commit-change/SKILL.md +++ b/skills/commit-change/SKILL.md @@ -1,5 +1,6 @@ --- name: commit-change +effort: low description: | Analyze all pending changes (staged, unstaged, untracked) and create atomic commits grouped by logical unit, retracing the work. Any git diff --git a/skills/deploy/SKILL.md b/skills/deploy/SKILL.md index 7413e52..841549a 100644 --- a/skills/deploy/SKILL.md +++ b/skills/deploy/SKILL.md @@ -1,5 +1,6 @@ --- name: deploy +effort: low description: | Use when deploying a project via its per-project runbook — instantiates the delta since last deploy, hands off for out-of-band execution, resumes cold, learns from errors. diff --git a/skills/doc/SKILL.md b/skills/doc/SKILL.md index db4d8e1..4f8d107 100644 --- a/skills/doc/SKILL.md +++ b/skills/doc/SKILL.md @@ -1,5 +1,6 @@ --- name: doc +effort: low description: | Use when documentation may be out of sync with code — features added/removed vs README / INSTALL / DEPLOY / CHANGELOG. Stack-aware diff --git a/skills/feat/SKILL.md b/skills/feat/SKILL.md index 06a49aa..b013c0a 100644 --- a/skills/feat/SKILL.md +++ b/skills/feat/SKILL.md @@ -1,5 +1,6 @@ --- name: feat +effort: high description: | Small feature implementation (1-5 files). Reflection inline (scope, plan, contract — session model), execution dispatched to the diff --git a/skills/geo/SKILL.md b/skills/geo/SKILL.md index f988cac..3ed2600 100644 --- a/skills/geo/SKILL.md +++ b/skills/geo/SKILL.md @@ -1,5 +1,6 @@ --- name: geo +effort: high description: | Use when a web project needs AI-search visibility audit — ChatGPT, Perplexity, Gemini, AI Overviews, Copilot… Standalone GEO; dispatches diff --git a/skills/gitflow/SKILL.md b/skills/gitflow/SKILL.md index fdffdd3..b5df56e 100644 --- a/skills/gitflow/SKILL.md +++ b/skills/gitflow/SKILL.md @@ -1,5 +1,6 @@ --- name: gitflow +effort: medium description: Use when a project needs gitflow branch operations — bootstrapping main+develop, starting a typed branch (feature/bugfix/release/hotfix), or integrating finished work by directed merge — or when an orchestrator must branch or merge under the gitflow model. Use when about to merge any branch into develop or main. --- diff --git a/skills/harden/SKILL.md b/skills/harden/SKILL.md index e867928..5aad845 100644 --- a/skills/harden/SKILL.md +++ b/skills/harden/SKILL.md @@ -1,5 +1,6 @@ --- name: harden +effort: high description: | Web hardening audit — HTTPS/TLS, HSTS, security headers (CSP, X-Frame-Options…), cookie flags, canonical, custom 404, server config diff --git a/skills/hotfix/SKILL.md b/skills/hotfix/SKILL.md index 2e55596..ff11901 100644 --- a/skills/hotfix/SKILL.md +++ b/skills/hotfix/SKILL.md @@ -1,5 +1,6 @@ --- name: hotfix +effort: high description: | Quick fix for superficial bugs: typos, CSS issues, config errors, off-by-one, wrong variable name, missing import, broken link. diff --git a/skills/init-project/SKILL.md b/skills/init-project/SKILL.md index e5d240c..069779a 100644 --- a/skills/init-project/SKILL.md +++ b/skills/init-project/SKILL.md @@ -1,5 +1,6 @@ --- name: init-project +effort: xhigh description: 'Use when initializing a brand-new project from scratch — needs interview, design, scaffold, and TDD implementation. Multi-agent orchestrator: plugin-advisor + interviewer + analyzer + scaffolder with two validation gates. Triggers: "init project", "new project", "start project from scratch", "scaffold project", "init-project".' argument-hint: allowed-tools: Read, Write, Edit, Bash, Grep, Glob, Agent, Skill diff --git a/skills/onboard/SKILL.md b/skills/onboard/SKILL.md index b3ae11c..eba468d 100644 --- a/skills/onboard/SKILL.md +++ b/skills/onboard/SKILL.md @@ -1,5 +1,6 @@ --- name: onboard +effort: xhigh description: 'Use when bringing an existing repo into the claude-config framework — needs archetype detection, config install, full multi-axis audit (debt/SEO/GEO/UI-UX/perf/security/a11y/docs), and prioritized backlog. Multi-agent orchestrator. Do NOT use for repos created via /init-project. Triggers: "onboard", "onboard project", "audit existing repo", "setup existing project".' argument-hint: '[optional hints: "Python FastAPI" | "Next.js monorepo" | "force-archetype:wordpress"]' allowed-tools: Read, Write, Edit, Bash, Glob, Grep, Agent, Skill diff --git a/skills/plugin-check/SKILL.md b/skills/plugin-check/SKILL.md index d81fc6a..6ad5cbd 100644 --- a/skills/plugin-check/SKILL.md +++ b/skills/plugin-check/SKILL.md @@ -1,5 +1,6 @@ --- name: plugin-check +effort: low description: 'Audit active plugins vs project needs. Read-only advisory recommending enable/disable. Triggers: "plugin-check", "quels plugins".' argument-hint: '[ex: "React + FastAPI" or "Rust CLI, no frontend"]' allowed-tools: Read, Bash, Glob, Grep, Agent diff --git a/skills/profile/SKILL.md b/skills/profile/SKILL.md index 1815d51..be40ece 100644 --- a/skills/profile/SKILL.md +++ b/skills/profile/SKILL.md @@ -1,5 +1,6 @@ --- name: profile +effort: low description: | Partition Claude skills by purpose: design, dev, qa, audit, minimal. Toggles symlinks between skills/ and skills-disabled/ to keep only diff --git a/skills/prune-memory/SKILL.md b/skills/prune-memory/SKILL.md index 21ba59d..27f0d10 100644 --- a/skills/prune-memory/SKILL.md +++ b/skills/prune-memory/SKILL.md @@ -1,5 +1,6 @@ --- name: prune-memory +effort: medium description: | Use when .claude/memory/ registries grow too large or noisy — superseded entries verbose, similar entries cluttering, journal stale, caveman style diff --git a/skills/reconcile/SKILL.md b/skills/reconcile/SKILL.md index 2585df1..187bb92 100644 --- a/skills/reconcile/SKILL.md +++ b/skills/reconcile/SKILL.md @@ -1,5 +1,6 @@ --- name: reconcile +effort: low description: Use when you need the REAL open-work state of a project and the TODO or memory registries may be stale — "is the queue empty?", "what's left open?", "qu'est-ce qui reste", before /close, after a break, or when a checkbox/status looks doubtful. Confronts declared status (TODO checkboxes, registry statuses) against real git/fs state and surfaces the gaps. NOT memory curation (that is /prune-memory). --- diff --git a/skills/refactor/SKILL.md b/skills/refactor/SKILL.md index 67e5abd..b3720dd 100644 --- a/skills/refactor/SKILL.md +++ b/skills/refactor/SKILL.md @@ -1,5 +1,6 @@ --- name: refactor +effort: high description: 'Improve code quality without changing behavior — strict norm enforcement, targeted scope (file/module). Full-codebase audit+cleanup → /code-clean. Triggers: "refactor", "clean up code", "normaliser".' argument-hint: allowed-tools: Read, Write, Edit, Grep, Glob, Bash, Agent diff --git a/skills/release-candidate/SKILL.md b/skills/release-candidate/SKILL.md index bafc6fc..7eddd35 100644 --- a/skills/release-candidate/SKILL.md +++ b/skills/release-candidate/SKILL.md @@ -1,5 +1,6 @@ --- name: release-candidate +effort: low description: 'Use when develop is ahead of main and you want to cut a versioned release — finalize version.txt + CHANGELOG, merge develop→main via the gitflow fan-out, tag it, and push. Triggers: "cut a release", "release candidate", "tag a version", "ship develop to main". NOT feature/bugfix integration (that is gitflow finish via /ship-feature) nor a hotfix.' allowed-tools: - Read diff --git a/skills/seo/SKILL.md b/skills/seo/SKILL.md index c7206f5..a4cf440 100644 --- a/skills/seo/SKILL.md +++ b/skills/seo/SKILL.md @@ -1,5 +1,6 @@ --- name: seo +effort: high description: | Use when a web project needs SEO + GEO audit or optimization — classical search (Google, Bing) AND AI search (ChatGPT, Perplexity, AI diff --git a/skills/ship-feature/SKILL.md b/skills/ship-feature/SKILL.md index 17a4233..76bc316 100644 --- a/skills/ship-feature/SKILL.md +++ b/skills/ship-feature/SKILL.md @@ -1,5 +1,6 @@ --- name: ship-feature +effort: xhigh description: 'Use when shipping a new feature end-to-end — needs design brainstorm, planning, TDD implementation with subagents, error recovery, code review, and finish. Multi-agent orchestrator (9-step pipeline). Triggers: "ship feature", "ship-feature", "build and merge", "feature end-to-end", "implement and ship".' argument-hint: allowed-tools: Read, Write, Edit, Bash, Grep, Glob diff --git a/skills/status/SKILL.md b/skills/status/SKILL.md index 04fdf9d..39ce739 100644 --- a/skills/status/SKILL.md +++ b/skills/status/SKILL.md @@ -1,5 +1,6 @@ --- name: status +effort: low description: 'Consolidated project snapshot — plugins + passive token cost, git state, recent commits, GSD v2 milestone progress. Read-only. Run at session start or after a break. Open-work reconciliation (stale TODO vs real git) → /reconcile. Triggers: "status", "sitrep", "where are we", "project state", "after break".' argument-hint: (no arguments needed) allowed-tools: Read, Bash, Glob, Grep, Agent diff --git a/skills/tour/SKILL.md b/skills/tour/SKILL.md index 7cb455f..b19dfc1 100644 --- a/skills/tour/SKILL.md +++ b/skills/tour/SKILL.md @@ -1,5 +1,6 @@ --- name: tour +effort: xhigh description: | Use when the user wants ONE grouped pass over a whole project (or a list of projects) covering all hygiene axes together: code cleanup + diff --git a/skills/web-validate/SKILL.md b/skills/web-validate/SKILL.md index 7168333..1fa34b6 100644 --- a/skills/web-validate/SKILL.md +++ b/skills/web-validate/SKILL.md @@ -1,5 +1,6 @@ --- name: web-validate +effort: high description: | Use when a web project needs W3C HTML/CSS validity or WCAG 2.1 accessibility audit. Dispatches the validator-analyzer agent, strict