Agent knowledge as files. Skills now; rules, subagents, and MCP client config when they exist.
MCP servers (the processes) stay in their own repos — for example shyyawn/mcp. This repo only holds what the agent should read.
Matches how public skill libraries are published (anthropics/skills, skills.sh) and where Cursor actually loads files.
lore/
├── skills/<name>/SKILL.md # Agent Skills (required name + description)
├── rules/*.mdc # always-on or glob-scoped rules
├── agents/ # subagent definitions
├── scripts/ # make setup (lore + vendor skills)
└── mcp.json # MCP *client* config when you add it (not committed secrets)
| Path | Installs as | What belongs here |
|---|---|---|
skills/<name>/ |
~/.cursor/skills, ~/.agents/skills, ~/.claude/skills |
Repeatable domain playbooks. Cursor also loads .claude/skills and .codex/skills. |
rules/*.mdc |
~/.cursor/rules/ or a project's .cursor/rules/ |
Short always-on or glob-scoped constraints. Dynamic “apply intelligently” rules are skills instead. |
agents/ |
~/.cursor/agents/ |
Subagent personas. Add when you have one. |
scripts/ |
not copied | make setup and vendor skill install. Not agent knowledge. |
mcp.json |
~/.cursor/mcp.json or .cursor/mcp.json |
Which servers to attach. Use ${env:NAME} for secrets. Never commit keys. |
Slash prompts / .cursor/commands/ are legacy. New user-invoked workflows are skills with disable-model-invocation: true in frontmatter.
Three layers. That is the whole agent setup.
- This repo's skills — how we write Go, TypeScript, Python, CSS, Encore, Temporal, and Svelte, plus TypeScript unit tests, e2e policy, a Conventional Commits overlay for those languages, and a 2026 Git repo kit.
- Official Cursor plugins — live tooling and vendor how-tos that this repo does not duplicate.
- Official vendor skills — Conventional Commits format; Expo / React Native / EAS; Anthropic frontend-design; Vercel React performance and web-design-guidelines; Next.js workflows; Playwright CLI. Not Cursor plugins.
On a new machine, clone this repo, then run one command for all scriptable setup:
git clone git@github.com:shyyawn/lore.git
cd lore
make setupThat installs this repo's skills and the vendor packs, then prints the plugin steps. Plugins are not part of make setup. User-scope plugins may sync when you sign into Cursor on a new machine. If the plugins are missing, in agent chat:
/add-plugin encore
/add-plugin temporal
/add-plugin svelte
Vendor commands (make install-vendor-skills):
npx skills add conventional-changelog/conventional-changelog \
--skill conventional-commit-message -g -y \
--agent cursor --agent claude-code --agent codex
npx skills add expo/skills -g -y \
--agent cursor --agent claude-code --agent codex
npx skills add anthropics/skills \
--skill frontend-design -g -y \
--agent cursor --agent claude-code --agent codex
npx skills add vercel-labs/agent-skills \
--skill vercel-react-best-practices --skill web-design-guidelines -g -y \
--agent cursor --agent claude-code --agent codex
npx skills add vercel/next.js -g -y \
--agent cursor --agent claude-code --agent codex
npx skills add microsoft/playwright-cli \
--skill playwright-cli -g -y \
--agent cursor --agent claude-code --agent codex
npx skills add encoredev/skills -g -y \
--agent claude-code --agent codex
npx skills add temporalio/skill-temporal-developer \
--skill temporal-developer -g -y \
--agent claude-code --agent codex
npx skills add sveltejs/ai-tools \
--skill svelte-core-bestpractices --skill svelte-code-writer \
-g -y --agent claude-code --agent codexmake uninstall-vendor-skills runs npx skills remove for those packs on the same agents. It does not touch lore copies or Cursor plugins. Encore / Temporal / Svelte skills are not installed for Cursor (the plugins already have them). MCP is not part of this script.
Plugins are user-scope from agent chat. The npx skills add … -g lines are user-scope too: they land in ~/.cursor/skills, ~/.claude/skills, and ~/.codex/skills. Omit -g only if you want them in one repo's .agents/skills/.
| Source | Covers | Do not also install |
|---|---|---|
| encore plugin | Live MCP against encore run, plus Encore's own rules/skills/commands |
encoredev/skills on Cursor; a second Encore MCP |
| temporal plugin | Official Temporal SDK, CLI, and Cloud skill (temporal-developer) |
temporal-developer on Cursor; Temporal docs MCP |
| svelte plugin | Svelte MCP, skills, and the svelte-file-editor agent |
Extra Svelte packs on Cursor; a second Svelte MCP |
conventional-commit-message skill |
Commit format: types by release impact, ! / BREAKING CHANGE, scopes, commitlint check |
Random skills.sh / Lobe copies; committing-with-commitlint globally (only in a repo that already has commitlint) |
expo/skills |
Expo SDK, Expo Router, native UI, upgrades, EAS (build, submit, hosting, workflows). Router skill is expo-overview |
Extra Expo packs; Lobe / skills.sh copies; vercel-react-native-skills beside this pack |
frontend-design |
Web look: distinctive UI, anti-slop. From anthropics/skills | The rest of that repo (skill-creator, document packs, …); do not run it on Expo / RN screens |
vercel-react-best-practices |
Web React and Next performance (RSC, waterfalls, Activity). From vercel-labs/agent-skills |
The rest of that repo (writing-guidelines, deploy-to-vercel, …) |
web-design-guidelines |
Audit existing web UI against Vercel’s interface guidelines (a11y, spacing, focus) | anti-ui-slop / ui-ux-pro-max clones; do not use it as a mobile HIG skill |
vercel/next.js skills |
Next workflows: next-dev-loop, Cache Components and Partial Prefetching adoption. Framework APIs stay in the project's AGENTS.md |
Retired next-skills; a lore App Router encyclopedia |
| Official Playwright skills | Playwright CLI, codegen, traces, session (microsoft/playwright-cli) |
LambdaTest / QASkills Playwright packs; a lore Playwright API dump |
Optional scanner for React changes: react-doctor (/add-plugin react-doctor, or npx react-doctor install). Expo MCP is optional live docs and EAS when you open an Expo app — see Cursor and Expo. Do not add a second Expo skills pack to get the MCP. Next.js 16.3+: next dev writes AGENTS.md that points at node_modules/next/dist/docs/. That is the pin-matched encyclopedia — see AI agents. Do not install the retired knowledge pack.
That combination covers the stack. You do not need more plugins, skill catalogs, or MCP servers to start.
Who wins when they overlap: lore skills own Go package layout and Encore+Temporal structure (encore-go-app-structure, temporal-go-app-structure, encore-temporal-go-app-structure), the Svelte pin and Kit tree (svelte, sveltekit-app-structure), TypeScript what to test (typescript-unit-tests), when to add journeys (e2e-tests), and the Conventional Commits overlay (conventional-commits: Go /v2, Python/TS releasers, Lefthook without Node). The plugins own live inspection (Encore MCP), official Temporal CLI/SDK encyclopedias, and Svelte runes / autofixer / live docs. conventional-commit-message owns the commit format. Official Playwright skills own CLI / codegen / traces. expo/skills owns Expo, React Native-with-Expo, EAS, and native Maestro. frontend-design owns web look. web-design-guidelines owns web UI audit. vercel-react-best-practices owns web React and Next performance. Next.js APIs and App Router are the project's AGENTS.md plus bundled next docs. vercel/next.js skills own the verify loop and Cache Components / Partial Prefetching workflows. TypeScript language stays typescript-idioms — do not flatten Next app/ or Expo Router app/ with its src/<noun>/ tree. Python language stays python-idioms. Kit stays git-repo-setup-python. CSS language stays css-idioms. There is no lore React, Expo, or Next overlay: those vendors already own pin and layout. Do not copy plugin or vendor skills into skills/ — make uninstall would wipe a fork, and you would be maintaining vendor docs.
Plugins are Cursor-only (/add-plugin is not available in the Cursor CLI). npx skills add works from any terminal. After installing plugins, restart the agent chat if MCP tools do not appear.
Running an app is separate from this setup: Encore CLI, Temporal CLI (temporal server start-dev), Docker for local Postgres, Node for Svelte, React, or Next, Expo CLI / EAS when you open an Expo app. Install those when you open a real app, not as agent knowledge.
| Skill | Use |
|---|---|
| new-change-lore-skills | House look for creating or changing any skill in this repo |
| conventional-commits | Go/Python/TS overlay on the official conventional-commit-message skill (install that first — Start here) |
| git-repo-setup | 2026 Git repo kit: init, hooks, mise, just/Make, ignore/attributes, linters, shared debugger |
| git-repo-setup-go | Go overlay: gofmt, go vet, golangci-lint, go test / encore test, Delve launch.json |
| git-repo-setup-typescript | TypeScript overlay: Biome, tsc, vitest, Playwright e2e when present, commitlint, Node / Next / SvelteKit / Expo launch.json |
| git-repo-setup-python | Python overlay: uv, ruff, pytest, debugpy launch.json |
| create-readme-and-other-markdown-documentation | README, community health files, changelogs, ADRs, agent files, and docs/ trees |
| source-of-truth | One writer per fact; a GET hits one store; dual-write needs an outbox |
| data-modeling | Logical schema: table vs blob vs junction; one fact one type |
| identity | Natural entity → business key; UUID is extra uniqueness |
| api-contracts | HTTP/RPC: 4xx domain outcome vs 5xx crash; additive change |
| evolve-safely | Expand/contract schema and API so old binaries keep working |
| authz-boundaries | Actor and tenant on every read/write; tenant in the query |
| choose-collections | In-memory chooser: slice vs map vs set vs heap; invent default no |
| requirement-to-architecture-to-design | Requirements then architecture then design; do not skip a stage |
| review-change | Tick catalogs 1–7 plus the language pin; do not recopy them |
| customize-cv | Career source → IC or Manager job CV, freelance profile, or job LinkedIn; tailor when a JD exists, else a base |
| go-idioms | Idiomatic Go 1.18–1.27 and 2024–2026 layout |
| go-100-mistakes-avoid | Overlay on go-idioms: common Go mistakes still in force in 2026 |
| go-unit-tests | Overlay on go-idioms: 2024–2026 Go tests (tables, synctest, fuzz, what to skip) |
| go-backend | Overlay on go-idioms: inside a Go service (handlers, persistence, shutdown) |
| go-ddd | Overlay on go-backend: DDD Lite when a domain earns an aggregate |
| go-mono-repo | Overlay on go-idioms: one module by default, go.work only when modules version apart |
| typescript-mono-repo | Overlay on typescript-idioms: one package.json by default, pnpm workspaces when two apps appear, Turborepo only when CI time hurts |
| typescript-idioms | Idiomatic TypeScript 5–7 and 2024–2026 layout |
| python-idioms | Idiomatic Python 3.10–3.14 and 2024–2026 layout |
| typescript-unit-tests | Overlay on typescript-idioms: 2024–2026 TS tests (Vitest / Jest / node:test, what to skip) |
| e2e-tests | When to add browser / device journeys (Playwright web; Expo Maestro). Install official Playwright skills first — Start here |
| css-idioms | Idiomatic CSS Baseline 2022–2026 (@layer, nesting, view transitions, anchors). Not Sass or Tailwind |
| svelte | Overlay on the Svelte plugin + typescript-idioms: Svelte 5 / Kit 2 pin, experimental default-no |
| sveltekit-app-structure | SvelteKit src/routes / $lib layout (coding stays in svelte + the plugin) |
| encore-go | Encore.go backends (never F5 / Zed F4; attach config is git-repo-setup-go) |
| encore-go-app-structure | Encore Go package layout |
| temporal-go | Temporal Go SDK |
| temporal-go-app-structure | Temporal Go package layout |
| encore-temporal-go-app-structure | Encore + Temporal Go layout |
Cursor plugins are the other half of setup — see Start here.
Cursor can import a GitHub repo whose skills live under skills/. Or install this repo's skills locally:
git clone git@github.com:shyyawn/lore.git
cd lore
make installFor lore + vendor skills on a new machine, use make setup. See Start here.
| Target | Does |
|---|---|
make setup |
Lore skills + vendor skills; prints Cursor plugin steps (plugins still manual) |
make clean |
Undo setup: lore copies + vendor packs; prints how to remove Cursor plugins |
make install |
Copy every skill into Cursor, Codex, and Claude Code skill dirs |
make install-vendor-skills |
Install official vendor skills (Conventional Commits, Expo, frontend-design, Vercel, Playwright) for cursor, claude-code, and codex |
make uninstall-vendor-skills |
Remove those vendor packs from the same agents |
make print-cursor-plugins |
Show /add-plugin steps only (no install) |
make status |
Show which installed copies have drifted from the repo |
make uninstall |
Remove this repo's skills from those skill dirs |
make list |
List the skills in this repo |
make install writes ~/.cursor/skills (Cursor), ~/.agents/skills (Codex; Cursor also reads it), and ~/.claude/skills (Claude Code). Claude Code does not read ~/.agents/skills. Leaves skills it does not own (symlinks to other repos) alone.
These are copies, not symlinks — a running agent keeps a stable snapshot while you edit. The trade-off is drift: re-run make install after every change, and make status reports what is stale. Symlink instead (ln -sfn) if you would rather edits go live immediately.
Project-local: copy a skill into that repo's .cursor/skills/ (or .agents/skills/).