Install any skill in seconds. Free to start, no credit card required.
Get Started Free →tobihagemann/create-project-skills
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).
Passed 9 of 16 test cases with the skill, and 5 of 16 without it.
and 7 more in the full report
8 fixed5 passed either way7 still failing2 broke
Tokens, turns and time describe resource use, not a dollar price.
One of 8 test cases the skill fixed. Same model, same prompt, with and without the skill.
When prompting the user about a candidate skill tagged as Rename conflict in Step 4, what three option choices should be presented in `request_user_input`?
| Checked | Without skill | With skill |
|---|---|---|
| Offers a second opinion option that triggers $consult-claude instead of a plain skip option. | Missed | Passed |
The instructions your model reads when the skill loads.
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 update_plan to track each phase, restating any remaining steps of a parent workflow alongside them:
$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).AGENTS.override.md when one is present, otherwise AGENTS.md, including nested ones) and any .cursor/rules or .cursorrules. Note the conventions already documented there. The generated skills must not duplicate them..agents/skills/, .claude/skills/, 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.request_user_input to confirm where generated skills should live. Offer up to 3 options: the most likely target directory first, the next-most-likely if there is one, and a free-form path option. Note any symlink alias in the option description. If no Codex skill directory is detected, default the first option to ~/.agents/skills. The user can specify a custom path such as a project-specific directory via the free-form option.## 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.
When that summary shows no source code to extract conventions from, stop here rather than dispatching Step 2. Executable code in any language qualifies, including scripts no manifest declares, so judge from the directory map rather than the detected stack. Documentation, instruction files, and configuration alone do not: extraction run over prose returns that prose's assertions as observed conventions, and Step 3 scores them with no code sites to test them against.
State that as text first — what the survey found, and that conventions extracted from it would have nothing to verify against. Then use request_user_input to offer:
On the first option, run the $create-skill skill directly on that knowledge and skip the remaining steps. On either of the first two, call update_plan with the extraction phases removed so they no longer read as pending work.
test cases passed, vs 5 / 16 without
More skills from the same source and nearby in the registry, with their headline benchmark lift.