← ClaudeAtlas

writing-practiceslisted

Write or edit a Session Sitter practices file — the markdown that decides permission prompts. Use when the user wants to add a rule, block a command, allow something without approval, set up a practices file, or asks why a clause did not fire.
eranra/session-sitter · ★ 7 · AI & Automation · score 71
Install: claude install-skill eranra/session-sitter
# Writing a practices file A practices file is markdown. Session Sitter reads it on every permission prompt and every decision it makes names the clause it applied, so the file is both the policy and the explanation. The format is the project's existing BDI bottom-line schema (`docs/KNOWLEDGE.md`), so a file already written for the VS Code extension works here unchanged. What the plugin adds is **matching**: a clause becomes deterministic when its body carries a `Match:` line. ## The shape of a clause ```markdown ### Intention: Never force-push to a shared branch | Field | Value | |---|---| | id | team-git-002 | | level | red | | tags | git, history | Match: `git push --force`, `/git\s+push\b.*--delete/` Rewriting history on a branch other people build on destroys their work. Push a new commit instead. ``` - **The heading** is `### Belief:`, `### Desire:` or `### Intention:` followed by the title. A clause under any other heading is ignored, so prose between clauses is free. - **`id`** is the citation. That clause is cited as `practices §team-git-002` in the denial the user sees and in the audit trail. Without an `id`, the id falls back to a leading number in the title (`### Intention: 4. …` → `practices §4`) and then to a slug of the title. Set it explicitly — a retitled clause otherwise silently changes its own citation. - **`level`** decides the lane: - `red` → deny the call, citing this clause. - `green` → allow the call without asking, citing this cla