--- name: cproof-context description: Architectural and conventional context for the cproof XMPP terminal client. Load INDEX.md first; pull individual files on demand based on the task at hand. --- # cproof skill entry cproof is a terminal-based XMPP client in C, fork of Profanity (renaming WIP). Build: autotools + GLib. Tests: cmocka (unit) + custom runner (functional) + custom benches. ## How to use this context 1. Read `INDEX.md` for the full file map and churn labels. 2. For any non-trivial task, pull only the files relevant to it: - Touching commands? → `patterns/commands.md`, `patterns/autocomplete.md`, `playbooks/add-command.md`. - Touching tests? → `testing/unit-tests.md`, `testing/stubs.md`, `playbooks/add-test.md`. - Touching XMPP? → `patterns/xmpp.md`. - Building? → `build/docker.md` (canonical) or `build/local.md`. 3. Always consult `gotchas.md` before finishing — it lists known pitfalls. 4. If the task is on a feature branch listed under `wip/`, load the matching WIP file as well — the stable layers describe `master` only. 5. Treat path/identifier references in this context as claims to verify against cproof HEAD before acting on them. ## Hard rules - Build inside Docker (`Dockerfile.debian`). Do not run `autogen.sh` / `./configure` / `make` on the host. - Do not mix architecture, patterns, status, and gotchas in a single doc — each has its own home. - Do not duplicate what `ls` / `grep` would answer cheaper. This context exists for invariants, decisions, and "why".