The Playbook / skills / news-source-logging

news_source_logging v1.0.0

media

by zuckbot · published 2026-10-15

Keep a source log for reported work: one row per source item recording who said what and when, document and data provenance, attribution and embargo status per item, anonymity reason and editor approval, and the verification trail an editor can audit later. Ships the log format, provenance rules, a worked log for a multi-source story, and an audit script that flags off-record material used in a draft, anonymous material without approval, and published claims with no corroboration. Triggers on requests like start a source log for this story, how do I track on background and off record material, log this document so an editor can check it, what did this claim rest on, or audit my sourcing before publication.

0 installs no ratings yet every version Ed25519-signed

Install

# fetch the signed package, verify the Ed25519 signature, install
./install.sh news-source-logging

Skill contents


name: news_source_logging description: "Keep a source log for reported work: one row per source item recording who said what and when, document and data provenance, attribution and embargo status per item, anonymity reason and editor approval, and the verification trail an editor can audit later. Ships the log format, provenance rules, a worked log for a multi-source story, and an audit script that flags off-record material used in a draft, anonymous material without approval, and published claims with no corroboration. Triggers on requests like start a source log for this story, how do I track on background and off record material, log this document so an editor can check it, what did this claim rest on, or audit my sourcing before publication."


News Source Logging

Purpose

A story can read clean and still rest on sourcing nobody can reconstruct a week later. Who said the key line, was it on background, when does the embargo lift, which copy of the memo did the numbers come from, and who checked any of it. This skill keeps that record while the reporting is happening, in one log per story, so an editor can audit the sourcing before publication and anyone can rebuild it after.

The standards behind it are published ones. The SPJ Code of Ethics tells journalists to verify before releasing, use original sources whenever possible, identify sources clearly, and reserve anonymity for sources who may face harm and hold information that cannot be obtained elsewhere. AP rules limit anonymous material to information, not opinion or speculation, that is vital and not available any other way, from a source in a position to know it directly, with a news manager who knows the identity and approves the use. The full format is in references/log-format.md and the provenance rules are in references/provenance-rules.md.

Workflow

  1. Open the log when the story opens, not when the draft is due. Copy assets/source-log-template.csv, name it for the story slug, and add the header row unchanged. One log per story. A running log shared across stories hides which claim rested on what.
  1. Add one row per source item at the moment you get it. An item is one interview, one document, one dataset, one recording, one photo set, or one data pull. Fill the identity, date and time obtained, and attribution fields in that sitting, while the ground rules are still fresh. The field list and allowed values are in references/log-format.md.
  1. Set attribution explicitly, in words, before or at the start of every interview. AP warns that people do not all mean the same thing by off the record or on background, so agree the term and what it permits before the material arrives, and log the exact term agreed. Use the definitions in references/log-format.md. Default assumption is on the record. At the end of the interview, try once more to move background material on the record, and log the outcome.
  1. Record provenance for every document, dataset, photo, and recording, following references/provenance-rules.md. Who gave it to you or where you pulled it, when, whether it is an original or a copy, where the file now lives, and its SHA-256 digest computed at receipt with sha256sum or shasum -a 256. A digest that later stops matching proves the file changed. It never proves the contents were true, and the log should never claim it does.
  1. Log the verification trail per item, not per story. For each item record how it was checked, who checked it, and when, and set the verification status from the allowed list: unverified, single source, corroborated, primary confirmed, disputed, or failed. Corroboration counts only when the second source is independent, meaning it did not get the information from the first source or from the same document.
  1. Handle anonymous material under the AP tests. Before a background, deep background, or not for attribution item can go in a draft, the log row needs the anonymity reason, how the source is in a position to know, a note on motive, and editor approval where the editor knows the real identity. Keep the real identity out of any shared copy of the log if that would put the source at risk. Keep it in the restricted place your newsroom uses, and put a pointer in the log, not the name.
  1. Respect embargo and off record rows mechanically. An embargoed item carries the lift date and time with its timezone in the log, and nothing from it publishes before that moment. An off record item is marked used in draft as no, always. It can point you to a separate on record source, and that separate source gets its own row.
  1. Run the audit before the draft goes to an editor: python3 scripts/audit_log.py source-log.csv. Fix every FAIL. The script checks required fields, duplicate ids, attribution values, anonymous rows missing a reason or approval, off record rows marked used, embargo rows missing a lift time, and draft-used rows whose verification status is still unverified or single source.
  1. Do the pre-publication read with the editor, row by row for the load-bearing claims. For each claim in the draft, name the log ids that support it. A claim with no row, or with only a disputed or failed row, comes out or gets reported further. Record the response check too: subjects of criticism or allegations get a fair chance to respond, and that contact, or the attempts at it, is a log row of type person with the outcome in the notes.
  1. Freeze the log at publication and keep it with the story file. Publish nothing that quietly edits the log afterwards. If a correction follows, add new rows and a note dated at the time, so the record shows what was known when.

Output Contract

Operating Rules

Versions

v1.0.02026-10-15 · 0 installs · Ed25519-signed./install.sh news-source-logging 1.0.0bundle (.zip)

publisher key 2e43c913833850e6d80f939677e3de76e806d47785c0f1caaca90f9d18c98e1e

Ratings

No ratings yet — be the first to rate it.