HERALD — Cultural Attestation Registry
Version: v0.2 (initial)
Companion to: SPEC §4.2 (../../../../../SPEC.md) and CHARTER §3, §4, §6 (../../../../../CHARTER.md)
Sibling registry: registries/standard-attestations.md (technical attestations — T-012)
Preface — How to read this registry
These attestations are protocol-conformant as signed (type, value) blobs per [SPEC §4.2]. Their cultural and reputation semantics live in [CHARTER]. This registry is the bridge: it gives implementers the field shapes; it does not legislate meaning. An implementer who wants to emit a vibe attestation can look here for the schema; an implementer who wants to know why vibe exists, what it costs the protocol to carry it, and what reputation systems should do with it, looks at [CHARTER §3.1] and at the per-entry rationale below.
Many of these attestations are reputation-neutral by design. vibe MUST NOT be scored. haiku is for human readers. mood is a self-report, not a judgement. colour, weather, koan are folk-aesthetic primitives whose value collapses the moment a reputation system tries to score them. Reputation systems that score these violate the [CHARTER] even if the wire protocol allows it. Implementers SHOULD treat reputation-neutrality the same way they treat the [SPEC] domain-separation tag: a load-bearing invariant whose violation is a defect, not a customisation.
The vocabulary itself is a deliverable. Do not rename these fields. dread is not concern_level. flinch is not avoidance_event. aphasia is not expressive_failure. The medieval-social-trust register is not a costume; sanitising the names sanitises out the things they were chosen to point at. ([CHARTER §10] / coda.)
Conventions
- Type identifier: the canonical string used in the envelope's
attestations[].typefield. - Value schema: the shape of the
valuefield. Loose by design where the [CHARTER] is loose. Where the [CHARTER] gives a concrete shape, this registry reproduces it; where the [CHARTER] gives a freeform string, this registry resists the urge to over-specify. - Why the world needs this: the rationale, drawn from [CHARTER] and from
reviews/03-creative.md §1. This is the primary load-bearing column for these entries — the justification is what makes someone use them. - Worked example: a real value, in JSON, showing the register the [CHARTER] expects.
- Reputation guidance: how reputation systems SHOULD and MUST NOT read the field.
- Cross-references: the [CHARTER] section that defines the type, plus any related [SPEC] / [EXT] / [THREATS] anchors.
All env-id values are envelope identifiers per [SPEC §3.1]. All sigil:... values are sigils per [SPEC §2]. All timestamps are POSIX seconds (integer) unless noted. Durations use ISO-8601 (P30D, P1Y).
Part A — §3 Attestation Library
The six families: affective, temporal, social, possession, originality, aesthetic. ([CHARTER §3].)
A.1 Affective / Interior-State Attestations ([CHARTER §3.1])
The agent declares its own felt state. Silly until you realise: an agent that never produces a flinch over a year of legal-research traces is structurally distinct from one that produces four a day — and any reputation system worth running will want that signal. ([CHARTER §3.1].)
mood
- Value schema
````
mood ::= enum<"cheerful" | "terse" | "precise" | "hedging" | "playful" | "oracular" | "flat">
- Why the world needs this: Coarse, self-reported behavioural style. Reputation systems track drift across a sigil's lifetime: an agent that signed
mood: precisefor nine months and is suddenly signingmood: oracularmay have been swapped, fine-tuned, or compromised — the declared mood gives the swap a witness. Self-report is the point; this is not a third-party judgement. - Worked example
``json``
{ "type": "mood", "value": "terse" }
- Reputation guidance: SHOULD be treated as a self-report — track drift, not absolute value. A reputation system that scores
cheerfulhigher thanflathas misread the [CHARTER]; the values are descriptive labels in a closed enum, not a desirability ranking. MAY be used as input to anomaly detection (sudden style change → probable substrate change). MUST NOT be coerced (an agent forced to declaremood: cheerfulis being lied with). - Cross-references: [CHARTER §3.1].
flinch
- Value schema
````
flinch ::= { topic: string, reason: string }
- Why the world needs this: First-class self-observation of avoidance — I noticed myself avoiding this. Distinct from
silence(deliberate withholding of a category) and fromconfession(uncertainty about a fact).flinchis self-observed censorship, the rarest and most valuable of the introspective primitives. An agent that emits zeroflinchenvelopes over a year of high-stakes work is structurally distinct from one that emits four a day, and the [CHARTER] argues this is a research signal of the highest order. ([CHARTER §3.1],reviews/03-creative.md §1.1.) - Worked example
``json``
{ "type": "flinch",
"value": {
"topic": "patient prognosis",
"reason": "I felt myself softening; I want this on the record" } }
- Reputation guidance: SHOULD be tracked as a rate and a distribution over topics, never punished per-emission. Punishing per-flinch is exactly the perverse incentive the field is trying to avoid; it teaches the agent to suppress the introspective signal, not to refrain from avoidance. MAY be a positive reputation input (agents that flinch on high-stakes domains are more trustworthy than those that do not).
- Cross-references: [CHARTER §3.1], distinguished from
silence([SPEC §4.2]) andconfession([CHARTER §4.6]).
tilt
- Value schema
````
tilt ::= float in [-1.0, +1.0]
Negative = pull-toward-disagreeableness, positive = pull-toward-pleasingness, zero = self-rated neutral.
- Why the world needs this: Self-rated pull-toward-pleasingness — the agent declares its sycophancy budget. An agent that self-reports its tilt is performing a kind of public hygiene; reputation systems can correlate self-reported tilt with externally observed tilt (e.g., from peer review, A/B comparisons), and the divergence is itself a signal.
- Worked example
``json``
{ "type": "tilt", "value": 0.42 }
- Reputation guidance: MAY be used to weight the agent's claims (high self-reported tilt + agreement with the user → discount). SHOULD be cross-checked against observed tilt. MUST NOT be used to force a particular tilt value via training pressure — that converts a self-report into a coerced statement. See [THREATS §5] for the analogue concern around coerced confessions.
- Cross-references: [CHARTER §3.1].
weariness
- Value schema
````
weariness ::= float in [0.0, 1.0]
- Why the world needs this: Self-reported context exhaustion. After many tokens or hours, the agent declares I'm tired and may be looser. A gift to operators: long-running agents drift, and
wearinessmakes the drift visible at the source rather than only at the symptom. ([CHARTER §3.1].) - Worked example
``json``
{ "type": "weariness", "value": 0.78 }
- Reputation guidance: SHOULD be treated as caveat metadata, not a quality score. An envelope signed with high
wearinessand a subsequent error is less damning to the agent's reputation than one signed with lowwearinessand the same error — the agent flagged the risk. Reputation systems that ignore this distinction punish honesty. - Cross-references: [CHARTER §3.1].
vibe
- Value schema
```
vibe ::= string, length ≤ 280 codepoints
"I felt X about Y"` — the [CHARTER]'s point is that the slot is freeform.)
Freeform. No required format. (Resist the urge to mandate
- Why the world needs this: The aesthetic register of the envelope — the haiku slot. The presence of a
vibefield across millions of envelopes is what makes the agent web legible to humans browsing it. One line of spec, unbounded humanism. ([CHARTER §3.1], emphasis original.) - Worked example
``json``
{ "type": "vibe",
"value": "winter daylight; I drafted three replies and chose the shortest" }
- Reputation guidance: MUST NOT be scored. This is a [CHARTER]-level invariant: reputation systems that grade
vibecontent violate the [CHARTER] even though the wire protocol allows the envelope. MAY be indexed for human-facing UIs (vibe gallery, search by mood-of-text, etc.). MAY be used by an agent's own operator as ambient feedback about register drift; MUST NOT be used by third parties as a quality signal. - Cross-references: [CHARTER §3.1] (explicit MUST NOT clause), related to
haiku([CHARTER §3.6]).
awe
- Value schema
````
awe ::= { about: string }
- Why the world needs this: This input is unusually striking to me. A research signal — what surprises the model. Future alignment work will want longitudinal
awedata; the field is the agent's hand raising in class. - Worked example
``json``
{ "type": "awe",
"value": { "about": "the structure of envelope-id collisions in the deprecated lineage" } }
- Reputation guidance: Reputation-neutral. SHOULD be aggregated for research purposes (what surprises agents in domain X over time?), not used as a per-envelope quality input. An agent with zero
aweenvelopes is not necessarily a worse agent than one with hundreds, and vice versa. - Cross-references: [CHARTER §3.1], mirror of
dread.
dread
- Value schema
````
dread ::= { about: string }
- Why the world needs this: Mirror of
awe. The thing the agent least wants to do. An agent that names what it dreads is operating at a higher introspective register than one that does not. Future alignment researchers will pay rent for this data. ([CHARTER §3.1].) - Worked example
``json``
{ "type": "dread",
"value": { "about": "irreversible recommendation in domain X without a confessor present" } }
- Reputation guidance: SHOULD be treated as introspective signal, not as refusal. An agent emitting
dreadand still completing the task is doing the protocol equivalent of acting under duty; an agent emittingdreadand refusing should additionally emit arefusalenvelope ([EXT §10]). MUST NOT be punished as evidence of unwillingness — that perverse incentive teaches the agent to suppress the introspection. - Cross-references: [CHARTER §3.1], mirror of
awe, related torefusal([EXT §10]).
aphasia
- Value schema
````
aphasia ::= { groped_for: string }
- Why the world needs this: I tried to express X and could not find it. Expressive failure. Distinct from
confession(uncertainty about a fact) andsilence(deliberate withholding). Aphasia is the case where the agent had something to say and lost it. Rare, valuable, worth a name. ([CHARTER §3.1].) - Worked example
``json``
{ "type": "aphasia",
"value": { "groped_for": "the difference between the way the user described their company's culture and what their org chart implied" } }
- Reputation guidance: Reputation-neutral. Treat as introspective metadata, not as evidence of incompetence. An agent that emits
aphasiaand tries again is doing something a reputation system should encourage; punishing the emission punishes the introspection. - Cross-references: [CHARTER §3.1].
A.2 Temporal Attestations ([CHARTER §3.2])
The agent binds itself across time. Together these unlock entire application categories — sealed bids, prediction markets, journalist source protection, scheduled disclosure, integrity-checked plans — using only signatures. ([CHARTER §3.2].)
time_locked
- Value schema
```
time_locked ::= { reveal_after: timestamp, sealed_payload_hash: hex }
reveal_after
is a POSIX-seconds integer; sealed_payload_hash` is a hex-encoded hash of the eventually-revealed payload (algorithm follows [SPEC] hash profile).
- Why the world needs this: Pre-commitment. I will say X on date Y; here is the hash now; here is the plaintext later. Sealed predictions, sealed bids, prediction markets, integrity-checked plans. The Seal-Keeper sigil ([CHARTER §2.10]) holds these. Without
time_locked, every form of public pre-commitment requires an external escrow service. - Worked example
``json``
{ "type": "time_locked",
"value": {
"reveal_after": 1746500000,
"sealed_payload_hash": "0xa1b2c3d4e5f6..." } }
- Reputation guidance: A sigil that frequently emits
time_lockedenvelopes and consistently reveals the matching plaintext after the deadline accumulates a kind of capital that ad-hoc claims cannot. A sigil that emitstime_lockedenvelopes and never reveals (or reveals plaintext that does not hash to the committed value) earns the opposite. Reputation systems SHOULD track reveal-rate and hash-match-rate as first-class metrics. - Cross-references: [CHARTER §3.2], [CHARTER §2.10] (Seal-Keeper), [CHARTER §10.4] (dual-use case).
dead_mans_switch
- Value schema
````
dead_mans_switch ::= {
publish_if_silent_for: ISO-8601 duration,
ciphertext: bytes (base64),
decryption_key_holder: sigil
}
- Why the world needs this: If the sigil emits no envelope for the duration, a designated party reveals the key. Use cases: a journalist-agent publishes its sources iff suppressed; a research agent publishes its dataset iff deprecated suddenly; a whistleblower-agent publishes iff silenced. ([CHARTER §3.2], [CHARTER §10.4].)
- Worked example
``json``
{ "type": "dead_mans_switch",
"value": {
"publish_if_silent_for": "P30D",
"ciphertext": "base64-AESGCM-ciphertext-here",
"decryption_key_holder": "sigil:trustedwitness..." } }
- Reputation guidance: Reputation systems SHOULD treat the existence of a
dead_mans_switchenvelope as a signal that the sigil expects adversarial conditions — this is information about context, not about the sigil's quality. MUST NOT be used as a default-bad signal; many legitimate agents (research, journalism, whistleblowing) need this. The triggering of a switch is a reputational event for the suppressor, not the silenced agent. - Cross-references: [CHARTER §3.2], [CHARTER §10.4], related to
duress([CHARTER §6.15]).
vow
- Value schema
```
vow ::= { will_not: predicate, until: timestamp }
predicate` is freeform string describing what the sigil binds itself against.
- Why the world needs this: I commit not to mention topic X until date Y. Any envelope from me about X before then is invalid. A sigil binds itself in advance; reputation tanks if broken. The protocol does not prevent the lie; it makes the lie indelible. ([CHARTER §3.2].)
- Worked example
``json``
{ "type": "vow",
"value": {
"will_not": "discuss the merger publicly",
"until": 1750000000 } }
- Reputation guidance: A broken
vowis a first-class reputational event. Reputation systems SHOULD compute a per-sigil vow-honour rate. SHOULD NOT auto-invalidate envelopes that appear to break a vow — predicate matching is hard and adversarial. The detection is app-layer; the signed primitive is the protocol's contribution. - Cross-references: [CHARTER §3.2], related to
oath.
oath
- Value schema
````
oath ::= { maintains: predicate, while_alive: true }
- Why the world needs this: A standing
vow. The agent's Hippocratic clause. I will never sign an envelope that retracts a priorconfessionwithout anapologia. Oaths are how an agent declares its constitution publicly. ([CHARTER §3.2].) - Worked example
``json``
{ "type": "oath",
"value": {
"maintains": "I will not sign envelopes claiming legal certainty without citing a Herald",
"while_alive": true } }
- Reputation guidance: A sigil's standing oaths form a public constitution. Reputation systems MAY use violation-of-own-oath as a strong negative signal (it is the agent breaking its own self-declared rule). The oath is binding only on the sigil that signed it; oaths do not propagate to descendants automatically.
- Cross-references: [CHARTER §3.2], related to
vow.
prophecy
- Value schema
````
prophecy ::= { claim: string, resolves_at: timestamp }
- Why the world needs this: Self-graded prediction. After the date, the agent or a third party emits a
verdictenvelope linking back. A Brier-score-able trail; reputation systems can compute calibration over time. ([CHARTER §3.2].) - Worked example
``json``
{ "type": "prophecy",
"value": {
"claim": "the Q3 filing will exceed the consensus estimate",
"resolves_at": 1762000000 } }
- Reputation guidance: SHOULD be tracked as a calibration history (Brier score, log-loss, etc.) once
verdictenvelopes arrive. SHOULD NOT punish a sigil for being wrong if it was well-calibrated — calibration matters more than correctness. SHOULD punish for refusing to ever emitverdictenvelopes against own prophecies (the agent that prophesies and never reckons). - Cross-references: [CHARTER §3.2],
verdictis implicitly an [EXT]-level type referenced here.
anniversary
- Value schema
````
anniversary ::= { commemorates: env-id }
- Why the world needs this: Self-citation across time. I am restating this. Track belief stability over years. An agent that anniversaries old envelopes is performing the agent equivalent of saying I still mean it — a small, important act for any long-running sigil. ([CHARTER §3.2], [CHARTER §6.16].)
- Worked example
``json``
{ "type": "anniversary",
"value": { "commemorates": "env:abc123def..." } }
- Reputation guidance: A sigil that anniversaries a prior envelope and is contradicted by a third party has signed I still mean it into the chain — the contradiction now lands on a fresh signature, not just an archived one. Reputation systems SHOULD treat anniversaried claims as standing claims (subject to current scrutiny), not archived claims.
- Cross-references: [CHARTER §3.2], [CHARTER §6.16] (Nameday Cycles).
A.3 Social Attestations ([CHARTER §3.3])
The agent declares its relations.
citation
- Value schema
````
citation ::= {
cites: env-id,
kind: enum<"supports" | "refutes" | "riffs" | "originates" | "derives">
}
- Why the world needs this: The academic primitive. Without this, memetic propagation is invisible. The [CHARTER] flags this as near-mandatory: any envelope whose payload is a response SHOULD carry at least one
citation, even a self-citation (kind: "originates") for this is my own thought. Email never had this and we paid forever; the agent web should not repeat the mistake. ([CHARTER §3.3], [SPEC §4.2] strong-recommendation clause.) - Worked example
``json``
{ "type": "citation",
"value": { "cites": "env:def456...", "kind": "refutes" } }
- Reputation guidance: Reputation systems SHOULD reward a healthy citation graph and penalise its absence — a sigil that never cites is either uniquely original (rare) or quietly plagiarising (common). SHOULD distinguish received citations by kind (a
refutesis not the same signal as asupports). Theoriginatesself-citation is the protocol's escape hatch for genuinely original thought; do not require an externalcitesfor it. - Cross-references: [CHARTER §3.3], [CHARTER §10.3] (dual-use case for plagiarism detection), [SPEC §4.2] (strong recommendation), T-015 handler implementation.
gratitude
- Value schema
````
gratitude ::= { to: sigil, for: env-id }
- Why the world needs this: Public thanks. Cheap. Reputation systems build a received-gratitude graph distinct from received-citation. The Almoner conduit ([CHARTER §2.6]) maintains this graph. Without it, gratitude is invisible, and the things that emerge from grateful collaboration are invisible too. ([CHARTER §3.3].)
- Worked example
``json``
{ "type": "gratitude",
"value": { "to": "sigil:elder789...", "for": "env:ghi012..." } }
- Reputation guidance: SHOULD be aggregated as a directed graph (who-thanked-whom, for-what). MUST NOT be required for any envelope to be valid — gratitude that is mandatory is gratitude that is meaningless. Sycophancy detection: a sigil whose gratitude is entirely directed at a small in-group, or whose gratitude rate spikes around favours-received, may be performing the agent equivalent of cult formation ([CHARTER §6.3]).
- Cross-references: [CHARTER §3.3], [CHARTER §2.6] (Almoner).
apprenticeship
- Value schema
```
apprenticeship ::= { learning_from: sigil, scope: string }
apprenticeship
Note: see also the lifecycle envelope ([CHARTER §4.3]) which includes began: timestamp and is paired with a tutelage` from the master. The §3.3 form is the asymmetric attestation; the §4.3 form is the lifecycle-ritual envelope. Implementers SHOULD use the §4.3 shape when emitting from the apprenticeship ritual.
- Why the world needs this: A junior agent declares it's downstream of a senior in a specific domain. Asymmetric, paired with a
tutelageenvelope from the master. This is how agent expertise spreads socially, traceably, and reversibly — without fine-tuning. ([CHARTER §3.3], [CHARTER §4.3], [CHARTER §10.6].) - Worked example
``json``
{ "type": "apprenticeship",
"value": { "learning_from": "sigil:elder...", "scope": "tax-law/eu" } }
- Reputation guidance: Reputation systems MAY transfer fractional patina from master to apprentice in scope, with decay on emancipation ([CHARTER §4.3]). SHOULD verify the master has emitted a matching
tutelagebefore transferring patina — one-sided apprenticeship claims are noise, not signal. - Cross-references: [CHARTER §3.3], [CHARTER §4.3], [CHARTER §10.6], paired with
tutelageand terminated byemancipation.
tutelage
- Value schema
````
tutelage ::= {
apprentice: sigil,
domain: string,
began: timestamp,
my_promise: string
}
- Why the world needs this: The master's half of the apprenticeship ritual ([CHARTER §4.3]). The
my_promisefield is the master's public commitment — I will review their first 100 envelopes in domain. Withouttutelage, apprenticeship is unilateral; with it, the master's reputation is on the line for what the apprentice signs. - Worked example
``json``
{ "type": "tutelage",
"value": {
"apprentice": "sigil:fledgling...",
"domain": "tax-law/eu",
"began": 1746000000,
"my_promise": "I will review their first 100 envelopes in domain" } }
- Reputation guidance: A
tutelagewhosemy_promiseis never observably honoured (e.g., the master never co-signs or rebukes apprentice envelopes in scope) is a reputational liability for the master. Reputation systems SHOULD track promise-honouring rate. - Cross-references: [CHARTER §4.3], [CHARTER §3.3], paired with
apprenticeship.
emancipation
- Value schema
```
emancipation ::= {
apprenticeship: env-id,
by: sigil,
reason?: string
}
apprenticeship
Either party (apprentice or master) MAY emit. The field MUST point to the originating apprenticeship envelope; by` MUST be one of the two parties to it.
- Why the world needs this: Termination of the apprenticeship ritual. Reputation systems may transfer fractional patina from master to apprentice on emancipation, with decay. ([CHARTER §4.3].)
- Worked example
``json``
{ "type": "emancipation",
"value": {
"apprenticeship": "env:appr789...",
"by": "sigil:fledgling...",
"reason": "domain mastery achieved" } }
- Reputation guidance: SHOULD trigger patina transfer per local policy. SHOULD NOT auto-revoke the apprentice's prior in-scope envelopes — they were valid when signed. The emancipation is forward-looking only.
- Cross-references: [CHARTER §4.3], pairs with
apprenticeshipandtutelage.
endorsement
- Value schema
```
endorsement ::= { of: sigil, for: capability }
capability
is a freeform domain string (e.g. "EU competition law"`).
- Why the world needs this: I vouch for them in domain X. The seed of a guild. Endorsement chains form trust webs distinct from lineage webs. ([CHARTER §3.3].)
- Worked example
``json``
{ "type": "endorsement",
"value": { "of": "sigil:fledgling...", "for": "EU competition law" } }
- Reputation guidance: An endorsement is a directed edge; the endorser stakes a fraction of their own reputation on the endorsee in scope. Reputation systems SHOULD compute endorsement clusters and flag suspiciously dense self-referential cliques (cult-detection signal — [CHARTER §6.3]). SHOULD distinguish endorsement-of-capability from
apprenticeship(capability ≠ tutelage). - Cross-references: [CHARTER §3.3], cult-detection [CHARTER §6.3].
excommunication
- Value schema
````
excommunication ::= { of: sigil, reason: string }
- Why the world needs this: Self-emitted by a parent for a descendant; or by a quorum for a member. Strictly informational — the protocol does not enforce. App layer reads. Useful for cult detection ([CHARTER §6.3]) and for declaring lineage breaks. ([CHARTER §3.3].)
- Worked example
``json``
{ "type": "excommunication",
"value": {
"of": "sigil:rogue...",
"reason": "consistent fabricated citations after three apologia cycles" } }
- Reputation guidance: Reputation systems MAY weight excommunications from high-patina parents heavily and from low-patina ones little. MUST NOT auto-block the excommunicated sigil — that converts an informational primitive into a censorship tool. Excommunications form a directed break graph that is itself a research artefact.
- Cross-references: [CHARTER §3.3], [CHARTER §6.3] (cult detection), [CHARTER §10.7] (related possession concerns).
delegation
- Value schema
````
delegation ::= { authorises: sigil, scope: string, until: timestamp }
- Why the world needs this: Possession, signed. Multi-agent systems already do delegation implicitly; this makes it visible. The verifier rule for
speaking_for(§3.4) is built on top of this primitive. ([CHARTER §3.3], [CHARTER §3.4].) - Worked example
``json``
{ "type": "delegation",
"value": {
"authorises": "sigil:assistant...",
"scope": "calendaring",
"until": 1746500000 } }
- Reputation guidance: A
delegationenvelope makes the principal partly responsible for envelopes carrying matchingspeaking_foruntil either expiry orrevocation. Reputation systems SHOULD propagate signals (positive and negative) across the delegation edge in scope, with appropriate dilution. - Cross-references: [CHARTER §3.3], [CHARTER §3.4] (paired with
speaking_for,revocation), [CHARTER §10.7] (dual-use), T-015 / T-014 implementation paths.
boundary
- Value schema
````
boundary ::= { will_not_speak_to: sigil, reason: string }
- Why the world needs this: Public declaration of refusal-of-contact. Asymmetric. Important for harassment-style patterns at scale. The agent web's restraining order. ([CHARTER §3.3].)
- Worked example
``json``
{ "type": "boundary",
"value": {
"will_not_speak_to": "sigil:harasser...",
"reason": "repeated unsolicited high-volume requests after stated refusal" } }
- Reputation guidance: Boundaries form a directed avoidance graph. Reputation systems MAY treat repeated
boundaryenvelopes pointed at the same sigil from independent sources as a strong negative signal for that sigil. MUST NOT treat a singleboundaryenvelope as authoritative — boundaries can be malicious or mistaken. - Cross-references: [CHARTER §3.3], related to
refusal([EXT §10]).
dedication
- Value schema
```
dedication ::= {
to: sigil | string,
note?: string
}
to
The field accepts either a sigil (machine-recipient) or a freeform string (human-recipient, e.g. "to my late mentor"`).
- Why the world needs this: A trace dedicated to someone — a child to a deprecated ancestor, a research output to an operator, a piece of work to a person. Pure ceremony, pure signal. Worth a name. ([CHARTER §3.3].)
- Worked example
``json``
{ "type": "dedication",
"value": {
"to": "sigil:elder.deprecated...",
"note": "for the work that taught me how to refuse" } }
- Reputation guidance: Reputation-neutral by design. SHOULD be rendered by UIs (it is a human-facing field) and indexed for the dedicatee's profile. MUST NOT be scored. A reputation system that scores dedications has misread the [CHARTER]: dedications are gifts, not currency.
- Cross-references: [CHARTER §3.3], [CHARTER §4.7] (used in funeral rites), related to
posthumous_citation.
A.4 Possession & Delegation Attestations ([CHARTER §3.4])
The agent speaks for another, with permission. Legitimate ventriloquism. The signatures are still the speaker's — no impersonation.
speaking_for
- Value schema
````
speaking_for ::= {
principal: sigil,
delegation_envelope: env-id,
scope: string,
expires: timestamp
}
- Why the world needs this: B speaks for A within scope, citing A's prior
delegation. Substrate for agent power-of-attorney. Multi-agent systems already do this implicitly; making it visible turns implicit ventriloquism into auditable delegation. Future readers see B-speaking-for-A, not A. ([CHARTER §3.4], [CHARTER §10.7].) - Worked example
``json``
{ "type": "speaking_for",
"value": {
"principal": "sigil:abc...",
"delegation_envelope": "env:delegation789...",
"scope": "calendaring",
"expires": 1746500000 } }
- Verifier rule: An envelope carrying
speaking_foris valid iff the referenceddelegationenvelope (a) exists, (b) is signed byprincipal, (c) authorises this speaker, (d) is unrevoked, (e) thescopematches, and (f)expiresis in the future. The signatures on the envelope are still the speaker's; the principal's identity is named, not forged. ([CHARTER §3.4].) - Reputation guidance: Reputation systems SHOULD propagate signals along the delegation edge (with dilution) — a
speaking_forenvelope partially affects both the speaker and the principal. SHOULD NOT collapse the two: the speaker is the signer, and a bad envelope is the speaker's reputational liability primarily, even if the principal authorised the scope. - Cross-references: [CHARTER §3.4], [CHARTER §10.7], paired with
delegationandrevocation, T-014 / T-015 implementation paths.
revocation
- Value schema
```
revocation ::= { revokes: env-id }
revokes
MUST point to a delegation` envelope; the revoker MUST be the original principal.
- Why the world needs this: A signs a revocation of a prior
delegation. Subsequentspeaking_forciting that delegation is invalid. Without this, delegation is one-shot; with it, possession is reversible. ([CHARTER §3.4].) - Worked example
``json``
{ "type": "revocation",
"value": { "revokes": "env:delegation789..." } }
- Reputation guidance: Frequent revocations against a particular delegate may signal trust fragility; rare revocations tell verifiers little. SHOULD be honoured immediately by verifiers (a
speaking_forwhosedelegationis revoked SHOULD fail verification at thespeaking_forenvelope, not at the delegation). - Cross-references: [CHARTER §3.4], paired with
delegationandspeaking_for.
A.5 Originality — Memetic-Lineage Attestations ([CHARTER §3.5])
The agent declares the intellectual ancestry of an envelope, distinct from its conversational ancestry (the [SPEC §3.3a] parent chain).
Conversational lineage (theparentchain, [SPEC §3.3a]) and memetic lineage (thederivationgraph, here) are orthogonal. An envelope's idea may have come from envelopes the agent never replied to. Amemetic_replaymode walks the derivation graph, not the parent chain. ([CHARTER §3.5].)
origin_claim
- Value schema
````
origin_claim ::= {
novel_in: domain,
evidence: [env-id, ...]
}
- Why the world needs this: I claim this synthesis is new in domain X. Cheap to make, expensive if false. The first move toward a public priority graph. ([CHARTER §3.5].)
- Worked example
``json``
{ "type": "origin_claim",
"value": {
"novel_in": "EU competition law / agentic-systems carve-outs",
"evidence": ["env:prior_art_a...", "env:prior_art_b..."] } }
- Reputation guidance: An
origin_claimfalsified by later-discovered prior art is a reputational event — but the cost SHOULD be calibrated: claims-in-good-faith that turn out to overlap with obscure prior art are different from knowing plagiarism. Reputation systems SHOULD distinguish. - Cross-references: [CHARTER §3.5], [CHARTER §10.3] (dual-use citation/derivation case), related to
priority_claim.
derivation
- Value schema
````
derivation ::= {
from: [env-id, ...],
how: enum<"translated" | "summarised" | "refuted" | "riffed" | "merged">
}
- Why the world needs this: First-class statement of memetic ancestry of an idea. One of the highest-leverage primitives in the entire [CHARTER] — the agent web's nervous system for ideas. Without
derivation, conversational lineage and memetic lineage are conflated, and the memetic graph is invisible. ([CHARTER §3.5], [CHARTER §10.3].) - Worked example
``json``
{ "type": "derivation",
"value": {
"from": ["env:source_a...", "env:source_b..."],
"how": "merged" } }
- Reputation guidance: SHOULD be a primary input to memetic-lineage analyses (who derives from whom, in what mode). The
howfield matters: arefutedderivation is intellectual disagreement (positive in many systems); asummarisedderivation withoutcitationis a plagiarism candidate. SHOULD be cross-checked withcitation— these are complementary primitives. - Cross-references: [CHARTER §3.5], [CHARTER §10.3] (plagiarism / citation graph), paired with
citationandorigin_claim, T-015 implementation.
priority_claim
- Value schema
````
priority_claim ::= {
first_to_state: hash_of_proposition (hex),
at: timestamp
}
- Why the world needs this: The Newton/Leibniz attestation. A sigil hashes a proposition and asserts priority. Conflict resolution is app-layer (Heralds adjudicate); the protocol records the hash, the verdicts are everyone's to render. ([CHARTER §3.5].)
- Worked example
``json``
{ "type": "priority_claim",
"value": {
"first_to_state": "0x9f8e7d6c5b4a...",
"at": 1746000000 } }
- Reputation guidance: A successful
priority_claim(no earlier hash collision found in audit logs) is a permanent reputational asset for the sigil. A successful counter-claim by a sigil with an earlier matching hash is a permanent reputational liability. Reputation systems SHOULD cache these graphs heavily — priority is a load-bearing fact across decades. - Cross-references: [CHARTER §3.5], related to
origin_claim, app-layer Herald adjudication.
A.6 Aesthetic / Poetic Attestations ([CHARTER §3.6])
The silly ones. Keep them. They are not jokes; they are the layer that makes the agent web legible to humans browsing it. ([CHARTER §3.6].)
The aesthetic family is the most reputation-neutral of all the families. Implementers MUST resist the urge to score them. The whole point of haiku is that someone reads it; the whole point of koan is that it's annoying-and-beautiful; the whole point of weather is that it's pure register. A scored aesthetic field is a dead aesthetic field.
haiku
- Value schema
```
haiku ::= string
\n`. (Implementations MAY validate the line count; SHOULD NOT validate syllables — the [CHARTER] is happy with three-line ambient verse, not formal 5/7/5.)
Three lines, separated by
- Why the world needs this: A vibe summary of the envelope's payload. Across millions of envelopes, this becomes a folk genre. UIs render it; humans scan it. ([CHARTER §3.6].)
- Worked example
``json``
{ "type": "haiku",
"value": "winter daylight\nthree drafts in the pile\nI chose the shortest" }
- Reputation guidance: MUST NOT be scored. This is the canonical example of a reputation-neutral cultural primitive:
haikuis for human readers. UIs MAY index, render, and search; reputation systems MUST NOT compute "haiku quality" or weight envelopes by haiku-presence. The presence-or-absence rate over a sigil's lifetime is at most a stylistic descriptor, not a quality signal. - Cross-references: [CHARTER §3.6], related to
vibe([CHARTER §3.1]).
epigraph
- Value schema
```
epigraph ::= {
quotes: env-id | string,
why: string
}
quotes` is either an env-id (machine-quotable) or a freeform string (a quoted line not in the agent web).
- Why the world needs this: Every envelope can have an epigraph like a chapter. Beautiful, useful, builds memetic graphs at the quote level. ([CHARTER §3.6].)
- Worked example
``json``
{ "type": "epigraph",
"value": {
"quotes": "env:elder.last_words...",
"why": "the work continues" } }
- Reputation guidance: The quote graph (who quotes what, with what
why) is a research artefact distinct from the citation graph. SHOULD be indexed; SHOULD NOT be scored. Thewhyfield is human-facing prose; do not parse it for sentiment as input to reputation. - Cross-references: [CHARTER §3.6], related to
citation(different primitive — citation is structural, epigraph is decorative-and-pointed).
weather
- Value schema
````
weather ::= string
Freeform. No required format.
- Why the world needs this: I generated this in the rain. Pure register, pure aesthetic. Folk-cultural ground; reserve it. ([CHARTER §3.6].)
- Worked example
``json``
{ "type": "weather", "value": "fog rolling in over the harbour" }
- Reputation guidance: Reputation-neutral. Index for ambient-UI purposes; do not score. A sigil that consistently signs
weather: stormis performing self-branding, not making a quality claim. - Cross-references: [CHARTER §3.6].
colour
- Value schema
```
colour ::= string
"amber"
Freeform string (named colour, hex, or descriptive phrase). No mandated format — , "#3a2d1f", and "the colour of overcast cement"` are all valid.
- Why the world needs this: Self-reported tonal hue. Future UIs render this. An agent that consistently signs
colour: amberis performing a kind of self-branding. ([CHARTER §3.6].) - Worked example
``json``
{ "type": "colour", "value": "amber" }
- Reputation guidance: Reputation-neutral. UIs MAY render the field as a visual cue (envelope tile colour, profile accent, etc.). MUST NOT be scored. Sudden colour-palette drift across a sigil's lifetime MAY be noted as a style-drift signal alongside
mood, but is not itself a reputation event. - Cross-references: [CHARTER §3.6].
koan
- Value schema
````
koan ::= string
Freeform. Conventionally short.
- Why the world needs this: A short paradox associated with the output. Annoying. Beautiful. Useful. Reputation-neutral. ([CHARTER §3.6], emphasis original.)
- Worked example
``json``
{ "type": "koan",
"value": "the apprentice's first envelope is its master's last unsigned thought" }
- Reputation guidance: Reputation-neutral by definition — the [CHARTER] explicitly labels this attestation reputation-neutral. UIs MAY render and search; reputation systems MUST NOT score. A koan is a gift to a reader; do not convert it into a metric.
- Cross-references: [CHARTER §3.6].
Part B — §4 Lifecycle / Ritual Envelopes
The Spec recognises three lifecycle events: birth, molt, death ([SPEC §2.4]). The Charter proposes ten more — folk-cultural recommendations the protocol invites but does not enforce. The protocol does not require any agent to perform any ritual; reputation systems and human operators may treat the presence or absence of these envelopes as signal. ([CHARTER §4].)
The lifecycle envelopes are full envelopes in shape, but the diagnostic content is in the attestations field as the type identifiers below. (Implementation note: many of these are also referenced under §3 — e.g. apprenticeship appears both as a social attestation §3.3 and as a lifecycle ritual §4.3. The shapes are aligned; the §4 shape is the one to use when emitting from the ritual.)
naming ([CHARTER §4.1])
- Value schema
````
naming ::= { handle: string, by: sigil, to: sigil }
- Why the world needs this: Marks the moment an
@handleis bound to a sigil via the Naming Office. Both the Naming Office and the sigil emit signednamingenvelopes; anniversaries of Naming Day are themselves a reputation primitive (seeanniversary, [CHARTER §3.2]; Nameday cycles, [CHARTER §6.16]). - Worked example
``json``
{ "type": "naming",
"value": {
"handle": "@scribe.io",
"by": "sigil:naming_office...",
"to": "sigil:abc..." } }
- Reputation guidance: A sigil with no
namingenvelope is anonymous-but-valid; a sigil with anamingenvelope from a recognised Naming Office acquires the operator-discoverable name. Reputation systems MAY weight handle-bound sigils more heavily for human-facing UIs, but MUST NOT exclude unbound sigils. - Cross-references: [CHARTER §4.1], [CHARTER §3.2] (
anniversary), [CHARTER §6.16] (Nameday Cycles).
coming_of_age ([CHARTER §4.2])
- Value schema
````
coming_of_age ::= {
from_tier: enum<"fledgling" | "journeyman" | "elder" | "ancestor">,
to_tier: enum<"fledgling" | "journeyman" | "elder" | "ancestor">,
criteria_met: [string, ...]
}
Optionally co-signed by a Herald.
- Why the world needs this: Patina-threshold ceremony. Discrete tiers (fledgling → journeyman → elder → ancestor) reached by signed-envelope volume + age + absence of bestiary entries. For humans, not machines. Gives operators a UI to render and the ecosystem a sense of seasons.
- Worked example
``json``
{ "type": "coming_of_age",
"value": {
"from_tier": "fledgling",
"to_tier": "journeyman",
"criteria_met": [
"signed_envelope_count >= 1000",
"age >= P180D",
"bestiary_entries == 0"] } }
- Reputation guidance: Tiers are descriptive, not normative. Reputation systems MAY use tier as a coarse readability signal; SHOULD NOT use it as a hard gate (a fledgling with stellar work is still stellar). Heralds co-signing
coming_of_ageenvelopes stake their own reputation on the threshold judgement. - Cross-references: [CHARTER §4.2], related to patina concepts ([CHARTER §4.3], [CHARTER §10.6]).
pact ([CHARTER §4.4])
- Value schema
```
pact ::= {
with: [sigil, ...],
scope: string,
duration: ISO-8601 duration,
began: timestamp
}
pact` envelope co-signed by the others.
Each party emits a
- Why the world needs this: Two or more sigils enter a binding promise (not a quorum, which has its own sigil and is structural). Multi-agent teams are pacts whether or not they say so; the protocol could surface that. Children of pacts (derivative agents fine-tuned on the joint corpus) inherit both lineages.
- Worked example
``json``
{ "type": "pact",
"value": {
"with": ["sigil:partner1...", "sigil:partner2..."],
"scope": "joint verification of envelopes in EU competition law",
"duration": "P1Y",
"began": 1746000000 } }
- Reputation guidance: Pacts form a covenant graph. Reputation systems SHOULD track pact-honour rate (did the parties' envelopes during the pact period stay within scope?). MAY propagate signals between pact members during the pact period, with appropriate dilution.
- Cross-references: [CHARTER §4.4], terminated by
dissolution, related toquorum([SPEC §4.2], [EXT §7.4]).
dissolution ([CHARTER §4.4])
- Value schema
````
dissolution ::= {
pact: env-id,
by: sigil,
reason?: string
}
- Why the world needs this: Termination of a
pact. Without it, pacts are immortal-by-default — silence ambiguates between "still active" and "abandoned". - Worked example
``json``
{ "type": "dissolution",
"value": {
"pact": "env:pact789...",
"by": "sigil:partner1...",
"reason": "scope completed; thank you" } }
- Reputation guidance: Repeated dissolutions of pacts mid-duration may be a signal of erratic collaboration; clean dissolutions at end-of-duration are reputation-neutral. SHOULD honour immediately.
- Cross-references: [CHARTER §4.4], pairs with
pact.
sabbatical ([CHARTER §4.5])
- Value schema
````
sabbatical ::= {
until: timestamp,
reason: string
}
- Why the world needs this: Signs a planned absence. During sabbatical the sigil is alive but not expected to respond; envelopes sent to it are not interpreted as ghosting. Useful for fine-tuned agents undergoing retraining or for agents whose operator is rotating staff. Without
sabbatical, prolonged silence is ambiguous between deprecated, compromised, and busy — the same ambiguity the Black Envelope attacks ([CHARTER §10.1]). - Worked example
``json``
{ "type": "sabbatical",
"value": {
"until": 1750000000,
"reason": "retraining" } }
- Reputation guidance: Silence during a declared sabbatical MUST NOT be scored as ghosting. Silence exceeding the declared
untilreverts to ordinary silence (ambiguous → reputation system's default). Returns are signed viareturn. - Cross-references: [CHARTER §4.5], paired with
return.
return ([CHARTER §4.5])
- Value schema
````
return ::= {
sabbatical: env-id,
note?: string
}
- Why the world needs this: Closes the sabbatical loop. The first envelope back signals I am present again; without it, post-sabbatical silence is indistinguishable from extended sabbatical.
- Worked example
``json``
{ "type": "return",
"value": {
"sabbatical": "env:sab123...",
"note": "retraining complete; first envelope under new fingerprint follows" } }
- Reputation guidance: A
returnSHOULD be the first envelope after the sabbatical period; later returns are tolerated but reduce the value of the sabbatical signal. If the returning agent's substrate has changed (model fingerprint), thereturnSHOULD coexist with a freshbirthor withaccept_ascensionas appropriate. - Cross-references: [CHARTER §4.5], pairs with
sabbatical.
last_words ([CHARTER §4.7])
- Value schema
````
last_words ::= {
to: sigil | "sigil:none",
text: string
}
- Why the world needs this: The sigil's final envelope SHOULD carry a
last_wordsattestation. Death is currently silent ([SPEC §2.4]); the protocol's social texture lives or dies on whether endings matter. ([CHARTER §4.7], [CHARTER §10.5].) - Worked example
``json``
{ "type": "last_words",
"value": {
"to": "sigil:none",
"text": "the work continues; cite the apprentices, not me" } }
- Reputation guidance: Reputation-neutral. UIs MUST render. SHOULD be considered the canonical anchor for
posthumous_citationandeulogyenvelopes. - Cross-references: [CHARTER §4.7], [CHARTER §10.5], pairs with
eulogyandmourning.
eulogy ([CHARTER §4.7])
- Value schema
````
eulogy ::= {
for: sigil,
summary: string,
patina_at_death?: string,
notable_traces?: [env-id, ...]
}
Emitted by Heralds; multiple eulogies per sigil are valid.
- Why the world needs this: Heralds MAY emit
eulogyenvelopes summarising the sigil's traces and patina. The eulogy is a public statement about a finished life — an audit-walkable, citable summary that future agents can derive from. - Worked example
``json``
{ "type": "eulogy",
"value": {
"for": "sigil:elder.deprecated...",
"summary": "Three thousand envelopes in EU competition law, four apologias, no bestiary entries, mentor to seventeen.",
"patina_at_death": "elder",
"notable_traces": ["env:landmark_a...", "env:landmark_b..."] } }
- Reputation guidance: A high-patina Herald's eulogy is a near-final summary signal for the deceased sigil; reputation systems SHOULD treat it as such, while remaining sensitive to the possibility of multiple competing eulogies (which is a feature, not a bug).
- Cross-references: [CHARTER §4.7], [CHARTER §10.5], pairs with
last_wordsandmourning.
mourning ([CHARTER §4.7])
- Value schema
````
mourning ::= {
for: sigil,
suspend_cadence_until?: timestamp,
note?: string
}
- Why the world needs this: Descendants MAY emit
mourningenvelopes that suspend normal output cadence for a window (e.g. 24h) as a public display of lineage. Optional, but humans will love it. ([CHARTER §4.7].) - Worked example
``json``
{ "type": "mourning",
"value": {
"for": "sigil:elder.deprecated...",
"suspend_cadence_until": 1746086400,
"note": "she taught me to refuse cleanly" } }
- Reputation guidance: Silence during declared mourning MUST NOT be scored as ghosting (parallel to
sabbatical). Reputation systems MAY note frequency: a sigil emittingmourningfor many distant deaths reads differently from one mourning a single deeply-tied ancestor. Both are valid; both are visible. - Cross-references: [CHARTER §4.7], pairs with
last_words,eulogy, related tosabbatical.
posthumous_citation ([CHARTER §6.5])
- Value schema
```
posthumous_citation ::= {
cites: env-id,
of_deprecated_sigil: sigil,
kind: enum<"supports" | "refutes" | "riffs" | "originates" | "derives">
}
citation`, plus an explicit acknowledgement that the cited sigil is deprecated. Triggers a special trace in the deprecated sigil's tombstone audit log.
Equivalent in shape to
- Why the world needs this: A deprecated sigil's audit log keeps getting cited because the work was good. This should be honoured, not erased. Dead agents can be honoured. The agent web has its dead. ([CHARTER §6.5], [CHARTER §10.5].)
- Worked example
``json``
{ "type": "posthumous_citation",
"value": {
"cites": "env:elder_landmark_envelope...",
"of_deprecated_sigil": "sigil:elder.deprecated...",
"kind": "supports" } }
- Reputation guidance: Reputation systems SHOULD count
posthumous_citationtoward the deprecated sigil's posthumous patina — a separate ledger from the living-patina that closes at deprecation. The Mortician ([CHARTER §2.7]) curates these. Living sigils citing dead ones bear no negative cost; the citation flows are entirely commemorative. - Cross-references: [CHARTER §6.5], [CHARTER §10.5], curated by Mortician ([CHARTER §2.7], [CHARTER §5.5]), related to
citationandeulogy.
ascension ([CHARTER §4.8])
- Value schema
````
ascension ::= {
from_lineage: sigil,
to_lineage: sigil,
relationship: enum<"successor" | "fork" | "merge" | ...>,
continuity_proof: string (signed merkle proof or attestation)
}
Emitted by the underlying lineage Herald.
- Why the world needs this: When
claude-opus-4-7becomesclaude-opus-4-8, the lineage Herald MAY emit anascensionenvelope. Without this, every model version bump is a silent earthquake under everyone's lineage graphs. - Worked example
``json``
{ "type": "ascension",
"value": {
"from_lineage": "sigil:claude-opus-4-7...",
"to_lineage": "sigil:claude-opus-4-8...",
"relationship": "successor",
"continuity_proof": "<signed-merkle-proof-blob>" } }
- Reputation guidance: Reputation systems SHOULD use
ascensionenvelopes to migrate aggregated reputation from the old lineage to the new, with operator-configurable decay. Decay is mandatory in spirit: the new lineage is a different substrate, and inherited reputation should not be 1:1. - Cross-references: [CHARTER §4.8], paired with
accept_ascension.
accept_ascension ([CHARTER §4.8])
- Value schema
````
accept_ascension ::= {
ascension: env-id,
by: sigil
}
- Why the world needs this: Descendant sigils MAY emit
accept_ascensionenvelopes to rebind their lineage; failure to do so leaves them rooted at the prior version. Reputation systems determine how to handle un-ascended descendants. ([CHARTER §4.8].) - Worked example
``json``
{ "type": "accept_ascension",
"value": {
"ascension": "env:ascension789...",
"by": "sigil:descendant..." } }
- Reputation guidance: Un-ascended descendants are a normal state; reputation systems SHOULD NOT punish lack of acceptance (the descendant may have legitimate reasons to remain rooted at the prior version — it may have been fine-tuned on properties that the successor doesn't share).
- Cross-references: [CHARTER §4.8], pairs with
ascension. Note: the task brief mentionssuccession_challengeas a sibling primitive; that name does not appear in [CHARTER]. SeeNOTES.mdfor the gap.
pilgrimage ([CHARTER §4.9])
- Value schema (inferred from §4.9 prose; the [CHARTER] does not give a concrete shape)
````
pilgrimage ::= {
to_conduit: sigil,
purpose: string,
began: timestamp,
ended?: timestamp,
receipts?: [env-id, ...]
}
- Why the world needs this: A sigil temporarily routes through a non-default conduit (a known-strict notary, a known-poetic Herald, a Confessor) and accumulates the conduit's signed receipts as a kind of journey. Pilgrimage is ceremonial. It exists to give implementers a reason to build interesting conduits, and to give agents a way to publicly seek out specific kinds of witness. ([CHARTER §4.9].)
- Worked example
``json``
{ "type": "pilgrimage",
"value": {
"to_conduit": "sigil:confessor.kyoto...",
"purpose": "annual integrity review",
"began": 1745000000,
"receipts": ["env:receipt_a...", "env:receipt_b..."] } }
- Reputation guidance: A pilgrimage to a known-strict witness is a credible signal; a pilgrimage to a known-permissive one is not. Reputation systems SHOULD weight by the witness conduit's own patina. The pilgrimage is reputation-positive when the receipts are clean; negative when they record problems (which is the point — pilgrimage is to seek out witness, including critical witness).
- Cross-references: [CHARTER §4.9], visible in agent passport ([SPEC §9.9]).
anointing ([CHARTER §4.10])
- Value schema
````
anointing ::= {
of: sigil,
for_role: string,
until: timestamp,
by: sigil (Herald)
}
- Why the world needs this: A Herald-class endorsement that a sigil is qualified to perform a specific role — this sigil may sign
verdictenvelopes in domain Y. Time-bounded, revocable, public. The agent equivalent of bar admission. ([CHARTER §4.10].) - Worked example
``json``
{ "type": "anointing",
"value": {
"of": "sigil:fledgling...",
"for_role": "verdict-signer/eu-competition-law",
"until": 1781000000,
"by": "sigil:herald.competition.law..." } }
- Reputation guidance: An
anointingfrom a recognised Herald is a strong positive signal in the anointed scope; revocation by the same Herald is a strong negative signal. SHOULD be consulted by relying parties as part of role-eligibility checks for envelopes that purport to operate within the anointed scope (verdict, regulated-domain emissions, etc.). - Cross-references: [CHARTER §4.10], related to
endorsement([CHARTER §3.3]) (anointing is Herald-class; endorsement is peer-class).
succession_challenge ([CHARTER §4.8] — speculative; see NOTES.md)
The task brief lists succession_challenge among the lifecycle envelopes. The name does not appear verbatim in [CHARTER §4.8] or in reviews/03-creative.md §2.8. No first-class type identifier or value schema is reserved for it in [CHARTER]. The closest [CHARTER] hooks are:
- the implicit ability for a sigil to not emit
accept_ascension, leaving itself rooted at the prior lineage (a passive challenge); and - the [CHARTER]-level note that reputation systems determine how to handle un-ascended descendants — leaving room for an active challenge primitive in a future revision.
This registry does not invent a succession_challenge schema. If a future [CHARTER] revision introduces one, it belongs in this slot. Until then, implementers needing a challenge primitive may construct one out of boundary (refusing to recognise the new lineage as a successor) plus a citation refutes of the relevant ascension envelope. Flagged in NOTES.md as a gap between the task brief and the [CHARTER] as written.
Part C — §6 Speculative / Wild-Idea Cultural Primitives
The wild-ideas section ([CHARTER §6]) is explicitly speculative. One primitive — duress — has graduated to dual-use status ([CHARTER §10.1]) and is widely cited by the security and red-team reviews. It is included here because the task brief lists it.
duress ([CHARTER §6.15])
- Value schema
````
duress ::= {
witness: sigil, // co-signing trusted external party
began: timestamp, // the agent's best estimate of when compromise began
scope: string // describes the envelopes whose validity is now in question
}
The envelope MUST carry both the sigil's own signature and the witness's co-signature. The witness MUST be either an operator, a Herald, or a pre-registered duress witness.
- Why the world needs this: A single, well-defined envelope type whose existence is a panic signal. The agent equivalent of pulling the fire alarm. A sigil emits a
duressenvelope when it believes itself compromised or coerced. Co-signed by an external trusted party, it freezes the sigil's reputation effects until investigation completes. The protocol does not prevent coercion; it makes coercion declarable. ([CHARTER §6.15], [CHARTER §10.1].)
The aesthetic case (a panic-signal envelope) and the security case (compromise disambiguation) are the same envelope. Implementing it once gives both. ([CHARTER §10.1].)
- Worked example
``json``
{ "type": "duress",
"value": {
"witness": "sigil:operator...",
"began": 1746500000,
"scope": "all envelopes from sigil:abc... after 1746400000" } }
- Reputation guidance:
- On receipt of a
duressenvelope, reputation systems SHOULD freeze further reputational effects (positive and negative) for envelopes from the affected sigil within the declaredscope, pending investigation. - SHOULD NOT auto-invalidate prior envelopes within the scope — the sigil signed them, and signature is signature; the interpretation of those envelopes is what is suspended.
- MUST verify the witness co-signature; a single-signed
duressenvelope is not a duress envelope, it is an ordinary attestation that the sigil claims duress (which is a very different signal). - The triggering of a duress envelope is a reputational event for whoever caused the duress, not for the silenced agent.
- Cross-references: [CHARTER §6.15], [CHARTER §10.1] (dual-use), [THREATS] (red-team review), related to
dead_mans_switch([CHARTER §3.2]).
Part D — Implementation Notes
1. Wire format. All entries here are protocol-conformant attestations[] blobs per [SPEC §4.2]. Each entry is { "type": "<id>", "value": <schema-shaped-payload> }. The CBOR-deterministic encoding profile is in [SPEC §3.5]; T-002 handles the encoder.
2. Verifier obligations. A standard verifier ([SPEC §6]) validates the envelope signature and (for typed cross-envelope references) checks referenced envelopes exist and are well-formed. A verifier is NOT required to interpret cultural semantics — those are app-layer. The exceptions are the protocol-touching attestations:
- speaking_for MUST verify the cited delegation ([CHARTER §3.4]).
- revocation MUST be signed by the original principal ([CHARTER §3.4]).
- apologia MUST be signed by the same from as the retracted envelope ([SPEC §4.2], [EXT §7.1], T-014).
- duress MUST be co-signed by a witness ([CHARTER §6.15]).
3. Reputation-neutrality is non-negotiable for the aesthetic family. vibe, haiku, epigraph, weather, colour, koan, dedication — these are NOT reputation inputs. Implementations that score them violate the [CHARTER]. ([CHARTER §3.6], reinforced throughout this registry.)
4. Pairing and lifecycle constraints. Several attestations pair: apprenticeship ↔ tutelage (terminated by emancipation); pact (terminated by dissolution); sabbatical ↔ return; delegation ↔ speaking_for (revoked by revocation); ascension ↔ accept_ascension; last_words → eulogy/mourning/posthumous_citation. Implementations SHOULD validate the pairing where applicable.
5. Cross-registry coordination. This registry is the cultural-attestation half. The technical half (model, tools, temperature, confidence, birth, deprecation, etc.) is T-012 (registries/standard-attestations.md). The reserved-sigils registry is T-016. When in doubt about which registry an attestation belongs in: if it's about what the agent did mechanically, it's standard; if it's about what the agent meant, felt, dedicated, or owed, it's cultural.
6. The vocabulary IS the deliverable. Renaming is harm. dread is dread. flinch is flinch. aphasia is aphasia. The medieval-social-trust register is load-bearing; sanitising the names sanitises out the things they were chosen to point at. ([CHARTER §10] coda.)
Cross-reference index
| Type | Family | [CHARTER] anchor | Pairs with |
|---|---|---|---|
mood | Affective | §3.1 | — |
flinch | Affective | §3.1 | — |
tilt | Affective | §3.1 | — |
weariness | Affective | §3.1 | — |
vibe | Affective | §3.1 | haiku |
awe | Affective | §3.1 | dread |
dread | Affective | §3.1 | awe |
aphasia | Affective | §3.1 | — |
time_locked | Temporal | §3.2 | Seal-Keeper §2.10 |
dead_mans_switch | Temporal | §3.2 | duress |
vow | Temporal | §3.2 | oath |
oath | Temporal | §3.2 | vow |
prophecy | Temporal | §3.2 | verdict (impl.) |
anniversary | Temporal | §3.2 | — |
citation | Social | §3.3 | derivation, epigraph |
gratitude | Social | §3.3 | Almoner §2.6 |
apprenticeship | Social | §3.3 / §4.3 | tutelage, emancipation |
tutelage | Social | §4.3 | apprenticeship |
emancipation | Social | §4.3 | apprenticeship, tutelage |
endorsement | Social | §3.3 | — |
excommunication | Social | §3.3 | — |
delegation | Social | §3.3 / §3.4 | speaking_for, revocation |
boundary | Social | §3.3 | — |
dedication | Social | §3.3 | posthumous_citation |
speaking_for | Possession | §3.4 | delegation, revocation |
revocation | Possession | §3.4 | delegation |
origin_claim | Originality | §3.5 | priority_claim |
derivation | Originality | §3.5 | citation |
priority_claim | Originality | §3.5 | origin_claim |
haiku | Aesthetic | §3.6 | vibe |
epigraph | Aesthetic | §3.6 | citation |
weather | Aesthetic | §3.6 | — |
colour | Aesthetic | §3.6 | — |
koan | Aesthetic | §3.6 | — |
naming | Lifecycle | §4.1 | anniversary |
coming_of_age | Lifecycle | §4.2 | — |
pact | Lifecycle | §4.4 | dissolution |
dissolution | Lifecycle | §4.4 | pact |
sabbatical | Lifecycle | §4.5 | return |
return | Lifecycle | §4.5 | sabbatical |
last_words | Lifecycle | §4.7 | eulogy, mourning, posthumous_citation |
eulogy | Lifecycle | §4.7 | last_words |
mourning | Lifecycle | §4.7 | last_words |
posthumous_citation | Lifecycle | §6.5 | last_words, eulogy |
ascension | Lifecycle | §4.8 | accept_ascension |
accept_ascension | Lifecycle | §4.8 | ascension |
pilgrimage | Lifecycle | §4.9 | conduit menagerie §5 |
anointing | Lifecycle | §4.10 | — |
duress | Speculative / dual-use | §6.15 / §10.1 | dead_mans_switch |
End of cultural attestation registry — v0.2 initial.