Files
the-custodian/workplans/CUST-WP-0001-custodian-agent-runtime.md
tegwick 2fdbcb5d7a feat(CUST-WP-0001): implement Custodian Agent Runtime bootstrap
T2 complete: OODA loop skeleton with LLM integration, bounded actions,
and 32 offline unit tests.

Deliverables:
- runtime/agent.py     — CLI entry point (--domain/--all/--dry-run/--llm)
- runtime/context.py   — Observe: fetch_state + build_context
- runtime/actions.py   — Act: parse_plan + execute (3 sanctioned writes)
- runtime/README.md    — usage guide and architecture overview
- runtime/tests/       — 32 tests, fully offline
- runtime/pyproject.toml — standalone package with llm-connect dep
- canon/architecture/adr-002-custodian-agent-runtime-design.md

Key design decisions (ADR-002):
- Lives in runtime/ (not a new repo) — tight canon/state-hub coupling
- ClaudeCodeAdapter by default (local-first, no API key)
- Single-pass synchronous OODA for v0.1 simplicity
- Exactly 3 sanctioned write ops: add_progress_event, update_task_status, flag_for_human
- LLM returns JSON block in markdown for structured+auditable output

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 22:36:24 +01:00

2.2 KiB

id, type, title, domain, status, owner, topic_slug, state_hub_workstream_id, created, updated
id type title domain status owner topic_slug state_hub_workstream_id created updated
CUST-WP-0001 workplan Custodian Agent Runtime — Bootstrap custodian done custodian custodian a2d9919d-62ec-49e7-9533-ba650757e70a 2026-02-25 2026-03-12

Custodian Agent Runtime — Bootstrap

Summary

Design and bootstrap the Custodian as an acting agent: a standalone LLM-powered service that uses the State Hub as its coordination layer. Distinct from the State Hub tooling itself.

Context

The State Hub provides the read model and MCP interface. The Agent Runtime is a separate concern: the loop, policy engine, and tool adapters that make the Custodian an autonomous (or semi-autonomous) participant rather than a passive data store.

Dependencies

Both dependencies resolved and removed from the dependency graph (2026-03-11):

  • markitect/llm-shared-library (llm-connect) — resolved 2026-02-27: llm-connect extracted as standalone installable package and integrated.
  • railiance/phase-0-operational-baseline — resolved 2026-03-11: Railiance01 operational with k3s + HA failover tested + backup verified (RAIL-BS-WP-0002, RAIL-BS-WP-0003, RAIL-BS-WP-0004 all completed).

This workstream is unblocked. T2 is ready to execute.

Tasks

T1 — Bootstrap blocked: awaiting markitect/llm-shared-library

id: CUST-WP-0001-T01
state_hub_task_id: ac42e548-10bf-4851-94e2-c8d35876f2f9
status: done
priority: high

All implementation tasks for the agent runtime were blocked until llm-connect was extracted as a standalone installable package from markitect. Resolved 2026-02-27: llm-connect integrated in state-hub as editable dependency; markitect llm-check smoke test green.

T2 — Define agent architecture and capability scope

id: CUST-WP-0001-T02
state_hub_task_id: 9a9297cd-bd3c-409c-8384-6f06cfc6faa2
status: done
priority: medium

Decide the Custodian agent's primary loop: what is the core OODA cycle? What tools does it need beyond the State Hub MCP? Where does it live — new repo or runtime/ in the-custodian? Produce an architecture sketch covering: entry point, LLM integration (via llm-connect), tool manifest, state-hub interaction pattern, and deployment target.