RFC-0019 — Agent-Native Planning Control Plane

Status: Proposed · Created: 2026-07-19 · Owner: CFactory · Extends: RFC-0001 (correlation key — the board is the human-facing home of a correlation), RFC-0003 (GitHub integration — the board augments, never replaces, GitHub as the record of truth), RFC-0011 (intake — a board card becomes an intake source alongside a labelled issue) · Affects: CFactory (new planning surface + write APIs + skills manifest); light additive endpoints on PFactory/AIFactory/TFactory. No task-contract changes.

1. Motivation

The Factory is already substantially agent-native: every service exposes a REST API and an MCP server, the fleet ships installable skills (.claude/skills), and CFactory threads a correlation across plan -> build -> test via work_items. But the work surface is fragmented and read-mostly:

The competitor scan that prompted this RFC (utter.ae — an agent-native project manager) crystallised the gap. Its thesis is one design law: “everything a human can do has a programmatic equivalent.” Humans and agents share the same workspaces -> projects -> issues, with stable IDs, reachable identically via UI, REST, MCP, and a discoverable skills manifest. We already have the plumbing for this; what we lack is (a) a shared editable planning surface and (b) the discipline and discovery layer on top.

This RFC proposes the thin coordination layer that closes both — not a Linear/Jira rebuild, and not a replacement for GitHub.

2. What we already have (and what is missing)

Primitive Today Gap this RFC closes
REST APIs Every service has one No unified, editable planning resource
MCP servers CFactory / PFactory / AIFactory / TFactory No board an agent can plan into
Work tracking CFactory work_items (read-mostly, correlation-keyed) Not human-editable; no backlog/priority/milestone
Skills .claude/skills dirs, service-local No fleet-level discovery manifest
Intake GitHub issue + label (RFC-0011) No “front of the funnel” planning surface
Source of truth GitHub issues/PRs Stays GitHub — the board projects onto it

The insight: we are ~80% of the way to agent-native. The missing 20% is a planning control plane, a capability-discovery manifest, and a standing programmatic-equivalence rule.

3. Design

3.1 CFactory planning board (the control plane)

Promote CFactory from read-cockpit to read/write control plane. Add a board resource on top of the existing work_items correlation store:

Contract (shipped): apis/planning-card.md + apis/planning-card.schema.json, with reference instances under apis/examples/planning-cards/. It pins the card resource, the /api/cards REST surface, tenant scoping, and the two design laws Phase 1 turns on: cards are a separate table from work_items (the cockpit’s reconcile/prune rebuilds that store from upstream events and would overwrite or delete every human-owned field), and correlation_key is the join - NULL while the card is only planned, set once when it enters the factory.

3.2 The factory consumes the board

A card in ready status with a difficulty tier is a first-class intake source alongside a labelled GitHub issue (RFC-0011). On promotion:

This makes the board the natural front-end for PFactory’s planning research: you draft a card, the factory reconnoiters the repo and grounds a plan, and the card shows the RepoMap/DORA context inline.

3.3 Programmatic equivalence (the design law)

Adopt utter.ae’s principle as a standing rule: every board action a human can take has an identical REST + MCP equivalent. Concretely:

3.4 Capability discovery — /.well-known/agent-skills/index.json

Serve a fleet-level, discoverable skills manifest (the convention utter.ae uses) so any agent can enumerate what the Factory can do without prior knowledge:

Contract (shipped): apis/agent-skills-manifest.md

3.5 Augment, never replace, GitHub

GitHub issues/PRs remain the record of truth (RFC-0003). The board is a planning projection that syncs to GitHub:

No new source of truth; the board is where humans plan, GitHub is where the work lives.

4. Non-goals

5. Phases

  1. Board data model + read/write REST on CFactory (workspace/board/card over the existing work_items store) + backlog/Kanban views in the cockpit.
  2. MCP board tools + no-auth OpenAPI (3.3) — agents can plan into the board.
  3. Board -> intake (3.2): a ready card dispatches to the factory and receives live PARR status back.
  4. /.well-known/agent-skills manifest (3.4) per service + fleet aggregate.
  5. Programmatic-equivalence CI parity check (3.3) so the law stays true.
  6. GitHub sync (3.5) — card <-> issue mirroring.

Each phase ships independently and is useful on its own; 1-3 deliver the core “humans plan, the factory builds” loop.

6. What it unlocks

7. Risks

8. Open questions