intelligence-radar/ops/RUNBOOK.md

49 lines
3 KiB
Markdown
Raw Normal View History

# Operator runbook
Run commands at the repository root with Python 3.11+. No installation is needed.
1. Read INTENT, the source catalogs and the last reviewed digest. Choose a primary
artifact to inspect. Record event date separately from retrieval time.
2. Capture the source hash (`sha256sum path/to/artifact`). Retain the artifact where
permitted; summarize rather than reproducing copyrighted text. A hash alone
cannot reconstruct an artifact or certify a claim.
3. Prepare an observation JSON with the fields shown in
[the synthetic fixture](../examples/observation.json). Replace every synthetic
value with actual evidence. `observed_at` requires a timezone; `event_date` is
the event's date, not a future effective date. Record future plans in the claim.
Use source_kind primary/secondary/local; status reported/corroborated/disputed/retracted.
These are analyst assertions, not automatic verification results.
4. Record and check:
```bash
python3 -m intelligence_radar record /tmp/observation.json
python3 -m intelligence_radar validate
python3 -m intelligence_radar digest 2026-09-14
python3 -m intelligence_radar digest 2026-W38
```
The CLI prints the immutable observation ID. Re-recording identical JSON is
idempotent. Changes create a new ID; for corrections add `supersedes` with the
old ID. The original remains available. Operators serialize writes; this local
prototype is not a concurrent database or a tamper-proof audit service.
5. Review the generated draft and its linked evidence. Digests include all records
by event date, including disputes and corrections. A weekly draft is an evidence
listing, not an automatically synthesized newsletter. Add editorial synthesis,
distinguish source claims from independent evidence, and record evidence gaps.
Existing digests are never overwritten by the CLI; edit reviewed prose in Git.
Late evidence requires an explicit revision or follow-up, not a silent rewrite.
Unverified ChatGPT and Grok automation exports that land in the brief inbox
are retained by `python3 -m intelligence_radar import-briefs` and by
`run-due`. Read them from `digests/external/`. They are not reviewed digests.
The inbox `archive/` directory is the already-captured set and is not read.
A reviewed publication is `python3 -m intelligence_radar publish`. It is
not produced by `digest` or `run-due`.
6. For recommendations, complete task-router/TEMPLATE.md under the governing method.
Preserve unknowns. Real task outcomes later support calibration.
7. Run `make check`, review changes, commit the evidence and artifacts. Update
workplan files and run `make sync` for Statehub projection.
`make demo` uses a temporary directory; its synthetic observation never enters the
repository ledger. These v0.1 evidence commands do not trigger paid inference.
For v0.2 source capture, automated jobs, advice and outcomes, see [data contracts](../docs/data-contracts.md). The planned editorial cadence is in CADENCE.md.