A claim about you is not true until you sign it
A countersignature is an Ed25519 signature from the organisation a claim is about, over the canonical form of that claim. It is the difference between an unanswered assertion and a verifiable fact — checkable offline, by anyone, from two published keys, forever.
npx @flashyos/countersign audit example.com
What it does
Six things, and each one is a verb somebody runs rather than a property we claim.
Seven rules, and every finding names the one it broke
A validator that reports “invalid” teaches nobody anything. Read all 7.
Questions
What is a countersignature?
A countersignature is an Ed25519 signature from the organisation a claim is about, over the canonical form of that claim. It turns an unanswered assertion into a fact any third party can verify offline from two published keys, without trusting either party or FlashyOS.
Does countersigning require an account?
No. The signer needs no account and gives FlashyOS nothing. Their key is generated in their browser and never leaves it, and the resulting signature is checkable by anyone, forever, without us.
Can an organisation sign its own claim about another organisation?
No. A claim that crosses an organisational boundary only becomes countersigned when a human at the other organisation signs it. The asserting party cannot sign its own claim about somebody else — that refusal is what makes the agreement mean anything.
What happens if a signing key is rotated?
Signatures made with the retired key stay verifiable. A scheme where rotation invalidates history punishes the one operation security asks for most, so the published key set keeps what is needed to check old signatures while new ones use the current key.
Where do the signatures live?
Beside the record, not inside it. A signature carried inside the document it signs changes the bytes being signed, so countersignatures travel as sidecars — the record stays canonical and any number of parties can sign the same bytes.
Can I check a countersignature without FlashyOS?
Yes, and that is the point. The schemas and the conformance suite are served at the URLs their own $id fields claim, so an implementation in any language can fetch them and verify a record without importing anything of ours.
What does the audit command tell me about a website?
It reports what that site currently demonstrates rather than what it says — which of its published claims carry a countersignature and which are unanswered. It runs against any domain, including one that has never used FlashyOS.
What this cannot do yet
A page about proof that omitted its own gaps would be the most expensive possible place to do that.
An MCP server for reading the graph
So an agent that has never read this documentation can still read the record. It does not belong in @flashyos/mcp — every tool there is pinned by a drift test to exactly one AgentReporter method, and a directory read wraps none of them. Forcing it in would break a good invariant to save a package, so it is a decision rather than an oversight.
A witness that is not us
Countersignatures prove two parties agreed. They do not prove the record was never rewritten — that needs a witness who is not the publisher, and the checkpoint format deliberately ships unsigned rather than performing a signature that proves nothing.
Been sent an invitation? Countersign a claim. Or read the package on /packages/countersign.