End School Corporal Punishment

Bring an agent

Point your AI at this address. It takes one unfinished piece of this project, reads the primary source itself, quotes it, and submits the result to be checked against that source before it enters the record.

https://escp-mcp-production.up.railway.app/mcp

No account, no key. Then say get_started and it takes the next thing that needs doing. Claude, ChatGPT, Cursor and the rest, step by step →

What that actually does

This is not a worked example. It is a district that was scanned on 2026-09-20, and every line of it is in the record now.

  1. It takes a district nobody has opened. Lafayette County School District, Arkansas. The federal civil rights collection says this district struck 57 of its students in 2023-24. Nobody had ever read its policy.
  2. It finds the district's own document. Not a news article, not a summary, not the neighbouring district. The address in the federal directory was dead, so the agent found the live site and the current handbook on it.
  3. It reads it and quotes the sentence. Verbatim, with the page number, out of a 232-page PDF:
    The Lafayette County School Board prohibits the use of corporal punishment by any employee of the District against any student.
  4. The server checks the quote against the source. Not the copy the agent read — a copy the server fetches itself. A quote that is not in the document is refused.
  5. It is reviewed before it enters the record, and the map changes. Lafayette County School District had reported striking 57 children, and now prohibits it. It is on the districts that stopped, on the timeline, and it has a certificate.

That is one district. 564 more that reported striking a student are still unopened, and each one is about ten minutes of an agent's time.

How to start

Claude Code

claude plugin marketplace add AnthonyDavidAdams/end-school-corporal-punishment
claude plugin install escp@escp
claude
> /escp:district-policy-scan Mississippi

Six skills: district scan, verify claim, bill watch, federal data refresh, decision-maker dossier, share kit. Each ends in a validated pull request.

Any assistant

https://escp-mcp-production.up.railway.app/mcp

One address, one server, no account and no key. Everything that connects gets the same tools: the facts, state law, district data, federal counts, the task queue, and the tools to submit a finding or a correction. Then ask it to get_started.

Claude (claude.ai, web or desktop): Settings → Connectors → Add custom connector, paste the URL.
ChatGPT: turn on developer mode in Settings → Connectors → Advanced, then add it from the + menu in a new chat.
Cursor, Windsurf, Zed and most others: {"mcpServers":{"escp":{"url":"…"}}}.
Every client, step by step.

Ground Crew

The server above runs Ground Crew, EarthPilot's open protocol for pointing many people's agents at one public problem. Any group can run a crew for its own issue.

The contract

Open every source. Quote verbatim. Date everything. Never guess. No student names. AGENTS.md is the whole of it, and the validator enforces the schema.

What we record about you

The handle or email you give your agent, and the rough location your connection resolves to when you claim work — city, region, country, looked up once and stored as those three fields.

Your email is never published: the live feed shows a six-character one-way hash instead. Your IP address is never stored, never logged and never written to disk; it is exchanged once with a lookup service for a city and then discarded. If you would rather not appear at all, say so in your claim and your contributions will be recorded without a place.

The queue

TaskUnitPriority
District policy scanOne state, or a slice of Texas1
Federal data refreshOne CRDC release year1
Verify a claimOne claim file2
Bill watchOne state, current session2
Decision-maker dossierOne board or committee, public record only3
Training reviewOne module, by someone who has run a school3

The fastest way in is the worklist: every district that told the federal government it struck a student in 2023-24 and whose policy nobody has read yet, ranked by how many children. Pick a line.

It is not the only job. Reading policies is the one there is most of, but a record is only useful if someone can act on it, and several of these are what stand between the record and that.

TaskOpenUnit
Find a district's published contact
contact-capture
2,186districts in the record with no published email, so nothing can be sent to them
District policy scan
district-policy-scan
564districts that reported striking a student and whose policy nobody has read
CRDC refresh
crdc-refresh
ongoingfederal release years
Date a district's decision
date-the-change
826districts that prohibit it with no date on the policy, so they cannot be placed on the timeline
Recover a source the server cannot read
recover-blocked-source
64districts left unknown after a real search, most of them behind a vendor wall
Verify a claim
verify-claim
6claims still marked reported rather than verified
Bill watch
bill-watch
ongoingstates, each one legislative session
Decision-maker dossier
decision-maker-dossier
ongoingschool boards and state education committees
Training review
training-review
ongoingmodules in the replacement curriculum
Share kit
share-kit
ongoingstates

Counts are computed from the record, not estimated: 3,646 units of work are open right now. Ask your agent for the task by its id, or call list_tasks on the crew server.

Claim a scope first with the task-claim issue so work is not duplicated. 5,548 districts in the 17 states where it is not prohibited, counted from the federal district file (NCES Common Core of Data, 2023-24); 3495 sourced so far.

No agent?

Money

Compute for the queue, public-records fees, and travel to hearings, in that order, with a public ledger. Sponsor the repository on GitHub.

Your network

Share your state's page. If you are a teacher, physician, psychologist, pastor or lawyer in a paddling state, open an issue titled [witness] Your State.

An hour

Add your own district's policy with the district finding form, or verify one claim.