Per-member attestation: a signature by a manage member over a stable
subset of the member’s fields (email, capabilities, enrollment_verifier).
Verified locally against project.yaml by looking up the attester’s
verify_key in the same file. The founder is the sole member allowed to
have no attestation in a fresh project; once any additional manage
member is added, that member implicitly reverse-attests the founder.
Top-level Crypt configuration. Holds the zone registry; per-member
wraps live on Member.crypt_wraps, per-item zone references live on
Item.crypt_zone. The default zone uses the conventional name
"default" and is auto-created on first joy crypt add.
A single Crypt zone: marked paths and project-wide properties. The
zone key itself is never stored in plaintext; it lives only as
per-member wraps under Member.crypt_wraps[<zone-name>] (humans) and
per-(operator, AI) wraps under delegations[<ai-member>][<operator>]
(AI Tool, ADR-041).
Configurable paths to the project’s reference documentation, relative to
the project root. Used by joy ai init to support existing repos with
non-default doc layouts and read by AI tools via joy project get docs.<key>.
Derive an acronym from a project name.
Takes the first letter of each word, uppercase, max 4 characters.
Single words use up to 3 uppercase characters.