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

3.7 KiB

id type title domain repo status flavor owner topic_slug created updated state_hub_workstream_id
IR-WP-0008 workplan Ingest external automation briefs infotech intelligence-radar finished implementation grok custodian 2026-10-04 2026-10-05 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

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

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

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.