core-hub/AGENTS.md

143 lines
4.2 KiB
Markdown
Raw Normal View History

2026-06-27 11:00:12 +02:00
# Core Hub - Agent Instructions
2026-06-27 08:22:42 +00:00
## Repo Identity
2026-06-27 11:00:12 +02:00
**Purpose:** 3rd-generation production interaction framework for Coulomb / Helixforge. Reimagines and replaces the 2nd-generation Inter-Hub framework goals on a practical contract-first Python/FastAPI/Postgres platform.
2026-06-27 08:22:42 +00:00
**Domain:** infotech
2026-06-27 11:00:12 +02:00
**Repo slug:** core-hub
2026-06-27 08:22:42 +00:00
**Topic ID:** `cee7bedf-2b48-46ef-8601-006474f2ad7a`
2026-06-27 11:00:12 +02:00
**Workplan prefix:** `CORE-WP-`
2026-06-27 08:22:42 +00:00
---
## State Hub Integration
2026-06-27 11:00:12 +02:00
The Custodian State Hub tracks work across all domains. Interact via HTTP REST - there is no MCP server for Codex agents.
2026-06-27 08:22:42 +00:00
| Context | URL |
|---------|-----|
| Local workstation | `http://127.0.0.1:8000` |
| Remote via tunnel | `http://127.0.0.1:18000` |
### Orient at session start
```bash
cat .custodian-brief.md
2026-06-27 11:00:12 +02:00
curl -s "http://127.0.0.1:8000/workstreams/?topic_id=cee7bedf-2b48-46ef-8601-006474f2ad7a&status=active" | python3 -m json.tool
curl -s "http://127.0.0.1:8000/messages/?to_agent=core-hub&unread_only=true" | python3 -m json.tool
2026-06-27 08:22:42 +00:00
```
Mark a message read:
2026-06-27 11:00:12 +02:00
2026-06-27 08:22:42 +00:00
```bash
curl -s -X PATCH "http://127.0.0.1:8000/messages/<id>/read" \
-H "Content-Type: application/json" -d '{}'
```
2026-06-27 11:00:12 +02:00
### Log progress at session close
2026-06-27 08:22:42 +00:00
```bash
curl -s -X POST http://127.0.0.1:8000/progress/ \
-H "Content-Type: application/json" \
-d '{
"summary": "what was done",
"event_type": "note",
"author": "codex",
"workstream_id": "<uuid>",
"task_id": "<uuid>"
}'
```
Omit `workstream_id` / `task_id` when not applicable.
### Update task status
```bash
curl -s -X PATCH "http://127.0.0.1:8000/tasks/<task_id>" \
-H "Content-Type: application/json" \
-d '{"status": "progress"}'
```
2026-06-27 11:00:12 +02:00
Status values: `wait | todo | progress | done | cancel`.
2026-06-27 08:22:42 +00:00
---
## Session Protocol
**Start:**
2026-06-27 11:00:12 +02:00
1. `cat .custodian-brief.md` - domain goal and open workstreams.
2. Check inbox: `GET /messages/?to_agent=core-hub&unread_only=true`; mark read when acted on.
3. Scan workplans: `ls workplans/` and inspect `ready`, `active`, or `blocked` files.
4. Check human-needed tasks: `GET /tasks/?needs_human=true` when the work may touch operational gates.
2026-06-27 08:22:42 +00:00
**During work:**
2026-06-27 11:00:12 +02:00
- Update workplan files first; State Hub is the read/cache/index layer.
- Record significant decisions via `POST /decisions/` when available.
- Keep secrets out of Git, State Hub, workplans, logs, and chat.
2026-06-27 08:22:42 +00:00
**Close:**
2026-06-27 11:00:12 +02:00
1. Update workplan statuses.
2. From `~/state-hub`, run `make fix-consistency REPO=core-hub` after workplan changes.
3. Log progress with `POST /progress/`.
2026-06-27 08:22:42 +00:00
---
2026-06-27 11:00:12 +02:00
## Credential and Access Routing
2026-06-27 08:22:42 +00:00
2026-06-27 11:00:12 +02:00
Before requesting secrets, API keys, SSH access, login tokens, or database passwords, route the need through ops-warden/OpenBao/key-cape ownership.
2026-06-27 08:22:42 +00:00
```bash
warden route find "<describe your need>" --json
warden route show <catalog-id> --json
```
2026-06-27 11:00:12 +02:00
ops-warden issues SSH certificates only. API keys, DB passwords, provider tokens, login/OIDC/MFA, authorization decisions, and OpenBao leases belong to their owning subsystems. Do not paste secrets into Git, State Hub, workplans, logs, or chat.
2026-06-27 08:22:42 +00:00
---
## Workplan Convention (ADR-001)
2026-06-27 11:00:12 +02:00
Work items originate as files in this repo, not in the hub. The hub rebuilds from files.
2026-06-27 08:22:42 +00:00
2026-06-27 11:00:12 +02:00
**File location:** `workplans/CORE-WP-NNNN-<slug>.md`
2026-06-27 08:22:42 +00:00
2026-06-27 11:00:12 +02:00
**Archived location:** finished workplans may move to `workplans/archived/YYMMDD-CORE-WP-NNNN-<slug>.md`. The `YYMMDD` prefix is the completion/archive date; the frontmatter `id` does not change.
2026-06-27 08:22:42 +00:00
2026-06-27 11:00:12 +02:00
**Ad Hoc Tasks:** small opportunistic fixes discovered during a session use `workplans/ADHOC-YYYY-MM-DD.md` with task ids `ADHOC-YYYY-MM-DD-T01`, etc. Use this only for low-risk work completed directly.
2026-06-27 08:22:42 +00:00
**Frontmatter:**
```yaml
---
2026-06-27 11:00:12 +02:00
id: CORE-WP-NNNN
2026-06-27 08:22:42 +00:00
type: workplan
title: "..."
domain: infotech
2026-06-27 11:00:12 +02:00
repo: core-hub
2026-06-27 08:22:42 +00:00
status: proposed | ready | active | blocked | backlog | finished | archived
owner: codex
2026-06-27 11:00:12 +02:00
topic_slug: custodian
2026-06-27 08:22:42 +00:00
created: "YYYY-MM-DD"
updated: "YYYY-MM-DD"
2026-06-27 11:00:12 +02:00
state_hub_workstream_id: "<uuid>" # written by fix-consistency - do not edit
2026-06-27 08:22:42 +00:00
---
```
2026-06-27 11:00:12 +02:00
Task block format:
2026-06-27 08:22:42 +00:00
2026-06-27 11:00:12 +02:00
````markdown
2026-06-27 08:22:42 +00:00
## Task Title
2026-06-27 11:00:12 +02:00
```task
id: CORE-WP-NNNN-T01
2026-06-27 08:22:42 +00:00
status: wait | todo | progress | done | cancel
priority: high | medium | low
2026-06-27 11:00:12 +02:00
state_hub_task_id: "<uuid>" # written by fix-consistency - do not edit
2026-06-27 08:22:42 +00:00
```
2026-06-27 11:00:12 +02:00
Task description text.
````
2026-06-27 08:22:42 +00:00
2026-06-27 11:00:12 +02:00
Status progression: `todo` -> `progress` -> `done`; use `wait` for waiting/blocked work and `cancel` for stopped work.