Executor instructions: Follow this plan step by step. If anything in "STOP conditions" occurs, stop and report. When done, update the status row in
plans/README.md.Drift check (run first):
git diff --stat c63cb120..HEAD -- AGENTS.md CONTRIBUTING.md package.json scripts/publish.mjsOn a mismatch with the excerpts below, treat it as a STOP condition.
- Priority: P3
- Effort: S
- Risk: LOW
- Depends on: none (references 003's
verifyscript if it exists) - Category: dx / docs
- Planned at: commit
c63cb120, 2026-07-10
This repo ships agent tooling to its users (.claude-plugin/, skills/slidev/)
but has no AGENTS.md/CLAUDE.md for agents or newcomers working in the
repo. Several conventions are non-obvious and easy to get wrong: tests need a
prior build, dependencies are pinned through pnpm catalogs (not raw versions),
and skills/ is generated (must not be hand-edited) and is copied into the
published package. A short AGENTS.md captures the executable ground rules.
- No
AGENTS.mdorCLAUDE.mdexists anywhere (glob returns none). - Monorepo layout (from
CONTRIBUTING.md:76-84):packages/slidev/ - Node.js side (CLI, Vite plugins) packages/client/ - frontend Vue app (shipped as source) packages/parser/ - Slidev extended-Markdown parser packages/create-app/, create-theme/ - scaffolding packages/vscode/ - VSCode extension packages/types/ - shared types - Scripts (
package.json:9-28):build,dev,lint,typecheck,test,docs. Tests require a prior build. - Dependency management: pnpm catalogs in
pnpm-workspace.yaml(catalog:prod,catalog:dev,catalog:frontend, etc.) — deps reference catalog keys, not literal versions. skills/is generated:skills/GENERATION.mddocuments the process, andscripts/publish.mjs:4copiesskillsintopackages/slidev/skillsat publish time (so it ships in@slidev/cli). It must be regenerated fromdocs/, not edited by hand.
| Purpose | Command | Expected |
|---|---|---|
| Lint (markdown is ignored, but run anyway) | pnpm lint |
exit 0 |
(No build/test required — this plan adds one Markdown file.)
In scope:
AGENTS.md(create, repo root)
Out of scope:
CONTRIBUTING.md(leave as the human-facing doc;AGENTS.mdcomplements it).- Any config that would make tools load AGENTS.md differently.
- Generating/editing
skills/content.
- Branch:
docs/agents-md. - Conventional commit:
docs: add AGENTS.md for contributors. - Do NOT push/PR unless instructed.
Create AGENTS.md at the repo root with these sections (keep it under ~60 lines,
factual, matching the current state above):
- Project map — the package table from Current state, one line each.
- Build & verify —
pnpm install, thenpnpm buildbeforepnpm test(tests resolve workspace packages todist/). If plan 003 landed, point atpnpm verify. Listpnpm typecheck(vue-tsc --noEmit) andpnpm lint(eslint . --cache). - Dependencies — versions are managed via pnpm catalogs in
pnpm-workspace.yaml; reference a catalog key (catalog:prod, etc.), don't hardcode versions;tazemanages bumps. - Generated content — do not hand-edit —
skills/slidev/**is generated fromdocs/(seeskills/GENERATION.md) and copied into the published package byscripts/publish.mjs; regenerate via the documented process. Also notedocs/components.d.tsand other generated artifacts if present. - Conventions — Conventional Commits for messages and PR titles; code style
is enforced by ESLint via a pre-commit hook (
simple-git-hooks+lint-staged), so no manual formatting needed. - Releases — never release autonomously; version bumps/tags are
human-approved (
pnpm releaseis maintainer-run).
Verify: test -f AGENTS.md && wc -l AGENTS.md prints a line count > 0.
- No tests. This is documentation. Verify it is internally consistent with
package.jsonscripts andCONTRIBUTING.mdby re-reading both.
-
AGENTS.mdexists at repo root and covers: project map, build/verify (build-before-test), catalogs, generatedskills/, conventions, releases - Every command it names matches a real script in
package.json -
pnpm lintexits 0 - Only
AGENTS.mdadded (git status) -
plans/README.mdstatus row updated
Stop and report if:
package.jsonscripts differ from the excerpts (document what actually exists, and report the drift).
- Keep the command list in sync with
package.jsonscripts. - If a
CLAUDE.md/tool-specific file is also wanted, symlink or re-export fromAGENTS.mdrather than duplicating.