snippets
snippets are reusable file templates that invocations can include by reference. they prevent drift and prompt bloat by keeping canonical file bodies in one place.
built-in snippets
python
| snippet | description |
|---|---|
python/pyproject.toml |
canonical pyproject.toml with ruff, mypy, pytest |
python/github-ci.yml |
github actions workflow (uv-based) |
python/gitlab-ci.yml |
gitlab ci config (uv-based) |
rust
| snippet | description |
|---|---|
rust/Cargo.toml |
canonical Cargo.toml with metadata |
rust/github-ci.yml |
github actions workflow (fmt, clippy, test) |
rust/gitlab-ci.yml |
gitlab ci config (fmt, clippy, test) |
node
| snippet | description |
|---|---|
node/github-ci.yml |
github actions workflow (lint, typecheck, test) |
node/gitlab-ci.yml |
gitlab ci config (lint, typecheck, test) |
include syntax
use {{> snippet:path}} inside invocations to include a snippet:
## pyproject.toml structure
```toml
{{> snippet:python/pyproject.toml}}
includes are resolved before placeholder substitution, so snippets can contain `$1`, `$ARGUMENTS`, and `{{key}}` placeholders.
## listing snippets
```bash
familiar list snippets
familiar list snippets -v
local overrides
place snippet files under .familiar/snippets/ to override built-ins:
.familiar/snippets/python/pyproject.toml
the same "local wins" precedence applies as with conjurings and invocations.
linting
familiar lint validates snippet references:
- error if an invocation references a snippet that doesn't exist