ops(archive): TASK prompts and REPORT verifications, studies through V1
This commit is contained in:
@@ -0,0 +1,39 @@
|
||||
# TASK: COS morning briefing — discourse client + `harness brief` (Redmine 495)
|
||||
|
||||
## Context
|
||||
Spec: docs/SPEC-20260829-charles-brief.md. Target: first live 3-COS
|
||||
briefing 2026-09-01 06:30 CST (beta 8/31 0600). Briefing = daily digest
|
||||
via Discourse (fallback Redmine note) assembled from: Redmine activity
|
||||
(scope), Gitea PR inbox, quota usage. Exact format TBD by Charles — ship
|
||||
a clean v0 format he can react to.
|
||||
|
||||
## Part A — mopac-discourse-go client (new repo)
|
||||
1. Create repo via Gitea API if absent (PMO pattern: tea token from
|
||||
~/.config/tea/config.yml, POST /api/v1/orgs/ukrrs/repos), clone to
|
||||
~/projects/meta/MOPAC/discourse-go. AGPLv3 LICENSE.
|
||||
2. Stdlib-only Go client: categories (list/create), topics (create/list),
|
||||
posts (create/update), raw JSON passthrough for anything else. API key
|
||||
via key_ref/env (never logged). Fake-server tests. Docs standard.
|
||||
(Current Discourse key 403s on category creation — client supports it,
|
||||
live verification may wait for the admin-scoped key; note in REPORT.)
|
||||
|
||||
## Part B — `harness brief` subcommand
|
||||
1. Digest window: since last briefing marker (state/brief/brief.jsonl).
|
||||
2. Sources (read-only): Redmine issues in scope created/updated/closed in
|
||||
window (reuse intake client); Gitea open PRs across ukrrs repos (API);
|
||||
quota snapshot summary (internal/quota if landed).
|
||||
3. Render: clean markdown — per-vertical sections: shipped (closed),
|
||||
moved (updated w/ status), incoming (new), PRs awaiting review, quota
|
||||
line. Beautiful tables (docs standard).
|
||||
4. Delivery v0: post to Discourse category (configurable id/slug); if
|
||||
Discourse fails (403 etc.), fallback = journal note on a configured
|
||||
Redmine "briefing" issue — NEVER silently drop; log delivery path.
|
||||
5. Scheduling v0: `harness brief` is one-shot (cron/loop calls it at
|
||||
0630); config `[brief]` section (category, redmine fallback issue,
|
||||
window tz CST). Idempotent: one briefing per window (marker).
|
||||
6. TDD (fake servers for both), docker dev, docs, push.
|
||||
|
||||
## Deliverable
|
||||
`REPORT-20260829-1100-briefing.md` in `~/.coordinate/inbox-pmo/`: client
|
||||
surface, the v0 briefing format (render a sample with fake data in the
|
||||
REPORT), delivery verification status, what Charles should tweak.
|
||||
Reference in New Issue
Block a user