atopile-skills
community[skill]
How to write and maintain `.claude/skills/*/SKILL.md` files: source-of-truth-first process, verification steps, and conventions.
$
/plugin install atopiledetails
Skills Skill (Maintaining Skill Docs)
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).
Quick Start
When updating any skill:
- Find the module’s “source-of-truth” docs (README/design notes).
- Verify claims directly in code (entrypoints + invariant-enforcing files).
- Fix incorrect paths/APIs/tests by searching the repo.
- Add/update a small
## Quick Startthat actually runs in this repo. - Validate frontmatter + referenced paths.
What “Good” Looks Like
A good skill doc is:
- Specific: points at exact files and the real entrypoints.
- Invariant-driven: documents the correctness rules enforced by the code (not aspirational design).
- Runnable: Quick Start snippets compile/import (or at least match the current API surface).
- Traceable: any non-obvious claim can be traced to a file path in the repo.
Standard Workflow (Source-of-Truth First)
1) Inventory the skill’s scope
- Identify the module boundary (directories, packages) and key consumers (“call sites”).
- Prefer using
rgover memory: look for imports, entrypoints, and key classes/functions.
2) Read the docs, then the code that enforces invariants
Use this hierarchy:
- A module README/design doc (if present)
- The runtime entrypoint(s) used by the rest of the repo
- The files that enforce invariants (the places that must remain correct)
- Tests that codify behavior
Examples:
- Solver:
src/faebryk/core/solver/README.md+src/faebryk/core/solver/symbolic/invariants.py - Graph:
src/faebryk/core/zig/src/graph/graph.zig+src/faebryk/core/zig/src/python/graph/graph_py.zig+ generated stubs - Library:
tools/library/gen_F.pyis the source-of-truth for_F.py
3) Fix wrong statements (don’t preserve broken history)
Common failure modes in skill docs:
- stale file paths (
atopile/src/...vssrc/...) - renamed entrypoints (
lsp_server.pyvs imaginaryserver.py) - test paths that no longer exist
- claims about behavior that conflict with the actual API surface (especially Zig bindings)
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.
4) Add a minimal, correct ## Quick Start
Quick Start should be:
- 5–20 lines
- uses the public API surface as used elsewhere in the repo
- avoids placeholders like
src/.../something.zig
Good patterns:
- CLI snippet for user-facing flows (
ato build,ato dev test --llm) - Python snippet for core APIs (
GraphView.create()/TypeGraph.create(...))
5) Validation checklist (required)
- Frontmatter YAML parses and contains
nameanddescription. - Every referenced
src/,tools/, andtest/path exists (exclude generated build outputs). - Any code identifiers mentioned (classes/functions) exist (
rgcheck). - Quick Start uses correct import paths and function signatures.
Style/Structure Conventions
Prefer this ordering:
- One-paragraph summary
## 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.
technical
- github
- atopile/atopile
- stars
- 3177
- license
- MIT
- contributors
- 41
- last commit
- 2026-04-03T20:56:37Z
- file
- .claude/skills/atopile-skills/SKILL.md