2.9 KiB
2.9 KiB
icon
| icon |
|---|
| lucide/file-text |
Content Contract
This page defines the authored content contract for the docs-first MCP architecture.
Canonical Source Of Truth
- All authored Markdown lives under
docs/. - MCP resources and static docs are two distribution surfaces of the same authored files.
- No parallel authored markdown is allowed in
src/or other package-only paths.
Canonical Skill Shape
Each skill is one directory under docs/skills/:
docs/
skills/
<skill-id>/
SKILL.md
references/
... (one or more markdown files, optional nested folders)
Rules:
SKILL.mdis required for every skill.references/is the only place for skill-specific supporting docs.- Nested folders inside
references/are allowed so a skill can reorganize internals without changing global architecture. - Skill directories are independent ownership boundaries; no cross-skill file writes.
File Placement And Ownership Boundaries
- Top-level project docs stay in
docs/*.md. - Skill docs stay in
docs/skills/<skill-id>/.... - A skill may link to other skills, but must not store content inside another skill's directory.
- Server and runtime code may index and serve docs, but must not be the source of authored markdown.
Metadata Location Constraint
- Skill metadata is embedded in YAML frontmatter in
SKILL.md. - No
metadata.yamlsidecar exists in the end state. - Reference lookup metadata, including reference id to relative path mappings, is declared from
SKILL.mdfrontmatter rather than inferred as a hidden global convention.
Skill Id Contract
skill-id is the public identifier and should satisfy all rules below:
- Format: lowercase kebab-case only.
- Character set:
a-z,0-9, and-. - Must start with a letter.
- No underscores, spaces, dots, or uppercase characters.
- Directory name should equal
skill-idin each committed revision. - Frontmatter
idshould equal directory name in each committed revision. - Treat
skill-idas immutable after release; any rename is a breaking replacement and clients must move to the new id.
Valid examples:
fastapi-uv-dockerzensical-docspytest-scaffolding
Invalid examples:
fastapi_uv_dockerZensical-Docsdocs.zensical
Invariants
This contract guarantees:
- One authored source tree in
docs/for both website and MCP. - One skill directory maps to one skill identity per revision.
- Namespace and slug drift is minimized by keeping directory and frontmatter ids aligned per revision.
- Per-skill reference structure can evolve without changing cross-skill architecture.
- Packaging for stdio is deterministic because authored content is path-stable.
Non-Goals
This contract does not define:
- URI versioning policy details.
- The full frontmatter schema.
- Migration instructions from the current architecture.