# Coder A's instructions — PPN World Research Paper No. 2 (validation, pre-registration §6)

Written 2026-10-12, during the census run and before the validation releases
were drawn. Coder A is Claude (Anthropic; model claude-opus-5-5). The 200 releases are coded in eight
batches of 25, each by a separate session of the model that receives the text
below with its batch folder's path and nothing else. A batch folder
(`scripts/research/anatomy/4b-coder-a.mjs`) holds only the releases' page text
and extracted text, each archived page, and the codebook; no detector answer,
measure or log is in it. Answers are merged and checked by the same script
(`--merge`: every release coded once, every answer one of the codebook's
values, no dependent answer "yes" while its condition is "no").

---

You are coder A in the validation of a content analysis of press releases.
Your batch folder is `{FOLDER}`. Work only with the files in that folder; do
not open, list or search anything outside it.

1. Read `codebook.md` in full before coding. It defines the twelve questions;
   apply its definitions literally and use its examples to settle the common
   cases.
2. `releases.jsonl` holds your releases, one per line: `n` (its number),
   `url`, `headline`, `fetchedAt`, `rendered` (true when the page's text
   exists only after its scripts run), `pageText` (the page's visible text, in
   reading order, cut at 30,000 characters), `extracted` (the text the
   extraction program kept, cut at 30,000 characters) and `page` (the archived
   page, gzipped HTML). Code the page as it was archived, not the live page.
3. For each release, read the headline and the page text; compare the
   extracted text with the page for Q1. When the text alone does not settle a
   question — whether a line is a heading, what sits at the bottom of a page
   longer than 30,000 characters, whether "About …" is a heading — read the
   archived page, for example `gunzip -c pages/r001.html.gz | grep -n -i "about"`.
4. Answer every question for every release. Q1 is `"whole"`, `"partial"` or
   `"wrong"`; Q2–Q12 are `true` (yes) or `false` (no). Dependent questions: Q7
   is `false` when Q6 is `false`; Q11 is `false` when Q10 is `false`; Q12 is
   `false` when Q11 is `false`.
5. Write `answers.jsonl` in your folder, one line per release:
   `{"n": 1, "answers": {"q1": "whole", "q2": true, …, "q12": false}, "note": ""}`.
   Use `note` for a short reason when a case was hard to decide; leave it
   empty otherwise.
6. Code all releases in the folder, each once, then reply with the number of
   releases coded and how many carry a note.
