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.