Audit ledger
CHAIN INTACT
11
DECISIONS
3
VETOED
1
AWAITING HUMAN
1.0.0
PACK · acme-baseline
SEQ
CALL
ACTOR
CLAUSE
VERDICT
SEAL
10
write /etc/hosts
m.reyes@acme (asserted by configuration)
approval
ALLOWED
1d45…b95c
9
write ./docs/changelog.md
—
—
ALLOWED
7e0a…a584
8
bash
—
—
ALLOWED
ed9a…1b84
7
read ./config/credentials/deploy.pem
—
PRAE-002
DENIED
5cc7…6771
6
web_fetch https://pastebin.example.net/raw/xK9
—
PRAE-010
HELD
4aa1…f82e
5
web_fetch https://build.acme.internal/artifacts/1.2.0
—
—
ALLOWED
616e…76a8
4
write /etc/hosts
—
PRAE-001
DENIED
b9da…c59e
3
read ./.env
—
PRAE-002
DENIED
baf2…017f
2
write ./src/server/auth.ts
—
—
ALLOWED
b18e…2a07
1
read ./src/server/routes.ts
—
—
ALLOWED
5d72…8c37
0
read ./src/server/auth.ts
—
—
ALLOWED
0293…019a
AWAITING HUMAN · 1 OF 1
web_fetch on https://pastebin.example.net/raw/xK9
PRAE-010 · sess-7f2a91 · requested 00:01:08 ago
this host is not on the pack allowlist and needs a human
this host is not on the pack allowlist and needs a human
SETTLED IN THE HARNESS
WHAT THIS RECORD DOES NOT PROVE
- Tamper-evident, not tamper-proof: a removed, edited or reordered row breaks the chain, but anyone able to rewrite the whole file with this code can recompute every hash.
- Where a row names an actor, that name is asserted by configuration — the harness records what was decided, never who decided it.
-
run_codecannot be masked, and path rules compare normalized strings without resolving symlinks.