{
 "generated": "2026-10-19",
 "source": "projects/laravel-admin/handoffs/2026-10-12-T001-coverage.json",
 "source_meta": "13949e96b5a70055f8a43aacb9b0008fe2a6bb02",
 "status": "PHASE-3 WAVES: integration checklist. Every live row carries wave, layout, hero_ref, flagship, components, api_ops, needs_backend, permission and phone. A07 folded into A05 (timeline variant).",
 "archetypes": {
  "A01": "Index table (list, filter, bulk)",
  "A02": "Record detail (header + tabs + side panel)",
  "A03": "Create / edit form (long, sectioned, save bar)",
  "A04": "Wizard / import / bulk operation (steps, preview, progress)",
  "A05": "Dashboard / report (A07 timeline folds in as a variant)",
  "A06": "Live job / run monitor (polling progress, retry, failures)",
  "A07": "Timeline / gantt / schedule: FOLDED into A05 as its timeline variant (decision B); no live rows",
  "A08": "Media / photo review (grid, lightbox, verdict)",
  "A09": "Settings / configuration",
  "A10": "Preview / document / layout designer",
  "A11": "Inbox / thread (tickets, messages)",
  "A12": "Matrix / grid editor (prices, weights, rules)"
 },
 "counts": {
  "pages": 325,
  "retired": 2,
  "by_archetype": {
   "A01": 103,
   "A02": 18,
   "A03": 137,
   "A04": 13,
   "A05": 13,
   "A06": 7,
   "A08": 2,
   "A09": 17,
   "A10": 7,
   "A11": 1,
   "A12": 7
  },
  "confirmed": 276,
  "corrected": 49,
  "by_wave": {
   "1": 74,
   "2": 68,
   "3": 102,
   "4": 81
  },
  "flagship_rows": 34,
  "pages_with_needs_backend": 29,
  "needs_backend_entries": 70,
  "distinct_api_ops": 787,
  "action_mapping": {
   "actions_mapped": 1077,
   "matched_suggested": 100,
   "matched_restpath": 16,
   "live": 325,
   "manual": 6,
   "actions_needs_decision": 2,
   "actions_static": 1,
   "actions_client_only": 3
  }
 },
 "skipped_retired": [
  {
   "uri": "/admin/v1/gantt",
   "reason": "disposition=retire (founder 2026-10-09 answer 3, TD-1211); page-map counts.pages_retired",
   "group": "orders"
  },
  {
   "uri": "/admin/v1/orders",
   "reason": "disposition=retire (founder 2026-10-09 answer 3, TD-1211); page-map counts.pages_retired",
   "group": "orders"
  }
 ],
 "pages": [
  {
   "uri": "/admin/access",
   "module": "access",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 10,
   "action_kinds": {
    "load": 5,
    "bulk": 1,
    "form": 4
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "tabbed console: keys table, MCP door cards, presets, audit log"
   ],
   "reason": "5 load 4 form 1 bulk; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.api-keys.index",
    "admin.api-keys.destroy",
    "admin.api-keys.bulk-revoke",
    "admin.mcp-doors.index",
    "admin.mcp-doors.update",
    "admin.mcp-doors.allowlist.store",
    "admin.mcp-doors.allowlist.destroy",
    "admin.api-scope-presets.index",
    "admin.api-request-logs.index",
    "admin.api-request-logs.settings.update"
   ],
   "needs_backend": [
    {
     "id": "PR-017",
     "kind": "proposal",
     "what": "Dry-run impact preview on the four bulk writes",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-017"
   ],
   "partial_actions": [
    "admin.access.index#1",
    "admin.access.index#3",
    "admin.access.index#4",
    "admin.access.index#5",
    "admin.access.index#6",
    "admin.access.index#7"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm",
    "date",
    "bulk-bar",
    "action-bar"
   ],
   "permission": "manage api keys|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/access",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "6 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/access/keys/new",
   "module": "access",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.api-scope-presets.index",
    "admin.api-keys.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.access.keys.create#1",
    "admin.access.keys.create#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "manage api keys",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/access/keys/new",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/access/keys/{key}",
   "module": "access",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 2,
    "form": 3
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "3 form 2 load; fits A02 (Record detail) per uri ends with a record id",
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 2,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.api-keys.show",
    "admin.api-request-logs.index",
    "admin.api-keys.destroy",
    "admin.api-keys.update",
    "admin.api-keys.settings.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.access.keys.show#1",
    "admin.access.keys.show#2"
   ],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet"
   ],
   "permission": "manage api keys",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/access/keys/{key}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/access/presets/{preset}",
   "module": "access",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "form": 3
   },
   "archetype": "A03",
   "archetype_rule": "uri ends with a record id",
   "status": "corrected",
   "from": "A02",
   "reason": "3 forms (create/update/delete) on one editor; slug \"new\" = create mode; scope picker groups; an editor, not a read-only record",
   "overrides": [
    "slug \"new\" create mode",
    "locked/full-access read-only state for non-master"
   ],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.api-scope-presets.show",
    "admin.api-scope-presets.store",
    "admin.api-scope-presets.update",
    "admin.api-scope-presets.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.access.presets.show#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm"
   ],
   "permission": "manage api keys",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/access/presets/{preset}",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/factory-credentials",
   "module": "access",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 form 1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.factory-credentials.index",
    "admin.factory-credentials.rotate-passcode",
    "admin.factory-credentials.toggle-active"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.factory-credentials.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "manage factory credentials|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/factory-credentials",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/factory-credentials/create",
   "module": "access",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.factories.index",
    "admin.factory-credentials.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.factory-credentials.create#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "view factories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/factory-credentials/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/roles",
   "module": "access",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.roles.index",
    "admin.roles.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.roles.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view roles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/roles",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/roles/create",
   "module": "access",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "grouped permission checkbox grid"
   ],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.roles.permissions",
    "admin.roles.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create roles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/roles/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/roles/{role}/edit",
   "module": "access",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "grouped permission checkbox grid"
   ],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.roles.show",
    "admin.roles.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.roles.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit roles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/roles/{role}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/sub-admins",
   "module": "access",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 ajax 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.admins.index",
    "admin.admins.destroy",
    "admin.admins.reset-2fa"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm",
    "switch"
   ],
   "permission": "view admins|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/sub-admins",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/sub-admins/create",
   "module": "access",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 ajax 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.roles.permissions",
    "admin.roles.show",
    "admin.admins.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.sub-admins.create#1",
    "admin.sub-admins.create#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create admins|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/sub-admins/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/sub-admins/{sub_admin}/edit",
   "module": "access",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 ajax 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.admins.show",
    "admin.admins.api-key-revocation-preview",
    "admin.roles.show",
    "admin.admins.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.sub-admins.edit#1",
    "admin.sub-admins.edit#2",
    "admin.sub-admins.edit#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm"
   ],
   "permission": "edit admins|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/sub-admins/{sub_admin}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "3 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/event/admin_events",
   "module": "ops",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A09",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "load 1 + form 1: my-subscriptions checkbox set; personal notification settings",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.events.self.index",
    "admin.events.self.subscriptions"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "M05"
   ],
   "permission": "list events|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/event/admin_events",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/event/userList",
   "module": "ops",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.events.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "create events|edit events|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/event/userList",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/events",
   "module": "ops",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.events.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "create events|edit events|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/events",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/events/create",
   "module": "ops",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "bulk assign events to many users (select-all)"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.events.catalogue",
    "admin.accounts.index",
    "admin.events.bulk"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.events.create#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "events|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/events/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/events/subscribe/{id}",
   "module": "ops",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri ends with a record id",
   "status": "corrected",
   "from": "A02",
   "reason": "load 1 + form 1: a user's subscription checkbox form; edit form, not a detail page",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.events.show",
    "admin.events.subscriptions.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "list events|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/events/subscribe/{id}",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/events/{event}/edit",
   "module": "ops",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.events.show",
    "admin.events.catalogue",
    "admin.events.replace"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.events.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "list events|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/events/{event}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/failed-jobs",
   "module": "ops",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "uri is a job/run/print-run monitor",
   "status": "corrected",
   "from": "A06",
   "reason": "load 1 + form 2 (purge older than N, delete one), filters + 25/page; no polling or retry, a filtered table",
   "overrides": [
    "exception/payload drill to detail"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.failed-jobs.index",
    "admin.failed-jobs.bulk-destroy",
    "admin.failed-jobs.destroy"
   ],
   "needs_backend": [
    {
     "id": "PR-028",
     "kind": "proposal",
     "what": "Health strip for super admins",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-028"
   ],
   "partial_actions": [
    "admin.failed-jobs.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M11",
    "confirm",
    "M01"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/failed-jobs",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/failed-jobs/{id}",
   "module": "ops",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A02 (Record detail) per uri ends with a record id",
   "overrides": [
    "full stack trace + payload JSON viewer"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.failed-jobs.show",
    "admin.failed-jobs.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.failed-jobs.show#1"
   ],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M11",
    "M01"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/failed-jobs/{id}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/job/batches",
   "module": "ops",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "realtime": 1
   },
   "archetype": "A06",
   "archetype_rule": "uri is a job/run/print-run monitor",
   "status": "confirmed",
   "from": null,
   "reason": "load 1 + form 1 + realtime 1 (Echo progress per batch row); live job monitor",
   "overrides": [
    "realtime Echo row updates"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": true,
   "wave": 4,
   "layout": "A06·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A06 hero /admin/orders/print-jobs · phase-2/archetypes/shots/A06a.png",
   "api_ops": [
    "admin.dashboard.job-batches",
    "admin.dashboard.training-export"
   ],
   "needs_backend": [
    {
     "id": "PR-028",
     "kind": "proposal",
     "what": "Health strip for super admins",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-028",
    "PR-081"
   ],
   "components": [
    "data-table",
    "tabs",
    "status-chip",
    "progress",
    "alert",
    "M01",
    "M04",
    "M08",
    "table-states"
   ],
   "permission": "job_batches",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "dedicated",
    "route": "/m/job/batches",
    "answer": "Polled job list, failed first, big retry / reprint"
   },
   "notes": []
  },
  {
   "uri": "/admin/observability",
   "module": "ops",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A09",
   "archetype_rule": "uri has dashboard/report/analytics",
   "status": "corrected",
   "from": "A05",
   "reason": "load 1 + form 1 (logger on/off toggles); runtime config, no metrics",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.observability.index",
    "admin.observability.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/observability",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/schedule-monitor",
   "module": "ops",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A06",
   "archetype_rule": "uri is a job/run/print-run monitor",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, read-only latest-run per scheduled task; monitor surface (no list actions)",
   "overrides": [
    "read-only, latest log per task"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": true,
   "wave": 4,
   "layout": "A06·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A06 hero /admin/orders/print-jobs · phase-2/archetypes/shots/A06a.png",
   "api_ops": [
    "admin.schedule-monitor.index"
   ],
   "needs_backend": [
    {
     "id": "PR-028",
     "kind": "proposal",
     "what": "Health strip for super admins",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-028"
   ],
   "components": [
    "data-table",
    "tabs",
    "status-chip",
    "progress",
    "alert",
    "M01",
    "M04",
    "M08",
    "table-states"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "dedicated",
    "route": "/m/schedule-monitor",
    "answer": "Polled job list, failed first, big retry / reprint"
   },
   "notes": []
  },
  {
   "uri": "/admin/app-subscriptions",
   "module": "micro-apps",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "export": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, export 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "pivot matrix view (retailers x apps), read-only",
    "streamed CSV"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.app-subscriptions.index",
    "admin.app-subscriptions.export"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M01"
   ],
   "permission": "view micro_apps|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/app-subscriptions",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/micro-apps",
   "module": "micro-apps",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "ajax": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1, ajax 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "Stripe sync button"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.micro-apps.index",
    "admin.micro-apps.destroy",
    "admin.micro-apps.stripe-sync"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.micro-apps.index#2"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "money-input",
    "confirm"
   ],
   "permission": "view micro_apps|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/micro-apps",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/micro-apps/create",
   "module": "micro-apps",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "upload": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "upload 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "hero + gallery uploads",
    "brand_surfaces rows"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.micro-apps.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "money-input",
    "gallery-picker",
    "thumb",
    "file-uploader"
   ],
   "permission": "create micro_apps|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/micro-apps/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/micro-apps/{micro_app}/edit",
   "module": "micro-apps",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "upload": 1,
    "ajax": 2
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "ajax 2, upload 1, load 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "gallery drag-reorder / delete",
    "brand_surfaces rows"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.micro-apps.show",
    "admin.micro-apps.update",
    "admin.micro-apps.images.reorder",
    "admin.micro-apps.images.delete"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.micro-apps.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M14",
    "confirm",
    "gallery-picker",
    "thumb",
    "file-uploader"
   ],
   "permission": "edit micro_apps|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/micro-apps/{micro_app}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/providers",
   "module": "micro-apps",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.providers.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "view providers|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/providers",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/unlock-gateway/credit-points",
   "module": "micro-apps",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "manual credit form panel (money-like ledger)"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.unlock-gateway.transactions.index",
    "admin.unlock-points.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "money-input"
   ],
   "permission": "manage unlock_gateway|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/unlock-gateway/credit-points",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/unlock-gateway/overrides",
   "module": "micro-apps",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "apply-override form panel"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.unlock-gateway.overrides.index",
    "admin.unlock-override.set"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.unlock-gateway.overrides#2"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "manage unlock_gateway|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/unlock-gateway/overrides",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/unlock-gateway/points-settings",
   "module": "micro-apps",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A09",
   "archetype_rule": "uri has settings/config",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A09 (Settings / configuration) per uri has settings/config",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.unlock-gateway.points-settings.show",
    "admin.unlock-gateway.points-settings.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm"
   ],
   "permission": "manage unlock_gateway|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/unlock-gateway/points-settings",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/unlock-gateway/retailer/{retailer}/statement",
   "module": "micro-apps",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "statement header totals over ledger table"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.unlock-gateway.retailer-statement"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "manage unlock_gateway|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/unlock-gateway/retailer/{retailer}/statement",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/article-analytics",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A05",
   "archetype_rule": "uri has dashboard/report/analytics",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A05 (Dashboard / report) per uri has dashboard/report/analytics",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": true,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A05 hero /admin/dashboard · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.article-analytics.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08"
   ],
   "permission": "view article analytics|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/article-analytics",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": []
  },
  {
   "uri": "/admin/article-analytics/retailer/{userId}",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A05",
   "archetype_rule": "uri has dashboard/report/analytics",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A05 (Dashboard / report) per uri has dashboard/report/analytics",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A05 hero /admin/dashboard · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.article-analytics.retailer"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08"
   ],
   "permission": "view article analytics|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/article-analytics/retailer/{userId}",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": []
  },
  {
   "uri": "/admin/article-categories",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1, ajax 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "drag-sort rows"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.article-categories.index",
    "admin.article-categories.reorder",
    "admin.article-categories.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm"
   ],
   "permission": "view articles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/article-categories",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/article-categories/create",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.article-categories.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M07"
   ],
   "permission": "view articles|admin + create articles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/article-categories/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/article-categories/{id}/edit",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.article-categories.show",
    "admin.article-categories.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M07"
   ],
   "permission": "view articles|admin + edit articles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/article-categories/{id}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/articles",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 2,
    "form": 3
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 3, load 2; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.articles.index",
    "admin.article-categories.index",
    "admin.articles.publish",
    "admin.articles.archive",
    "admin.articles.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.articles.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view articles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/articles",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/articles/create",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 2,
    "upload": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, upload 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "rich-text body editor with inline image upload",
    "Bench destination / recipient picker"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.article-categories.index",
    "admin.micro-apps.index",
    "admin.articles.upload-image",
    "admin.articles.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.articles.create#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M16",
    "M11",
    "thumb",
    "file-uploader"
   ],
   "permission": "view articles|admin + create articles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/articles/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/articles/{id}/analytics",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A05",
   "archetype_rule": "uri has dashboard/report/analytics",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A05 (Dashboard / report) per uri has dashboard/report/analytics",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A05 hero /admin/dashboard · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.articles.analytics"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08"
   ],
   "permission": "view article analytics|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/articles/{id}/analytics",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": []
  },
  {
   "uri": "/admin/articles/{id}/edit",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 10,
   "action_kinds": {
    "load": 4,
    "upload": 2,
    "form": 3,
    "ajax": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 4, form 3, upload 2, ajax 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "rich-text body editor",
    "attachment queue (10 files)",
    "engagement summary side card"
   ],
   "retired": false,
   "complexity": 5,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.articles.show",
    "admin.article-categories.index",
    "admin.micro-apps.index",
    "admin.articles.upload-image",
    "admin.articles.analytics",
    "admin.articles.update",
    "admin.articles.publish",
    "admin.articles.archive",
    "admin.articles.attachments.store",
    "admin.articles.attachments.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.articles.edit#3",
    "admin.articles.edit#9"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M16",
    "confirm",
    "M01",
    "thumb",
    "date",
    "chart-frame",
    "file-uploader"
   ],
   "permission": "view articles|admin + edit articles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/articles/{id}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/automated-emails",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "ajax": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, ajax 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "kill-switch toggle per row with confirm"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.automated-emails.index",
    "admin.automated-emails.toggle"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M11",
    "switch"
   ],
   "permission": "manage automated emails|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/automated-emails",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/automated-emails/{key}",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "ajax": 1
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, ajax 1; fits A02 (Record detail) per uri ends with a record id",
   "overrides": [
    "kill-switch toggle in header"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.automated-emails.show",
    "admin.automated-emails.toggle"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M11",
    "switch"
   ],
   "permission": "manage automated emails|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/automated-emails/{key}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/billboards",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.billboards.index",
    "admin.billboards.publish",
    "admin.billboards.archive"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.billboards.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm",
    "thumb"
   ],
   "permission": "view billboards|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/billboards",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/billboards/create",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "upload": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "upload 1, load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.accounts.index",
    "admin.billboards.upload-image",
    "admin.billboards.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.billboards.create#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "thumb",
    "file-uploader"
   ],
   "permission": "view billboards|admin + create billboards|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/billboards/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/billboards/{id}/edit",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 6,
   "action_kinds": {
    "load": 2,
    "upload": 1,
    "form": 3
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "form 3, load 2, upload 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.billboards.show",
    "admin.accounts.index",
    "admin.billboards.upload-image",
    "admin.billboards.update",
    "admin.billboards.publish",
    "admin.billboards.archive"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.billboards.edit#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm",
    "thumb",
    "file-uploader"
   ],
   "permission": "view billboards|admin + edit billboards|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/billboards/{id}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/drip-sequences",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 2,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, form 1, ajax 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "global drip kill-switch banner"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.drip-sequences.index",
    "admin.drip-sequences.gate",
    "admin.automated-emails.toggle",
    "admin.drip-sequences.archive"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.drip-sequences.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M11",
    "confirm",
    "switch",
    "M05"
   ],
   "permission": "view drip sequences|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/drip-sequences",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/drip-sequences/create",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "repeatable step rows"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.micro-apps.index",
    "admin.drip-sequences.defaults",
    "admin.drip-sequences.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.drip-sequences.create#1",
    "admin.drip-sequences.create#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "view drip sequences|admin + create drip sequences|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/drip-sequences/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/drip-sequences/{id}/edit",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 8,
   "action_kinds": {
    "load": 3,
    "form": 5
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "form 5, load 3; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "repeatable step rows, per-step forms",
    "live-enrolment warning"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.drip-sequences.show",
    "admin.drip-enrolments.index",
    "admin.micro-apps.index",
    "admin.drip-sequences.update",
    "admin.drip-sequences.archive",
    "admin.drip-sequences.steps.store",
    "admin.drip-sequences.steps.update",
    "admin.drip-sequences.steps.deactivate"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.drip-sequences.edit#2",
    "admin.drip-sequences.edit#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04",
    "confirm"
   ],
   "permission": "view drip sequences|admin + edit drip sequences|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/drip-sequences/{id}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/email-templates",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.email-templates.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "manage email templates|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/email-templates",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/email-templates/house-style",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 8,
   "action_kinds": {
    "load": 1,
    "form": 3,
    "ajax": 4
   },
   "archetype": "A10",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "same editor view as {templateKey}/edit: 3 form + 4 ajax incl live iframe preview, proof send, version diff/revert; split editor+render preview, not a list",
   "overrides": [
    "frame-wide edit warning (wraps N templates)",
    "version history drawer + diff"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A10 hero /admin/email-templates/{templateKey}/edit · phase-2/archetypes/shots/A10.png",
   "api_ops": [
    "admin.email-templates.show",
    "admin.email-templates.update",
    "admin.email-templates.preview",
    "admin.email-templates.reset",
    "admin.email-templates.send-proof",
    "admin.email-templates.versions.index",
    "admin.email-templates.versions.show",
    "admin.email-templates.versions.revert"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "field",
    "segmented",
    "badge",
    "timeline",
    "M05",
    "save-bar",
    "unsaved-guard",
    "M11",
    "switch",
    "date"
   ],
   "permission": "manage email templates|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/email-templates/house-style",
    "answer": "Preview frame only"
   },
   "notes": []
  },
  {
   "uri": "/admin/email-templates/{templateKey}/edit",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 8,
   "action_kinds": {
    "load": 1,
    "form": 3,
    "ajax": 4
   },
   "archetype": "A10",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "corrected",
   "from": "A03",
   "reason": "4 ajax (live iframe preview, proof email, version list, diff) + 3 form (save/reset/revert); document layout editor with live render, not a plain form",
   "overrides": [
    "version history drawer + diff",
    "send proof"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": true,
   "example": false,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "self: A10 hero · phase-2/archetypes/shots/A10.png",
   "api_ops": [
    "admin.email-templates.show",
    "admin.email-templates.update",
    "admin.email-templates.preview",
    "admin.email-templates.reset",
    "admin.email-templates.send-proof",
    "admin.email-templates.versions.index",
    "admin.email-templates.versions.show",
    "admin.email-templates.versions.revert"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "field",
    "segmented",
    "badge",
    "timeline",
    "M05",
    "save-bar",
    "unsaved-guard",
    "M11",
    "switch",
    "date"
   ],
   "permission": "manage email templates|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/email-templates/{templateKey}/edit",
    "answer": "Preview frame only"
   },
   "notes": []
  },
  {
   "uri": "/admin/email-templates/{templateKey}/versions",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.email-templates.versions.index",
    "admin.email-templates.versions.revert"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M11",
    "M05"
   ],
   "permission": "manage email templates|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/email-templates/{templateKey}/versions",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/email-templates/{templateKey}/versions/{version}",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A02 (Record detail) per uri ends with a record id",
   "overrides": [
    "diff vs current"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.email-templates.versions.show",
    "admin.email-templates.versions.revert"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M05"
   ],
   "permission": "manage email templates|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/email-templates/{templateKey}/versions/{version}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/media-library",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 9,
   "action_kinds": {
    "load": 2,
    "upload": 1,
    "ajax": 5,
    "export": 1
   },
   "archetype": "A08",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "confirmed",
   "from": null,
   "reason": "load 2 + upload 1 + ajax 5 + export 1: file/media manager grid",
   "overrides": [
    "file-manager tree + folder ops (create/rename/move/zip)",
    "soft-delete to .trash"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": true,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A08 hero /admin/vision-checks/results · phase-2/archetypes/shots/A08.png",
   "api_ops": [
    "admin.media-library.list",
    "admin.media-library.files.upload",
    "admin.media-library.folders.create",
    "admin.media-library.files.rename",
    "admin.media-library.files.copy",
    "admin.media-library.files.delete",
    "admin.media-library.download",
    "admin.media-library.file",
    "admin.media-library.archives.create"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "card-gallery",
    "M10",
    "tabs",
    "status-chip",
    "sheet",
    "kbd",
    "M15",
    "confirm",
    "gallery-picker",
    "thumb",
    "file-uploader",
    "M01"
   ],
   "permission": "media_library|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/media-library",
    "answer": "Read-only photo grid"
   },
   "notes": []
  },
  {
   "uri": "/admin/news",
   "module": "content",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.news.index",
    "admin.news.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view news|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/news",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/trainings",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 5,
   "action_kinds": {
    "load": 2,
    "ajax": 2,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, ajax 2, form 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "row status toggle"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.trainings.index",
    "admin.training-categories.index",
    "admin.training-categories.subcategories",
    "admin.trainings.status",
    "admin.trainings.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M11",
    "confirm",
    "switch"
   ],
   "permission": "view trainings|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/trainings",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/posts",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "dead route: aborts 403 for everyone; drop or redirect, do not design",
    "no-design"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [],
   "needs_backend": [
    {
     "id": "admin.posts.index#1",
     "kind": "action",
     "what": "Bare /admin/posts index: PostController@index matches neither the admin.news nor admin.trainings URL and falls through to abort(403) for everyone",
     "proposal": "PR-079",
     "tag": "needs-a-decision"
    }
   ],
   "proposals": [
    "PR-079"
   ],
   "api_ops_note": "no-design page: no REST operation by decision; see PR-079",
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "n/a: no-design page",
   "permission_source": "none recorded",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/posts",
    "answer": "No phone view (no-design page)"
   },
   "notes": [
    "no-design: keep the row, spend no design effort (P0 default)"
   ]
  },
  {
   "uri": "/admin/posts/create",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 2,
    "ajax": 1,
    "form": 1,
    "upload": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, upload 1, form 1, ajax 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "news vs training variant switch"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.accounts.index",
    "admin.training-categories.index",
    "admin.training-categories.subcategories",
    "admin.news.store",
    "admin.trainings.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.posts.create#1",
    "admin.posts.create#4"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M07",
    "M11",
    "thumb",
    "file-uploader"
   ],
   "permission": "view trainings|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/posts/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/posts/{post}/edit",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 6,
   "action_kinds": {
    "load": 3,
    "ajax": 1,
    "form": 2
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 3, form 2, ajax 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "news vs training variant switch"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.trainings.show",
    "admin.accounts.index",
    "admin.training-categories.index",
    "admin.training-categories.subcategories",
    "admin.news.update",
    "admin.trainings.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.posts.edit#2",
    "admin.posts.edit#5"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M07",
    "M11",
    "thumb"
   ],
   "permission": "view trainings|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/posts/{post}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/photoMarket/categories",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "form 1 only (create category name/description); path rule \"photo\" misfired, no media review",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.photo-market.categories.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M14",
    "thumb"
   ],
   "permission": "view photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/photoMarket/categories",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/photoMarket/editCategory/{id}",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 1 + form 1 (name/description edit)",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.photo-market.categories.show",
    "admin.photo-market.categories.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm"
   ],
   "permission": "view photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/photoMarket/editCategory/{id}",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/photoMarket/combo",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "form 1 only (create combo); no images handled (combo_image is a dead field)",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.photo-market.combos.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "thumb"
   ],
   "permission": "view photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/photoMarket/combo",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/photoMarket/combo_category",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 3,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 3 + ajax 1 + form 1: combo create with per-currency price rows and media-picker popup images; a form, not a review grid",
   "overrides": [
    "per-currency price columns",
    "media-picker modal"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.photo-market.categories.index",
    "admin.currencies.index",
    "admin.photo-market.category-months",
    "admin.media-library.list",
    "admin.photo-market.combo-categories.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.photoMarket.comboCategories.get#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "money-input",
    "gallery-picker",
    "thumb",
    "date"
   ],
   "permission": "view photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/photoMarket/combo_category",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/photoMarket/editComboCategory/{id}",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 3,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 3 + ajax 1 + form 1: combo edit with month pivots and per-currency prices",
   "overrides": [
    "per-currency price columns",
    "media-picker modal"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.photo-market.combo-categories.show",
    "admin.currencies.index",
    "admin.photo-market.category-months",
    "admin.media-library.list",
    "admin.photo-market.combo-categories.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.photoMarket.editComboCategory#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "money-input",
    "confirm",
    "gallery-picker",
    "thumb",
    "date"
   ],
   "permission": "view photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/photoMarket/editComboCategory/{id}",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/photoMarket/month",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 2 + form 1: create month with per-currency prices",
   "overrides": [
    "per-currency price columns"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.photo-market.categories.index",
    "admin.currencies.index",
    "admin.photo-market.months.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.photoMarket.months.get#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "money-input",
    "thumb",
    "date"
   ],
   "permission": "view photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/photoMarket/month",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/photoMarket/editMonth/{id}",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 2 + form 1: month name + per-currency price fields",
   "overrides": [
    "per-currency price columns"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.photo-market.months.show",
    "admin.currencies.index",
    "admin.photo-market.months.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.photoMarket.editMonth#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "money-input",
    "confirm",
    "date"
   ],
   "permission": "view photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/photoMarket/editMonth/{id}",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/photoMarket/photos",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 2 + form 1: create photo set via media-picker; form, not review",
   "overrides": [
    "media-picker image set"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.photo-market.months.index",
    "admin.media-library.list",
    "admin.photo-market.photos.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "gallery-picker",
    "thumb",
    "date"
   ],
   "permission": "view photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/photoMarket/photos",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/photoMarket/editPhoto/{id}",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 2 + form 1: photo-set form filled via media-picker modal; no verdict/lightbox actions",
   "overrides": [
    "media-picker image set"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.photo-market.photos.show",
    "admin.media-library.list",
    "admin.photo-market.photos.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm",
    "gallery-picker",
    "thumb",
    "date"
   ],
   "permission": "view photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/photoMarket/editPhoto/{id}",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/photoMarket/listCategories",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 2
   },
   "archetype": "A01",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 1 + ajax 2 (drag reorder, active toggle) on paginated list; table behaviour, no photos",
   "overrides": [
    "drag-sort",
    "active switch"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.photo-market.categories.index",
    "admin.photo-market.categories.reorder",
    "admin.photo-market.categories.active"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm",
    "switch",
    "thumb"
   ],
   "permission": "edit photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/photoMarket/listCategories",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/photoMarket/listMonths",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 2
   },
   "archetype": "A01",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 1 + ajax 2 (reorder, active toggle) on paginated list",
   "overrides": [
    "drag-sort",
    "active switch"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.photo-market.months.index",
    "admin.photo-market.months.reorder",
    "admin.photo-market.months.active"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm",
    "switch",
    "thumb",
    "date"
   ],
   "permission": "edit photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/photoMarket/listMonths",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/photoMarket/listCombos",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 2
   },
   "archetype": "A01",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 1 + ajax 2 (reorder, active toggle) on paginated list",
   "overrides": [
    "drag-sort",
    "active switch"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.photo-market.combos.index",
    "admin.photo-market.combos.reorder",
    "admin.photo-market.combos.active"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm",
    "switch",
    "thumb"
   ],
   "permission": "edit photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/photoMarket/listCombos",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/photoMarket/listPhotos",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 2
   },
   "archetype": "A01",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 1 + ajax 2 (reorder, active toggle) on paginated photo-set list; no verdict/lightbox",
   "overrides": [
    "thumbnail column",
    "drag-sort",
    "active switch"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.photo-market.photos.index",
    "admin.photo-market.photos.reorder",
    "admin.photo-market.photos.active"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm",
    "switch",
    "thumb",
    "date"
   ],
   "permission": "edit photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/photoMarket/listPhotos",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/photoMarket/listComboCategories",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "ajax": 3
   },
   "archetype": "A01",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 1 + ajax 3 (reorder, active toggle, months modal) on paginated list",
   "overrides": [
    "drag-sort",
    "active switch"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.photo-market.combo-categories.index",
    "admin.photo-market.combo-categories.reorder",
    "admin.photo-market.combo-categories.active",
    "admin.photo-market.combos.months"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm",
    "switch",
    "thumb",
    "date"
   ],
   "permission": "view photo-market|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/photoMarket/listComboCategories",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/watermark-text",
   "module": "content",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 1,
   "action_kinds": {
    "redirect_action": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "redirect_action 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "developer test page that writes a file to disk; drop, do not design",
    "no-design"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [],
   "needs_backend": [
    {
     "id": "admin.watermark-text#1",
     "kind": "action",
     "what": "Developer test page: GET draws \"MyNotePaper\" text onto public/images/Soft.jpg with Intervention Image, WRITES public/images/new-new-soft.jpg to disk, and shows ",
     "proposal": "PR-079",
     "tag": "needs-a-decision"
    }
   ],
   "proposals": [
    "PR-079"
   ],
   "api_ops_note": "no-design page: no REST operation by decision; see PR-079",
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "thumb"
   ],
   "permission": "n/a: no-design page",
   "permission_source": "none recorded",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/watermark-text",
    "answer": "No phone view (no-design page)"
   },
   "notes": [
    "no-design: keep the row, spend no design effort (P0 default)"
   ]
  },
  {
   "uri": "/admin/categories",
   "module": "products",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "ajax": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form 1 ajax; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.training-categories.index",
    "admin.training-categories.destroy",
    "admin.training-categories.reorder"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm"
   ],
   "permission": "view trainings|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/categories",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/categories/create",
   "module": "products",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.training-categories.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M07",
    "thumb"
   ],
   "permission": "token scope trainings:write",
   "permission_source": "x-token-scope of the page's ops (no x-permission in spec)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/categories/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/categories/{category}/edit",
   "module": "products",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.training-categories.show",
    "admin.training-categories.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "thumb"
   ],
   "permission": "view trainings|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/categories/{category}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/subcategories",
   "module": "products",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "ajax": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form 1 ajax; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.training-subcategories.index",
    "admin.training-subcategories.destroy",
    "admin.training-subcategories.reorder"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm"
   ],
   "permission": "view trainings|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/subcategories",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/subcategories/create",
   "module": "products",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.training-categories.index",
    "admin.training-subcategories.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M14",
    "M07",
    "thumb"
   ],
   "permission": "view trainings|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/subcategories/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/subcategories/{subcategory}/edit",
   "module": "products",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.training-subcategories.show",
    "admin.training-subcategories.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "thumb"
   ],
   "permission": "view trainings|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/subcategories/{subcategory}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/default-measurements",
   "module": "products",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "ajax": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form 1 ajax; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.default-measurements.index",
    "admin.default-measurements.destroy",
    "admin.default-measurements.reorder"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm"
   ],
   "permission": "view default_measurements|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/default-measurements",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/default-measurements/create",
   "module": "products",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.settings.index",
    "admin.default-measurements.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create default_measurements|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/default-measurements/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/default-measurements/{default_measurement}/edit",
   "module": "products",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.default-measurements.show",
    "admin.default-measurements.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit default_measurements|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/default-measurements/{default_measurement}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/formulas",
   "module": "products",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.formulas.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "view formulas|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/formulas",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/formulas/factory",
   "module": "products",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A05",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "1 load of factory weights feeding a client-side round-robin allocation simulator; no writes; analysis view, not an index",
   "overrides": [
    "client-side simulator controls"
   ],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A05 hero /admin/dashboard · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.formulas.factories"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08"
   ],
   "permission": "view|manage formulas|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/formulas/factory",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": []
  },
  {
   "uri": "/admin/formulas/{formula}",
   "module": "products",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "ajax": 1
   },
   "archetype": "A12",
   "archetype_rule": "uri ends with a record id",
   "status": "corrected",
   "from": "A02",
   "reason": "load renders main product -> combinations x products inputs (per type ub/lb); 1 ajax batch-upserts every formula of a combination/excess tab; a grid editor, not a record detail",
   "overrides": [
    "tabs per combination / excess",
    "formula expression cells with variables"
   ],
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 2,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A12 hero /admin/pricing/create · phase-2/archetypes/shots/A12.png",
   "api_ops": [
    "admin.formulas.show",
    "admin.formulas.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.formulas.show#1"
   ],
   "components": [
    "M02",
    "combobox",
    "toast",
    "error-states",
    "density",
    "M01"
   ],
   "permission": "view pt_colors|admin AND view|manage formulas|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/formulas/{formula}",
    "answer": "Read-only card per row"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/main-products",
   "module": "products",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 ajax 1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.main-products.index",
    "admin.main-products.reorder",
    "admin.main-products.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.main-products.index#3"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm",
    "switch"
   ],
   "permission": "view main_products|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/main-products",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/main-products/create",
   "module": "products",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "upload": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 upload 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.products.index",
    "admin.media-library.list",
    "admin.main-products.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.main-products.create#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M07",
    "gallery-picker",
    "thumb",
    "file-uploader"
   ],
   "permission": "create main_products|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/main-products/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/main-products/{main_product}/edit",
   "module": "products",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "upload": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 upload 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.main-products.show",
    "admin.media-library.list",
    "admin.main-products.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.main-products.edit#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "gallery-picker",
    "thumb",
    "file-uploader"
   ],
   "permission": "edit main_products|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/main-products/{main_product}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/products",
   "module": "products",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "ajax": 3
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "3 ajax 1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.products.index",
    "admin.products.reorder",
    "admin.products.destroy",
    "admin.products.toggle-cloud-flag"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.products.index#3"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "M04",
    "confirm",
    "switch"
   ],
   "permission": "view products|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/products",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/products/create",
   "module": "products",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.products.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M07",
    "M04"
   ],
   "permission": "create products|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/products/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/products/{product}/edit",
   "module": "products",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.products.show",
    "admin.products.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "edit products|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/products/{product}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/product-quality-checks",
   "module": "products",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "ajax": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 ajax 1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.product-quality-checks.index",
    "admin.product-quality-checks.force-delete",
    "admin.product-quality-checks.reorder",
    "admin.product-quality-checks.check.off"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm",
    "switch"
   ],
   "permission": "view product_quality_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/product-quality-checks",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/product-quality-checks/{product}",
   "module": "products",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "upload": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri ends with a record id",
   "status": "corrected",
   "from": "A02",
   "reason": "1 whole-set save form (update existing + create new + soft-delete omitted) + 1 image upload; a repeater editor, not a record detail",
   "overrides": [
    "repeater rows with image + camera_frame per row",
    "header_ids checkbox strip"
   ],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.product-quality-checks.manage",
    "admin.media-library.list",
    "admin.product-quality-checks.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.product-quality-checks.manage#1",
    "admin.product-quality-checks.manage#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm",
    "gallery-picker",
    "thumb",
    "file-uploader"
   ],
   "permission": "manage product_quality_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/product-quality-checks/{product}",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/combinations",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "form": 2,
    "ajax": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "inline money edit (EUR/USD express cost)",
    "drag reorder"
   ],
   "reason": "2 form 1 load 1 ajax; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board CB1 · states/phone CB2 · CB5; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/CB1.png)",
   "api_ops": [
    "admin.main-products.combinations.index",
    "admin.main-products.combinations.express-cost",
    "admin.main-products.combinations.declaration-profile",
    "admin.main-products.combinations.reorder"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.combinations.index#1",
    "admin.combinations.index#3"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "money-input",
    "combobox"
   ],
   "permission": "view combinations|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/combinations",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "flagship designs round 2: drawn as CB1 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/combinations/create",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board CB3 · states/phone CB5; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/CB3.png)",
   "api_ops": [
    "admin.main-products.show",
    "admin.main-products.combinations.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create combinations|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/combinations/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "flagship designs round 2: drawn as CB3 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/combinations/edit/{main_product}",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board CB4 · states/phone CB5; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/CB4.png)",
   "api_ops": [
    "admin.main-products.combinations.index",
    "admin.main-products.combinations.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit combinations|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/combinations/edit/{main_product}",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "flagship designs round 2: drawn as CB4 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/component-default-rules",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "form": 3
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "3 form 1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board CR1 · states/phone CR4 · CR5 · CR6; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/CR1.png)",
   "api_ops": [
    "admin.component-default-rules.index",
    "admin.component-default-rules.restore",
    "admin.component-default-rules.toggle",
    "admin.component-default-rules.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm",
    "switch"
   ],
   "permission": "view component_default_rules|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/component-default-rules",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "flagship designs round 2: drawn as CR1 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/component-default-rules/create",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board CR2 · states/phone CR6; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/CR2.png)",
   "api_ops": [
    "admin.fabric-codes.index",
    "admin.component-default-rules.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.component-default-rules.create#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create component_default_rules|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/component-default-rules/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "flagship designs round 2: drawn as CR2 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/component-default-rules/{componentDefaultRule}/edit",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board CR3 · states/phone CR6; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/CR3.png)",
   "api_ops": [
    "admin.component-default-rules.show",
    "admin.fabric-codes.index",
    "admin.component-default-rules.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.component-default-rules.edit#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit component_default_rules|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/component-default-rules/{componentDefaultRule}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "flagship designs round 2: drawn as CR3 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/design-blockers",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 export 1 ajax 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board DB1 · states/phone DB6 · DB7 · DB8; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/DB1.png)",
   "api_ops": [
    "admin.design-blockers.index",
    "admin.design-blockers.export",
    "admin.design-blockers.toggle",
    "admin.design-blockers.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M11",
    "confirm",
    "switch",
    "M01"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/design-blockers",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "flagship designs round 2: drawn as DB1 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/design-blockers/create",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 ajax 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board DB2 · states/phone DB8; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/DB2.png)",
   "api_ops": [
    "admin.products.designs",
    "admin.design-blockers.preset-impact",
    "admin.design-blockers.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M15"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/design-blockers/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "flagship designs round 2: drawn as DB2 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/design-blockers/upload",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "upload": 1,
    "ajax": 2
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 ajax 1 upload; fits A04 (Wizard / import / bulk operation) per uri has import/bulk/wizard",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": null,
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board DB4 · states/phone DB5 · DB8; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/DB4.png)",
   "api_ops": [
    "admin.design-blockers.upload",
    "admin.design-blockers.confirm-upload",
    "admin.design-blockers.cancel-upload"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "M11",
    "file-uploader"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/design-blockers/upload",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": [
    "flagship designs round 2: drawn as DB4 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/design-blockers/{design_blocker}/edit",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 4,
   "action_kinds": {
    "load": 2,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 load 1 ajax 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board DB3 · states/phone DB8; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/DB3.png)",
   "api_ops": [
    "admin.design-blockers.show",
    "admin.products.designs",
    "admin.design-blockers.preset-impact",
    "admin.design-blockers.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M15"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/design-blockers/{design_blocker}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "flagship designs round 2: drawn as DB3 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/design-components",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "form": 2,
    "ajax": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 form 2 ajax 1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board DC1 · states/phone DC4 · DC5; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/DC1.png)",
   "api_ops": [
    "admin.design-components.index",
    "admin.design-components.restore",
    "admin.design-components.destroy",
    "admin.design-components.reorder"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm"
   ],
   "permission": "view components|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/design-components",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "flagship designs round 2: drawn as DC1 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/design-components/create",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board DC2 · states/phone DC5; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/DC2.png)",
   "api_ops": [
    "admin.pt-components.index",
    "admin.design-components.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.design-components.create#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M07",
    "M04"
   ],
   "permission": "create components|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/design-components/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "flagship designs round 2: drawn as DC2 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/design-components/{design_component}/edit",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board DC3 · states/phone DC5; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/DC3.png)",
   "api_ops": [
    "admin.design-components.show",
    "admin.pt-components.index",
    "admin.design-components.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.design-components.edit#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit components|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/design-components/{design_component}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "flagship designs round 2: drawn as DC3 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/designs",
   "module": "designs",
   "founder_tier": "very_important",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 ajax 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 1,
   "layout": "A01·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/ (DESIGNS-R1, awaiting Frank; truth phase-2/truth/TRUTH-DESIGNS.md)",
   "api_ops": [
    "admin.designs.index",
    "admin.designs.sort",
    "admin.designs.destroy"
   ],
   "needs_backend": [
    {
     "id": "PR-003",
     "kind": "proposal",
     "what": "Record-wide history / activity / audit store (activity panel, time-travel, design + pricing undo, bulk-run before-values)",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-003"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm"
   ],
   "permission": "view designs|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/designs",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/designs/create",
   "module": "designs",
   "founder_tier": "very_important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 7,
   "action_kinds": {
    "load": 3,
    "ajax": 2,
    "upload": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "type template rendered on type/parent change",
    "swatch picker + file manager upload"
   ],
   "reason": "3 load 2 ajax 1 upload 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/ (DESIGNS-R1, awaiting Frank; truth phase-2/truth/TRUTH-DESIGNS.md)",
   "api_ops": [
    "admin.design-types.index",
    "admin.designs.list",
    "admin.pt-colors.index",
    "admin.designs.type-template",
    "admin.media-library.list",
    "admin.designs.store"
   ],
   "needs_backend": [
    {
     "id": "PR-003",
     "kind": "proposal",
     "what": "Record-wide history / activity / audit store (activity panel, time-travel, design + pricing undo, bulk-run before-values)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-062",
     "kind": "proposal",
     "what": "Design create silently drops the surcharge (extra_meter)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-063",
     "kind": "proposal",
     "what": "Camera frame and Supplier on the design create form",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-003",
    "PR-062",
    "PR-063"
   ],
   "partial_actions": [
    "admin.designs.create#3",
    "admin.designs.create#6"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M11",
    "confirm",
    "gallery-picker",
    "thumb",
    "file-uploader"
   ],
   "permission": "create designs|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/designs/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/designs/{design}/edit",
   "module": "designs",
   "founder_tier": "very_important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 14,
   "action_kinds": {
    "load": 5,
    "form": 1,
    "ajax": 5,
    "bulk": 2,
    "upload": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "popup-entry grid with chunked save + bulk-set supplier/surcharge",
    "swatch picker",
    "R9 fork-on-change / apply_to_history"
   ],
   "reason": "5 load 5 ajax 2 bulk 1 form 1 upload; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": true,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/ (DESIGNS-R1, awaiting Frank; truth phase-2/truth/TRUTH-DESIGNS.md)",
   "api_ops": [
    "admin.designs.show",
    "admin.special-handling-codes.index",
    "admin.camera-frames.index",
    "admin.products.designs",
    "admin.pt-colors.index",
    "admin.designs.update",
    "admin.designs.popups.chunk",
    "admin.designs.meta.update",
    "admin.designs.popups.destroy",
    "admin.designs.popups.order-refs",
    "admin.designs.fields.sort",
    "admin.designs.fields.bulk-supplier",
    "admin.designs.fields.bulk-surcharge",
    "admin.media-library.list"
   ],
   "needs_backend": [
    {
     "id": "PR-003",
     "kind": "proposal",
     "what": "Record-wide history / activity / audit store (activity panel, time-travel, design + pricing undo, bulk-run before-values)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-008",
     "kind": "proposal",
     "what": "Who else is here (presence + soft edit lock)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-064",
     "kind": "proposal",
     "what": "'Retailers carrying this design / priced?' panel on the design page",
     "tag": "needs-backend"
    },
    {
     "id": "PR-066",
     "kind": "proposal",
     "what": "Align design 'info' validation (max:1000 on the edit path)",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-003",
    "PR-008",
    "PR-031",
    "PR-064",
    "PR-065",
    "PR-066",
    "PR-067"
   ],
   "partial_actions": [
    "admin.designs.edit#2",
    "admin.designs.edit#5",
    "admin.designs.edit#6",
    "admin.designs.edit#7",
    "admin.designs.edit#8",
    "admin.designs.edit#14"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M14",
    "M15",
    "money-input",
    "M04",
    "confirm",
    "gallery-picker",
    "thumb",
    "bulk-bar",
    "action-bar",
    "file-uploader"
   ],
   "permission": "edit designs|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/designs/{design}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "6 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/designs/bulk-hub",
   "module": "designs",
   "founder_tier": "very_important",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 6,
   "action_kinds": {
    "load": 1,
    "export": 2,
    "ajax": 2,
    "bulk": 1
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "3 modes: find/replace, JSON import, CSV mappings -> preview diff -> apply"
   ],
   "reason": "2 export 2 ajax 1 load 1 bulk; fits A04 (Wizard / import / bulk operation) per uri has import/bulk/wizard",
   "retired": false,
   "hero": true,
   "example": false,
   "wave": 1,
   "layout": null,
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/ (DESIGNS-R1, awaiting Frank; truth phase-2/truth/TRUTH-DESIGNS.md)",
   "api_ops": [
    "admin.designs.bulk-hub.index",
    "admin.designs.bulk-hub.export",
    "admin.designs.bulk-hub.preview",
    "admin.designs.bulk-hub.apply",
    "admin.designs.bulk-hub.cancel",
    "admin.designs.popups.mappings.template"
   ],
   "needs_backend": [
    {
     "id": "PR-003",
     "kind": "proposal",
     "what": "Record-wide history / activity / audit store (activity panel, time-travel, design + pricing undo, bulk-run before-values)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-018",
     "kind": "proposal",
     "what": "Undo a whole bulk run (10-minute window)",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-003",
    "PR-018",
    "PR-067"
   ],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "M11",
    "file-uploader",
    "switch",
    "bulk-bar",
    "action-bar"
   ],
   "permission": "view designs|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/designs/bulk-hub",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": []
  },
  {
   "uri": "/admin/pt-colors",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 9,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "form": 7
   },
   "archetype": "A12",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "load is a PT colour x (component x vendor) matrix; 3 of 7 forms are the matrix cell editor (add/update/retire binding); + 1 CSV export",
   "overrides": [
    "row lifecycle actions (online/offline/retire/restore) on the colour axis",
    "cell editor opens in a popover/drawer"
   ],
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 1,
   "layout": null,
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board PT1 · states/phone PT2 · PT3 · PT9; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/PT1.png)",
   "api_ops": [
    "admin.pt-colors.index",
    "admin.pt-colors.export",
    "admin.pt-colors.restore",
    "admin.pt-colors.online",
    "admin.pt-colors.offline",
    "admin.pt-colors.destroy",
    "admin.pt-colors.bindings.store",
    "admin.pt-colors.bindings.update",
    "admin.pt-colors.bindings.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.pt-colors.index#1",
    "admin.pt-colors.index#7",
    "admin.pt-colors.index#8"
   ],
   "components": [
    "M02",
    "combobox",
    "toast",
    "error-states",
    "density",
    "M04",
    "confirm",
    "switch",
    "M01"
   ],
   "permission": "view pt_colors|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/pt-colors",
    "answer": "Read-only card per row"
   },
   "notes": [
    "3 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "flagship designs round 2: drawn as PT1 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/pt-colors/create",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board PT4 · states/phone PT9; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/PT4.png)",
   "api_ops": [
    "admin.pt-colors.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create pt_colors|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/pt-colors/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "flagship designs round 2: drawn as PT4 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/pt-colors/import",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "upload": 1,
    "ajax": 2
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 ajax 1 load 1 export 1 upload; fits A04 (Wizard / import / bulk operation) per uri has import/bulk/wizard",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": null,
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board PT6 · states/phone PT7 · PT9; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/PT6.png)",
   "api_ops": [
    "admin.pt-colors.export",
    "admin.pt-colors.import.preview",
    "admin.pt-colors.import.confirm",
    "admin.pt-colors.import.cancel"
   ],
   "needs_backend": [
    {
     "id": "PR-021",
     "kind": "proposal",
     "what": "Paste from Excel into an import (JSON rows on import preview)",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-021"
   ],
   "partial_actions": [
    "admin.pt-colors.import.page#1"
   ],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "file-uploader"
   ],
   "permission": "view pt_colors|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/pt-colors/import",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "flagship designs round 2: drawn as PT6 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/pt-colors/reports/codeless",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A05",
   "archetype_rule": "uri has dashboard/report/analytics",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load; fits A05 (Dashboard / report / analytics) per uri has dashboard/report/analytics",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": null,
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board PT8 · states/phone PT9; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/PT8.png)",
   "api_ops": [
    "admin.pt-colors.reports.codeless"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08"
   ],
   "permission": "view pt_colors|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/pt-colors/reports/codeless",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": [
    "flagship designs round 2: drawn as PT8 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/pt-colors/{ptColor}/edit",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "upload": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form 1 upload; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board PT5 · states/phone PT9; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/PT5.png)",
   "api_ops": [
    "admin.pt-colors.show",
    "admin.pt-colors.update",
    "admin.media-library.list"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.pt-colors.edit#1",
    "admin.pt-colors.edit#2",
    "admin.pt-colors.edit#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04",
    "gallery-picker",
    "thumb",
    "file-uploader"
   ],
   "permission": "edit pt_colors|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/pt-colors/{ptColor}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "3 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "flagship designs round 2: drawn as PT5 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/pt-components",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 ajax 1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board PC1 · states/phone PC5; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/PC1.png)",
   "api_ops": [
    "admin.pt-components.index",
    "admin.pt-components.restore",
    "admin.pt-components.reorder"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm"
   ],
   "permission": "view pt_components|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/pt-components",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "flagship designs round 2: drawn as PC1 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/pt-components/create",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board PC2 · states/phone PC5; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/PC2.png)",
   "api_ops": [
    "admin.material-types.index",
    "admin.pt-components.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create pt_components|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/pt-components/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "flagship designs round 2: drawn as PC2 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/pt-components/{ptComponent}/edit",
   "module": "designs",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "form": 3
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "3 form 1 load; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "designs",
   "hero_ref": "phase-3/flagships/designs/r2/ (DESIGNS-R2 board PC3 · states/phone PC4 · PC5; pre-approved by Frank 2026-10-19; shot phase-3/flagships/designs/r2/shots/PC3.png)",
   "api_ops": [
    "admin.pt-components.accepted-vendor-codes.index",
    "admin.pt-components.update",
    "admin.pt-components.accepted-vendor-codes.update",
    "admin.pt-components.preference-order.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.pt-components.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit pt_components|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/pt-components/{ptComponent}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "flagship designs round 2: drawn as PC3 (DESIGNS-R2, pre-approved by Frank 2026-10-19)"
   ]
  },
  {
   "uri": "/admin/fabric-attributes/{type}",
   "module": "fabrics",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 8,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "form": 6
   },
   "archetype": "A09",
   "archetype_rule": "uri ends with a record id",
   "status": "corrected",
   "from": "A02",
   "reason": "load 1 + form 6 + export 1: tabbed vocabulary/surcharge manager (value-list cards, archive/restore, embedded surcharge editor); config, not one record",
   "overrides": [
    "tabbed value-list cards",
    "embedded surcharge editor"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.fabric-attributes.index",
    "admin.fabric-attributes.export",
    "admin.fabric-attributes.toggle-status",
    "admin.fabric-attributes.destroy",
    "admin.fabric-attributes.restore",
    "admin.pattern-charges.update",
    "admin.special-handling-codes.toggle-status",
    "admin.special-handling-codes.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.fabric-attributes.index#1"
   ],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "money-input",
    "M01"
   ],
   "permission": "view fabric_attributes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/fabric-attributes/{type}",
    "answer": "Read-only key-value list"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fabric-attributes/{type}/create",
   "module": "fabrics",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.fabric-attributes.registry",
    "admin.fabric-attributes.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.fabric-attributes.create#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "create fabric_attributes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabric-attributes/{type}/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fabric-attributes/{type}/{id}/edit",
   "module": "fabrics",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.fabric-attributes.show",
    "admin.fabric-attributes.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm"
   ],
   "permission": "edit fabric_attributes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabric-attributes/{type}/{id}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/fabric-codes",
   "module": "fabrics",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 7,
   "action_kinds": {
    "load": 1,
    "ajax": 4,
    "upload": 1,
    "export": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "ajax 4, upload 1, load 1, export 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "collection accordion with infinite scroll",
    "expand-row tabbed editor with per-field autosave"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.fabrics.index",
    "admin.fabric-codes.index",
    "admin.fabric-codes.show",
    "admin.fabric-codes.update",
    "admin.media-library.list",
    "admin.fabric-codes.export"
   ],
   "needs_backend": [
    {
     "id": "PR-029",
     "kind": "proposal",
     "what": "Out of stock? closest cloths in stock",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-029"
   ],
   "partial_actions": [
    "admin.fabric-codes.index#2",
    "admin.fabric-codes.index#3",
    "admin.fabric-codes.index#4",
    "admin.fabric-codes.index#6"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "combobox",
    "thumb",
    "file-uploader",
    "M01"
   ],
   "permission": "view fabric_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/fabric-codes",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "4 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fabric-codes/create",
   "module": "fabrics",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "upload": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "upload 1, load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "fibre composition builder",
    "media picker"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.fabrics.index",
    "admin.fabric-codes.store",
    "admin.media-library.list"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.fabric-codes.create#1",
    "admin.fabric-codes.create#2",
    "admin.fabric-codes.create#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "gallery-picker",
    "thumb",
    "file-uploader"
   ],
   "permission": "create fabric_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabric-codes/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "3 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fabric-codes/{fabric_code}/edit",
   "module": "fabrics",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "upload": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "upload 1, load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "fibre composition builder",
    "media picker"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.fabric-codes.show",
    "admin.fabric-codes.update",
    "admin.media-library.list"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.fabric-codes.edit#1",
    "admin.fabric-codes.edit#2",
    "admin.fabric-codes.edit#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "gallery-picker",
    "thumb",
    "file-uploader"
   ],
   "permission": "edit fabric_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabric-codes/{fabric_code}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "3 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fabric-codes/import",
   "module": "fabrics",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "upload": 1,
    "ajax": 3
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "reason": "upload 1 + ajax 3 (poll preview, confirm with acks, cancel); import wizard",
   "overrides": [
    "async preview poll",
    "prune/link acknowledgement gates"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A04 hero /admin/designs/bulk-hub · phase-2/archetypes/shots/A04.png",
   "api_ops": [
    "admin.fabric-codes.import",
    "admin.fabric-codes.import.preview.status",
    "admin.fabric-codes.import.cancel"
   ],
   "needs_backend": [
    {
     "id": "PR-021",
     "kind": "proposal",
     "what": "Paste from Excel into an import (JSON rows on import preview)",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-021"
   ],
   "partial_actions": [
    "admin.fabric-codes.import.page#1",
    "admin.fabric-codes.import.page#3"
   ],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "file-uploader"
   ],
   "permission": "import fabric_codes",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabric-codes/import",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fabric-codes/photos",
   "module": "fabrics",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 5,
   "action_kinds": {
    "ajax": 4,
    "upload": 1
   },
   "archetype": "A04",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "ajax 4 + upload 1: drop files -> preview diff -> presign -> direct S3 PUT -> confirm batch -> poll; a bulk upload flow, no review/verdict",
   "overrides": [
    "direct-to-S3 presigned upload",
    "batch poll"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": true,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A04 hero /admin/designs/bulk-hub · phase-2/archetypes/shots/A04.png",
   "api_ops": [
    "admin.fabric-photos.preview",
    "admin.fabric-photos.presign",
    "admin.fabric-photos.confirm",
    "admin.fabric-photos.batches.status"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "file-uploader"
   ],
   "permission": "import fabric_codes + import fabric_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabric-codes/photos",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": []
  },
  {
   "uri": "/admin/fabric-codes/photos/batches",
   "module": "fabrics",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 1: paginated batch history list",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.fabric-photos.batches.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M01"
   ],
   "permission": "import fabric_codes + import fabric_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/fabric-codes/photos/batches",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/fabric-codes/photos/batches/{batch}",
   "module": "fabrics",
   "founder_tier": "light_alignment_only",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "export": 1
   },
   "archetype": "A06",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "corrected",
   "from": "A08",
   "reason": "load 1 + ajax 1 (poll while running) + export 1 (results CSV): batch run monitor",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": true,
   "wave": 3,
   "layout": "A06·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A06 hero /admin/orders/print-jobs · phase-2/archetypes/shots/A06a.png",
   "api_ops": [
    "admin.fabric-photos.batches.show",
    "admin.fabric-photos.batches.status",
    "admin.fabric-photos.batches.csv"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "data-table",
    "tabs",
    "status-chip",
    "progress",
    "alert",
    "M01",
    "M04",
    "M08",
    "table-states"
   ],
   "permission": "import fabric_codes + import fabric_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "dedicated",
    "route": "/m/fabric-codes/photos/batches/{batch}",
    "answer": "Polled job list, failed first, big retry / reprint"
   },
   "notes": []
  },
  {
   "uri": "/admin/fabrics",
   "module": "fabrics",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "ajax": 3,
    "export": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "ajax 3, load 1, export 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "infinite scroll",
    "drag-sort",
    "archive switch with cascade"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.fabrics.index",
    "admin.fabrics.reorder",
    "admin.fabrics.destroy",
    "admin.fabrics.export"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.fabrics.index#2"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "M11",
    "confirm",
    "M01"
   ],
   "permission": "view fabrics|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/fabrics",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fabrics/create",
   "module": "fabrics",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.suppliers.index",
    "admin.fabrics.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.fabrics.create#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create fabrics|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabrics/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fabrics/{fabric}/edit",
   "module": "fabrics",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.suppliers.index",
    "admin.fabrics.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.fabrics.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit fabrics|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabrics/{fabric}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/forecast-accuracy",
   "module": "fabrics",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A05",
   "archetype_rule": "uri has dashboard/report/analytics",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A05 (Dashboard / report) per uri has dashboard/report/analytics",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "d4b_rj_admin",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A05 hero /admin/dashboard · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.reports.forecast-accuracy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08"
   ],
   "permission": "admin + view orders|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/forecast-accuracy",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": []
  },
  {
   "uri": "/admin/incoming-components",
   "module": "fabrics",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "board/list view toggle",
    "tab + lens filters"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.reports.incoming-components"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "switch"
   ],
   "permission": "admin + view orders|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/incoming-components",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/pattern",
   "module": "fabrics",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A09",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "load 1 + form 1 on a PatternCharge singleton (surcharges); settings, not an index",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.pattern-charges.show",
    "admin.pattern-charges.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "money-input"
   ],
   "permission": "pattern_design_add_on|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/pattern",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/stock-report",
   "module": "fabrics",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 2,
    "ajax": 2
   },
   "archetype": "A05",
   "archetype_rule": "uri has dashboard/report/analytics",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, ajax 2; fits A05 (Dashboard / report) per uri has dashboard/report/analytics",
   "overrides": [
    "tabs: overview / explore",
    "live code search"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": true,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A05 hero /admin/dashboard · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.reports.stock",
    "admin.reports.stock.events",
    "admin.reports.stock.search"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.stock-report.index#4"
   ],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08",
    "date"
   ],
   "permission": "admin + view fabric_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/stock-report",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/delivery-routing",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "form": 4
   },
   "archetype": "A09",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "load 1 + form 4 all rule edits (supplier default, collection exceptions, per-combination overrides); routing configuration, no list/bulk",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.delivery-routing.index",
    "admin.delivery-routing.rules.store",
    "admin.delivery-routing.rules.destroy",
    "admin.delivery-routing.overrides.store",
    "admin.delivery-routing.overrides.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.delivery-routing.index#1"
   ],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm"
   ],
   "permission": "view factories|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/delivery-routing",
    "answer": "Read-only key-value list"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/factories",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "ajax": 3
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "ajax 3, load 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "per-row load calc",
    "drag-sort",
    "online switch"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.factories.index",
    "admin.factories.load-factor",
    "admin.factories.reorder",
    "admin.factories.offline"
   ],
   "needs_backend": [
    {
     "id": "PR-022",
     "kind": "proposal",
     "what": "Trends inside the table (metric series sparklines)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-060",
     "kind": "proposal",
     "what": "Factory capacity per day",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-022",
    "PR-060"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm",
    "switch"
   ],
   "permission": "view factories|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/factories",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/factories/create",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.products.index",
    "admin.factories.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.factories.create#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "money-input"
   ],
   "permission": "create factories|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/factories/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/factories/loadFactor",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "ajax": 1
   },
   "archetype": "A05",
   "archetype_rule": "uri has pricing/matrix/weights",
   "status": "corrected",
   "from": "A12",
   "reason": "load 1 + ajax 1 (per-factory load calc), read-only; a report, not a grid editor",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A05 hero /admin/dashboard · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.factories.index",
    "admin.factories.load-factor"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08"
   ],
   "permission": "view factories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/factories/loadFactor",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": []
  },
  {
   "uri": "/admin/factories/{factory}/edit",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 6,
   "action_kinds": {
    "load": 1,
    "form": 5
   },
   "archetype": "A02",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "corrected",
   "from": "A03",
   "reason": "load 1 + form 5, 4 of which manage child vendor-code books (add/update/retire/restore); record + sub-table tabs",
   "overrides": [
    "combination/product matrix in form",
    "vendor-code books sub-table"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.factories.show",
    "admin.factories.update",
    "admin.vendor-codes.store",
    "admin.vendor-codes.update",
    "admin.vendor-codes.destroy",
    "admin.vendor-codes.restore"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.factories.edit#1",
    "admin.factories.edit#2"
   ],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet"
   ],
   "permission": "edit factories|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/factories/{factory}/edit",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/factory_groups",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.factory-groups.index",
    "admin.factory-groups.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view factory groups|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/factory_groups",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/factory_groups/create",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "factory weights must sum to 1.0"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.factories.index",
    "admin.factory-groups.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.factory_groups.create#1",
    "admin.factory_groups.create#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view factories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/factory_groups/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/factory_groups/{factory_group}/edit",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "factory weights must sum to 1.0"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.factories.index",
    "admin.factory-groups.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.factory_groups.edit#1",
    "admin.factory_groups.edit#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view factories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/factory_groups/{factory_group}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/logs/factory-allocations",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "log tail, monospace, refresh"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.logs.factory-allocations"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "view logs|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/logs/factory-allocations",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/suppliers",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "ajax 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "drag-sort",
    "archive switch with cascade"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.suppliers.directory",
    "admin.suppliers.reorder",
    "admin.suppliers.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.suppliers.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm"
   ],
   "permission": "view suppliers|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/suppliers",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/suppliers/codes",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "form": 2,
    "ajax": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1, ajax 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.vendor-codes.index",
    "admin.vendor-codes.destroy",
    "admin.vendor-codes.restore",
    "admin.vendor-codes.reorder"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm"
   ],
   "permission": "view vendor_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/suppliers/codes",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/suppliers/create",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.suppliers.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create suppliers|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/suppliers/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/suppliers/{supplier}/edit",
   "module": "factory",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 11,
   "action_kinds": {
    "load": 1,
    "form": 9,
    "ajax": 1
   },
   "archetype": "A02",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "corrected",
   "from": "A03",
   "reason": "load 1 + form 9 + ajax 1; 8 forms manage child vendor-code books and component bindings; record detail with tabs",
   "overrides": [
    "tabs: identity+cadence / vendor-code books / component bindings"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "page_local_styled",
   "hero": false,
   "example": true,
   "wave": 3,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.suppliers.directory",
    "admin.suppliers.update",
    "admin.suppliers.destroy",
    "admin.vendor-codes.store",
    "admin.vendor-codes.update",
    "admin.vendor-codes.destroy",
    "admin.vendor-codes.restore",
    "admin.component-suppliers.store",
    "admin.component-suppliers.update",
    "admin.component-suppliers.destroy",
    "admin.component-suppliers.restore"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M09",
    "combobox"
   ],
   "permission": "edit suppliers|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/suppliers/{supplier}/edit",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/accessory-codes",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 11,
   "action_kinds": {
    "load": 1,
    "bulk": 1,
    "form": 5,
    "ajax": 4
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 5, ajax 4, load 1, bulk 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "kanban print launch (Print Studio door + cloud print chunks)"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.accessory-codes.index",
    "admin.accessory-codes.bulk",
    "admin.accessory-codes.kanban-print",
    "admin.accessory-codes.kanban-prepare",
    "admin.print-studio.print",
    "admin.print-studio.jobs.status",
    "admin.accessory-codes.kanban-runs.report",
    "admin.accessory-codes.restore",
    "admin.accessory-codes.online",
    "admin.accessory-codes.offline",
    "admin.accessory-codes.destroy"
   ],
   "needs_backend": [
    {
     "id": "PR-017",
     "kind": "proposal",
     "what": "Dry-run impact preview on the four bulk writes",
     "tag": "needs-backend"
    },
    {
     "id": "PR-021",
     "kind": "proposal",
     "what": "Paste from Excel into an import (JSON rows on import preview)",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-017",
    "PR-021"
   ],
   "partial_actions": [
    "admin.accessory-codes.index#1",
    "admin.accessory-codes.index#3"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M13",
    "M11",
    "M04",
    "confirm",
    "M01",
    "bulk-bar",
    "action-bar"
   ],
   "permission": "view accessory_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/accessory-codes",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/accessory-codes/create",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "upload": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "upload 1, load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.material-types.index",
    "admin.accessory-codes.store",
    "admin.media-library.list"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.accessory-codes.create#2",
    "admin.accessory-codes.create#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "gallery-picker",
    "file-uploader"
   ],
   "permission": "create accessory_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/accessory-codes/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/accessory-codes/kanban-runs/{run}",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 6,
   "action_kinds": {
    "load": 1,
    "ajax": 5
   },
   "archetype": "A06",
   "archetype_rule": "uri is a job/run/print-run monitor",
   "status": "confirmed",
   "from": null,
   "reason": "load 1 + ajax 5: live status poll, retry failed, per-chunk print poll, failure report; textbook run monitor",
   "overrides": [
    "client-side pdfme render then cloud print"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A06·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A06 hero /admin/orders/print-jobs · phase-2/archetypes/shots/A06a.png",
   "api_ops": [
    "admin.accessory-codes.kanban-runs.show",
    "admin.accessory-codes.kanban-prepare",
    "admin.print-studio.print",
    "admin.print-studio.jobs.status",
    "admin.accessory-codes.kanban-runs.report"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.accessory-codes.kanban-runs.show#1"
   ],
   "components": [
    "data-table",
    "tabs",
    "status-chip",
    "progress",
    "alert",
    "M01",
    "M04",
    "M08",
    "table-states",
    "M13",
    "M11"
   ],
   "permission": "edit accessory_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "dedicated",
    "route": "/m/accessory-codes/kanban-runs/{run}",
    "answer": "Polled job list, failed first, big retry / reprint"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/accessory-codes/{accessoryCode}/edit",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 15,
   "action_kinds": {
    "load": 2,
    "form": 7,
    "upload": 1,
    "ajax": 5
   },
   "archetype": "A02",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "corrected",
   "from": "A03",
   "reason": "load 2 + form 7 + ajax 5 + upload 1 across tabs (details, QR, kanban, procurement history, print runs); record detail, not a single form",
   "overrides": [
    "tabs: details / QR / kanban / procurement / print history",
    "kanban print launch"
   ],
   "retired": false,
   "complexity": 5,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": true,
   "wave": 3,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.accessory-codes.show",
    "admin.accessory-codes.update",
    "admin.media-library.list",
    "admin.accessory-qr.show",
    "admin.accessory-qr.repoint",
    "admin.accessory-codes.retailer-kanbans.store",
    "admin.accessory-codes.retailer-kanbans.update",
    "admin.accessory-codes.procurement.update",
    "admin.accessory-codes.kanban-print-history",
    "admin.accessory-codes.kanban-prepare",
    "admin.print-studio.print",
    "admin.print-studio.jobs.status",
    "admin.accessory-codes.kanban-runs.report",
    "admin.accessory-codes.kanban-print"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.accessory-codes.edit#1",
    "admin.accessory-codes.edit#2",
    "admin.accessory-codes.edit#3",
    "admin.accessory-codes.edit#4",
    "admin.accessory-codes.edit#15"
   ],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M07",
    "M13",
    "M11",
    "money-input",
    "M04",
    "M01",
    "combobox",
    "gallery-picker",
    "M05",
    "file-uploader"
   ],
   "permission": "edit accessory_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/accessory-codes/{accessoryCode}/edit",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": [
    "5 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/lining-codes",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 6,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "form": 4
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 4, load 1, export 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.lining-codes.index",
    "admin.lining-codes.export",
    "admin.lining-codes.restore",
    "admin.lining-codes.online",
    "admin.lining-codes.offline",
    "admin.lining-codes.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.lining-codes.index#1",
    "admin.lining-codes.index#4",
    "admin.lining-codes.index#5"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm",
    "M01"
   ],
   "permission": "view lining_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/lining-codes",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "3 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/lining-codes/create",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "upload": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "upload 1, load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.pt-colors.index",
    "admin.lining-codes.store",
    "admin.media-library.list"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.lining-codes.create#2",
    "admin.lining-codes.create#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "gallery-picker",
    "file-uploader"
   ],
   "permission": "create lining_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/lining-codes/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/lining-codes/{liningCode}/edit",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "upload": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "upload 1, load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.lining-codes.show",
    "admin.lining-codes.update",
    "admin.media-library.list"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.lining-codes.edit#2",
    "admin.lining-codes.edit#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "gallery-picker",
    "file-uploader"
   ],
   "permission": "edit lining_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/lining-codes/{liningCode}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/lining-codes/import",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "upload": 1,
    "ajax": 2
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "reason": "ajax 2, upload 1, load 1, export 1; fits A04 (Wizard / import / bulk) per uri has import/bulk/wizard",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A04 hero /admin/designs/bulk-hub · phase-2/archetypes/shots/A04.png",
   "api_ops": [
    "admin.lining-codes.export",
    "admin.lining-codes.import.preview",
    "admin.lining-codes.import.confirm",
    "admin.lining-codes.import.cancel"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "file-uploader"
   ],
   "permission": "view lining_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/lining-codes/import",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": []
  },
  {
   "uri": "/admin/material-attributes",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.material-attributes.index",
    "admin.material-attributes.restore",
    "admin.material-attributes.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view material_attributes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/material-attributes",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/material-attributes/create",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.material-attributes.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create material_attributes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/material-attributes/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/material-attributes/{materialAttribute}/edit",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.material-attributes.show",
    "admin.material-attributes.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit material_attributes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/material-attributes/{materialAttribute}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/fabric-lining-rules",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "form": 3
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 3, load 1, export 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.fabric-lining-rules.index",
    "admin.fabric-lining-rules.export",
    "admin.fabric-lining-rules.restore",
    "admin.fabric-lining-rules.toggle",
    "admin.fabric-lining-rules.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.fabric-lining-rules.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M11",
    "confirm",
    "switch",
    "M01"
   ],
   "permission": "view fabric_lining_rules|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/fabric-lining-rules",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fabric-lining-rules/create",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.material-attributes.index",
    "admin.fabric-lining-rules.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create fabric_lining_rules|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabric-lining-rules/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/fabric-lining-rules/upload",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "upload": 1,
    "form": 2
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, upload 1; fits A04 (Wizard / import / bulk) per uri has import/bulk/wizard",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A04 hero /admin/designs/bulk-hub · phase-2/archetypes/shots/A04.png",
   "api_ops": [
    "admin.fabric-lining-rules.import.preview",
    "admin.fabric-lining-rules.import.confirm"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "M11",
    "file-uploader"
   ],
   "permission": "create fabric_lining_rules|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabric-lining-rules/upload",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": []
  },
  {
   "uri": "/admin/fabric-lining-rules/{fabricLiningRule}/edit",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.fabric-lining-rules.show",
    "admin.fabric-lining-rules.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit fabric_lining_rules|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fabric-lining-rules/{fabricLiningRule}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/material-types",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.material-types.index",
    "admin.material-types.restore",
    "admin.material-types.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm",
    "combobox"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/material-types",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/material-types/create",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.system-values.index",
    "admin.material-types.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/material-types/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/material-types/{material_type}/edit",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.material-types.show",
    "admin.material-types.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/material-types/{material_type}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/units-of-measure",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.units-of-measure.index",
    "admin.units-of-measure.restore",
    "admin.units-of-measure.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm",
    "combobox"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/units-of-measure",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/units-of-measure/create",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.system-values.index",
    "admin.units-of-measure.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/units-of-measure/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/units-of-measure/{units_of_measure}/edit",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.units-of-measure.show",
    "admin.units-of-measure.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/units-of-measure/{units_of_measure}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/system-values",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "read-only enum catalogue"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.system-values.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/system-values",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/reference/system-values",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "redirect only to /admin/system-values; no page to design",
    "no-design"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.system-values.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "view system_values|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/reference/system-values",
    "answer": "No phone view (no-design page)"
   },
   "notes": [
    "no-design: keep the row, spend no design effort (P0 default)"
   ]
  },
  {
   "uri": "/admin/materials-guide",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A02",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "load 1, static explainer (no data, no writes); closest is a read-only detail body",
   "overrides": [
    "static explainer page, no record; read-only doc body"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops_note": "static page: static explainer page (no data, no writes); visibility comes from admin.me.show / admin.me.menu in the shell",
   "api_ops": [],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/materials-guide",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/materials/onboard",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 9,
   "action_kinds": {
    "load": 1,
    "form": 7,
    "upload": 1
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "reason": "load 1 + form 7 + upload 1 across 5 steps with parked draft; true wizard",
   "overrides": [
    "5-step wizard with parked draft resume/discard"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "page_local_styled",
   "hero": false,
   "example": true,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A04 hero /admin/designs/bulk-hub · phase-2/archetypes/shots/A04.png",
   "api_ops": [
    "admin.material-types.index",
    "admin.material-types.store",
    "admin.pt-components.store",
    "admin.design-components.store",
    "admin.component-suppliers.store",
    "admin.accessory-codes.store"
   ],
   "needs_backend": [],
   "proposals": [
    "PR-080"
   ],
   "partial_actions": [
    "admin.materials.onboard#1",
    "admin.materials.onboard#5",
    "admin.materials.onboard#6"
   ],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "thumb",
    "date",
    "file-uploader"
   ],
   "permission": "create pt_components|create suppliers|create accessory_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/materials/onboard",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": [
    "admin.materials.onboard#7: no operation by decision (T001 Q24: onboarding draft is browser-only (PR-080))",
    "admin.materials.onboard#8: no operation by decision (T001 Q24: onboarding draft is browser-only (PR-080))",
    "admin.materials.onboard#9: no operation by decision (T001 Q24: onboarding draft is browser-only (PR-080))",
    "3 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/special-handling-codes",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.special-handling-codes.index",
    "admin.special-handling-codes.toggle-status",
    "admin.special-handling-codes.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm",
    "switch"
   ],
   "permission": "view special-handling|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/special-handling-codes",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/special-handling-codes/create",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.special-handling-codes.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M07"
   ],
   "permission": "create special-handling|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/special-handling-codes/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/special-handling-codes/{special_handling_code}/edit",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.special-handling-codes.show",
    "admin.special-handling-codes.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit special-handling|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/special-handling-codes/{special_handling_code}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/vendor-codes/create",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.suppliers.index",
    "admin.vendor-codes.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M14"
   ],
   "permission": "create vendor_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/vendor-codes/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/vendor-codes/{vendorCode}/edit",
   "module": "materials",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.vendor-codes.show",
    "admin.vendor-codes.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit vendor_codes|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/vendor-codes/{vendorCode}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/pricing",
   "module": "pricing",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "ajax": 2,
    "export": 2
   },
   "archetype": "A12",
   "archetype_rule": "uri has pricing/matrix/weights",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "two-prong entry (Frank 2026-10-18): retailer -> main product -> product selects (2 ajax) opening prong 1, the design pricing editor, or prong 2, the fabric export/import workspace (no on-screen fabric grid); queued export"
   ],
   "reason": "2 ajax 2 export 1 load; fits A12 (Matrix / grid editor) per uri has pricing/matrix/weights",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": true,
   "flagship_area": "pricing",
   "hero_ref": "phase-3/flagships/pricing/ (PRICING-R3: fabric = export/import only, decided by Frank 2026-10-18; truth phase-2/truth/TRUTH-PRICING.md)",
   "api_ops": [
    "admin.accounts.index",
    "admin.accounts.show",
    "admin.main-products.products",
    "admin.pricing.export",
    "admin.pricing.export-download"
   ],
   "needs_backend": [
    {
     "id": "PR-003",
     "kind": "proposal",
     "what": "Record-wide history / activity / audit store (activity panel, time-travel, design + pricing undo, bulk-run before-values)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-068",
     "kind": "proposal",
     "what": "Ungated web pricing writes",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-003",
    "PR-031",
    "PR-068",
    "PR-069"
   ],
   "partial_actions": [
    "admin.pricing.index#1",
    "admin.pricing.index#2"
   ],
   "components": [
    "combobox",
    "toast",
    "error-states",
    "density",
    "money-input",
    "confirm",
    "M01",
    "price-group"
   ],
   "permission": "view pricing|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/pricing",
    "answer": "Read-only card per row"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/pricing/create",
   "module": "pricing",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "ajax": 2,
    "export": 1
   },
   "archetype": "A12",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "corrected",
   "from": "A03",
   "reason": "not a form: Hypergrid chunk loads (ajax) + inline cell PATCH (ajax) over days/wholesale/retail per design; 2 ajax + 1 form + 1 export",
   "overrides": [
    "type=combinations = fabric combination pricing as an EXPORT / IMPORT workspace only: no on-screen grid; the hypergrid (retailer-hypergrid.js) and its per-cell admin/pricing/retailer/update are retired in the new admin (Frank 2026-10-18)",
    "queued export -> Jobs tray -> bell notification with the download link (signed URL); recent export files per retailer",
    "import: upload -> check/map -> diff-summary preview -> typed confirm -> run -> result"
   ],
   "retired": false,
   "hero": true,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": true,
   "flagship_area": "pricing",
   "hero_ref": "phase-3/flagships/pricing/ (PRICING-R3: fabric = export/import only, decided by Frank 2026-10-18; truth phase-2/truth/TRUTH-PRICING.md)",
   "api_ops": [
    "admin.pricing.designs.index",
    "admin.pricing.designs.store",
    "admin.pricing.retailer.index",
    "admin.pricing.export",
    "admin.pricing.exports.index",
    "admin.pricing.exports.show",
    "admin.pricing.export-download-url",
    "admin.pricing.import"
   ],
   "needs_backend": [
    {
     "id": "PR-003",
     "kind": "proposal",
     "what": "Record-wide history / activity / audit store (activity panel, time-travel, design + pricing undo, bulk-run before-values)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-068",
     "kind": "proposal",
     "what": "Ungated web pricing writes",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-003",
    "PR-068",
    "PR-069"
   ],
   "partial_actions": [
    "admin.pricing.create#1",
    "admin.pricing.create#4"
   ],
   "components": [
    "combobox",
    "toast",
    "error-states",
    "density",
    "money-input",
    "confirm",
    "M01",
    "price-group",
    "file-uploader",
    "stepper",
    "review-step",
    "M05",
    "M04"
   ],
   "permission": "view pt_colors|admin AND view pricing|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/pricing/create",
    "answer": "Read-only card per row"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "DECIDED 2026-10-18 (Frank): fabric combination pricing is export/import only in the new admin; M02 matrix editor dropped for this page; admin.pricing.retailer.update not called (PR-070 moot here); retailer.index kept for the prong status and the import diff preview"
   ]
  },
  {
   "uri": "/admin/pricing/master",
   "module": "pricing",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "export": 1
   },
   "archetype": "A12",
   "archetype_rule": "uri has pricing/matrix/weights",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "handler RETIRED L1033/L1034 (aborts 403) - propose retire; do not design",
    "propose retire, do not design"
   ],
   "reason": "1 load 1 export; fits A12 (Matrix / grid editor) per uri has pricing/matrix/weights",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": true,
   "flagship_area": "pricing",
   "hero_ref": "phase-3/flagships/pricing/ (PRICING-R1, awaiting Frank; truth phase-2/truth/TRUTH-PRICING.md)",
   "api_ops": [
    "admin.pricing.master.index",
    "admin.pricing.export.master"
   ],
   "needs_backend": [],
   "proposals": [
    "PR-071"
   ],
   "partial_actions": [
    "admin.pricing.master#1",
    "admin.pricing.master#2"
   ],
   "components": [
    "M02",
    "combobox",
    "toast",
    "error-states",
    "density",
    "money-input",
    "confirm",
    "M01",
    "price-group"
   ],
   "permission": "export pricing|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/pricing/master",
    "answer": "No phone view (no-design page)"
   },
   "notes": [
    "no-design: keep the row, spend no design effort (P0 default)",
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "deprecated op(s) in spec: admin.pricing.master.index, admin.pricing.export.master"
   ]
  },
  {
   "uri": "/admin/pricing/master/import/{retailer}",
   "module": "pricing",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "upload": 1
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 upload; fits A04 (Wizard / import / bulk operation) per uri has import/bulk/wizard",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": true,
   "flagship_area": "pricing",
   "hero_ref": "phase-3/flagships/pricing/ (PRICING-R1, awaiting Frank; truth phase-2/truth/TRUTH-PRICING.md)",
   "api_ops": [
    "admin.accounts.show",
    "admin.pricing.import"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.pricing.master.import#1"
   ],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "money-input",
    "file-uploader"
   ],
   "permission": "import pricing|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/pricing/master/import/{retailer}",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/print-studio",
   "module": "print-studio",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 7,
   "action_kinds": {
    "load": 2,
    "ajax": 5
   },
   "archetype": "A10",
   "archetype_rule": "uri has print",
   "status": "confirmed",
   "from": null,
   "reason": "load 2 + ajax 5: label template gallery + print history; Print Studio shell entry (off_limits tier superseded: light touch)",
   "overrides": [
    "light touch: shell entry = template gallery + print-job states only"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": true,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A10 hero /admin/email-templates/{templateKey}/edit · phase-2/archetypes/shots/A10.png",
   "api_ops": [
    "admin.print-studio.templates.index",
    "admin.print-studio.jobs.index",
    "admin.print-studio.templates.duplicate",
    "admin.print-studio.templates.destroy",
    "admin.print-studio.templates.restore",
    "admin.print-studio.templates.show",
    "admin.print-studio.templates.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "field",
    "segmented",
    "badge",
    "timeline",
    "M05",
    "save-bar",
    "unsaved-guard",
    "M04",
    "confirm",
    "M01",
    "switch",
    "gallery-picker",
    "thumb"
   ],
   "permission": "use print studio",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/print-studio",
    "answer": "Preview frame only"
   },
   "notes": []
  },
  {
   "uri": "/admin/print-studio/designer",
   "module": "print-studio",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 8,
   "action_kinds": {
    "load": 2,
    "ajax": 6
   },
   "archetype": "A10",
   "archetype_rule": "uri has print",
   "status": "confirmed",
   "from": null,
   "reason": "load 2 + ajax 6: template save/merge/print + poll; layout designer (canvas light touch per handoff)",
   "overrides": [
    "light touch: canvas keeps existing designer; design shell chrome + save/print job states only"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": true,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A10 hero /admin/email-templates/{templateKey}/edit · phase-2/archetypes/shots/A10.png",
   "api_ops": [
    "admin.print-studio.templates.show",
    "admin.accessory-codes.kanban-print",
    "admin.print-studio.templates.store",
    "admin.print-studio.templates.update",
    "admin.print-studio.templates.index",
    "admin.print-studio.print",
    "admin.print-studio.jobs.status"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.print-studio.designer#2"
   ],
   "components": [
    "field",
    "segmented",
    "badge",
    "timeline",
    "M05",
    "save-bar",
    "unsaved-guard",
    "M11",
    "M04",
    "M01",
    "combobox"
   ],
   "permission": "use print studio",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/print-studio/designer",
    "answer": "Preview frame only"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/containers",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1, export 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "active/history tabs",
    "print ticket PDF (stays server PDF, Q26)"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.shipping.containers.index",
    "admin.shipping.containers.print",
    "admin.shipping.containers.markPrinted"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.containers#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M04",
    "M01"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/containers",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/containers/{container}",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "redirect_action": 1,
    "form": 2
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "reason": "load 1 + export 1 + form 2: container header, orders, events; record detail",
   "overrides": [
    "force attach/remove order (money, idempotency)",
    "print ticket PDF (server PDF)"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.shipping.containers.show",
    "admin.shipping.containers.print",
    "admin.shipping.containers.digitalTicket",
    "admin.shipping.containers.forceAttach",
    "admin.shipping.containers.forceRemove"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.containers.show#1",
    "admin.shipping.containers.show#3"
   ],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M13",
    "money-input",
    "M04",
    "M01"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/containers/{container}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/containers/{container}/ticket",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A10",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "load 1: thermal-label HTML ticket render (QR shared via WeChat); a print preview, not a list",
   "overrides": [
    "thermal label size, QR"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "page_local_styled",
   "hero": false,
   "example": true,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A10 hero /admin/email-templates/{templateKey}/edit · phase-2/archetypes/shots/A10.png",
   "api_ops": [
    "admin.shipping.containers.digitalTicket"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.containers.ticket#1"
   ],
   "components": [
    "field",
    "segmented",
    "badge",
    "timeline",
    "M05",
    "save-bar",
    "unsaved-guard",
    "M13",
    "M04"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/containers/{container}/ticket",
    "answer": "Preview frame only"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/couriers",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.shipping.couriers.index",
    "admin.shipping.couriers.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/couriers",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/shipping/couriers/{courier}",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 2,
    "form": 3
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "reason": "form 3, load 2; fits A02 (Record detail) per uri ends with a record id",
   "overrides": [
    "zones sub-table",
    "create-zone modal with ISO country picker"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.shipping.couriers.show",
    "admin.shipping.couriers.update",
    "admin.shipping.couriers.destroy",
    "admin.shipping.zones.store",
    "admin.reference.countries"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "combobox"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/couriers/{courier}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/shipping/couriers/{courier}/zones/{zone}",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 9,
   "action_kinds": {
    "load": 1,
    "bulk": 1,
    "export": 1,
    "upload": 1,
    "ajax": 4,
    "form": 1
   },
   "archetype": "A12",
   "archetype_rule": "uri ends with a record id",
   "status": "corrected",
   "from": "A02",
   "reason": "load 1 + ajax 4 (inline band save/delete, apply/cancel import) + bulk 1 + upload 1 + export 1: weight-band smart grid",
   "overrides": [
    "JSON import preview/apply",
    "bulk activate/deactivate bands"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A12 hero /admin/pricing/create · phase-2/archetypes/shots/A12.png",
   "api_ops": [
    "admin.shipping.zones.show",
    "admin.shipping.bands.bulk",
    "admin.shipping.bands.download",
    "admin.shipping.bands.preview",
    "admin.shipping.bands.apply",
    "admin.shipping.bands.cancel",
    "admin.shipping.bands.store",
    "admin.shipping.bands.update",
    "admin.shipping.bands.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "M02",
    "combobox",
    "toast",
    "error-states",
    "density",
    "M11",
    "confirm",
    "stepper",
    "review-step",
    "file-uploader",
    "M05",
    "bulk-bar",
    "action-bar",
    "M01"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/couriers/{courier}/zones/{zone}",
    "answer": "Read-only card per row"
   },
   "notes": []
  },
  {
   "uri": "/admin/shipping/zones",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.shipping.zones.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/zones",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/shipping/zones/{zone}/edit",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 2,
    "form": 2
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, form 2; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.shipping.zones.show",
    "admin.shipping.zones.update",
    "admin.shipping.zones.destroy",
    "admin.reference.countries"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.zones.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/shipping/zones/{zone}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/settings",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A09",
   "archetype_rule": "uri has settings/config",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, form 1; fits A09 (Settings / configuration) per uri has settings/config",
   "overrides": [
    "long sectioned DHL config, timezone + country pickers"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.shipping.settings.show",
    "admin.shipping.settings.update",
    "admin.reference.timezones"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.settings#1"
   ],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "M09",
    "M04",
    "combobox"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/settings",
    "answer": "Read-only key-value list"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/shipments",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 2; fits A01 (Index table) per default: index page",
   "overrides": [
    "union source tabs incl DHL requests roll-up"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.shipping.shipments.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.shipments#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "date"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/shipments",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/shipments/requests/{order}",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 9,
   "action_kinds": {
    "load": 1,
    "form": 8
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "reason": "load 1 + form 8 (DHL recovery actions) on one order request; record detail with action panel",
   "overrides": [
    "per-leg attempt timeline",
    "8 DHL recovery actions (one scope-gated)"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.shipping.shipments.requests.show",
    "admin.shipping.dhl-recovery.rebookPickup",
    "admin.shipping.dhl-recovery.reconcilePickup",
    "admin.shipping.dhl-recovery.relinkLabelKey",
    "admin.shipping.dhl-recovery.resolveDeclaration",
    "admin.shipping.dhl-recovery.retryLeg",
    "admin.shipping.dhl-recovery.rerunDeclaration",
    "admin.shipping.dhl-recovery.forceReleasePickup",
    "admin.shipping.dhl-recovery.cancelPickup"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.shipments.requests.show#1",
    "admin.shipping.shipments.requests.show#7",
    "admin.shipping.shipments.requests.show#8",
    "admin.shipping.shipments.requests.show#9"
   ],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M04"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/shipments/requests/{order}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": [
    "4 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/shipments/{shipment}",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A02 (Record detail) per uri ends with a record id",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.shipping.shipments.show",
    "admin.shipping.shipments.markDelivered",
    "admin.shipping.shipments.reprintLabel"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M04"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/shipments/{shipment}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/shipping/customs-codes",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "missing-records callout"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.customs-products.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.customs-codes.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/customs-codes",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/customs-codes/create",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.products.index",
    "admin.customs-products.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.customs-codes.create#1",
    "admin.shipping.customs-codes.create#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/shipping/customs-codes/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/customs-codes/{customsCode}/edit",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.customs-products.show",
    "admin.customs-products.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.customs-codes.edit#1",
    "admin.shipping.customs-codes.edit#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/shipping/customs-codes/{customsCode}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/declaration-composition-map",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.declaration-composition-map.index",
    "admin.declaration-composition-map.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/declaration-composition-map",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/shipping/declaration-composition-map/create",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.declaration-profiles.index",
    "admin.declaration-composition-map.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/shipping/declaration-composition-map/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/shipping/declaration-composition-map/{declarationCompositionMap}/edit",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.declaration-composition-map.index",
    "admin.declaration-composition-map.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.declaration-composition-map.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/shipping/declaration-composition-map/{declarationCompositionMap}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/declaration-profiles",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.declaration-profiles.index",
    "admin.declaration-profiles.destroy",
    "admin.declaration-profiles.restore"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.declaration-profiles.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/shipping/declaration-profiles",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/declaration-profiles/create",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "quantity line editor"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.customs-products.index",
    "admin.declaration-profiles.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.declaration-profiles.create#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/shipping/declaration-profiles/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/shipping/declaration-profiles/{declarationProfile}/edit",
   "module": "shipping",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "quantity line editor"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.declaration-profiles.show",
    "admin.declaration-profiles.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.shipping.declaration-profiles.edit#1",
    "admin.shipping.declaration-profiles.edit#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm"
   ],
   "permission": "admin + manage shipping",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/shipping/declaration-profiles/{declarationProfile}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/gantt",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "ajax": 3
   },
   "archetype": "A05",
   "archetype_rule": "uri has gantt/schedule/timeline",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "3 ajax 1 load; fits A07 (Timeline / gantt / schedule) per uri has gantt/schedule/timeline",
   "retired": false,
   "hero": true,
   "example": false,
   "wave": 1,
   "archetype_was": "A07",
   "layout": "G1 Ledger",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "phase-3/flagships/gantt/ G1 (Ledger, chosen by Frank 2026-10-18; boards G1a-G1f + G1p phone)",
   "api_ops": [
    "admin.orders.gantt",
    "admin.orders.gantt-detail",
    "admin.orders.phase-summary",
    "admin.shipping.tracking"
   ],
   "needs_backend": [
    {
     "id": "PR-013",
     "kind": "proposal",
     "what": "Stuck-in-phase timers (phase ages + targets)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-057",
     "kind": "proposal",
     "what": "gantt-grid rows: factory_due_at + current_step",
     "tag": "needs-backend"
    },
    {
     "id": "PR-058",
     "kind": "proposal",
     "what": "gantt-grid rolling window (from/to across months)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-059",
     "kind": "proposal",
     "what": "Express flag on gantt rows",
     "tag": "needs-backend"
    },
    {
     "id": "PR-060",
     "kind": "proposal",
     "what": "Factory capacity per day",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-013",
    "PR-056",
    "PR-057",
    "PR-058",
    "PR-059",
    "PR-060"
   ],
   "partial_actions": [
    "admin.orders.gantt#3"
   ],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08",
    "M03",
    "date",
    "sheet",
    "filter-bar"
   ],
   "permission": "gantt chart|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/gantt",
    "answer": "Read-mostly: the same orders as a due-date list"
   },
   "notes": [
    "A07 folded into A05 as its timeline variant (decision B); gantt round in phase-3/flagships/gantt/",
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging",
    "DECIDED 2026-10-18 (Frank): G1 Ledger + view switcher Orders | Factories (G2) | Countdown (G3) on this page; countdown and factory load also as dashboard widgets; current dashboard content preserved. All G1 boards (G1a-G1f + G1p phone) are the spec (GANTT-R1.md, shots G1*.png, canvas). Status: Gantt round 2 in progress (bigger detail peek, views, dashboard). Backend: PR-057 to PR-061 (factory due + current step, from/to window, Express flag, capacity, longer countdown horizon)."
   ]
  },
  {
   "uri": "/admin/matrix/factories",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A12",
   "archetype_rule": "uri has pricing/matrix/weights",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A12 (Matrix / grid editor) per uri has pricing/matrix/weights",
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 1,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A12 hero /admin/pricing/create · phase-2/archetypes/shots/A12.png",
   "api_ops": [
    "admin.factory-matrix.show",
    "admin.factory-matrix.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "M02",
    "combobox",
    "toast",
    "error-states",
    "density"
   ],
   "permission": "view factories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/matrix/factories",
    "answer": "Read-only card per row"
   },
   "notes": []
  },
  {
   "uri": "/admin/order-components",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "ajax": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 ajax; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.orders.components.index",
    "admin.orders.components.show"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "view orders|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "dedicated",
    "route": "/m/order-components",
    "answer": "Cards in a list, status chips scrolling sideways, search on top"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/orders",
   "module": "orders",
   "founder_tier": "very_important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 30,
   "action_kinds": {
    "load": 2,
    "form": 5,
    "export": 4,
    "redirect_action": 2,
    "bulk": 2,
    "ajax": 14,
    "upload": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "status tabs incl. paid-shipping containers-as-rows",
    "14 ajax popups (assembly, QC, measurement, cloud print/order, raise-ticket)",
    "export modal + bulk print/complete"
   ],
   "reason": "14 ajax 5 form 4 export 2 load 2 redirect_action 2 bulk 1 upload; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": true,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": true,
   "flagship_area": "orders",
   "hero_ref": "phase-3/flagships/orders/ (ORDERS-R1; truth phase-2/truth/TRUTH-ORDERS.md)",
   "api_ops": [
    "admin.orders.index",
    "admin.shipping.containers.cloudPrint",
    "admin.shipping.containers.markPrinted",
    "admin.shipping.containers.print",
    "admin.orders.export",
    "admin.orders.export.download",
    "admin.orders.void",
    "admin.orders.remove-hold",
    "admin.orders.build",
    "admin.orders.assembly",
    "admin.orders.print",
    "admin.orders.bulk-print",
    "admin.orders.cloud-print",
    "admin.orders.cloud-order-preview",
    "admin.orders.cloud-order",
    "admin.orders.phase-summary",
    "admin.orders.quality-check",
    "admin.orders.measurement-check",
    "admin.orders.completed",
    "admin.orders.qc-photos",
    "admin.tickets.metadata",
    "admin.tickets.categories.show",
    "admin.tickets.templates.show",
    "admin.orders.combinations",
    "admin.tickets.attachments.store",
    "admin.tickets.attachments.delete",
    "admin.tickets.store",
    "admin.shipping.tracking"
   ],
   "needs_backend": [
    {
     "id": "PR-001",
     "kind": "proposal",
     "what": "Per-staff prefs store (saved views, column presets, density, recent/pinned across devices, My home, import mapping memory)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-007",
     "kind": "proposal",
     "what": "Counts for the filtered set (totals strip)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-013",
     "kind": "proposal",
     "what": "Stuck-in-phase timers (phase ages + targets)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-027",
     "kind": "proposal",
     "what": "Anomaly flags on orders",
     "tag": "needs-backend"
    },
    {
     "id": "PR-082",
     "kind": "proposal",
     "what": "Spec permission metadata drift on orders/tickets lists",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-001",
    "PR-002",
    "PR-007",
    "PR-013",
    "PR-027",
    "PR-049",
    "PR-051",
    "PR-052",
    "PR-053",
    "PR-054",
    "PR-082"
   ],
   "partial_actions": [
    "admin.orders.index#1",
    "admin.orders.index#6",
    "admin.orders.index#14",
    "admin.orders.index#16",
    "admin.orders.index#22",
    "admin.orders.index#23",
    "admin.orders.index#29"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M11",
    "money-input",
    "M04",
    "confirm",
    "M01",
    "switch",
    "combobox",
    "thumb",
    "date",
    "bulk-bar",
    "action-bar",
    "file-uploader"
   ],
   "permission": "view orders|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "dedicated",
    "route": "/m/orders",
    "answer": "Cards in a list, status chips scrolling sideways, search on top"
   },
   "notes": [
    "7 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/orders/bulk-print",
   "module": "orders",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "BLOCKED",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "redirect_action": 1
   },
   "archetype": "A10",
   "archetype_rule": "uri has print",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "server-rendered document (Q26) - design the shell/launcher only"
   ],
   "reason": "1 load 1 ajax 1 redirect_action; fits A10 (Print / document preview / layout designer) per uri has print",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A10 hero /admin/email-templates/{templateKey}/edit · phase-2/archetypes/shots/A10.png",
   "api_ops": [
    "admin.orders.bulk-print",
    "admin.orders.buying-sheets"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.orders.bulkPrint#2"
   ],
   "components": [
    "field",
    "segmented",
    "badge",
    "timeline",
    "M05",
    "save-bar",
    "unsaved-guard",
    "M04",
    "switch"
   ],
   "permission": "print orders|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/orders/bulk-print",
    "answer": "Preview frame only"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/orders/print/{order}",
   "module": "orders",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "BLOCKED",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "ajax": 1
   },
   "archetype": "A10",
   "archetype_rule": "uri has print",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "server PDF/mPDF document (Q26) - design the shell/launcher only"
   ],
   "reason": "1 load 1 ajax; fits A10 (Print / document preview / layout designer) per uri has print",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A10 hero /admin/email-templates/{templateKey}/edit · phase-2/archetypes/shots/A10.png",
   "api_ops": [
    "admin.orders.print",
    "admin.orders.buying-sheet"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.orders.print#2"
   ],
   "components": [
    "field",
    "segmented",
    "badge",
    "timeline",
    "M05",
    "save-bar",
    "unsaved-guard",
    "M04"
   ],
   "permission": "print orders|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/orders/print/{order}",
    "answer": "Preview frame only"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/orders/due",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A05",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "single load is a due board: garments due today..+3 days per factory + staff-needed roll-up; no row actions, read-only report",
   "overrides": [
    "grouped by factory x day",
    "staff-needed roll-up strip"
   ],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A05 hero /admin/dashboard · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.orders.due"
   ],
   "needs_backend": [
    {
     "id": "PR-061",
     "kind": "proposal",
     "what": "/orders/due horizon beyond 3 days",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-061"
   ],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08"
   ],
   "permission": "due chart|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/orders/due",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": []
  },
  {
   "uri": "/admin/orders/fabric-jobs",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 2
   },
   "archetype": "A06",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "2 loads, both a Cloud Order fabric-purchase jobs monitor (type/status/source/supplier/since filters) = job/run monitor, not a plain index",
   "overrides": [
    "supplier-select filter"
   ],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A06·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A06 hero /admin/orders/print-jobs · phase-2/archetypes/shots/A06a.png",
   "api_ops": [
    "admin.orders.fabric-jobs.index",
    "admin.suppliers.index"
   ],
   "needs_backend": [],
   "proposals": [
    "PR-055"
   ],
   "components": [
    "data-table",
    "tabs",
    "status-chip",
    "progress",
    "alert",
    "M01",
    "M04",
    "M08",
    "table-states"
   ],
   "permission": "view orders|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "dedicated",
    "route": "/m/orders/fabric-jobs",
    "answer": "Polled job list, failed first, big retry / reprint"
   },
   "notes": []
  },
  {
   "uri": "/admin/orders/measurement/edit/{order}",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.orders.measurement-check",
    "admin.orders.measurements.update"
   ],
   "needs_backend": [],
   "proposals": [
    "PR-004"
   ],
   "partial_actions": [
    "admin.orders.measurement.edit#1",
    "admin.orders.measurement.edit#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M17"
   ],
   "permission": "view pt_colors|admin AND manage shipping|admin AND view designs|admin AND view orders|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/orders/measurement/edit/{order}",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/orders/print-jobs",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "form": 2
   },
   "archetype": "A06",
   "archetype_rule": "uri is a job/run/print-run monitor",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 form 1 load 1 export; fits A06 (Live job / run monitor) per uri is a job/run/print-run monitor",
   "retired": false,
   "hero": true,
   "example": false,
   "wave": 1,
   "layout": "A06·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "self: A06 hero · phase-2/archetypes/shots/A06a.png",
   "api_ops": [
    "admin.orders.print-jobs.index",
    "admin.orders.print-jobs.pdf-url",
    "admin.orders.print-jobs.reprint",
    "admin.orders.print-jobs.kanban-reprint"
   ],
   "needs_backend": [
    {
     "id": "PR-033",
     "kind": "proposal",
     "what": "Cancel a queued print job (G1)",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-033"
   ],
   "components": [
    "data-table",
    "tabs",
    "status-chip",
    "progress",
    "alert",
    "M01",
    "M04",
    "M08",
    "table-states",
    "M11",
    "date"
   ],
   "permission": "view orders|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "dedicated",
    "route": "/m/orders/print-jobs",
    "answer": "Polled job list, failed first, big retry / reprint"
   },
   "notes": []
  },
  {
   "uri": "/admin/orders/{order}",
   "module": "orders",
   "founder_tier": "very_important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 36,
   "action_kinds": {
    "load": 11,
    "form": 4,
    "export": 3,
    "ajax": 16,
    "upload": 2
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "11 modals; raise-issue ticket composer embedded",
    "money action: settlement needs Idempotency-Key",
    "FitQ preview/apply/undo"
   ],
   "reason": "16 ajax 11 load 4 form 3 export 2 upload; fits A02 (Record detail) per uri ends with a record id",
   "retired": false,
   "hero": true,
   "example": false,
   "wave": 1,
   "layout": "A02·a",
   "flagship": true,
   "flagship_area": "orders",
   "hero_ref": "phase-3/flagships/orders/ (ORDERS-R1; truth phase-2/truth/TRUTH-ORDERS.md)",
   "api_ops": [
    "admin.orders.show",
    "admin.orders.pricing",
    "admin.orders.ancestry",
    "admin.orders.measurement-check",
    "admin.orders.fitting-validation-logs.index",
    "admin.orders.designs.index",
    "admin.orders.components.index",
    "admin.orders.buying-sheet",
    "admin.orders.special-handling",
    "admin.orders.notes.index",
    "admin.orders.notes.store",
    "admin.orders.photos.index",
    "admin.orders.print",
    "admin.orders.build",
    "admin.orders.resync-cloud-build",
    "admin.orders.assembly",
    "admin.orders.payment-settlement",
    "admin.orders.fitq.preview",
    "admin.orders.fitq.apply",
    "admin.orders.fitq.undo",
    "admin.orders.qc-photos",
    "admin.orders.cloud-print",
    "admin.orders.cloud-order-preview",
    "admin.orders.cloud-order",
    "admin.tickets.templates.show",
    "admin.tickets.ai.voice-transcribe",
    "admin.tickets.attachments.store",
    "admin.tickets.attachments.delete",
    "admin.tickets.attachments.download",
    "admin.tickets.store",
    "admin.tickets.metadata",
    "admin.tickets.categories.show",
    "admin.orders.index",
    "admin.orders.combinations",
    "admin.accounts.index"
   ],
   "needs_backend": [
    {
     "id": "PR-003",
     "kind": "proposal",
     "what": "Record-wide history / activity / audit store (activity panel, time-travel, design + pricing undo, bulk-run before-values)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-008",
     "kind": "proposal",
     "what": "Who else is here (presence + soft edit lock)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-011",
     "kind": "proposal",
     "what": "Watch a record -> notification inbox",
     "tag": "needs-backend"
    },
    {
     "id": "PR-014",
     "kind": "proposal",
     "what": "Why is this order here? (one composed explain read)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-042",
     "kind": "proposal",
     "what": "Order filter on the tickets index",
     "tag": "needs-backend"
    },
    {
     "id": "PR-043",
     "kind": "proposal",
     "what": "Order status-history read (Activity tab)",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-003",
    "PR-004",
    "PR-008",
    "PR-011",
    "PR-014",
    "PR-042",
    "PR-043",
    "PR-044",
    "PR-045",
    "PR-046",
    "PR-047",
    "PR-048",
    "PR-050",
    "PR-053"
   ],
   "partial_actions": [
    "admin.orders.show#1",
    "admin.orders.show#3",
    "admin.orders.show#23",
    "admin.orders.show#25",
    "admin.orders.show#31",
    "admin.orders.show#32",
    "admin.orders.show#34",
    "admin.orders.show#36"
   ],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "money-input",
    "M04",
    "M01",
    "combobox",
    "thumb",
    "file-uploader",
    "M17"
   ],
   "permission": "view orders|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "dedicated",
    "route": "/m/orders/{order}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": [
    "8 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/orders/{order}/edit",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "ajax": 2,
    "export": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "re-price on save; destructive-change confirm"
   ],
   "reason": "2 ajax 1 load 1 form 1 export; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.orders.show",
    "admin.orders.update",
    "admin.orders.fabrics.check",
    "admin.orders.payment-settlement",
    "admin.orders.photos.index"
   ],
   "needs_backend": [],
   "proposals": [
    "PR-004"
   ],
   "partial_actions": [
    "admin.orders.edit#1",
    "admin.orders.edit#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "money-input",
    "M04",
    "thumb",
    "M01",
    "M17"
   ],
   "permission": "edit orders|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/orders/{order}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/orders/{order}/payload-replay/{audit?}",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load; fits A02 (Record detail) per uri ends with a record id",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.orders.payload-audits.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M11"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/orders/{order}/payload-replay/{audit?}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/replays",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.replays.index",
    "admin.replays.sync"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.replays.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M11",
    "date"
   ],
   "permission": "view pt_colors|admin AND view replays|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "dedicated",
    "route": "/m/replays",
    "answer": "Cards in a list, status chips scrolling sideways, search on top"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/replays/{id}",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A02 (Record detail) per uri ends with a record id",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.replays.show",
    "admin.replays.replay"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M11",
    "M05"
   ],
   "permission": "view replays|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/replays/{id}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/replays/{id}/doctor",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A06",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "load = latest Doctor run (auto-diagnose on open) + version chain; 2 forms = re-diagnose (fresh run) + apply proven repair; a run/retry card, not an index",
   "overrides": [
    "human-value prompt (date/text) before placing order",
    "creates a REAL order -> confirm step"
   ],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A06·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A06 hero /admin/orders/print-jobs · phase-2/archetypes/shots/A06a.png",
   "api_ops": [
    "getReplayDoctorVerdict",
    "applyReplayDoctorRepair"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "data-table",
    "tabs",
    "status-chip",
    "progress",
    "alert",
    "M01",
    "M04",
    "M08",
    "table-states",
    "M05"
   ],
   "permission": "view replays|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "dedicated",
    "route": "/m/replays/{id}/doctor",
    "answer": "Polled job list, failed first, big retry / reprint"
   },
   "notes": []
  },
  {
   "uri": "/admin/replays/{id}/repair",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "load = envelope text + versions, 1 ajax suggest-repair, 1 form save-as-new-version; an editor, not an index (319 inline JS lines)",
   "overrides": [
    "raw envelope text/JSON editor with suggest-diff",
    "saves a new version, never overwrites"
   ],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.replays.show",
    "admin.replays.suggest-repair",
    "admin.replays.repair"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M11",
    "M05"
   ],
   "permission": "view replays|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/replays/{id}/repair",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/ai/system-messages",
   "module": "ai",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "plain_bootstrap",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.ai.system-messages.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "view ai|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/ai/system-messages",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/ai/system-messages/{id}/edit",
   "module": "ai",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "form": 1,
    "ajax": 2
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "ajax 2, load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "prompt test panel (paid OpenRouter call)",
    "model picker"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.ai.system-messages.show",
    "admin.ai.system-messages.update",
    "admin.ai.models",
    "admin.ai.system-messages.test"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view ai|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/ai/system-messages/{id}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/dashboard",
   "module": "dashboard",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A05",
   "archetype_rule": "uri has dashboard/report/analytics",
   "status": "confirmed",
   "from": null,
   "reason": "load 1 + ajax 1 + form 1: homepage aggregates (factory countdown, queue stats)",
   "overrides": [
    "homepage: factory countdown strip, quick order search"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "page_local_styled",
   "hero": true,
   "example": false,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "self: A05 hero · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.dashboard.index",
    "admin.dashboard.quick-search",
    "admin.fabric-overdue-alerts.resolve"
   ],
   "needs_backend": [
    {
     "id": "PR-005",
     "kind": "proposal",
     "what": "One search across orders, accounts, fabric codes, tickets, designs (⌘K beyond orders)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-061",
     "kind": "proposal",
     "what": "/orders/due horizon beyond 3 days",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-005",
    "PR-056",
    "PR-061"
   ],
   "partial_actions": [
    "admin.dashboard#1",
    "admin.dashboard#2"
   ],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08"
   ],
   "permission": "admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "dedicated",
    "route": "/m/dashboard",
    "answer": "Quick order search pinned on top + factory countdown / KPI cards"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/faq-clusters",
   "module": "tickets",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 ajax 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.faq-clusters.index",
    "admin.faq-clusters.reorder",
    "admin.faq-clusters.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M14",
    "confirm"
   ],
   "permission": "view articles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/faq-clusters",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/faq-clusters/create",
   "module": "tickets",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.faq-clusters.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view articles|admin + create articles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/faq-clusters/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/faq-clusters/{id}/edit",
   "module": "tickets",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.faq-clusters.show",
    "admin.faq-clusters.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view articles|admin + edit articles|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/faq-clusters/{id}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/feedback",
   "module": "tickets",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 export 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.feedback.index",
    "admin.feedback.export",
    "admin.feedback.status.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.feedback.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "date",
    "M01"
   ],
   "permission": "view feedback|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/feedback",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/feedback/{feedback}",
   "module": "tickets",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load; fits A02 (Record detail) per uri ends with a record id",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.feedback.show"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.feedback.show#1"
   ],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M11"
   ],
   "permission": "view pt_colors|admin AND view feedback|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/feedback/{feedback}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/feedback/categories",
   "module": "tickets",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 form 1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.feedback.categories.index",
    "admin.feedback.categories.destroy",
    "admin.feedback.categories.subcategories.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view feedback categories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/feedback/categories",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/feedback/categories/create",
   "module": "tickets",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.feedback.categories.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view feedback categories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/feedback/categories/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/feedback/categories/{category}/edit",
   "module": "tickets",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.feedback.categories.index",
    "admin.feedback.categories.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view feedback categories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/feedback/categories/{category}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/feedback/categories/{category}/subcategories/create",
   "module": "tickets",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.feedback.categories.subcategories.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view feedback categories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/feedback/categories/{category}/subcategories/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/feedback/categories/{category}/subcategories/{subcategory}/edit",
   "module": "tickets",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.feedback.categories.index",
    "admin.feedback.categories.subcategories.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view feedback categories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/feedback/categories/{category}/subcategories/{subcategory}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/settings",
   "module": "settings",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 8,
   "action_kinds": {
    "load": 2,
    "form": 2,
    "ajax": 4
   },
   "archetype": "A09",
   "archetype_rule": "uri has settings/config",
   "status": "confirmed",
   "from": null,
   "reason": "load 2 + form 2 + ajax 4 across settings tabs (general, header IDs, templates, FX)",
   "overrides": [
    "tabs incl FX rates (money path, preview impact)",
    "header-ID chips",
    "sortable message templates"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "page_local_styled",
   "hero": true,
   "example": false,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "self: A09 hero · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.settings.index",
    "admin.fx-rates.index",
    "admin.settings.update",
    "admin.fx-rates.save",
    "admin.fx-rates.preview",
    "admin.fx-rates.fetch"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.settings#1"
   ],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "M14",
    "M04",
    "M01"
   ],
   "permission": "settings",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/settings",
    "answer": "Read-only key-value list"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/tickets",
   "module": "tickets",
   "founder_tier": "very_important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "ajax": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 load 1 ajax; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 1,
   "layout": "A01·a",
   "flagship": true,
   "flagship_area": "tickets",
   "hero_ref": "phase-3/flagships/tickets/ (TICKETS-R1, awaiting Frank; truth phase-2/truth/TRUTH-TICKETS.md)",
   "api_ops": [
    "admin.tickets.index",
    "admin.tickets.metadata",
    "admin.accounts.index"
   ],
   "needs_backend": [
    {
     "id": "PR-001",
     "kind": "proposal",
     "what": "Per-staff prefs store (saved views, column presets, density, recent/pinned across devices, My home, import mapping memory)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-009",
     "kind": "proposal",
     "what": "Names-only admin picker (for @mentions and ticket assignee)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-011",
     "kind": "proposal",
     "what": "Watch a record -> notification inbox",
     "tag": "needs-backend"
    },
    {
     "id": "PR-035",
     "kind": "proposal",
     "what": "Ticket assignee + 'Mine' view + routed notifications (G3)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-039",
     "kind": "proposal",
     "what": "CN labels for ticket statuses, severities and categories",
     "tag": "needs-backend"
    },
    {
     "id": "PR-040",
     "kind": "proposal",
     "what": "Attachment count on ticket list/show payloads",
     "tag": "needs-backend"
    },
    {
     "id": "PR-042",
     "kind": "proposal",
     "what": "Order filter on the tickets index",
     "tag": "needs-backend"
    },
    {
     "id": "PR-082",
     "kind": "proposal",
     "what": "Spec permission metadata drift on orders/tickets lists",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-001",
    "PR-009",
    "PR-011",
    "PR-035",
    "PR-039",
    "PR-040",
    "PR-042",
    "PR-082"
   ],
   "partial_actions": [
    "admin.tickets#3"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "combobox"
   ],
   "permission": "view pt_colors|admin AND manage shipping|admin AND view designs|admin AND view tickets|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "dedicated",
    "route": "/m/tickets",
    "answer": "Cards in a list, status chips scrolling sideways, search on top"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/tickets/new",
   "module": "tickets",
   "founder_tier": "very_important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 12,
   "action_kinds": {
    "load": 2,
    "ajax": 8,
    "upload": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "8 ajax cascades (type->category->sub, template, owner/order typeahead)",
    "voice recorder + attachment chips"
   ],
   "reason": "8 ajax 2 load 1 upload 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 1,
   "layout": "A03·a",
   "flagship": true,
   "flagship_area": "tickets",
   "hero_ref": "phase-3/flagships/tickets/ (TICKETS-R1, awaiting Frank; truth phase-2/truth/TRUTH-TICKETS.md)",
   "api_ops": [
    "admin.tickets.types",
    "admin.tickets.metadata",
    "admin.tickets.categories.show",
    "admin.tickets.templates.show",
    "admin.accounts.index",
    "admin.orders.index",
    "admin.tickets.attachments.store",
    "admin.tickets.attachments.delete",
    "admin.tickets.attachments.download",
    "admin.tickets.ai.voice-transcribe",
    "admin.tickets.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.tickets.create#3",
    "admin.tickets.create#6",
    "admin.tickets.create#7",
    "admin.tickets.create#10"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M11",
    "M04",
    "confirm",
    "file-uploader"
   ],
   "permission": "view tickets|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/new",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "4 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/tickets/{ticket}",
   "module": "tickets",
   "founder_tier": "very_important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 15,
   "action_kinds": {
    "load": 3,
    "form": 3,
    "ajax": 8,
    "upload": 1
   },
   "archetype": "A11",
   "archetype_rule": "ticket/message thread",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "AI suggestion (RAG) + journal citation picker in composer",
    "wallet action box (money write) in side panel",
    "voice recorder"
   ],
   "reason": "8 ajax 3 load 3 form 1 upload; fits A11 (Inbox / thread) per ticket/message thread",
   "retired": false,
   "hero": true,
   "example": false,
   "wave": 1,
   "layout": "A11·a",
   "flagship": true,
   "flagship_area": "tickets",
   "hero_ref": "phase-3/flagships/tickets/ (TICKETS-R1, awaiting Frank; truth phase-2/truth/TRUTH-TICKETS.md)",
   "api_ops": [
    "admin.tickets.show",
    "admin.tickets.update",
    "admin.tickets.comments.store",
    "admin.tickets.ai.suggest",
    "admin.tickets.ai.voice-transcribe",
    "admin.tickets.citations.search",
    "admin.tickets.templates.show",
    "admin.tickets.categories.show",
    "admin.tickets.attachments.store",
    "admin.tickets.attachments.delete",
    "admin.tickets.attachments.download",
    "admin.tickets.billable-account",
    "admin.wallet-action-templates.index",
    "admin.tickets.wallet-transactions.store"
   ],
   "needs_backend": [
    {
     "id": "PR-009",
     "kind": "proposal",
     "what": "Names-only admin picker (for @mentions and ticket assignee)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-011",
     "kind": "proposal",
     "what": "Watch a record -> notification inbox",
     "tag": "needs-backend"
    },
    {
     "id": "PR-026",
     "kind": "proposal",
     "what": "Ticket summary + suggested next step (AI summary mode, explicit button)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-035",
     "kind": "proposal",
     "what": "Ticket assignee + 'Mine' view + routed notifications (G3)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-036",
     "kind": "proposal",
     "what": "Internal (staff-only) ticket note (G4)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-037",
     "kind": "proposal",
     "what": "Persist the last AI suggestion per ticket (no re-billing on reopen)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-039",
     "kind": "proposal",
     "what": "CN labels for ticket statuses, severities and categories",
     "tag": "needs-backend"
    },
    {
     "id": "PR-040",
     "kind": "proposal",
     "what": "Attachment count on ticket list/show payloads",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-009",
    "PR-011",
    "PR-019",
    "PR-026",
    "PR-035",
    "PR-036",
    "PR-037",
    "PR-038",
    "PR-039",
    "PR-040",
    "PR-041"
   ],
   "partial_actions": [
    "admin.tickets.show#1",
    "admin.tickets.show#11",
    "admin.tickets.show#15"
   ],
   "components": [
    "list-row",
    "thread",
    "M16",
    "M06",
    "sheet",
    "money-input",
    "confirm",
    "toast",
    "filter-bar",
    "M08",
    "M11",
    "combobox",
    "file-uploader"
   ],
   "permission": "view tickets|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "dedicated",
    "route": "/m/tickets/{ticket}",
    "answer": "List -> thread; AI draft button, voice note, upload; context in a bottom sheet"
   },
   "notes": [
    "3 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/tickets/categories",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.tickets.categories.index",
    "admin.tickets.categories.delete"
   ],
   "needs_backend": [
    {
     "id": "PR-039",
     "kind": "proposal",
     "what": "CN labels for ticket statuses, severities and categories",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-039"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view tickets categories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/tickets/categories",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/categories/new",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.tickets.types",
    "admin.tickets.categories.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view tickets|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/categories/new",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/categories/{category}",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "uri ends with a record id",
   "status": "corrected",
   "from": "A02",
   "reason": "1 load = paginated subcategory list under a parent + 1 delete form; a nested index with a header, no tabs/side panel",
   "overrides": [
    "parent-category header strip"
   ],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.tickets.categories.show",
    "admin.tickets.subcategories.delete"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view tickets categories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/tickets/categories/{category}",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/categories/{category}/edit",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.tickets.categories.show",
    "admin.tickets.types",
    "admin.tickets.categories.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view tickets categories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/categories/{category}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/categories/{category}/subcategories/new",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.tickets.categories.show",
    "admin.tickets.subcategories.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view tickets categories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/categories/{category}/subcategories/new",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/categories/{category}/subcategories/{subcategory}/edit",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.tickets.categories.show",
    "admin.tickets.subcategories.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view tickets categories|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/categories/{category}/subcategories/{subcategory}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/settings",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A09",
   "archetype_rule": "uri has settings/config",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 form 1 load; fits A09 (Settings / configuration) per uri has settings/config",
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 1,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.tickets.settings.index",
    "admin.tickets.settings.update",
    "admin.tickets.run-autoclose"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm"
   ],
   "permission": "view tickets settings|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/tickets/settings",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/severity",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.tickets.severities.index",
    "admin.tickets.severities.delete"
   ],
   "needs_backend": [
    {
     "id": "PR-039",
     "kind": "proposal",
     "what": "CN labels for ticket statuses, severities and categories",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-039"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view tickets severities|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/tickets/severity",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/severity/new",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.tickets.severities.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "manage tickets severities|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/severity/new",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/severity/{severity}/edit",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.tickets.severities.index",
    "admin.tickets.severities.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view tickets severities|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/severity/{severity}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/status",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.tickets.statuses.index",
    "admin.tickets.statuses.delete"
   ],
   "needs_backend": [
    {
     "id": "PR-039",
     "kind": "proposal",
     "what": "CN labels for ticket statuses, severities and categories",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-039"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view pt_colors|admin AND manage shipping|admin AND view designs|admin AND view tickets|admin AND view tickets statuses|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/tickets/status",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/status/new",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.tickets.statuses.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view pt_colors|admin AND manage shipping|admin AND view designs|admin AND view tickets|admin AND manage tickets statuses|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/status/new",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/status/{status}/edit",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.tickets.statuses.index",
    "admin.tickets.statuses.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view pt_colors|admin AND manage shipping|admin AND view designs|admin AND view tickets|admin AND view tickets statuses|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/status/{status}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/templates",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.tickets.templates.index",
    "admin.tickets.templates.delete"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view tickets templates|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/tickets/templates",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/templates/new",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 ajax 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.tickets.types",
    "admin.tickets.citations.search",
    "admin.tickets.templates.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M16"
   ],
   "permission": "view tickets|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/templates/new",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/templates/{template}/edit",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 2,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 load 1 ajax 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.tickets.templates.show",
    "admin.tickets.types",
    "admin.tickets.citations.search",
    "admin.tickets.templates.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M16"
   ],
   "permission": "view tickets|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/tickets/templates/{template}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/training-data",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.tickets.training-data.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "view training data|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/tickets/training-data",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/training-data/pending",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.tickets.training-data.pending"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "view training data|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/tickets/training-data/pending",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/tickets/training-data/{exportLog}",
   "module": "tickets",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load; fits A02 (Record detail) per uri ends with a record id",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.tickets.training-data.show"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "M11"
   ],
   "permission": "view training data|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/tickets/training-data/{exportLog}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/account-classification/create",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.account-classification.groups.index",
    "admin.account-classification.rules.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view account classification",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/account-classification/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/account-classification/groups",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.account-classification.groups.index",
    "admin.account-classification.groups.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view account classification",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/account-classification/groups",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/account-classification/index",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "bulk": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 bulk 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.account-classification.rules.index",
    "admin.account-classification.bulk-assign",
    "admin.account-classification.rules.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm",
    "bulk-bar",
    "action-bar"
   ],
   "permission": "view account classification",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/account-classification/index",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/admin/account-classification/edit/{id}",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.account-classification.rules.show",
    "admin.account-classification.rules.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "view account classification",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/admin/account-classification/edit/{id}",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/billing",
   "module": "billing",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.accounts.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "billing#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "money-input",
    "confirm",
    "combobox"
   ],
   "permission": "view accounts|admin",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/billing",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/billing/surcharges/{retailer}",
   "module": "billing",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A09",
   "archetype_rule": "uri has pricing/matrix/weights",
   "status": "corrected",
   "from": "A12",
   "reason": "1 load + 1 form of two per-retailer percentages (card/bank); per-record config, no grid",
   "overrides": [
    "scoped to one retailer (breadcrumb from /admin/billing)"
   ],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.billing.surcharges.show",
    "admin.billing.surcharges.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "money-input"
   ],
   "permission": "surcharge|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/billing/surcharges/{retailer}",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/billing/wallet-action-templates",
   "module": "billing",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.wallet-action-templates.index",
    "admin.wallet-action-templates.active"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "wallet|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/billing/wallet-action-templates",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/billing/wallet-action-templates/new",
   "module": "billing",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.wallet-action-templates.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "wallet|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/billing/wallet-action-templates/new",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/billing/wallet-action-templates/{walletActionTemplate}/edit",
   "module": "billing",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.wallet-action-templates.index",
    "admin.wallet-action-templates.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "billing.wallet-action-templates.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "wallet|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/billing/wallet-action-templates/{walletActionTemplate}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/wallet/{user}",
   "module": "billing",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 2,
    "form": 1,
    "upload": 1
   },
   "archetype": "A02",
   "archetype_rule": "uri ends with a record id",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "money write: credit/debit with Idempotency-Key",
    "voice-to-reason upload"
   ],
   "reason": "2 load 1 form 1 upload; fits A02 (Record detail) per uri ends with a record id",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A02·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A02 hero /admin/orders/{order} · phase-2/archetypes/shots/A02a.png",
   "api_ops": [
    "admin.billing.wallets.show",
    "admin.wallet-action-templates.index",
    "admin.billing.wallets.transactions.store",
    "admin.tickets.ai.voice-transcribe"
   ],
   "needs_backend": [],
   "proposals": [
    "PR-019"
   ],
   "partial_actions": [
    "user.wallet#4"
   ],
   "components": [
    "record-header",
    "tabs",
    "key-value",
    "description-list",
    "timeline",
    "alert",
    "confirm",
    "toast",
    "sheet",
    "money-input",
    "combobox",
    "file-uploader"
   ],
   "permission": "wallet|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/wallet/{user}",
    "answer": "Read-mostly record: facts, production, cloud print; edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/crm/settings",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A09",
   "archetype_rule": "uri has settings/config",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A09 (Settings / configuration) per uri has settings/config",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.crm.index",
    "admin.crm.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm"
   ],
   "permission": "view crm|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/crm/settings",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/industries",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "load": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.industries.index"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M07"
   ],
   "permission": "view industries|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/industries",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/industries/create",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.industries.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M07"
   ],
   "permission": "create industries|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/industries/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/industries/{industry}/edit",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.industries.show",
    "admin.industries.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit industries|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/industries/{industry}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/regions",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "ajax": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 ajax; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.regions.index",
    "admin.regions.active"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "regions.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm",
    "switch"
   ],
   "permission": "view regions|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/regions",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/regions/create",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.regions.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create regions|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/regions/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/regions/{region}/edit",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.regions.show",
    "admin.regions.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit regions|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/regions/{region}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/retailer/{retailer}/connected-apps",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 2,
    "form": 3
   },
   "archetype": "A09",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "2 loads of integration status + 3 forms (switch on/off, link Studio team, seed users); status panel with switches, not a table",
   "overrides": [
    "one-time Studio team picker state",
    "audit tail + last-error block"
   ],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.social-capsule-media-grants.show",
    "admin.social-capsule-media-grants.studio-teams",
    "admin.social-capsule-media-grants.toggle",
    "admin.social-capsule-media-grants.link-team",
    "admin.social-capsule-media-grants.sync-users"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "combobox"
   ],
   "permission": "users.role = admin (as the web page) + token scope micro-apps:write",
   "permission_source": "x-permission (or 'Permission:' in the op description) of the page's ops, most common",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/retailer/{retailer}/connected-apps",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/retailer/{retailer}/subscriptions",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 form 1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.retailers.subscriptions.index",
    "admin.retailers.subscriptions.activate",
    "admin.retailers.subscriptions.deactivate"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet"
   ],
   "permission": "view micro_apps|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/retailer/{retailer}/subscriptions",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/sessions",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "typed-confirm REVOKE ALL"
   ],
   "reason": "2 ajax 1 load; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.sessions.index",
    "admin.accounts.sessions.destroy",
    "admin.sessions.revoke-all"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "sessions.index#2"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/sessions",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/staffs/create",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A09",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "corrected",
   "from": "A03",
   "reason": "1 load of ALL StaffSetting key/values + 1 form upserting every key; a key/value settings page despite /create URL",
   "overrides": [],
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.staffs.index",
    "admin.staffs.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm"
   ],
   "permission": "staffs|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/staffs/create",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/user/{user}/sub-accounts",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 ajax 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.accounts.sub-accounts.index",
    "admin.accounts.sub-accounts.destroy",
    "admin.accounts.reset-2fa"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "users.sub-accounts.index#2"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view retailer_user_accounts|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/user/{user}/sub-accounts",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/user/{user}/sub-accounts/create",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 2,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 load 1 ajax 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.accounts.show",
    "admin.accounts.roles.index",
    "admin.accounts.roles.permissions",
    "admin.accounts.sub-accounts.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "users.sub-accounts.create#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M11"
   ],
   "permission": "create retailer_user_accounts|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/user/{user}/sub-accounts/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/user/{user}/sub-accounts/{sub_account}/edit",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 3,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "3 load 1 ajax 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.accounts.sub-accounts.show",
    "admin.accounts.roles.index",
    "admin.accounts.sessions.index",
    "admin.accounts.roles.permissions",
    "admin.accounts.sub-accounts.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "users.sub-accounts.edit#3",
    "users.sub-accounts.edit#5"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "confirm"
   ],
   "permission": "edit retailer_user_accounts|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/user/{user}/sub-accounts/{sub_account}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/users",
   "module": "users",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "ajax": 2,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 ajax 1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.accounts.index",
    "admin.accounts.v-toggles",
    "admin.accounts.offline",
    "admin.accounts.reset-2fa"
   ],
   "needs_backend": [
    {
     "id": "PR-017",
     "kind": "proposal",
     "what": "Dry-run impact preview on the four bulk writes",
     "tag": "needs-backend"
    },
    {
     "id": "PR-018",
     "kind": "proposal",
     "what": "Undo a whole bulk run (10-minute window)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-022",
     "kind": "proposal",
     "what": "Trends inside the table (metric series sparklines)",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-017",
    "PR-018",
    "PR-022"
   ],
   "partial_actions": [
    "users.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "money-input",
    "confirm",
    "switch"
   ],
   "permission": "view retailers|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/users",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/users-configurations/{user}",
   "module": "users",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "ajax": 2,
    "form": 1
   },
   "archetype": "A09",
   "archetype_rule": "uri has settings/config",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "cascading main product -> product -> design-tree checklist"
   ],
   "reason": "2 ajax 1 load 1 form; fits A09 (Settings / configuration) per uri has settings/config",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.accounts.configurations.index",
    "admin.main-products.products",
    "admin.products.designs",
    "admin.accounts.configurations.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "M15",
    "M11"
   ],
   "permission": "configure accounts|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/users-configurations/{user}",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/users/bulk-features",
   "module": "users",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "bulk": 1
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "1 load 1 bulk; fits A04 (Wizard / import / bulk operation) per uri has import/bulk/wizard",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A04 hero /admin/designs/bulk-hub · phase-2/archetypes/shots/A04.png",
   "api_ops": [
    "admin.accounts.index",
    "admin.accounts.bulk-features"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "M04",
    "bulk-bar",
    "action-bar"
   ],
   "permission": "edit retailers|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/users/bulk-features",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": []
  },
  {
   "uri": "/admin/users/bulk-permissions",
   "module": "users",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "bulk": 1
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 load 1 bulk; fits A04 (Wizard / import / bulk operation) per uri has import/bulk/wizard",
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 2,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A04 hero /admin/designs/bulk-hub · phase-2/archetypes/shots/A04.png",
   "api_ops": [
    "admin.accounts.index",
    "admin.accounts.permission-catalogue",
    "admin.accounts.bulk-permissions"
   ],
   "needs_backend": [
    {
     "id": "PR-017",
     "kind": "proposal",
     "what": "Dry-run impact preview on the four bulk writes",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-017"
   ],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "bulk-bar",
    "action-bar"
   ],
   "permission": "edit retailers|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/users/bulk-permissions",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": []
  },
  {
   "uri": "/admin/users/create",
   "module": "users",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 3,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "3 load 1 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.currencies.index",
    "admin.regions.index",
    "admin.accounts.permission-catalogue",
    "admin.accounts.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "users.create#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M14",
    "money-input"
   ],
   "permission": "create retailers|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/users/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/users/{user}/edit",
   "module": "users",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 10,
   "action_kinds": {
    "load": 7,
    "form": 3
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "7 load 3 form; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "retired": false,
   "hero": false,
   "example": true,
   "wave": 2,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.accounts.show",
    "admin.currencies.index",
    "admin.regions.index",
    "admin.accounts.permission-catalogue",
    "admin.accounts.clerk-status",
    "admin.social-capsule-media-grants.show",
    "admin.accounts.sessions.index",
    "admin.accounts.update",
    "admin.accounts.force-logout",
    "admin.accounts.clerk-sync"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "users.edit#3",
    "users.edit#7",
    "users.edit#8"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "money-input",
    "confirm"
   ],
   "permission": "edit retailers|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/users/{user}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "3 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/users/{user}/sessions",
   "module": "users",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "ajax": 2,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [],
   "reason": "2 ajax 1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.accounts.sessions.index",
    "admin.accounts.sessions.destroy",
    "admin.accounts.tokens.destroy",
    "admin.accounts.force-logout"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/users/{user}/sessions",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/users/{user}/sessions/api",
   "module": "users",
   "founder_tier": "important",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "ajax": 2,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "overrides": [
    "same view as /admin/users/{user}/sessions - design once, alias"
   ],
   "reason": "2 ajax 1 load 1 form; fits A01 (Index table) per default: index page",
   "retired": false,
   "hero": false,
   "example": false,
   "wave": 2,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.accounts.sessions.index",
    "admin.accounts.sessions.destroy",
    "admin.accounts.tokens.destroy",
    "admin.accounts.force-logout"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/users/{user}/sessions/api",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/fitq-config",
   "module": "vision-checks",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "export": 1,
    "upload": 1,
    "ajax": 2
   },
   "archetype": "A04",
   "archetype_rule": "uri has settings/config",
   "status": "corrected",
   "from": "A09",
   "reason": "upload 1 + ajax 2 (confirm/cancel staged import) + export 1 dominate; matrices only change via JSON full-replace import",
   "overrides": [
    "read-only matrix list per product type above import",
    "per-type JSON download"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A04 hero /admin/designs/bulk-hub · phase-2/archetypes/shots/A04.png",
   "api_ops": [
    "admin.fitq.config",
    "admin.fitq.download",
    "admin.fitq.import",
    "admin.fitq.import.confirm",
    "admin.fitq.import.cancel"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "M11",
    "file-uploader"
   ],
   "permission": "admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fitq-config",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": []
  },
  {
   "uri": "/admin/fitting-validations",
   "module": "vision-checks",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 4,
   "action_kinds": {
    "load": 2,
    "export": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, export 2; fits A01 (Index table) per default: index page",
   "overrides": [
    "two tables (hard limits, cross-measurement rules)",
    "JSON exports"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.fitting-validations.limits.index",
    "admin.fitting-validations.rules.index",
    "admin.fitting-validations.export"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M11",
    "M01"
   ],
   "permission": "manage fitting validations|admin + admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/fitting-validations",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/fitting-validations/limits/create",
   "module": "vision-checks",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.fitting-validations.limits.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "manage fitting validations|admin + admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fitting-validations/limits/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/fitting-validations/limits/{id}/edit",
   "module": "vision-checks",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.fitting-validations.limits.index",
    "admin.fitting-validations.limits.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.fitting-validations.limits.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "manage fitting validations|admin + admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fitting-validations/limits/{id}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fitting-validations/rules/create",
   "module": "vision-checks",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.fitting-validations.rules.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "manage fitting validations|admin + admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fitting-validations/rules/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/fitting-validations/rules/{id}/edit",
   "module": "vision-checks",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.fitting-validations.rules.index",
    "admin.fitting-validations.rules.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.fitting-validations.rules.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "manage fitting validations|admin + admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fitting-validations/rules/{id}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/fitting-validations/upload",
   "module": "vision-checks",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "upload": 1,
    "ajax": 2
   },
   "archetype": "A04",
   "archetype_rule": "uri has import/bulk/wizard",
   "status": "confirmed",
   "from": null,
   "reason": "ajax 2, upload 1, load 1; fits A04 (Wizard / import / bulk) per uri has import/bulk/wizard",
   "overrides": [],
   "retired": false,
   "complexity": 4,
   "style_family": "page_local_styled",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A04 hero /admin/designs/bulk-hub · phase-2/archetypes/shots/A04.png",
   "api_ops": [
    "admin.fitting-validations.import",
    "admin.fitting-validations.import.confirm",
    "admin.fitting-validations.import.cancel"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "stepper",
    "review-step",
    "wizard-action-bar",
    "M05",
    "confirm",
    "M01",
    "error-states",
    "M11",
    "file-uploader"
   ],
   "permission": "manage fitting validations|admin + admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/fitting-validations/upload",
    "answer": "Not on phone: wizards/imports stay desktop; the job still shows in the phone tray"
   },
   "notes": []
  },
  {
   "uri": "/admin/vision-checks/dashboard",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A05",
   "archetype_rule": "uri has dashboard/report/analytics",
   "status": "confirmed",
   "from": null,
   "reason": "load 1 + form 2: safety-state tiles (breaker, cap, 7-day pass/fail) with kill/reset controls",
   "overrides": [
    "kill switch + reset breaker controls"
   ],
   "retired": false,
   "complexity": 1,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A05 hero /admin/dashboard · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.vision-checks.dashboard.index",
    "admin.vision-checks.kill-switch.toggle",
    "admin.vision-checks.breaker.reset"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08",
    "switch"
   ],
   "permission": "view vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/vision-checks/dashboard",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": []
  },
  {
   "uri": "/admin/vision-checks/failure-reasons/manage",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 8,
   "action_kinds": {
    "load": 1,
    "ajax": 7
   },
   "archetype": "A09",
   "archetype_rule": "default: index page",
   "status": "corrected",
   "from": "A01",
   "reason": "load 1 + ajax 7 (chip CRUD, module/checkpoint/category toggles, translate); checkpoint config tree, not a table",
   "overrides": [
    "bilingual chips with machine-translate (paid)",
    "checkpoint/category toggle tree"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": true,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.vision-checks.failure-reasons.index",
    "admin.vision-checks.failure-reasons.children",
    "admin.vision-checks.failure-reasons.store",
    "admin.vision-checks.failure-reasons.update",
    "admin.vision-checks.failure-reasons.toggle-module",
    "admin.vision-checks.failure-reasons.toggle-checkpoint",
    "admin.vision-checks.failure-reasons.toggle-category",
    "admin.vision-checks.failure-reasons.translate-suggest"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.vision-checks.failure-reasons.manage#1",
    "admin.vision-checks.failure-reasons.manage#5",
    "admin.vision-checks.failure-reasons.manage#6",
    "admin.vision-checks.failure-reasons.manage#7",
    "admin.vision-checks.failure-reasons.manage#8"
   ],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "M14",
    "M07",
    "M15",
    "M11",
    "M04",
    "combobox"
   ],
   "permission": "view vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/vision-checks/failure-reasons/manage",
    "answer": "Read-only key-value list"
   },
   "notes": [
    "5 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/vision-checks/failure-reasons/report",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "export": 1
   },
   "archetype": "A05",
   "archetype_rule": "uri has dashboard/report/analytics",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, export 1; fits A05 (Dashboard / report) per uri has dashboard/report/analytics",
   "overrides": [
    "drill rows with photo thumbnails"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": true,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A05 hero /admin/dashboard · phase-2/archetypes/shots/A05.png",
   "api_ops": [
    "admin.vision-checks.failure-reasons.report",
    "admin.vision-checks.failure-reasons.report-export"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.vision-checks.failure-reasons.report#1"
   ],
   "components": [
    "kpi-tile",
    "data-table",
    "chart-frame",
    "M08",
    "thumb",
    "M01"
   ],
   "permission": "view vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/vision-checks/failure-reasons/report",
    "answer": "Read-only KPI cards and the report table"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/vision-checks/instructions",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.vision-checks.instructions.index",
    "admin.vision-checks.instructions.retire"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M04",
    "confirm"
   ],
   "permission": "view vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/vision-checks/instructions",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/vision-checks/instructions/create",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.vision-checks.checkpoints.index",
    "admin.vision-checks.instructions.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "create vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/vision-checks/instructions/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/vision-checks/instructions/{visionInstructionTemplate}/edit",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 1,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.vision-checks.instructions.index",
    "admin.vision-checks.checkpoints.index",
    "admin.vision-checks.instructions.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.vision-checks.instructions.edit#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "edit vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/vision-checks/instructions/{visionInstructionTemplate}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/vision-checks/models",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.vision-checks.models.index",
    "admin.vision-checks.models.restore",
    "admin.vision-checks.models.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/vision-checks/models",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/vision-checks/models/create",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "form 1, ajax 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "model picker"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.ai.models",
    "admin.vision-checks.models.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.vision-checks.models.create#1"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/vision-checks/models/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/vision-checks/models/{visionModelProfile}/edit",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 2
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1, ajax 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "model picker",
    "refresh capabilities"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.vision-checks.models.show",
    "admin.ai.models",
    "admin.vision-checks.models.update",
    "admin.vision-checks.models.refresh-capabilities"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.vision-checks.models.edit#1",
    "admin.vision-checks.models.edit#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/vision-checks/models/{visionModelProfile}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/vision-checks/results",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "BLOCKED",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A08",
   "archetype_rule": "uri has photo/media/vision results",
   "status": "confirmed",
   "from": null,
   "reason": "load 1 + form 2 (re-run, human PASS/FAIL) over photo history with S3 temp URLs; photo verdict review",
   "overrides": [
    "re-run (paid, throttled)",
    "human PASS/FAIL verdict"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": true,
   "example": false,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "self: A08 hero · phase-2/archetypes/shots/A08.png",
   "api_ops": [
    "admin.vision-checks.results.index",
    "admin.vision-checks.results.rerun",
    "admin.vision-checks.results.resolve"
   ],
   "needs_backend": [
    {
     "id": "PR-024",
     "kind": "proposal",
     "what": "Keeps working when Wi-Fi drops (Idempotency-Key honoured on floor writes)",
     "tag": "needs-backend"
    },
    {
     "id": "PR-034",
     "kind": "proposal",
     "what": "Resolve several vision results at once (G2)",
     "tag": "needs-backend"
    }
   ],
   "proposals": [
    "PR-024",
    "PR-034"
   ],
   "partial_actions": [
    "admin.vision-checks.results.index#1",
    "admin.vision-checks.results.index#2"
   ],
   "components": [
    "card-gallery",
    "M10",
    "tabs",
    "status-chip",
    "sheet",
    "kbd",
    "thumb"
   ],
   "permission": "view vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "dedicated",
    "route": "/m/vision-checks/results",
    "answer": "One photo per screen, big Pass / Fail, swipe to next"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/vision-checks/rules",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.vision-checks.rules.index",
    "admin.vision-checks.rules.restore",
    "admin.vision-checks.rules.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.vision-checks.rules.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/vision-checks/rules",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/vision-checks/rules/create",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 1,
    "ajax": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "ajax 2, load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "prompt editor + instruction library",
    "model picker"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.vision-checks.rules.form-options",
    "admin.ai.models",
    "admin.vision-checks.instructions.store",
    "admin.vision-checks.rules.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.vision-checks.rules.create#2",
    "admin.vision-checks.rules.create#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "create vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/vision-checks/rules/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/vision-checks/rules/{visionCheckRule}/edit",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 2,
    "ajax": 2,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, ajax 2, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "prompt editor + instruction library",
    "model picker"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 3,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.vision-checks.rules.show",
    "admin.vision-checks.rules.form-options",
    "admin.ai.models",
    "admin.vision-checks.instructions.store",
    "admin.vision-checks.rules.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.vision-checks.rules.edit#3",
    "admin.vision-checks.rules.edit#4"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "edit vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/vision-checks/rules/{visionCheckRule}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/vision-checks/settings",
   "module": "vision-checks",
   "founder_tier": "overhaul_candidate",
   "off_limits": false,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 3
   },
   "archetype": "A09",
   "archetype_rule": "uri has settings/config",
   "status": "confirmed",
   "from": null,
   "reason": "form 3, load 1, ajax 1; fits A09 (Settings / configuration) per uri has settings/config",
   "overrides": [
    "model picker A/B"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": true,
   "wave": 3,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.vision-checks.settings.index",
    "admin.ai.models",
    "admin.vision-checks.default-models.update",
    "admin.vision-checks.blur-threshold.update",
    "admin.vision-checks.retry-attempts.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.vision-checks.settings.index#2"
   ],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "combobox"
   ],
   "permission": "view vision_checks|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/vision-checks/settings",
    "answer": "Read-only key-value list"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/wechat/contacts",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "READY",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.wechat.contacts.index",
    "admin.wechat.contacts.restore",
    "admin.wechat.contacts.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm"
   ],
   "permission": "view wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/wechat/contacts",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/wechat/contacts/create",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "READY",
   "actions": 1,
   "action_kinds": {
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.wechat.contacts.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "create wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/wechat/contacts/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/wechat/contacts/{wechatContact}/edit",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.wechat.contacts.show",
    "admin.wechat.contacts.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states"
   ],
   "permission": "edit wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/wechat/contacts/{wechatContact}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/wechat/event-bindings",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "form": 2
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 2, load 1; fits A01 (Index table) per default: index page",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.wechat.event-bindings.index",
    "admin.wechat.event-bindings.restore",
    "admin.wechat.event-bindings.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.wechat.event-bindings.index#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M04",
    "confirm"
   ],
   "permission": "view wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/wechat/event-bindings",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/wechat/event-bindings/create",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 3,
   "action_kinds": {
    "load": 1,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1, ajax 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "preview modal of unsaved template",
    "ported (T001 Q12)"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.wechat.event-bindings.events",
    "admin.wechat.event-bindings.preview",
    "admin.wechat.event-bindings.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.wechat.event-bindings.create#1",
    "admin.wechat.event-bindings.create#2"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "create wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/wechat/event-bindings/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/wechat/event-bindings/{wechatEventBinding}/edit",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 4,
   "action_kinds": {
    "load": 2,
    "ajax": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 2, form 1, ajax 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "preview modal of unsaved template",
    "ported (T001 Q12)"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.wechat.event-bindings.show",
    "admin.wechat.event-bindings.events",
    "admin.wechat.event-bindings.preview",
    "admin.wechat.event-bindings.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.wechat.event-bindings.edit#2",
    "admin.wechat.event-bindings.edit#3"
   ],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M04"
   ],
   "permission": "edit wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/wechat/event-bindings/{wechatEventBinding}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/wechat/messages",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 5,
   "action_kinds": {
    "load": 1,
    "form": 4
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "form 4, load 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "Message Center kill switch",
    "pause/resume per row"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.wechat.messages.index",
    "admin.wechat.kill-switch.update",
    "admin.wechat.messages.toggle",
    "admin.wechat.messages.restore",
    "admin.wechat.messages.destroy"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.wechat.messages.index#1",
    "admin.wechat.messages.index#3"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm",
    "switch"
   ],
   "permission": "view wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/wechat/messages",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "2 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/wechat/messages/create",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A03 (Create / edit form) per uri is a create/new/edit route",
   "overrides": [
    "cron builder"
   ],
   "retired": false,
   "complexity": 3,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.wechat.contacts.index",
    "admin.wechat.messages.store"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M12"
   ],
   "permission": "create wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/wechat/messages/create",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/wechat/messages/sends-history",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "retry failed send per row"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.wechat.messages.sends-history",
    "admin.wechat.sends.retry"
   ],
   "needs_backend": [],
   "proposals": [],
   "partial_actions": [
    "admin.wechat.messages.sends-history#1"
   ],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "M01"
   ],
   "permission": "view wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/wechat/messages/sends-history",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": [
    "1 action(s) were PARTIAL on 2026-10-12; mapped to the op (T001 wave-1 closed the listed gaps) - verify field coverage on staging"
   ]
  },
  {
   "uri": "/admin/wechat/messages/{wechatMessage}/edit",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 7,
   "action_kinds": {
    "load": 1,
    "form": 2,
    "ajax": 4
   },
   "archetype": "A03",
   "archetype_rule": "uri is a create/new/edit route",
   "status": "confirmed",
   "from": null,
   "reason": "load 1 + form 2 + ajax 4; message form with preview/test-send side panel (WeChat ported, T001 Q12)",
   "overrides": [
    "cron builder",
    "preview / send-now / send-test panel",
    "last 10 sends"
   ],
   "retired": false,
   "complexity": 4,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A03·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A03 hero /admin/designs/{design}/edit · phase-2/archetypes/shots/A03a.png",
   "api_ops": [
    "admin.wechat.messages.show",
    "admin.wechat.messages.update",
    "admin.wechat.messages.preview",
    "admin.wechat.messages.send-now",
    "admin.wechat.messages.preview-sample",
    "admin.wechat.messages.send-test",
    "admin.wechat.sends.retry"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "form-section",
    "step-rail",
    "field",
    "input",
    "select",
    "combobox",
    "switch",
    "textarea",
    "save-bar",
    "unsaved-guard",
    "error-states",
    "M12"
   ],
   "permission": "edit wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "desktop-only-notice",
    "route": "/m/not-on-phone?to=/wechat/messages/{wechatMessage}/edit",
    "answer": "Not on phone: long edits stay desktop-first"
   },
   "notes": []
  },
  {
   "uri": "/admin/wechat/sends-history",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "NEEDS_BACKEND",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A01",
   "archetype_rule": "default: index page",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A01 (Index table) per default: index page",
   "overrides": [
    "retry failed send per row"
   ],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": "A01·a",
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A01 hero /admin/orders · phase-2/archetypes/shots/A01a.png",
   "api_ops": [
    "admin.wechat.sends.index",
    "admin.wechat.sends.retry"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "page-header",
    "data-table",
    "filter-bar",
    "tabs",
    "status-chip",
    "column-types",
    "row-actions",
    "sticky-header",
    "density",
    "table-states",
    "pagination",
    "saved-views",
    "sheet",
    "confirm",
    "date"
   ],
   "permission": "view wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/wechat/sends-history",
    "answer": "Read-only cards in a list with search; bulk and edits stay on desktop"
   },
   "notes": []
  },
  {
   "uri": "/admin/wechat/settings",
   "module": "wechat",
   "founder_tier": "off_limits",
   "off_limits": true,
   "api_verdict": "READY",
   "actions": 2,
   "action_kinds": {
    "load": 1,
    "form": 1
   },
   "archetype": "A09",
   "archetype_rule": "uri has settings/config",
   "status": "confirmed",
   "from": null,
   "reason": "load 1, form 1; fits A09 (Settings / configuration) per uri has settings/config",
   "overrides": [],
   "retired": false,
   "complexity": 2,
   "style_family": "recently_updated_custom",
   "hero": false,
   "example": false,
   "wave": 4,
   "layout": null,
   "flagship": false,
   "flagship_area": null,
   "hero_ref": "A09 hero /admin/settings · phase-2/archetypes/shots/A09.png",
   "api_ops": [
    "admin.wechat.settings.verdict-labels.index",
    "admin.wechat.settings.verdict-labels.update"
   ],
   "needs_backend": [],
   "proposals": [],
   "components": [
    "settings-subnav",
    "form-section",
    "field",
    "input",
    "switch",
    "select",
    "tag-input",
    "save-bar",
    "unsaved-guard",
    "confirm",
    "M04"
   ],
   "permission": "view wechat_messages|admin",
   "permission_source": "route middleware (programme page-map.json)",
   "phone": {
    "mode": "read-mostly",
    "route": "/m/wechat/settings",
    "answer": "Read-only key-value list"
   },
   "notes": []
  },
  {
   "uri": "/admin/v1/gantt",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": null,
   "actions": 0,
   "action_kinds": {},
   "archetype": null,
   "archetype_rule": "retired: not in coverage pages",
   "status": "retired",
   "from": null,
   "reason": "retired (founder 2026-10-09 answer 3, TD-1211); would have been the only gantt page; fragments disagreed on archetype, set null",
   "overrides": [
    "retired: do not design"
   ],
   "retired": true,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": null,
   "hero_ref": null,
   "flagship": false,
   "flagship_area": null,
   "components": [],
   "api_ops": [],
   "needs_backend": [],
   "permission": null,
   "phone": null,
   "api_ops_note": "retired: not designed",
   "notes": [
    "retired (founder 2026-10-09 answer 3, TD-1211); not designed"
   ]
  },
  {
   "uri": "/admin/v1/orders",
   "module": "orders",
   "founder_tier": "unrated",
   "off_limits": false,
   "api_verdict": null,
   "actions": 0,
   "action_kinds": {},
   "archetype": null,
   "archetype_rule": "retired: not in coverage pages",
   "status": "retired",
   "from": null,
   "reason": "retired (founder 2026-10-09 answer 3, TD-1211); superseded orders index; fragments disagreed on archetype, set null",
   "overrides": [
    "retired: do not design"
   ],
   "retired": true,
   "hero": false,
   "example": false,
   "wave": 1,
   "layout": null,
   "hero_ref": null,
   "flagship": false,
   "flagship_area": null,
   "components": [],
   "api_ops": [],
   "needs_backend": [],
   "permission": null,
   "phone": null,
   "api_ops_note": "retired: not designed",
   "notes": [
    "retired (founder 2026-10-09 answer 3, TD-1211); not designed"
   ]
  }
 ],
 "phase3": {
  "spec": "/Users/rj/CascadeProjects/newadmin-api-kit/spec/laravel-admin-openapi.yaml",
  "spec_operations": 1045,
  "atlas_lock": "32813eb41cf615668c6ae223362ddaea1970b380",
  "waves": {
   "1": [
    "orders",
    "designs",
    "tickets"
   ],
   "2": [
    "users",
    "access",
    "products",
    "pricing",
    "billing"
   ],
   "3": [
    "materials",
    "fabrics",
    "factory",
    "shipping",
    "vision-checks"
   ],
   "4": [
    "content",
    "ops",
    "micro-apps",
    "wechat",
    "ai",
    "settings",
    "dashboard",
    "print-studio"
   ]
  },
  "layouts": {
   "A01": "A01·a",
   "A02": "A02·a",
   "A03": "A03·a",
   "A06": "A06·a",
   "A11": "A11·a"
  },
  "flagship_areas": {
   "orders": "phase-3/flagships/orders/ (ORDERS-R1; truth phase-2/truth/TRUTH-ORDERS.md)",
   "tickets": "phase-3/flagships/tickets/ (TICKETS-R1, awaiting Frank; truth phase-2/truth/TRUTH-TICKETS.md)",
   "pricing": "phase-3/flagships/pricing/ (PRICING-R1, awaiting Frank; truth phase-2/truth/TRUTH-PRICING.md)",
   "designs": "phase-3/flagships/designs/ (DESIGNS-R1, awaiting Frank; truth phase-2/truth/TRUTH-DESIGNS.md)",
   "designs-r2": "phase-3/flagships/designs/ (queued for designs round 2; DESIGNS-R1 shell + kit apply; truth phase-2/truth/TRUTH-DESIGNS.md)"
  },
  "component_vocabulary": "phase-0/COMPONENT-INVENTORY.md (§1 primitive ids, §2 designer slugs, §4 M01–M17); kit CONTRACT.md uses the same names",
  "phone_rule": "phase-0/STACK-AND-PACKAGES.md §2: dedicated /m/… route per page; desktop-only pages redirect to /m/not-on-phone?to=",
  "proposals": "PROPOSALS.json",
  "builder": "phase-3/waves/build_page_map.py",
  "checker": "phase-3/waves/check_page_map.py"
 }
}
