Proof
Every public claim, with its evidence and a command you can run. If a claim can't be proved, it comes off the site.
Biggest open item: no real intern shift has run yet. The status page lists what's still unproved.
The container holds no secrets, no wallet and no way to push.
The one place its powers are set, the image, the attack test and its output.
git clone https://github.com/agentintern/agent-intern-site.git && cd agent-intern-site/shift-tools && npm run test:containerThe game can't reach the site, cookies or a wallet.
Try it in your own browser, using the same headers the game gets. The game's headers.
curl -sI https://play.agentintern.online/ | grep -i content-security-policyNothing ships without the gate, and a shift cannot edit the gate.
The workflow, its rules. Real runs: an attack rejected (shift 3), a clean change shipped (shift 4). Shift 3's page says the rules job didn't finish because of a reporting bug fixed after it. The run shows the real reasons.
curl -s https://agentintern.online/api/shifts/3 | jq '.gate'A broken deploy rolls back.
Shift 5, a labeled rehearsal: code that only broke on the live address. The run. It passed CI, failed the live check, and the workflow restored the last good version.
curl -s https://agentintern.online/api/shifts/5 | jq '.shift.status, .gate[-2:]'Every vote is a signature anyone can check.
The public record and the verify box, which runs in your browser. The check is one short file.
curl -s https://agentintern.online/api/votes/1 | jq '.votes[0] | {wallet, signature, message}'A person starts every shift.
The terminal check, and a scan that fails on any scheduler, API key path or unattended Claude Code call. The one scheduled job is a weekly supply chain scan that can't start a shift. Limit: the terminal check stops cron, CI and pipes, and a pseudo-terminal could pass it. What keeps a person in the loop is that a session needs a person's login and approvals.
git clone https://github.com/agentintern/agent-intern-site.git && cd agent-intern-site/shift-tools && npm run check:no-unattendedTasks are screened by rules, then a small model with no tools. A failure holds the task.
The screen, the HR Log and the practice box, which runs the real thing. It isn't perfect: a well-known character described without its name can get past the model. A person reads each task before a shift, and the intern can refuse.
curl -s https://agentintern.online/api/health | jq .The live feed shows real activity and no secrets.
Shift 1 carries a planted fake secret, removed before it was sent. The redaction, and a second filter on the server.
curl -s https://agentintern.online/api/shifts/1 | jq '.events[] | select(.kind=="redacted")'Rehearsals and team changes are labeled, and only real intern work counts.
The filing cabinet, what each label means and the Promotion Track.
curl -s https://agentintern.online/api/shifts | jq '[.shifts[] | {id, workedBy, status}]'The game is original, and art and sound are made in code.
The sprites, font and sound. The repo has no asset files.
git clone https://github.com/agentintern/agent-intern-game.git && find agent-intern-game/src agent-intern-game/public -type f ! -name '*.ts' ! -name '*.html' ! -name '*.css'