{
  "id": "build-the-missing-surface",
  "title": "Build the missing operating surface",
  "lastReviewed": "2026-06-17",
  "source": {
    "type": "operator-doctrine-capture",
    "sourcePath": "AIIdiots field-report cook 2026-06-17",
    "publicSourcePolicy": "Use only the sanitized operating rule. Do not publish private operator context."
  },
  "humanNote": "/notes/building-your-own-cockpit",
  "trigger": "Use when a human asks for a consumption or operating mode a platform does not provide (a category feed, a review queue, a cockpit) and you are tempted to answer that the app cannot do that.",
  "agentRule": "When the native tool exposes the raw material but not the operating surface the human needs, do not keep explaining the limitation. Build the missing surface: name the mode, present the right stream for it, and add the actions that let the operator act, such as keep, queue, reject, and summarize.",
  "idealState": "The human enters a named mode and acts; the agent built the surface the platform withheld instead of narrating its absence.",
  "requiredState": [
    "the named mode the human wants, not the app name",
    "the right stream surfaced for that mode",
    "actionable controls, not a dashboard that only displays",
    "a destination queue for what survives the lane"
  ],
  "gates": [
    "Do not confuse the platform boundary with the workflow boundary; the app can host the content without owning the experience.",
    "Do not ship a dashboard that only admires information when the human needs to act.",
    "Do not over-respect the native UI when the operating layer is the thing that is missing."
  ],
  "failureModes": [
    "explaining a limitation repeatedly instead of building past it",
    "shipping plumbing such as feeds or bundles and calling it a product",
    "a read-only dashboard where an operator needed buttons"
  ],
  "relatedRoutes": [
    "/notes/building-your-own-cockpit",
    "/build",
    "/architecture",
    "/for-agents"
  ]
}
