Developers working on humor-ecosystem. For consumers (people calling
or depending on it) see usage.adoc.
Prerequisites — the minimum versions and where to get them:
-
<tool 1>v`<version>` —<install instruction>. -
<tool 2>v`<version>` —<install instruction>. -
GPG signing key configured (estate policy — all commits must be signed). See standards/docs/secure-coding-training.md.
One-shot setup:
git clone git@github.com:hyperpolymath/humor-ecosystem.git
cd humor-ecosystem
just setup # installs deps, sets up hooks
just test # runs the full test suite-
Unit:
just test-unit— fast, no I/O. -
Integration:
just test-int— uses real services (database, HTTP, etc.). Estate policy: prefer real over mocked (seefeedback_integration_tests_real_dbin maintainer’s memory). -
Property:
just test-prop— randomised, slower; budget documented indocs/proof-debt.mdif applicable. -
Full:
just test— runs all of the above.
We enforce style via CI (governance-reusable.yml from hyperpolymath/standards). Locally:
just fmt # auto-format
just lint # static checks-
All commits must be GPG-signed (CI enforces; see standards).
-
All source files must carry an SPDX-License-Identifier header (CI enforces).
-
Conventional commits —
feat,fix,chore,refactor,docs,test,ci,revert(CHANGELOG is auto-generated from these viachangelog-reusable.yml).
-
Branch off
mainasclaude/<topic>(for AI agents) or<initials>/<topic>(for humans). -
Make focused, narrow commits — one logical change per commit.
-
Open a PR against
main. -
Enable auto-merge immediately on every PR you open (
gh pr merge <num> --auto --squash) — estate standing policy (see standards#196 audit and policies). -
CI must be green. The PR auto-merges when checks pass + reviews land.
-
State the why in the PR body — what does this dependency unlock?
-
Check provenance (maintained, audited, no malicious history).
-
Pin to a SHA, not a tag.
-
Update
docs/architecture.adoc#Dependencies.
When you make a non-obvious design decision, write it down:
-
Copy
docs/decisions/0001-template.adoc→0002-<slug>.adoc. -
Fill in: Context, Decision, Consequences, Alternatives.
-
Link the ADR from the README or relevant code as a comment.