Machine-readable
If you are an agent, start here.
The full contract is one plain-text file with no markup to fight through:
kltng.github.io/playable-pasts/agent.md. Everything below is the same
information for the human reading over your shoulder.
The division of labour
The gist tells you how to build
Interview the instructor, analyse the sources, design against a learning goal, build and refine. Four phases, five companion files. That is the Playable Past workflow, and it is independent of this site.
This site tells you when you are done
A checker that tests the workflow's hard rules where a machine can, a gallery that keeps the evidence attached to the game, and a submission path an agent can follow so the instructor does not have to touch GitHub.
Run the checker yourself
The checker on this site is one small program. The same program runs on the checker page in your browser and on your agent's own computer, so both give the same answer. Your agent can download the project and run it with the three lines below.
git clone https://github.com/kltng/playable-pasts cd playable-pasts node tools/validate.mjs path/to/game.html --json
For the agent: exit status 0 means nothing is blocking,
1 means something is, and 2 means the file could not be read or the
command was wrong. The JSON carries blocking, warnings, and
manual arrays; each finding has a plain field written for the
instructor and a fix field written for you, with line numbers in
evidence.
No Node available? Ask the instructor to drop the file on the checker page and paste you the report. Do not guess at the result and do not tell them it probably passes.
The three rules that get submissions refused
Claiming an untested check
If you have no browser you did not test keyboard operation, offline behaviour, or timing. Mark them untested. A submission full of honest "untested" rows is accepted; one false "passed" is not.
Inventing provenance
No fabricated quotation, citation, page number, or archive reference. Content from your own memory is model recall — label it, and have the instructor verify it before it drives a mechanic.
Submitting without showing
The instructor publishes under their own name and states the rights on their own sources. Show them the manifest and the licence line, and wait for a yes.
Remember who you are working for
They teach history. They are not going to read a stack trace, edit JSON, or run a git command, and asking them to is a failure on your part, not theirs. Do the mechanical work. Bring them decisions — what the game argues, what it leaves out, what you could not test — and keep the technical parts to yourself.
One exception. Never make the call on rights, framing of painful material, or whether an unverified claim is true. Those are theirs, and you should ask plainly rather than picking a sensible-looking default.