# LLM Wiki — Agent Instructions This repo is a personal knowledge base. Wiki operations are handled by the `llmwiki` skill (see `.pi/skills/llmwiki/SKILL.md`). Never modify files in `raw/`; you own everything in `wiki/`. ## Shell Scripts - Always use `#!/bin/sh` shebang for shell scripts - Scripts must be POSIX compliant (no bashisms) - When providing commands to users: - Windows/PowerShell: use `` ` `` for line continuation - Unix/Linux/macOS: use `\` for line continuation ## Commit Messages - Follow the 50/72 rule: - Subject line: max 50 characters - Body lines: wrapped at 72 characters - Use conventional commit prefixes (`feat:`, `fix:`, `docs:`, `chore:`, `ci:`, etc.) - Separate subject from body with a blank line - Do **not** add yourself as a co-author (`Co-Authored-By:` trailers are forbidden) Example: ``` feat: add stopwatch timer Replace Hello World with a live stopwatch that prints elapsed time in HH:MM:SS.mmm format, updating every 10ms with color output. ``` ## Documentation (Markdown) - Wrap normal text and lists at **max 80 columns** (for readability in terminals and editors). - **Exceptions**: Tables and code blocks can exceed 80 columns when formatting requires it (e.g. trees, alignment). - Use standard Markdown: `**bold**`, `` `inline code` ``, `##` headings, `-` or numbered lists, fenced code blocks with language hints (` ```c `, ` ```sh `). - Keep examples concise, up-to-date, and self-documenting. - Do not use em dashes (`--`). Use a colon or rewrite the sentence. - Each shell command gets its own fenced code block; do **not** combine multiple commands into one block. Precede each block with a short plain-text label describing what the command does. - README.md: hardware wiring, pin assignments, build instructions. Keep it up to date when changing peripheral assignments. - This file (`AGENTS.md`) follows its own rules.