Bootstrap Cursor skills
Add a Cursor Agent Skill so agents load specialized instructions only when the task matches—not on every chat.
- Framing (taxonomy)
-
Vibe coding bootstrap (this is not a Business Bootstrap child page). Standing up a GitHub organization is Fast org bootstrap (skill
bootstrap-org). - Install ladder for marketplace MCP + skills plugins
- Catalog
- In-repo shop (agent-rules; avoids duplicating this page)
Choose an on-ramp
A. Configure it yourself
Use when you want exact control or the agent cannot write under ~/.cursor/.
-
Create
~/.cursor/skills/<skill-name>/(never under~/.cursor/skills-cursor/—that tree is Cursor-managed). -
Add
SKILL.mdwith YAML frontmatter (name+ trigger-worddescription, not a lay blurb). Cursorcreate-skillis layout only; skillwrite-a-skillwins on matching. Body = how. -
Put long directives in sibling files (
news.md,blog.md, …) and link them fromSKILL.md(progressive disclosure). -
Optionally keep a canonical copy in a git repo and junction/symlink into
~/.cursor/skills/<skill-name>/. -
Add at most a one-line pointer in User Rules /
RULES.mdif agents must discover the skill by name; do not paste the full curriculum into always-on rules. -
Start a new agent chat and confirm the skill appears / can be read.
B. Drop the recipe into a permissive agent
Use when the studio already allows the agent to edit the code hive and Cursor config.
Paste (or @-mention) something like:
Install a personal Cursor skill from these directives. Keep the full text out of always-on User Rules. Canonical path: <repo>/skills/<skill-name>/ Junction or copy to ~/.cursor/skills/<skill-name>/ Add only a thin pointer in RULES.md / documentation.md. YAML description = trigger words (utterances, filenames, task phrases), not a lay blurb. Skill write-a-skill. create-skill is layout / progressive disclosure only.
Then attach the source notes (export, gist, or chat). The agent should:
-
Author
SKILL.md+ reference files -
Install into
~/.cursor/skills/ -
Update thin pointers only
-
Avoid dumping the body into the always-on User Rule paste
Same end state as on-ramp A.
Worked example: writing-news and writing-blog
Separate skills — one per job — with descriptions that trigger on news work vs blog work. Canonical copies live in dev-centr/agent-rules/skills/.
Goal
-
News body: inverted pyramid, neutral attribution, outward shared record
-
Blog body: thesis early, conversational authority, inward framing
-
Titles stay in thin rules (
general/documentation.md, orgagents/editorial/titles.md) -
Bodies in skills so they stay out of always-on context
Layout
skills/writing-news/
SKILL.md
body.md
skills/writing-blog/
SKILL.md
body.md
Each SKILL.md description lists trigger words (third person: utterances, filenames, task phrases) so Cursor matches the job—not a lay summary of the skill, and not a combined router. Capability rules stay in the body. Authoring: skill write-a-skill.
Junction (Windows)
$base = "$env:code\github.com\dev-centr\agent-rules\skills"
cmd /c mklink /J "$env:USERPROFILE\.cursor\skills\writing-news" "$base\writing-news"
cmd /c mklink /J "$env:USERPROFILE\.cursor\skills\writing-blog" "$base\writing-blog"
Verify
-
New agent chat.
-
Ask for a short news ship note — should use
writing-news. -
Ask for a short blog lede on the same topic — should use
writing-blog. -
Modes differ: no first person in news; thesis and
youallowed in blog.
Removed pattern: writing-news-vs-blog router skill — split into two skills instead.
Skills vs always-on rules (checklist)
-
Curriculum lives under
skills/, not in the User Rule paste -
descriptionis trigger words only (third person), not a lay summary of the skill -
Long material is one level deep from
SKILL.md -
Titles / constants that must always apply stay in thin rules
-
Published upstream suites are cited as optional, not silently overriding house STYLE
See also
-
Skill
write-a-skill(trigger-word descriptions):skills/write-a-skill· Skills catalog -
Rules Manager — compose/watch for rules packs
-
Composio MCP setup — marketplace plugin that ships
skills/beside MCP