SKILL.md
Documentation Conventions
Single-Instance Documentation Files
Critical Rules: These files should only exist once in the repository (at root/docs):
- One
README.mdat repository root - One
QUICKSTART.mdindocs/directory
Only one file in the entire repository may be named README (the root README.md). Subdirectories must use descriptive names (e.g. scripts/github/SCRIPTS-GITHUB.md, not README.md).
Directory-Specific Documentation
If a directory needs its own documentation file, name it after the full path from root:
✅ Correct:
apps/api/APPS-API.md
apps/web/APPS-WEB.md
tools/qa/TOOLS-QA.md
infra/docker/ci/INFRA-DOCKER-CI.md
.llm/LLM.md
❌ Incorrect:
apps/api/README.md
apps/web/README.md
tools/qa/README.md
Rationale
Multiple README.md files:
- Create ambiguity in navigation
- Confuse search results
- Break expectations about repository entry points
- Complicate documentation tooling
Naming Pattern
[FULL-PATH-WITH-HYPHENS].md
Convert the directory path to uppercase, replacing slashes with hyphens:
apps/api/→APPS-API.mdpackages/orm/→PACKAGES-ORM.md.llm/plans/active/→ place plan files underactive/<project>/(see.llm/LLM.md)
Examples
| Directory | Documentation File |
|---|---|
| Root | README.md (the only one) |
apps/api/ |
APPS-API.md |
apps/web/ |
APPS-WEB.md |
apps/workers/ |
APPS-WORKERS.md |
apps/management-api/ |
APPS-MANAGEMENT-API.md |
apps/management-web/ |
APPS-MANAGEMENT-WEB.md |
tools/qa/ |
TOOLS-QA.md |
tools/web-perf/ |
TOOLS-WEB-PERF.md |
packages/helpers/ |
PACKAGES-HELPERS.md |
packages/orm/ |
PACKAGES-ORM.md |
infra/docker/ci/ |
INFRA-DOCKER-CI.md |
infra/k8s/ |
INFRA-K8S.md |
scripts/github/ |
SCRIPTS-GITHUB.md |
infra/pipelines/jenkins/alpha/ |
INFRA-PIPELINES-JENKINS-ALPHA.md |
.llm/ |
LLM.md |
Per-project plans live under .llm/plans/active/ and .llm/plans/completed/ (see .llm/LLM.md). There is no single markdown file at the .llm/plans/ root.
Special Cases
Plan directories use a special convention:
.llm/plans/active/feature-name/
├── 00-master-plan.md # Primary: Master overview/index
├── 00-overview.md # Alternative: Overview/guide
├── EXECUTION.md # Parallel execution / agent assignment guide
├── 01-part1.md # Numbered sequential plans
├── 02-part2.md
└── specific-task.md # Descriptive task names
Plan index file naming:
- Primary:
00-master-plan.md- For comprehensive master plans - Alternative:
00-overview.md- For overviews and guides - Never:
README.mdor full-path names likeLLM-PLANS-ACTIVE-FEATURE.md
Plan execution guides:
- Use
EXECUTION.mdfor parallel execution guides, agent assignments, or running instructions - Never:
QUICK-START.mdorQUICKSTART.md(reserved for rootdocs/QUICKSTART.md)
The 00- prefix ensures index files sort first in directory listings.
When Creating Documentation
- Root-level overview? → Update
README.md - Quick start guide? → Update
docs/QUICKSTART.md - Directory-specific docs? → Create
[FULL-PATH].mdin that directory - Specific topic docs? → Use descriptive names (e.g.,
MIGRATIONS.md,TESTING.md) - Plan index/overview? → Use
00-master-plan.mdor00-overview.md - Plan execution guide? → Use
EXECUTION.md(for parallel/agent instructions) - Plan files? → Must go in
.llm/plans/(NOT.cursor/plans/) - Optional human LLM notes under
.llm/history/? → Use.llm/history/(NOT.cursor/history/); see.llm/LLM.md
Plan and History Location
Critical: Plans and history are not Cursor-specific and must never be placed in .cursor/ directory.
✅ Correct:
.llm/plans/active/feature-x/
.llm/history/active/feature-y/
❌ Incorrect:
.cursor/plans/active/feature-x/
.cursor/history/active/feature-y/
The .cursor/ directory is for Cursor IDE-specific configuration only (rules, skills, settings).
Cross-repo-tree links
When linking to a file outside the current documentation subtree, use a repo-root path with a leading / (GitHub resolves these from the repository root):
✅ Cross-tree:
[media-player-architecture skill](/.cursor/skills/media-player-architecture/SKILL.md)
[QUICKSTART](/docs/QUICKSTART.md)
✅ Same subtree (e.g. both under docs/):
[LOCAL-ENV-OVERRIDES](development/LOCAL-ENV-OVERRIDES.md)
❌ Deep parent-relative chains:
`../../../../../.cursor/skills/media-player-architecture/SKILL.md`
- Do not use machine-absolute paths (
/Users/...). - Avoid
../../../(or longer) for cross-tree targets; use/path/from/repo/rootinstead. - Preserve URL fragments:
/docs/FOO.md#section.
Migration Note
If you encounter existing README.md files in subdirectories (from an older directory layout), rename them following the full-path convention.