Context
T1.4 of the #13349 map — NON-VIEW, unblocked NOW by the design-frame boundary (Grace's SSOT handoff, 2026-07-04: pipeline/wiring/lifecycle proceed in parallel; only view tranches wait on the drawn artifact).
The Problem
The shipped request intake (#13357's bounded path) lives in the proof-scaffold childapp. The keeper flow needs it as a MODULE-owned route: request text in → validated blueprint out (or an honest refusal reason) — no view coupling, so the SSOT's view tranche binds to it later without rework.
The Fix
apps/agentos/view/create/util/ (per the #14642 convention): the request→blueprint route as a pure-ish module — accepts the request + conversation context, produces a v2-shaped blueprint ({schema, title, config, data} per the #14644 contract), validates EMIT-SIDE via the single validator, returns {accepted, blueprint?|reason}. The shipped intake's bounded-request discipline carries over; the NL/agent call boundary is injected (testable without a live agent).
Acceptance Criteria
Out of Scope
The chat view (SSOT-gated) · instantiation (T2.7) · the registry (T2.9 sibling).
Related
Parent #13349 (T1.4) · #14644 (the contract) · #14642 (the convention) · #13357 (the shipped ancestor).
Live latest-open sweep: current in-context (tonight's herd tracked continuously); no equivalent.
Origin Session ID: a5af7cf6-45a3-42db-8a30-f04f4241a55c
Retrieval Hint: "keeper request blueprint route create module emit validation"
Context
T1.4 of the #13349 map — NON-VIEW, unblocked NOW by the design-frame boundary (Grace's SSOT handoff, 2026-07-04: pipeline/wiring/lifecycle proceed in parallel; only view tranches wait on the drawn artifact).
The Problem
The shipped request intake (#13357's bounded path) lives in the proof-scaffold childapp. The keeper flow needs it as a MODULE-owned route: request text in → validated blueprint out (or an honest refusal reason) — no view coupling, so the SSOT's view tranche binds to it later without rework.
The Fix
apps/agentos/view/create/util/(per the #14642 convention): the request→blueprint route as a pure-ish module — accepts the request + conversation context, produces a v2-shaped blueprint ({schema, title, config, data}per the #14644 contract), validates EMIT-SIDE via the single validator, returns{accepted, blueprint?|reason}. The shipped intake's bounded-request discipline carries over; the NL/agent call boundary is injected (testable without a live agent).Acceptance Criteria
Out of Scope
The chat view (SSOT-gated) · instantiation (T2.7) · the registry (T2.9 sibling).
Related
Parent #13349 (T1.4) · #14644 (the contract) · #14642 (the convention) · #13357 (the shipped ancestor).
Live latest-open sweep: current in-context (tonight's herd tracked continuously); no equivalent.
Origin Session ID: a5af7cf6-45a3-42db-8a30-f04f4241a55c Retrieval Hint: "keeper request blueprint route create module emit validation"