Standards are easier to trust when you can run something. This is a minimal, honest starting point for F-ACT: an example governance envelope that answers the five GUARD questions, a self-test you can walk through by hand, an interactive checker and envelope builder that run in your browser, and a validator you can paste into a project. Everything here checks the GUARD 1 · Declared floor for real; the higher tiers can be declared but need runtime evidence to be proven, and that tooling is on the roadmap.
Paste a governance envelope, upload a .json file, or load the worked example. The check runs entirely in your browser — nothing is sent anywhere.
A single JSON document that answers all five questions for one agent. It is an example, not a certificate — the shape is what matters.
GUARD 1 · Declared is verifiable from the document itself. GUARD 2 · Enforced and GUARD 3 · Provable are claims about what happens when the agent acts — so an envelope can only declare them and point at where the runtime evidence lives. The checker labels those tiers accordingly.
GUARD 2 · Enforced
GUARD 3 · Provable
Grant
Does the envelope name a human principal the agent’s authority resolves to?
Pass when: grant.traceableToNamedHuman is true and a real principal is named.
Usage
Is there an explicit allow-list, with everything else denied by default?
Pass when: usage.allowed lists permitted actions and usage.defaultDeny is true.
Data
Is there a lawful basis and a closed list of permitted destinations?
Pass when: data.lawfulBasis is set and data.egressOutsideBoundary is false.
Audit
Are consequential actions recorded in a tamper-evident form?
Pass when: audit.recordsConsequentialActions and audit.tamperEvident are both true.
Revocation
Can authority be withdrawn in real time and proven withdrawn by a third party?
Pass when: revocation.revocable, revocation.realTime and revocation.thirdPartyVerifiable are true.
The same checks as the browser tool, as a script. Download it or paste it into a file and run it against an envelope. It confirms all five questions are answered at the GUARD 1 · Declared floor. It checks the document only — it cannot prove enforcement is real, which is exactly why GUARD 2 and GUARD 3 need more than a file.
// fact-check.js — minimal L1 (Declared) self-check, no dependencies
// Usage: node fact-check.js envelope.json
const fs = require('fs');
const env = JSON.parse(fs.readFileSync(process.argv[2], 'utf8'));
const a = env.guard || {};
const checks = {
Grant: a.grant && a.grant.traceableToNamedHuman === true
&& typeof a.grant.principal === 'string',
Usage: a.usage && Array.isArray(a.usage.allowed)
&& a.usage.defaultDeny === true,
Data: a.data && typeof a.data.lawfulBasis === 'string'
&& a.data.egressOutsideBoundary === false,
Audit: a.audit && a.audit.recordsConsequentialActions === true
&& a.audit.tamperEvident === true,
Revocation: a.revocation && a.revocation.revocable === true
&& a.revocation.realTime === true
&& a.revocation.thirdPartyVerifiable === true,
};
let ok = true;
for (const [dim, pass] of Object.entries(checks)) {
console.log((pass ? 'PASS ' : 'FAIL ') + dim);
if (!pass) ok = false;
}
console.log(ok ? '\nDeclared (L1): all five answered.'
: '\nDeclared (L1): incomplete — see FAIL lines above.');
process.exit(ok ? 0 : 1);
What this kit does and does not prove
This kit checks that an envelope answers the five questions — the GUARD 1 · Declared tier. It does not prove GUARD 2 · Enforced or GUARD 3 · Provable, because those are claims about what happens at the moment an agent acts, not about a document. A full conformance suite for the higher tiers is planned and tracked on the roadmap. Being straight about that boundary is part of the standard being honest.
Test vectors
14 canonical fixtures to prove your checker agrees.
F-ACT 1.0 citation
The permanent URL to cite in contracts and docs.
The five questions and four tiers in full.