Skip to content
SHC Docs

Contributing

For people writing code for SHC itself. Audience: SHC contributors.

For operating a deployed SHC, see ../guide/. For authoring apps on top of SHC, see ../app-development/. For architectural internals, see ../architecture/.


The GitLab pipeline builds and publishes. It does not verify. Every correctness gate that used to run there now runs here, in one command:

Terminal window
make ci/checks

That runs, in order:

GateWhat it proves
ci/checks/leakNo estate or customer identifier reaches the published docs
client/checkThe committed pkg/apiclient matches the live route registry
docs/checkEvery generated reference page matches its source registry
docs/lintVale consistency gate over the published docs corpus
test/rqlited-liveThe live-rqlited suites actually ran — no silent skips (Linux only)

Run a single gate by name when iterating (make docs/check). The target refuses to start when any of its tooling is missing rather than skipping a gate quietly; the failure message names what to install.

make lint (formatting, golangci-lint, template validation, and the architecture fitness rules) and make test are the other half of the local bar. They were never part of the pipeline either.

What the pipeline still gates, because it belongs to the build rather than to the codebase: the packaging checks on the binaries and debs it is about to publish, and the leak scan over the publishable corpus.

Three reference pages are generated from the live registries so they cannot drift from the code — the error codes, the HTTP route table, and the event topics:

Terminal window
make docs/generate # regenerate all three
make docs/check # fail if the committed output is stale

Regenerate (and commit the output) after adding, removing, or renaming an error code, an HTTP route, or an event type.

Reference pageSource of truthUpkeep
docs/reference/errors.mdPer-module errors.go X####CCCC factoriesgenerated (scripts/gen-errors-md.go)
docs/reference/api/routes.mdPer-module router registrationsgenerated (scripts/gen-routes-md.go)
docs/reference/events.mdPer-module event-type registrationsgenerated (scripts/gen-events-md.go)
docs/reference/cli/*.mdPer-module commands/ cobra commandsmaintained by hand
docs/reference/api/*.md (per-module notes)Per-module router.gomaintained by hand
docs/reference/configuration/config-keys.mdcore/config/default.yamlmaintained by hand
docs/guide/apps/README.mdapps/*/app.yamlmaintained by hand
docs/architecture/modules/*.md (stubs)modules/*/ (ce) + modules/*/maintained by hand