claude/skills/create-project-skills/SKILL.md
Scans an existing codebase and generates project-specific skills that capture inferred conventions such as naming, file organization, framework usage, data access, error handling, and testing style. Writes into the project's chosen skill directory (e.g., `.claude/skills/`, `.agents/skills/`, or a custom path). Use when the user asks to "extract skills from the codebase", "create project skills", "infer project conventions as skills", "codify patterns as skills", or "mine the repo for best practices".
npx skillsauth add tobihagemann/turbo create-project-skillsInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Generates one skill per detected convention area in the project's skill directory so future Claude or Codex sessions auto-load them when working in the repo.
At the start, use TaskCreate to create a task for each phase:
/create-skill skillIf $ARGUMENTS specifies paths, scope the scan to those paths; otherwise scan the whole repository.
Build the extraction context:
package.json, Cargo.toml, pyproject.toml, go.mod, Package.swift, pom.xml, Gemfile, and others appropriate to the stack).CLAUDE.md, .claude/rules/, AGENTS.md, and any .cursor/rules or .cursorrules. Note the conventions already documented there. The generated skills must not duplicate them..claude/skills/ (Claude Code), .agents/skills/ (Codex), and a top-level skills/ directory (match case-insensitively so Skills/ or similar non-standard casing is detected too). Resolve symlinks so co-linked paths are treated as one logical location.AskUserQuestion to confirm where generated skills should live. List each distinct resolved location as an option, noting any symlink alias in the option description. If .claude/skills/ is not among the detected locations, include it as a default option. The auto-added "Other" option lets users specify a custom path such as a project-specific directory.## section heading from the body. These signals feed rename-conflict detection in Step 3.Output a short text summary of detected stack, top-level layout, chosen target directory, and existing skills before moving on.
Read references/pattern-extractor.md to see the full taxonomy of pattern categories. Decide which categories apply to the detected stack (e.g., drop "Styling and UI" for a backend service, drop "State management" for a static-analysis tool).
Use the Agent tool to launch all extraction agents below in a single assistant message so they run concurrently. Run them in the foreground so all their results return in this turn. Each Agent call uses model: "opus" and no name. Launch one Agent per applicable category and state the total count explicitly when emitting the calls. Every agent's prompt must direct it to treat the shared working tree and its git index as read-only and to extract by reading and reasoning. Each agent's prompt must:
CLAUDE.md and .claude/rules/ so duplicates are skippedAggregate findings from all agents. For each finding, score three axes:
Group the surviving findings by topic into candidate skills. Each candidate typically covers one category, but related categories may merge if the patterns are tightly coupled. Split a candidate into two skills if its patterns cover clearly distinct sub-topics.
For each candidate skill, produce:
name (kebab-case, narrow to the topic, e.g., swift-naming, react-state, api-clients)file:line)If rename-conflict detection is ambiguous from the Step 1 signals alone, read the existing skill's SKILL.md body and compare convention statements before finalizing the Status tag.
Output the full proposal as text first, not inside AskUserQuestion. For each candidate skill, show:
After all candidates are listed, use AskUserQuestion to confirm the proposal with these options: "Approve all", "Make edits", "Cancel". If the user selects "Make edits", continue in conversation so the user can specify which candidates to drop, merge, or rename before returning here.
For each Rename conflict candidate, use a separate AskUserQuestion asking whether to update the existing skill, create the new one alongside it, or skip.
/create-skill SkillBuild the batch from approved candidates only. Do not include anything not explicitly approved in Step 4.
Output all approved candidates (both New and Update status) as text in a single batch. For each candidate, list the Status tag, proposed name, description, target path <target-skill-directory>/<name>/SKILL.md, and the 3–8 convention statements organized under ## <Section> headings with inline evidence citations (file_path:line). These convention statements define the target state the final SKILL.md should match, regardless of whether the skill is being created or updated.
This gives /create-skill everything it needs to skip its Step 1 (usage patterns clearly understood) and Step 2 (project skills typically need no additional reusable resources). For Update candidates, /create-skill also skips its Step 3 (initialization) per its own "skill already exists, iteration needed" skip rule and iterates on the existing SKILL.md in Step 4 until it matches the target convention statements.
Run the /create-skill skill once with this batch in context. Its batch-aware review, evaluation, and apply cycle then runs across all touched skills.
After /create-skill completes, output a summary of created and updated skills, grouped by status. If any candidates were dropped or skipped in Step 4, list them so the user knows what was left out.
CLAUDE.md or .claude/rules/. Reference them instead if needed.development
Apply a UX lens to a user-facing change: whether it serves the user's real goal and whether the path through it holds together, using the Understanding, Bridging, and Flowing contexts. Use when scoping, planning, or assessing any change that affects what a user sees or does. Loaded as a lens during planning and assessment.
development
Apply a UX lens to a user-facing change: whether it serves the user's real goal and whether the path through it holds together, using the Understanding, Bridging, and Flowing contexts. Use when scoping, planning, or assessing any change that affects what a user sees or does. Loaded as a lens during planning and assessment.
development
Assess project-wide structural technical debt: complexity hotspots, deprecated API usage, duplication clusters, and architecture rot. Ranks findings by impact and refactor effort into a report at .turbo/technical-debt.md. Use when the user asks to "assess technical debt", "find technical debt", "review technical debt", "what should we refactor", "find refactoring candidates", "where is the code rot", or "what's our worst code". Analysis-only — does not modify code.
development
Run a multi-agent review of code comments and markdown documentation for unnecessary content, then fix the issues. Covers what-restating comments, name-mirroring doc comments, status-update prose, and other documentation noise. Use when the user asks to "simplify docs", "simplify documentation", "clean up comments", "clean up docs", "review documentation", "strip unnecessary comments", "reduce doc noise", or "run simplify-docs".