Skip to content

Epic: Agentic platform primitives (Harness + Registry) #559

Description

@philmerrell

Tracking hub for the primitive-enablement effort. Plan of record: docs/specs/agentic-platform-primitives.md (added in #558).

Goal

Enable the reusable primitive layer — headless execution, delivery, scheduling, first-class KB, memory, governance — so proactive-agent use cases (a chief-of-staff "Oliver", digests, monitoring, triage) become configuration, not bespoke features.

  • Harness owns run → the headless run entrypoint (F1).
  • Registry owns catalog + govern → discovery + governance seam (F6).

The six fundamentals

Fundamental State
F1 Headless, trigger-agnostic run entrypoint (run_agent_headless) keystone — spike next
F2 Async result + delivery spine (run-record + session) minimal in Phase A
F3 Scheduled trigger (modeled on sync_policies) Phase B
F4 KB as first-class primitive (decouple from Assistants) Phase C (open decision)
F5 Memory primitive (finish user-markdown-memory) Phase C
F6a Governance floor (audit / guardrails / PII) pulled into Phase A
F6b Registry catalog + dynamic discovery Phase D (deferred)

Phase checklist

  • Docs / plan of recorddocs(specs): agentic platform primitives plan (+ scheduled-runs design + F1 spike brief) #558
  • Phase A — F1 spike (Fable 5) — headless run as a user + server-side SSE + governance-floor seam, proven in dev-ai. Brief: harness-entrypoint-spike-brief.md. Output = design note + go/no-go.
  • Decision gate — resolve the three open decisions using spike findings.
  • Phase A buildrun_agent_headless + minimal F2 + F6a floor + "Run now" (top-tier model).
  • Phase B — F3 scheduler — data model + CRUD + dispatcher/worker + SPA (fan-out, cheaper tier).
  • Phase C — F4 ∥ F5 — first-class KB + memory primitive.
  • Phase D — F6b — Registry-backed catalog + dynamic discovery (after Tier-1 gateway-search measurement).
  • Validation use cases — Oliver + digest + monitoring, as configuration.
  • GA — grant scheduled-runs capability to the default role; keep SCHEDULED_RUNS_ENABLED kill switch.

Resolved decisions

  1. F1 = minimal internal run_agent_headless(...), A2A-ready seam (not an A2A server yet; if ever exposed, capabilities must include streaming=True).
  2. Governance is foundational — F6a floor forward into Phase A; F6b discovery deferred.

Open decisions (resolve at the gate)

  • KB decoupling appetite (F4) — do the refactor now, or let scheduled runs borrow an assistant's KB in the interim?
  • F6a floor depth — minimum audit/guardrails/classification to ship Phase A unattended-as-user.
  • Sequencing — confirm proactive-spine-first (F1→F2→F3) with F4/F5 in parallel.

Cross-cutting

Cohort-gate each primitive via RBAC scheduled-runs capability + SCHEDULED_RUNS_ENABLED kill switch. Model-tiering: keystone → top model (Fable 5), pattern-following fan-out → cheapest adequate. UX bar: flexible foundation, minimal user-facing surface, governance backend-invisible.

🤖 Generated with Claude Code

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Fields

    No fields configured for issues without a type.

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions