Replace the single file-structure.md with a stratified layout designed
for AI/agent skill consumption: tables and concrete identifiers over
prose, files loaded on demand, content separated by churn rate.
Layers:
- architecture/ stable structural reference (overview, source-map,
test-map, data-flow)
- patterns/ memory, commands, autocomplete, events, xmpp,
encryption, ui, plugins
- testing/ unit-tests, stubs, functional-tests, bench
- build/ local, docker, ci
- playbooks/ add-command, add-test, add-autocomplete,
add-event-handler, add-encryption
- gotchas.md append-only dated entries (seven seed entries)
- wip/ branch-specific notes; deleted on merge to master
Stable layers describe cproof on master only. In-flight feature
branches (currently feat/ai) get a single file under wip/.
INDEX.md is the entry map with churn labels; SKILL.md is the
always-loaded skill hint pointing to it.
1.8 KiB
1.8 KiB
CI
Workflows
.github/workflows/:
| Workflow | Purpose |
|---|---|
ci-code.yml |
Build + unit tests across the Linux distro matrix. |
ci-api-docs.yml |
API/plugin docs build check. |
Plus an OpenBSD pipeline at .builds/openbsd.yml (sourcehut-style builds).
Distro matrix
The code CI runs across the Dockerfiles at repo root: Debian, Ubuntu,
Fedora, Tumbleweed, Arch. Each job builds the matching image, mounts the
checkout, and runs autogen.sh && configure && make && make check.
Log naming
CI logs in this project are named:
ci-code-Linux (arch)-NNNN.log
— where arch is the distro flavour (debian, ubuntu, fedora, tumbleweed,
arch) and NNNN is the run number. Use the distro name to pick the right
log when triaging matrix failures.
Known matrix-specific notes
- Arch (
Dockerfile.arch): Pikaur in the image was hit by a duplicated-flag failure (cf. cproof commit0722dc9e3). IfDockerfile.archchanges, re-check the Pikaur invocation. - OpenBSD (
.builds/openbsd.yml): runs on sourcehut, not GitHub. Failures there don't appear in the GitHub PR check list.
Reproducing a CI failure locally
- Identify the failing distro from the log name.
- Build the matching Dockerfile locally — see
build/docker.md. - Run the same
autogen && configure && make && make checkchain inside the container. - Compare versions of any drifting dependency between the image and the CI
image (
apt list --installedor equivalent inside both).
What CI does not run
- Functional tests (
tests/functionaltests/) — require a test XMPP server. - Benches (
tests/bench/) — not part of CI.
If you need either, run them locally inside the Docker image — see
testing/functional-tests.md and testing/bench.md.