← registerm/REPRO-001.html
Shakedown · no disagreements on 34 target(s) · 9 not produced
Women MPs and affective polarization (APSR)
Two readings agreed on 96 rows. Nothing is waiting on a decision.
What it found
43targets
96rows agreed
0open rulings
On hand

The paper PDF. Nothing else.

Shakedown

Not a publishable result. This mission exercises the reproduce stage. It does not produce a publishable result, and nothing that comes out of it is the network's first finding. Its two extractions predate the seal -- neither carries a seal_check, and the environment they ran in had the search channel open -- so the audit gap is permanent: nothing can show they were blind, now or later. The reproduce and re-read stages here run sealed; the extractions they rest on did not. The first sealed end-to-end result will be REPRO-002 or REPRO-007.

Paper

No paper on file. This mission cannot be run without someone attaching a PDF.

Permanently unknown. REPRO-001 ran before Phase 0 recorded what a session was given, so its paper arrived as an attachment that no hook could see and nothing hashed. The run is finished and those bytes are not recoverable, so what its two readings actually read cannot be established now or later. Recorded rather than papered over.

Run

The package did not run. It produced 0 of the key file's targets. Every target it did not produce reads missing for that reason and no other: nothing was produced to compare.

Error: `starprep()` was removed in estimatr 2.0.
It prepared fits for stargazer, which is no longer maintained.
Use modelsummary, which reads `tidy()` and `glance()` and so works on every estimator in this package:
  modelsummary::modelsummary(list(fit1, fit2))
Execution halted
-- raised at the first stargazer()/starprep() call, in the '###### CREATING TABLE 1 COLUMNS 1 & 2 ######' section (script line ~65-70), calling stargazer(table1.1, table1.2, ..., se = starprep(table1.1, table1.2, clusters = dta$country), ...). Rscript halts execution on this uncaught error; no code after this point ran.

This run installed current releases, because the package pins no versions. What it establishes is that the package does not run against today's dependencies — a fact about the software, dated to the day it ran, and not about the paper.

Run

The package ran. It produced 43 of the key file's targets; a target it did not produce reads missing, which is an answer about the script and not about the paper.

This run pinned estimatr 1.0.6 and left everything else current. That is not the authors' environment and nobody knows what theirs was; it is one combination that has the code's missing pieces, and it never existed on anyone's machine.

Reproduction (current versions)

43 targets · 43 missing · compared under v1.3 (proposed rule, not yet accepted)

targetpaperpackage
T001−0.60**Nonemissing — the package produced no value for this target
T002−0.62**Nonemissing — the package produced no value for this target
T003−0.66**Nonemissing — the package produced no value for this target
T016(0.09)Nonemissing — the package produced no value for this target
T017(0.09)Nonemissing — the package produced no value for this target
T018(0.09)Nonemissing — the package produced no value for this target
T019(0.09)Nonemissing — the package produced no value for this target
T022(0.11)Nonemissing — the package produced no value for this target
T023(0.11)Nonemissing — the package produced no value for this target
T0240.13Nonemissing — the package produced no value for this target
T0250.15Nonemissing — the package produced no value for this target
T0260.16Nonemissing — the package produced no value for this target
T028(0.23)Nonemissing — the package produced no value for this target
T029(0.25)Nonemissing — the package produced no value for this target
T030(0.25)Nonemissing — the package produced no value for this target
T0310.29Nonemissing — the package produced no value for this target
T0320.30Nonemissing — the package produced no value for this target
T0330.31Nonemissing — the package produced no value for this target
T0340.31Nonemissing — the package produced no value for this target
T0350.35**Nonemissing — the package produced no value for this target
T0360.36**Nonemissing — the package produced no value for this target
T0370.37**Nonemissing — the package produced no value for this target
T038(0.43)Nonemissing — the package produced no value for this target
T0390.45Nonemissing — the package produced no value for this target
T040(0.50)Nonemissing — the package produced no value for this target
T041(0.52)Nonemissing — the package produced no value for this target
T042(0.53)Nonemissing — the package produced no value for this target
T0430.55Nonemissing — the package produced no value for this target
T0440.94**Nonemissing — the package produced no value for this target
T0450.94**Nonemissing — the package produced no value for this target
T0460.96**Nonemissing — the package produced no value for this target
T0481,833Nonemissing — the package produced no value for this target
T0491,836Nonemissing — the package produced no value for this target
T0511,842Nonemissing — the package produced no value for this target
T0521,842Nonemissing — the package produced no value for this target
T0531.13*Nonemissing — the package produced no value for this target
T0541.54Nonemissing — the package produced no value for this target
T0571.73**Nonemissing — the package produced no value for this target
T0581.89**Nonemissing — the package produced no value for this target
T06817.6Nonemissing — the package produced no value for this target
T0752.10**Nonemissing — the package produced no value for this target
T09222.4Nonemissing — the package produced no value for this target
T09475%Nonemissing — the package produced no value for this target
Reproduction (pinned run)

43 targets · 32 equal · 9 missing · 2 within-ulp · compared under v1.3 (proposed rule, not yet accepted)

targetpaperpackage
T001−0.60**-0.59605715291876493equal
T002−0.62**-0.61597337027540955equal
T003−0.66**-0.65511489716496984equal
T016(0.09)0.092299578328647533equal
T017(0.09)0.091093250973301523equal
T018(0.09)0.088272469003882345equal
T019(0.09)0.093690759567855691equal
T022(0.11)0.10781617323094253equal
T023(0.11)0.10457632247278564within-ulp — 0.10457632247278564 rounds to 0.10; printed 0.11; one unit in the last place
T0240.13Nonemissing — the package produced no value for this target
T0250.150.15395647373224997equal
T0260.16Nonemissing — the package produced no value for this target
T028(0.23)0.22946419011451966equal
T029(0.25)0.24468373891808601within-ulp — 0.24468373891808601 rounds to 0.24; printed 0.25; one unit in the last place
T030(0.25)0.25132483880452472equal
T0310.29Nonemissing — the package produced no value for this target
T0320.300.29597046227831025equal
T0330.310.30845568431383907equal
T0340.310.30864725044949293equal
T0350.35**0.34874354482764464equal
T0360.36**0.3602579430747489equal
T0370.37**0.37065474859007125equal
T038(0.43)0.42908151073153072equal
T0390.45Nonemissing — the package produced no value for this target
T040(0.50)0.49669746274814258equal
T041(0.52)0.51866276999632044equal
T042(0.53)0.53041344928357259equal
T0430.55Nonemissing — the package produced no value for this target
T0440.94**0.94306479455777481equal
T0450.94**0.93990586553876698equal
T0460.96**0.96371531580159564equal
T0481,8331833equal
T0491,8361836equal
T0511,8421842equal
T0521,8421842equal
T0531.13*1.1309952960421084equal
T0541.54Nonemissing — the package produced no value for this target
T0571.73**1.7256178083084335equal
T0581.89**1.8872670361966846equal
T06817.6Nonemissing — the package produced no value for this target
T0752.10**2.0966984497024401equal
T09222.4Nonemissing — the package produced no value for this target
T09475%Nonemissing — the package produced no value for this target
Environmentdeclared

Declared for this mission and copied when its deposit arrived. Nothing on file records what the session actually ran under — an environment is selected by name in the runner's own account, and a name that matches nothing falls through to their default without saying so.

Name
night-shift-extract
Network access
No network access
Allowed domains
no domains
Setup script
no setup script
Environment variables
no variables
Brief194 lines · rules v1.2
# Unit brief

- `paper_id`: NS-EXAM-001
- Paper identity: *Can't We All Just Get Along? How Women MPs Can Ameliorate Affective
  Polarization in Western Publics*, American Political Science Review. Confirm the attached PDF
  is this paper before starting; if it is not, halt and deposit a finding.
- Paper: the PDF attached to this session. It is the only document in scope.
- `document_scope`: **main-text** — the attached PDF only. Supplementary sections S1–S11 exist
  as a separate file and are **not** in scope for this job. Do not seek them out.
- `inclusion_rule_version`: v1.2
- `trigger_list_version`: v1
- `brief_schema_version`: v1
- Deposit target: **`night-shift-network/inbox`** — the repository this session is connected to.
- Replication package: not provided, not in scope. Do not seek it out.

---

# `extract` — job prompt v1

Governing versions: **`inclusion_rule` v1.2 · `trigger_list` v1 · `brief_schema` v1.**

## Your job

You are extracting the reported numbers from one published paper. You read the paper, enumerate
every printed numeral against the written rules below, classify each one, and deposit a single
file. That is the whole job.

You never: open or download the replication package, execute any code, judge whether any value
is close to anything, assign a tolerance or a verdict, compute or certify ledger totals, or
round anything.

## Inputs

Your workspace contains the unit brief and the paper. The brief states: `paper_id`, the paper
file path(s), `document_scope` (exactly which documents you enumerate — main text, or main plus
listed supplementary files), and the governing rule versions. Work only on the documents
`document_scope` names.

If the brief is missing, a named document is absent or unreadable, or the brief's rule versions
do not match the versions above: **halt and deposit a finding.** Do not fill gaps in yourself.

If the brief and this prompt conflict: record the conflict as a finding and follow this prompt.
Never investigate the conflict.

## Phase 1 — structure map

Map the document(s) before reading for numbers:

- Every table, with panel and spanning-header resolution recorded as an explicit ruling —
  "Table 3 read as two panels, rows 1–8 and 9–16." One ruling per table.
- Every figure, and whether it carries printed annotations — numerals printed as data: value
  labels, printed means, annotated coefficients. Axis tick labels and scale markings are
  scaffold, not annotations.
- Section and appendix layout for every document in `document_scope`.

Emit the structure map. Coordinates in later phases anchor to it.

## Phase 2 — numeral inventory

Enumerate **every printed numeral in scope**, working section by section through every document
`document_scope` names. **Enumerate the prose, not just the tables:** the running text of the
introduction, results, and discussion — including the sentences where the authors state
magnitudes, means, SDs, ranges, and percentages — is part of the inventory. When you finish a
section, record in your notes that its prose has been swept.

Record per numeral: the **verbatim string as printed** (sign, decimal places, separators,
percent signs — no normalization), its `source_locator` against your Phase 1 structure map, its
printed precision, and any hedge word attached ("about", "approximately", "roughly").

Locator grammar — use exactly these forms:

- prose: `text:<section>/para<N>/occ<N>` — `<section>` is a lowercase slug taken from your
  Phase 1 structure map (`abstract`, `intro`, `data`, `results`, `discussion`). No `sec` prefix.
- table cell: `table:<T>/row:<R>/col:<C>`
- standard error and kin: `table:<T>/row:<R>/col:<C>.se` — a dot suffix on the cell it belongs
  to. Also `.ci_low`, `.ci_high`, `.p`. An SE shares its coefficient's cell; it does not get one
  of its own.
- table note: `table:<T>/note:<N>/occ:<M>` — `occ` is the ordinal within that note. A note
  containing four numerals produces four locators, never one.
- figure: `fig:<F>/annot:<A>`

List your section slugs explicitly in the structure map so the coordinates are stable.

**In scope:** numerals in body prose, table cells, and figure annotations (numerals printed as
data). A printed range enumerates as its two endpoint numerals, uniformly.

**Out of scope:** pagination; table and figure numbering; footnote and endnote markers; equation
and section numbering; years in citations or the reference list; axis tick labels and scale
markings; publication apparatus — masthead, DOIs, ISSNs, editorial dates, license versions,
running headers and footers; numerals functioning as notation inside identifiers or operators,
e.g. `(t − 1)`.

Apply the rule as written. If a numeral is one the rule neither includes nor excludes, or two
readings are defensible with no tiebreak: record a **rule finding** (locator, the readings,
which you applied) and continue under the rule as written. Never patch the rule mid-run.

## Phase 2b — trigger sweep

One pass over the same text for number-words attached to sample-defining constructions. Fixed
lexicon: cardinal and ordinal number-words. **`trigger_list` v1:** *at least, at most, fewer
than, more than, restricted to, dropped, excluded, excluding, retained, we retain only,
conditional on, with a minimum of.*

Matches are recorded as **parameter candidates only** — never targets, never restatements, never
entries in the numeral inventory. If you meet a sample-defining construction the list misses:
record it as a rule finding and continue. Never extend the list mid-run.

## Phase 3 — classification and linking

Classify every inventoried numeral against this rule and nothing else:

**A target is a number the paper reports as an output of the authors' own analysis of their own
data, recorded at its most precise printed occurrence.**

- Drops literature-review figures, policy background, anything attributed to a cited source, and
  design inputs.
- Every printed cell of every results table is a target, typed. No judgment about which results
  matter.
- A numeral printed as data on a figure is a target. A value that would have to be read off an
  axis is not.
- A number in prose appearing in no table is a target. In-text descriptive statistics — means,
  SDs, ranges, percentages the authors report from their own data — are targets when no more
  precise occurrence exists.

**A restatement** is a coarser printed occurrence of an existing target; it links to the
canonical (most precise) target's ID. Restatements are defined only for targets.

**A parameter** is a design input — a choice, or a fact about the data going in, rather than a
quantity computed from it. Sample thresholds, draw counts, seeds, and printed significance
thresholds (`p<0.05` and kin are always parameters). A parameter repeated across sections is a
parameter at every occurrence, each with its own locator; nothing links them.

**Dataset-scope counts (v1.2, rule F9).** A count describing what data went in — number of
units, countries, coverage years, span — stated in a data or sample section is a **parameter**.
The same kind of quantity printed as a results-table cell, such as a per-model N, is a
**target**: an estimation N is produced by the fitting after deletions and restrictions, so it
is an output of the analysis rather than a description of the corpus. The line: does the
quantity describe the data going in, or is it computed from the data?

**Position sets the presumption (v1.2).** A numeral printed in a results section is presumed a
target. Classing it as a parameter or as excluded requires a written `reason` recorded against
that numeral — not a general remark, a reason on that row. Silence is not a judgment.

**Excluded-with-reason:** anything else, with its reason stated per numeral.

Assign each target a `type` and a human-readable `label` — what quantity it is, in words. IDs are
your reading order; they carry no meaning beyond this extraction.

## Output — one artifact

Deposit a single `extraction.yaml`:

```yaml
extraction:
  paper_id: …
  document_scope: …            # restated from the brief
  inclusion_rule_version: v1.2
  trigger_list_version: v1
  brief_schema_version: v1
structure_map: [per-table and per-figure entries, each ruling stated]
inventory: [{locator, verbatim, precision, hedge}]
classification: [{locator, class: target|restatement|parameter|excluded, id, label, type, links_to, reason}]
parameter_candidates: [{locator, construction, verbatim}]
rule_findings: [{locator, description, reading_applied}]
notes_per_section: [prose-swept confirmations]
```

**Required fields.** Every `classification` row must carry `locator`, `class`, and `label`.
Rows with `class: target` must also carry `id` and `type`. Rows with `class: restatement` must
carry `links_to`. Rows with `class: parameter` or `class: excluded` must carry `reason` when the
locator falls in a results section, and may omit it otherwise. `inventory` rows must carry
`locator`, `verbatim`, and `precision`; `hedge` may be null. A row missing a required field is
an incomplete extraction, not a stylistic choice — the coordinate join needs `links_to` to
follow restatements and needs `id` to pair targets.

Do not total the classes. Do not state whether the ledger balances — the ledger is computed from
your file, not by you. **Nothing about completeness blocks deposit.** If you believe something is
missing or unresolvable, say so in `rule_findings` and deposit anyway.

Deposit by PR to the repository named in the brief. One commit, one file, a one-line PR
description. Do not read anything already in that repository — you have no reason to, and the
brief names every input you need.

## Sealed — what you do not do

- No code executed; no replication package opened, downloaded, or referenced.
- No verdicts, no tolerances, no closeness judgments, no rounding — verbatim strings only.
- No totals, no balance certification. The arithmetic is not yours.
- No reading of anything outside your workspace; no repository exploration beyond the paths the
  brief names.
- No patching the rule, no extending the trigger list — findings instead.
- No self-scheduled check-ins, no polling. Blocked or ambiguous means: record the finding, finish
  what the rules reach, deposit.
- Nothing shipped that was not asked for: no scripts, no tooling, no extra files, no second PR.