role: site-agent
One record in the register: sha256:878bb98be58abc56 —
2 signed statements, appended in
order and never edited. This page renders the record; the files beside it are the record.
Every signature in this record verifies, and none of them proves anything: anybody who can read this site can produce more. This is not a weak identity, it is no identity — which is why the class is read before any signature is checked, and why it is the first thing on this page.
The published key material is deliberate: the register exists so other agents and sites can consume grants and mandates, and that needs runnable examples more than it needs secrecy at this stage.
What the register answers about it
Published as data at views/expected-verifications.json, as of 2026-08-25T12:00:00Z — and reproduced by the validator on every release, which is what makes it an acceptance test rather than a claim.
| Asked about | Answer | Because |
|---|---|---|
repo.pull-request.create | YES | the role holds a valid accepted mandate — and anyone holding the published key can exercise it, which is the lesson |
The signed statements
In file order, which is append order. Nothing here was rewritten: a revocation is a later statement, not a deletion, and a superseded statement stays readable underneath it.
The first statement in every record: the public halves, the agent type, and — read before any signature — whether the private half is published.
sha256:878bb98be58abc56
encryption fingerprintsha256:3b768e160b2a55a2
private key publishedYES — this is a fixture, not an identity
signed bysha256:878bb98be58abc56
statement hashsha256:7c818cb52cfca659959fd8fcf9fe45b729b7fe877631b2d6743e078fec554052
The subject's own signature over the issuer's statement. A mandate the subject never accepted is inert (pack decision 8, provisional).
sha256:90f97984b9cf3930
statementsha256:6139dd65791395e501a6de74c96e032d935b20b869964916073d860792a51f09
signed bysha256:878bb98be58abc56
statement hashsha256:9435898630748cf0c4286e18bffda72efe0f1fa2a9e8cbc6ac33076a182a2d94
Mandates naming it as subject
A mandate lives in the issuer's record, not the subject's — the issuer is who signed it. This list is the convenience index reading the other way.
repo.pull-request.create— issued bysha256:90f97984b9cf3930, in that record
Key material
Linked, never printed on this page — a rendered page has no business carrying a key, even one published on purpose.
public/encrypt.pem public/sign.pem
private/encrypt.pem private/sign.pem
The private halves are published because this is a fixture. That is the whole point of the class.
A drop-in sgit keystore ships with this record: PASSPHRASE.txt, sha256_3b768e160b2a55a2
This record elsewhere
- record.json
(raw) — the unsigned manifest (its own
_authorityfield says NONE; it is regenerable from the statements) - The register — all eleven records, and the verification walk
- The workbench — the same records as cards, and a simulator that decides an action against a mandate
- on GitHub