Developer¶
Working on sceau rather than deploying it: building from source, running against a swtpm simulator, and following the project's governing methodology.
- Local Development — toolchain,
maketargets, the swtpm dev loop, and the documentation requirements that gate every change.
If instead you want to run sceau on a cluster, start with the Guides.
Methodology: ADD¶
sceau follows ADD — Architecture Driven Development. An architecturally significant change starts with an ADR and a CALM architecture update, then test-driven implementation:
Full ADR + CALM is required for things like new TPM object types or key
hierarchies, KMS contract changes (proto, envelope format, key_id
derivation), new deployment topologies, and anything where "why A over B" is
worth recording. Typos, isolated bug fixes, and mechanical refactors go
straight to TDD.
The rules live in the repository under .claude/rules/ — read them before
writing code:
architecture-driven-development.md— the ADD cycletesting.md— TDD is mandatory; tests in separate*_tests.rsfilesrust-style.md— guard clauses, no magic numbers, nounwrap()documentation.md— changelog + docs updates are part of every taskgithub-workflows.md— Makefile-driven CI, pinned actionsno-real-infrastructure.md— placeholder hostnames/IPs only
Quality gate¶
After any Rust change (non-negotiable):
And before calling any task done: make calm-validate passes, the changelog
has an entry with **Author:**, and the docs still match the real CLI flags
and proto.