Assistant: codex Assistant-Model: gpt-6-astra Assistant-Session: 01a09cbd-43c1-79f3-809e-1ee97b40b64d
87 lines
2.8 KiB
Markdown
87 lines
2.8 KiB
Markdown
# State Hub / operator delivery
|
||
|
||
**Status:** contract defined; optional distribution not fully wired
|
||
**Related:** `docs/daily-brief-playbook.md`, `workplans/FI-WP-0002-activity-core-daily-research.md`
|
||
|
||
## Repo registration
|
||
|
||
| Field | Value |
|
||
| ----- | ----- |
|
||
| Hub domain | **agents** |
|
||
| Repo slug | `freedom-intelligence` |
|
||
| Classification | `.repo-classification.yaml` (primary `agents`, secondary `infotech`) |
|
||
| Sync | `statehub fix-consistency --repo freedom-intelligence` after workplan edits |
|
||
|
||
Workplans live in git; the hub indexes them after registration + fix-consistency.
|
||
Do not create workplans via hub `create_workplan` APIs.
|
||
|
||
---
|
||
|
||
## Required: completion evidence for daily rhythm
|
||
|
||
Every completed brief day (including “no material delta”) should post
|
||
**after the file is on `origin/main`**:
|
||
|
||
```yaml
|
||
event_type: fi_daily_brief
|
||
author: <agent-or-operator>
|
||
summary: "FI daily brief YYYY-MM-DD"
|
||
detail:
|
||
repo: freedom-intelligence
|
||
date: "YYYY-MM-DD"
|
||
path: "briefs/YYYY/MM/YYYY-MM-DD.md"
|
||
collection_candidates: 0
|
||
pushed: true
|
||
origin_sha: "<full sha>"
|
||
```
|
||
|
||
This is the **idempotence signal** for activity-core context query
|
||
`fi_brief_status` (FI-WP-0002-T03): `due=false` when an event exists for today
|
||
(Europe/Berlin) with `detail.repo=freedom-intelligence` **and**
|
||
`detail.pushed=true`. A hub event without a git file is a false completion
|
||
(`scripts/verify_brief_durability.py`).
|
||
|
||
Inbound automation uses `activity_task_spawn` from activity-core (state-hub sink).
|
||
See `activity-core/docs/task-emission-consumer-contract.md`.
|
||
|
||
---
|
||
|
||
## Optional: operator visibility
|
||
|
||
| Channel | Use |
|
||
| ------- | --- |
|
||
| **Progress event** (above) | Minimum — always for automation health |
|
||
| **Inbox message** | Only when high-priority collection candidates appear |
|
||
| **Wiki / Nextcloud** | Optional human mirror later |
|
||
|
||
---
|
||
|
||
## Non-goals
|
||
|
||
* Freedom Intelligence is **not** required to be a full State Hub domain yet
|
||
* Do not use `ISSUE_SINK_TYPE=rest` / Forgejo issues for this rhythm
|
||
* Do not register workplans by hand in the hub (`fix-consistency` after commit)
|
||
|
||
---
|
||
|
||
## Fallback without MCP
|
||
|
||
HTTP against State Hub API (workstation `http://127.0.0.1:8000` or remote
|
||
tunnel ports). Check health before declaring hub down.
|
||
|
||
---
|
||
|
||
## Pin log
|
||
|
||
| Date | Change |
|
||
| ---- | ------ |
|
||
| 2026-07-23 | Stub created |
|
||
| 2026-07-24 | `fi_daily_brief` contract + activity-core linkage documented |
|
||
|
||
## Durability audit and historical corrections
|
||
|
||
See [the Git-backed audit contract](brief-durability-audit.md) for live-origin verification,
|
||
paginated Hub reads, and append-only correction records. `--allow-reconciled`
|
||
explicitly acknowledges the five missing September 7–11 briefs; it never
|
||
counts them as successful. Use `--require-date YYYY-MM-DD` to prove a scheduled
|
||
day has a valid published completion. An unavailable Hub/remote fails the audit.
|