How to write and maintain `.claude/skills/*/SKILL.md` files: source-of-truth-first process, verification steps, and conventions.
cd ~/.claude/skills
git clone https://github.com/atopile/atopile.git atopile mkdir -p ~/.claude/skills/atopile-skills
curl -fsSL https://raw.githubusercontent.com/atopile/atopile/HEAD/.claude/skills/atopile-skills/SKILL.md \
-o ~/.claude/skills/atopile-skills/SKILL.md This skill describes the process for maintaining the skill documentation under .claude/skills/*/SKILL.md.
The goal is that future LLM edits stay accurate, actionable, and grounded in the repo (not vibes).
When updating any skill:
## Quick Start that actually runs in this repo.A good skill doc is:
rg over memory: look for imports, entrypoints, and key classes/functions.Use this hierarchy:
Examples:
src/faebryk/core/solver/README.md + src/faebryk/core/solver/symbolic/invariants.pysrc/faebryk/core/zig/src/graph/graph.zig + src/faebryk/core/zig/src/python/graph/graph_py.zig + generated stubstools/library/gen_F.py is the source-of-truth for _F.pyCommon failure modes in skill docs:
atopile/src/... vs src/...)lsp_server.py vs imaginary server.py)Rule: if you can’t prove it from the repo, either remove it or label it as a hypothesis with a pointer to where to verify.
## Quick StartQuick Start should be:
src/.../something.zigGood patterns:
ato build, ato dev test --llm)GraphView.create() / TypeGraph.create(...))name and description.src/, tools/, and test/ path exists (exclude generated build outputs).rg check).Prefer this ordering:
## Quick Start## Relevant Files## Dependants (Call Sites)## How to Work With / Develop / Test## Best Practices / ## Invariants (when applicable)Keep the doc concise and “repo-local”: avoid external links unless they’re stable standards docs.
Use when facing 2+ independent tasks that can be worked on without shared state or sequential dependencies
Use when you have a written implementation plan to execute in a separate session with review checkpoints
Use when executing implementation plans with independent tasks in the current session
Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes
Use when implementing any feature or bugfix, before writing implementation code
Use when creating new skills, editing existing skills, or verifying skills work before deployment