intelligence-radar/workplans/IR-WP-0008-external-brief-intake.md
tegwick cb74107c36 Close IR-WP-0008 and hand website pulls to IR-WP-0009.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>

Assistant: claude-code
Assistant-Model: opus
Assistant-Process: 1170398@bnt-lap001
Assistant-Session: 622cd705-cb31-4322-ba08-dd42e44fa583
2026-10-05 09:23:26 +02:00

95 lines
3.7 KiB
Markdown

---
id: IR-WP-0008
type: workplan
title: "Ingest external automation briefs"
domain: infotech
repo: intelligence-radar
status: finished
flavor: implementation
owner: grok
topic_slug: custodian
created: "2026-10-04"
updated: "2026-10-05"
state_hub_workstream_id: "48ae162a-f232-5cbd-8b7a-c6fac6b03d72"
---
The local timer already captures registered primary sources and drafts a digest
from observations. ChatGPT and Grok website automations produce a separate
editorial brief. Until now those briefs were saved by hand into
`$DOWNLOADS/intelligenceRadarDaily`, and files under `archive/` had already
been captured. Activity Core does not publish a feed of these briefs.
## Retain unarchived drop-folder briefs
```task
id: IR-WP-0008-T01
status: done
priority: high
state_hub_task_id: "4666ef36-177e-5909-aed7-f58ed9a4d37c"
```
Import every `YYMMDD-intelligenceRadarDaily|Weekly_chatgpt|grok.txt` file that
sits directly in the brief inbox. Ignore `archive/`. Retain the original bytes,
write an unverified copy under `digests/external/`, and move a newly retained
file into `archive/` when that name is free or already identical. Leave empty,
unreadable, and colliding names in the inbox. Do not overwrite an existing
reviewed digest.
Done 2026-10-04: `import-briefs` retained 15 unarchived inbox files.
The empty 3 October Grok file stayed in the inbox. The 27 September ChatGPT
file differed from the bytes already under `archive/` of the same name, so
the new bytes were retained and the inbox file was left beside the older
archive copy. `make check` covers the retention rules.
## Import briefs from the local due job
```task
id: IR-WP-0008-T02
status: done
priority: high
state_hub_task_id: "720383d9-a9dd-595f-9b9c-f40ab3e3adc2"
```
`run-due` reads `ops/schedule.json` `external_briefs` on each timer wake, before
the source jobs. A missing inbox fails that part of the run and retries on the
next wake. Source capture still proceeds. A new observation draft lists retained
briefs for the same period. An existing digest file is left as it is.
`INTELLIGENCE_RADAR_BRIEF_INBOX` overrides the inbox for one run.
## Pull website automation runs without an operator
```task
id: IR-WP-0008-T03
status: cancel
priority: medium
state_hub_task_id: "4829c33d-acc1-5357-b75f-93542d322a00"
```
Record `needs_session` for both providers on every due run. The unattended
path remains the brief inbox: an export saved there, including one saved from
Grok's email delivery, is retained by T02. Pulling the websites themselves
waits on a real export or an authorized account feed that does not guess
private endpoints.
Rechecked 2026-10-04: the inbox has no new export. It still holds the empty
3 October Grok file and the 27 September ChatGPT file whose archive name is
already taken by different bytes. email-connect has no Intelligence Radar
feed. No session was sent to chatgpt.com or grok.com. Stays wait.
Rechecked 2026-10-05: inbox unchanged. Moved to IR-WP-0009-T01.
## Closure and residual handoff — 2026-10-05
User requested closure. The delivered increment is the brief inbox. `import-briefs`
and `run-due` retain ChatGPT and Grok exports with their original bytes. Every due
run reports `needs_session` for both providers. `make check` passes. T03 is `cancel`
because pulling the websites still depends on an export or authorized feed outside
this repository. It has not been achieved; it moves to the record below.
| Original scope | Authoritative follow-up |
| --- | --- |
| T03 pull website automation runs without an operator | IR-WP-0009-T01 |
Two inbox files still need an operator: the empty 3 October Grok file and the
27 September ChatGPT file, whose name collides with different archived bytes.
Both are tracked in IR-WP-0009-T02.