[
  {
    "added": [
      "LICENSE",
      "build_figure12_journal.py",
      "build_figure7_journal.py",
      "figures/figure12-caption.md",
      "figures/figure12-pipeline-journal.png",
      "figures/figure12-pipeline-journal.svg",
      "figures/figure7-seizures-journal.svg"
    ],
    "date": "2026-10-01T08:43:11Z",
    "reason": "The deposit licence the manuscript's Code Availability statement promises; the two journal-specification figure builders, Figure 7 from the deposited seizure table and Figure 12 from pipeline.json, with their rendered output, so the claim that every figure is regenerable from deposited code holds for these two as well; and a re-sign of README.md, whose licence section now states the two sets of terms, and of verification/redlist_scale.py, which has been ahead of the manifest since the crosswalk commit adc005e.",
    "resigned": [
      "README.md",
      "verification/redlist_scale.py"
    ]
  },
  {
    "date": "2026-10-01T08:46:25Z",
    "reason": "Move the provenance record out of the manifest and into ADDITIONS.json, signed like any other file. Every reader across the three repositories treats a manifest key as a path to a file, and the app's sync-deposit script refused outright when a metadata key appeared there.",
    "added": [
      "ADDITIONS.json"
    ],
    "resigned": []
  },
  {
    "date": "2026-10-01T12:49:21Z",
    "reason": "S4 and S5 tool strings filled from the project's own operational record, and the record gate extended to see placeholders in ai_tool and data_source, which it did not check and which the Methods box is generated from",
    "added": [],
    "resigned": [
      "pipeline.json",
      "verification/verify_pipeline_record.py"
    ]
  },
  {
    "date": "2026-10-01T13:04:36Z",
    "reason": "Figure 11 redrawn: the submitted version draws an arrow from the audit questions to CITES impact, which is the causal claim R2-07 says we removed",
    "added": [
      "build_figure11_journal.py",
      "figures/figure11-audit-questions-journal.png",
      "figures/figure11-audit-questions-journal.svg"
    ],
    "resigned": []
  },
  {
    "date": "2026-10-01T13:08:30Z",
    "reason": "a standing check that the platform and the paper state the same corpus totals; they did not, by 18,993 records",
    "added": [
      "verification/check_app_numbers.py"
    ],
    "resigned": []
  },
  {
    "date": "2026-10-01T14:40:32Z",
    "reason": "Supplementary Table 7 is derivable now that the toolchain values are in pipeline.json; the README said it and Table 4 could not be derived, and both claims were stale",
    "added": [
      "build_supplementary_table_7.py",
      "supplementary/supplementary_table_7_ai_toolchain.csv"
    ],
    "resigned": [
      "supplementary/README.md"
    ]
  },
  {
    "date": "2026-10-01T14:41:32Z",
    "reason": "a standing check that every Supplementary Table the manuscript cites is either deposited or named as author-held; the README list was also reordered so Table 7 sits in sequence",
    "added": [
      "verification/check_supplementary_tables.py"
    ],
    "resigned": [
      "supplementary/README.md"
    ]
  },
  {
    "date": "2026-10-02T14:33:35Z",
    "reason": "The seven files are the response-round artefacts: the journal build of Figure 11, Supplementary Table 7, and the two checks that recompute the app's numbers and the supplementary tables. results_traceability.csv and the table rendered from it are re-signed deliberately rather than added: the CSV gained the operative_definition and query columns that make all 22 claims recomputable from the deposit alone, which is what the response letter to the reviewers states. verify_claims_offline.py recomputes all 22 from this version, matches every recorded value, and confirms the rendered table agrees with the CSV. The manifest was describing a file the deposit no longer contained.",
    "added": [
      "verification/verify_claims_offline.py",
      "verification/verify_trajectories_offline.py"
    ],
    "resigned": [
      "results_traceability.csv",
      "results_traceability.md"
    ]
  },
  {
    "date": "2026-10-02T18:43:14Z",
    "reason": "run_all.py, the suite a reviewer is told to run, did two things wrong for an outside reader. It named a file inside the authors' private credential store, which is a path no reviewer can open and an answer to the wrong question: a reader restoring this deposit needs to know what privilege to grant themselves, not where our password is written. And with every check reporting 'could not run for want of data' - the state of any clone, which carries the code and not the 172 MB of tables - nothing crashed and nothing failed, so it returned 0. A reviewer or a CI job reads 0 as 'the deposit verifies'. It now returns 3 and says nothing ran. Both branches proven: 3 when every check is skipped, 0 when a check genuinely passes.",
    "added": [],
    "resigned": [
      "verification/run_all.py"
    ]
  },
  {
    "date": "2026-10-06T17:45:13Z",
    "reason": "Re-sign identifiers/iucn_assessment_ids.csv with the scope_code column it lost when it gained species names on 6 October. The scope description is lossy: twenty regional assessments are code 2 (the Europe region) and one is code EU (the twenty-seven member states), and all twenty-one are described as Europe, so the description alone publishes a category at a scope it may not have been assessed at. The codes are joined on assessment_id from ingest/data/iucn_scope_codes.csv and the writer refuses when a code and a description disagree.",
    "added": [
      "rebuilt/figure1_source_data.csv",
      "rebuilt/figure4_source_data.csv",
      "rebuilt/figure5_source_data.csv",
      "rebuilt/figure7_source_data.csv",
      "rebuilt/figure8_source_data.csv",
      "rebuilt/figureB_source_data.csv"
    ],
    "resigned": [
      "identifiers/iucn_assessment_ids.csv"
    ]
  },
  {
    "date": "2026-10-06T17:45:42Z",
    "removed": [
      "rebuilt/figure1_source_data.csv",
      "rebuilt/figure4_source_data.csv",
      "rebuilt/figure5_source_data.csv",
      "rebuilt/figure7_source_data.csv",
      "rebuilt/figure8_source_data.csv",
      "rebuilt/figureB_source_data.csv"
    ],
    "reason": "Unsign the six files under rebuilt/, signed minutes earlier by mistake. They are what a READER produces by running rebuild_iucn.py against their own IUCN licence, and they carry the Red List categories this deposit withholds: rebuilt/figure5_source_data.csv holds a status column with the categories in it. A signed file is deposit content, and no deposit content may carry a withheld value. The signer now refuses rebuilt/ outright rather than relying on nobody running the rebuild before signing."
  },
  {
    "date": "2026-10-06T17:45:42Z",
    "reason": "Re-sign ADDITIONS.json after recording the unsigning of rebuilt/.",
    "added": [],
    "resigned": [
      "ADDITIONS.json"
    ]
  },
  {
    "date": "2026-10-06T17:54:53Z",
    "reason": "Re-sign source_data.zip after regenerating SOURCE_DATA_INDEX.md: manuscript Figure 12 was never in the provenance map, so the index listed eleven figures while the paper has twelve, and the Data Availability statement's count could not be checked against it. No Source Data file changed; only the index inside the archive.",
    "added": [],
    "resigned": [
      "source_data.zip"
    ]
  },
  {
    "date": "2026-10-06T18:31:37Z",
    "reason": "Re-sign source_data.zip after restoring the withheld archive: the Source Data writer had been run alone to add the Figure 12 index row and rebuilt every member from the pre-withholding files, putting 436 Red List categories back into the deposit and removing the assessment identifiers that stand in their place. The restored archive carries the withheld markers, the identifiers, and the new index row.",
    "added": [],
    "resigned": [
      "source_data.zip"
    ]
  },
  {
    "date": "2026-10-06T18:47:06Z",
    "reason": "Re-sign the Figure 11 artwork and its generator: the SVG's machine-readable description still said the six non-outcome questions measure implementation, which is the claim the caption was rewritten to stop, and the PNG was five days stale and was the version contradicting the caption. The generator now renders the PNG from the SVG it just wrote, at 600 dpi on 180 mm, so the two cannot drift again.",
    "added": [],
    "resigned": [
      "build_figure11_journal.py",
      "figures/figure11-audit-questions-journal.png",
      "figures/figure11-audit-questions-journal.svg"
    ]
  },
  {
    "date": "2026-10-06T19:42:41Z",
    "reason": "Supplementary Table 7 named the prompt and parser with their extensions cut off - Unified_Species_JSON_Prompt without .md and unified_v1 without .0 - because a lazy quantifier in the generator stopped at the first period, which in these names is inside the token rather than after it. Two artefacts mis-named in a provenance table whose purpose is to name artefacts exactly.",
    "added": [],
    "resigned": [
      "build_supplementary_table_7.py",
      "supplementary/supplementary_table_7_ai_toolchain.csv"
    ]
  },
  {
    "date": "2026-10-07T10:03:54Z",
    "reason": "Re-sign of verification/redlist_scale.py for a comment-only correction: the tie-break note said the transition count was unchanged by the rule, and it is not (36 as published, 31 with one row per year); no code changed.",
    "added": [],
    "resigned": [
      "verification/redlist_scale.py"
    ]
  },
  {
    "date": "2026-10-07T11:02:23Z",
    "reason": "T-19 computes the median reassessment interval instead of printing a fixed 4 years",
    "added": [],
    "resigned": [
      "verification/stratify_trajectories.py"
    ]
  },
  {
    "date": "2026-10-07T11:23:57Z",
    "reason": "Gemini window bounded by the project record (2025-04-16 to 2025-08-08; the profile timestamps were model-written); Scite model as the retained outputs record it (o3-mini)",
    "added": [],
    "resigned": [
      "build_supplementary_table_7.py",
      "pipeline.json",
      "supplementary/supplementary_table_7_ai_toolchain.csv"
    ]
  },
  {
    "date": "2026-10-07T11:44:52Z",
    "reason": "NAMMCO reason stated as it is: no licence or terms published, site reserves all rights, so no redistribution is granted; catch_total counts animals",
    "added": [],
    "resigned": [
      "README.md",
      "data_dictionary.json"
    ]
  },
  {
    "date": "2026-10-07T12:06:26Z",
    "reason": "Blind check of 7 Oct: Gemini window closes 2025-09-09 (24 profiles were empty on 2025-08-08); Scite samples ran on o3-mini and o4-mini; catch_total sum double-counts national Total rows, so it is described as a checksum; NAMMCO all-rights clause dropped",
    "added": [],
    "resigned": [
      "README.md",
      "build_supplementary_table_7.py",
      "data_dictionary.json",
      "pipeline.json",
      "supplementary/supplementary_table_7_ai_toolchain.csv"
    ]
  },
  {
    "date": "2026-10-13T10:13:35Z",
    "reason": "A sentence in the catch_records exclusion opened with a lowercase column name (catch_total); it now reads 'The catch_total column', words otherwise unchanged",
    "added": [],
    "resigned": [
      "README.md",
      "data_dictionary.json"
    ]
  },
  {
    "date": "2026-10-18T19:42:29Z",
    "reason": "The co-author's manuscript of 18 October 2026 adds CITES reservations by state as Figure 5, so the Source Data gains figureC and an index renumbered 1 to 13, Figure 11's panel C counts global assessments only (EN+CR peak 12), and the journal figures, their builders and every figure reference in the deposit move to the final numbering.",
    "added": [
      "build_figure13_journal.py",
      "build_figure8_journal.py",
      "figures/figure12-audit-questions-journal.png",
      "figures/figure12-audit-questions-journal.svg",
      "figures/figure13-caption.md",
      "figures/figure13-pipeline-journal.png",
      "figures/figure13-pipeline-journal.svg",
      "figures/figure8-seizures-journal.svg"
    ],
    "resigned": [
      "REBUILD-IUCN.md",
      "build_figure12_journal.py",
      "build_pipeline_diagram.py",
      "build_supplementary_table_7.py",
      "results_traceability.csv",
      "results_traceability.md",
      "source_data.zip",
      "supplementary/supplementary_table_4_step_question_mapping.md",
      "verification/check_supplementary_tables.py",
      "verification/verify_claims_offline.py",
      "verification/verify_trajectories_offline.py"
    ],
    "retired": [
      "build_figure11_journal.py",
      "build_figure7_journal.py",
      "figures/figure11-audit-questions-journal.png",
      "figures/figure11-audit-questions-journal.svg",
      "figures/figure12-caption.md",
      "figures/figure12-pipeline-journal.png",
      "figures/figure12-pipeline-journal.svg",
      "figures/figure7-seizures-journal.svg"
    ]
  },
  {
    "date": "2026-10-18T20:04:39Z",
    "reason": "Source Data figure1, figure7 and figure8 now carry each species' latest global IUCN assessment, as the Figure 6 to 8 captions state, instead of the most recent assessment of any scope, and REBUILD-IUCN.md says so.",
    "added": [],
    "resigned": [
      "REBUILD-IUCN.md",
      "source_data.zip"
    ]
  }
]
