Skip to content
Colophon.report

mcp.install

Install MCP

## Install Colophon MCP

Add the remote server to an MCP client that supports streamable HTTP:

```json
{
  "mcpServers": {
    "colophon": {
      "url": "https://colophon.report/mcp"
    }
  }
}
```

Useful direct API endpoints:

- `GET /api/v1/reports` - catalogue summaries
- `GET /api/v1/reports/:id/sample` - redacted sample object
- `GET /api/v1/reports/:id/inventory` - buyer-safe locked-content inventory
- `GET /api/v1/reports/:id/full` - OAuth-gated full report object
- `GET /api/v1/reports/:id/schema` - report summary schema
- `GET /api/v1/library` - OAuth-gated entitled library
- `POST /api/v1/monitors` - create a monitor preview
- `GET /.well-known/mcp.json` - MCP, plugin, OpenAPI, and skill discovery
- `GET /.well-known/oauth-protected-resource/mcp` - OAuth protected resource metadata
- `GET /.well-known/oauth-authorization-server` - OAuth authorization server metadata
- `GET /.well-known/ai-plugin.json` - plugin manifest
- `GET /.well-known/skills.json` - skills manifest
- `GET /skills/colophon-report/SKILL.md` - agent skill instructions
- `GET /skills/colophon-report/references/security.md` - skill security reference
- `GET /skills/colophon-report/references/tool-patterns.md` - skill tool reference
- `/llms.txt` - plain text agent entrypoint

report.object

AI infrastructure for robot operating systems after ROS

Expert-reviewed from public records, platform data, primary sources, and private research beyond AI search. Use /api/v1/reports/RPT_01KZJRBAFTERROSOS26/sample before purchase, then download PDF, JSON, or Markdown after checkout.

page.markdown

AI infrastructure for robot operating systems after ROS.md

# AI infrastructure for robot operating systems after ROS

Commercial robot platforms can standardize deployment, telemetry and evidence above ROS 2, but production value depends on accepted physical output, integration labour, replayable incidents, OT security and body-specific approval.

## Object

| field            | value                   |
| ---------------- | ----------------------- |
| report_id        | RPT_01KZJRBAFTERROSOS26 |
| schema_version   | 2026-05-28              |
| last_updated_at  | 2026-06-05              |
| category         | INFRA                   |
| sector           | Cross-industry          |
| region           | GLOBAL                  |
| confidence_score | 0.84                    |
| source_count     | 71                      |
| evidence_count   | 81                      |

## Endpoints

| action       | endpoint                                           |
| ------------ | -------------------------------------------------- |
| summary      | /api/v1/reports/RPT_01KZJRBAFTERROSOS26            |
| sample       | /api/v1/reports/RPT_01KZJRBAFTERROSOS26/sample     |
| schema       | /api/v1/reports/RPT_01KZJRBAFTERROSOS26/schema     |
| quote        | /api/v1/reports/RPT_01KZJRBAFTERROSOS26/quote      |
| purchase     | /checkout/RPT_01KZJRBAFTERROSOS26?view=agent       |
| versions     | /api/v1/reports/RPT_01KZJRBAFTERROSOS26/versions   |
| changelog    | /api/v1/reports/RPT_01KZJRBAFTERROSOS26/changelog  |
| monitor      | /api/v1/monitors?report_id=RPT_01KZJRBAFTERROSOS26 |
| mcp_resource | colophon://reports/RPT_01KZJRBAFTERROSOS26/sample  |

## Coverage

| field          | value                                                                                                                                                                                                                                                                                                  |
| -------------- | ------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------ |
| category       | INFRA                                                                                                                                                                                                                                                                                                  |
| sector         | Cross-industry                                                                                                                                                                                                                                                                                         |
| region         | GLOBAL                                                                                                                                                                                                                                                                                                 |
| topics         | robotics, robot operating systems, ROS 2, Viam, Nav2, MoveIt, Foxglove, OEM SDKs, robot fleet operations                                                                                                                                                                                               |
| source_classes | vendor_docs, open_source_governance, developer_docs, oem_docs, open_source_project, technical_specification, operator_case_study, customer_case_study, standard, security_advisory, standard_update, government_guidance, security_framework, benchmark, research_paper, vendor_case_study, regulation |
| update_cadence | Monthly                                                                                                                                                                                                                                                                                                |

## Sample JSON

```json
{
  "report_id": "RPT_01KZJRBAFTERROSOS26",
  "slug": "robot-operating-systems-after-ros",
  "schema_version": "2026-05-28",
  "title": "AI infrastructure for robot operating systems after ROS",
  "abstract": "Commercial robot platforms can standardize deployment, telemetry and evidence above ROS 2, but production value depends on accepted physical output, integration labour, replayable incidents, OT security and body-specific approval.",
  "category": "INFRA",
  "sector": "Cross-industry",
  "region": "GLOBAL",
  "topics": [
    "robotics",
    "robot operating systems",
    "ROS 2",
    "Viam",
    "Nav2",
    "MoveIt",
    "Foxglove",
    "OEM SDKs",
    "robot fleet operations"
  ],
  "last_updated_at": "2026-06-05T00:00:00Z",
  "source_count": 71,
  "evidence_count": 81,
  "confidence_score": 0.84,
  "web_url": "/r/robot-operating-systems-after-ros/RPT_01KZJRBAFTERROSOS26",
  "sample_endpoint": "/api/v1/reports/RPT_01KZJRBAFTERROSOS26/sample",
  "inventory_endpoint": "/api/v1/reports/RPT_01KZJRBAFTERROSOS26/inventory",
  "full_endpoint": "/api/v1/reports/RPT_01KZJRBAFTERROSOS26/full",
  "schema_endpoint": "/api/v1/reports/RPT_01KZJRBAFTERROSOS26/schema",
  "redaction": {
    "status": "sample",
    "paid_sections_redacted": true,
    "preview_limits": [
      "summary",
      "table_of_contents",
      "evidence_profile"
    ]
  },
  "coverage": {
    "category": "INFRA",
    "sector": "Cross-industry",
    "region": "GLOBAL",
    "topics": [
      "robotics",
      "robot operating systems",
      "ROS 2",
      "Viam",
      "Nav2",
      "MoveIt",
      "Foxglove",
      "OEM SDKs",
      "robot fleet operations"
    ],
    "source_classes": [
      "vendor_docs",
      "open_source_governance",
      "developer_docs",
      "oem_docs",
      "open_source_project",
      "technical_specification",
      "operator_case_study",
      "customer_case_study",
      "standard",
      "security_advisory",
      "standard_update",
      "government_guidance",
      "security_framework",
      "benchmark",
      "research_paper",
      "vendor_case_study",
      "regulation"
    ]
  },
  "confidence": {
    "overall_confidence": 0.84,
    "source_quality": 0.87,
    "source_recency": 0.9,
    "source_density": 0.84,
    "claim_verifiability": 0.84,
    "geographic_coverage": 0.76,
    "known_gaps": [
      "Public sources explain architecture better than production failure rates.",
      "Commercial platform pricing and implementation labour are not publicly comparable.",
      "OEM controller authority varies by model, firmware, service setting and support contract.",
      "Nav2, MoveIt and ros2_control behaviour must be verified against the buyer's body and site conditions.",
      "Global applicability depends on local safety, labour, network and sector rules."
    ]
  },
  "document": {
    "object": "report_document",
    "schemaVersion": "2026-05-28",
    "title": "AI infrastructure for robot operating systems after ROS",
    "subtitle": "How buyers approve the operating envelope above ROS 2 without hiding body, controller, evidence and economics proof.",
    "abstract": "Commercial robot platforms can standardize deployment, telemetry and evidence above ROS 2, but production value depends on accepted physical output, integration labour, replayable incidents, OT security and body-specific approval.",
    "category": "INFRA",
    "sector": "Cross-industry",
    "region": "GLOBAL",
    "topics": [
      "robotics",
      "robot operating systems",
      "ROS 2",
      "Viam",
      "Nav2",
      "MoveIt",
      "Foxglove",
      "OEM SDKs",
      "robot fleet operations"
    ],
    "sources": [
      {
        "id": "S1",
        "label": "Viam - What is Viam?",
        "publisher": "Viam",
        "sourceClass": "vendor_docs",
        "accessedAt": "2026-06-05",
        "status": "verified",
        "access": "sample",
        "caveat": "Vendor documentation; verify operating claims during diligence.",
        "originalUrl": "https://docs.viam.com/",
        "transformChain": [],
        "url": "https://docs.viam.com/"
      },
      {
        "id": "S2",
        "label": "Viam - Configure hardware components",
        "publisher": "Viam",
        "sourceClass": "vendor_docs",
        "accessedAt": "2026-06-05",
        "status": "verified",
        "access": "sample",
        "caveat": "Vendor documentation; verify operating claims during diligence.",
        "originalUrl": "https://docs.viam.com/hardware/configure-hardware/",
        "transformChain": [],
        "url": "https://docs.viam.com/hardware/configure-hardware/"
      },
      {
        "id": "S4",
        "label": "Viam - Reuse configuration with fragments",
        "publisher": "Viam",
        "sourceClass": "vendor_docs",
        "accessedAt": "2026-06-05",
        "status": "verified",
        "access": "locked",
        "caveat": "Vendor documentation; verify operating claims during diligence.",
        "originalUrl": "https://docs.viam.com/fleet/reuse-configuration/",
        "transformChain": [],
        "url": "https://docs.viam.com/fleet/reuse-configuration/"
      },
      {
        "id": "S5",
        "label": "Viam - Motion service reference",
        "publisher": "Viam",
        "sourceClass": "vendor_docs",
        "accessedAt": "2026-06-05",
        "status": "verified",
        "access": "locked",
        "caveat": "Vendor documentation; verify operating claims during diligence.",
        "originalUrl": "https://docs.viam.com/reference/services/motion/",
        "transformChain": [],
        "url": "https://docs.viam.com/reference/services/motion/"
      },
      {
        "id": "S8",
        "label": "ROS 2 - Distributions",
        "publisher": "Open Robotics",
        "sourceClass": "open_source_governance",
        "accessedAt": "2026-06-05",
        "status": "verified",
        "access": "sample",
        "originalUrl": "https://docs.ros.org/en/lyrical/Releases.html",
        "publicationDate": "2026-05-22",
        "transformChain": [],
        "provenanceNotes": "Fast-aging release source rechecked against the official ROS distributions page on 2026-06-05.",
        "url": "https://docs.ros.org/en/lyrical/Releases.html"
      },
      {
        "id": "S10",
        "label": "ros2_control - Getting started",
        "publisher": "ros2_control",
        "sourceClass": "developer_docs",
        "accessedAt": "2026-06-05",
        "status": "verified",
        "access": "sample",
        "caveat": "Project-maintained documentation; validate operating claims during diligence.",
        "originalUrl": "https://control.ros.org/jazzy/doc/getting_started/getting_started.html",
        "transformChain": [],
        "url": "https://control.ros.org/jazzy/doc/getting_started/getting_started.html"
      },
      {
        "id": "S12",
        "label": "Nav2 - navigation concepts",
        "publisher": "Open Navigation",
        "sourceClass": "developer_docs",
        "accessedAt": "2026-06-05",
        "status": "verified",
        "access": "sample",
        "caveat": "Project-maintained documentation; validate operating claims during diligence.",
        "originalUrl": "https://docs.nav2.org/concepts/index.html",
        "transformChain": [],
        "url": "https://docs.nav2.org/concepts/index.html"
      },
      {
        "id": "S15",
        "label": "MoveIt 2 - motion planning",
        "publisher": "MoveIt",
        "sourceClass": "developer_docs",
        "accessedAt": "2026-06-05",
        "status": "verified",
        "access": "locked",
        "caveat": "Project-maintained documentation; validate operating claims during diligence.",
        "originalUrl": "https://moveit.picknik.ai/main/doc/concepts/motion_planning.html",
        "transformChain": [],
        "url": "https://moveit.picknik.ai/main/doc/concepts/motion_planning.html"
      },
      {
        "id": "S17",
        "label": "Foxglove documentation",
        "publisher": "Foxglove",
        "sourceClass": "vendor_docs",
        "accessedAt": "2026-06-05",
        "status": "verified",
        "access": "locked",
        "caveat": "Vendor documentation; verify operating claims during diligence.",
        "originalUrl": "https://docs.foxglove.dev/",
        "transformChain": [],
        "url": "https://docs.foxglove.dev/"
      },
      {
        "id": "S18",
        "label": "Foxglove - ROS 2",
        "publisher": "Foxglove",
        "sourceClass": "vendor_docs",
        "accessedAt": "2026-06-05",
        "status": "verified",
        "access": "locked",
        "caveat": "Vendor documentation; verify operating claims during diligence.",
        "originalUrl": "https://docs.foxglove.dev/docs/getting-started/frameworks/ros2",
        "transformChain": [],
        "url": "https://docs.foxglove.dev/docs/getting-started/frameworks/ros2"
      }
    ],
    "evidence": [
      {
        "id": "E1",
        "sourceId": "S1",
        "claimIds": [
          "C1",
          "C2"
        ],
        "summary": "Viam describes a robotics platform that declares hardware and services in JSON, installs drivers and modules, uses viam-agent and viam-server, and includes native application versioning, deployment and rollback.",
        "status": "verified",
        "confidence": 0.86,
        "access": "sample"
      },
      {
        "id": "E2",
        "sourceId": "S2",
        "claimIds": [
          "C1",
          "C2"
        ],
        "summary": "Viam represents hardware as components with a type, model and attributes; components of the same type expose the same API even when the model comes from different built-in or registry modules.",
        "status": "verified",
        "confidence": 0.86,
        "access": "sample"
      },
      {
        "id": "E4",
        "sourceId": "S4",
        "claimIds": [
          "C1",
          "C2"
        ],
        "summary": "Viam fragments provide reusable configuration templates, variables, overrides, revisions and tags for staged rollout across many machines.",
        "status": "verified",
        "confidence": 0.86,
        "access": "sample"
      },
      {
        "id": "E5",
        "sourceId": "S5",
        "claimIds": [
          "C1",
          "C2"
        ],
        "summary": "Viam's motion service uses a frame system to plan and move components, can run local motion planning across components, and can pass movement requests through to components with their own planning.",
        "status": "verified",
        "confidence": 0.86,
        "access": "sample"
      },
      {
        "id": "E8",
        "sourceId": "S8",
        "claimIds": [
          "C3"
        ],
        "summary": "ROS 2 distribution documentation lists Lyrical Luth as a May 22, 2026 LTS release supported until May 2031, and states that cross-distribution node communication is not supported or guaranteed.",
        "status": "verified",
        "confidence": 0.86,
        "access": "sample"
      },
      {
        "id": "E10",
        "sourceId": "S10",
        "claimIds": [
          "C4"
        ],
        "summary": "ros2_control describes the Controller Manager as connecting controllers and hardware-abstraction sides, while the Resource Manager abstracts physical hardware and drivers behind lifecycle-managed command and state interfaces.",
        "status": "verified",
        "confidence": 0.86,
        "access": "sample"
      },
      {
        "id": "E12",
        "sourceId": "S12",
        "claimIds": [
          "C4"
        ],
        "summary": "Nav2 uses ROS 2 lifecycle nodes, action servers and behaviour trees to structure navigation bringup, planning, control and recoveries for commercial use and debugging.",
        "status": "verified",
        "confidence": 0.86,
        "access": "sample"
      },
      {
        "id": "E15",
        "sourceId": "S15",
        "claimIds": [
          "C4"
        ],
        "summary": "MoveIt works with motion planners through a plugin interface, with requests handled through move_group action or service interfaces, collision checks and planning adapters that turn paths into timed trajectories.",
        "status": "verified",
        "confidence": 0.86,
        "access": "sample"
      },
      {
        "id": "E17",
        "sourceId": "S17",
        "claimIds": [
          "C5"
        ],
        "summary": "Foxglove describes a platform to record, upload, organize and visualize multimodal log data, including time series, text logs, video, 3D, maps, MCAP, ROS Bag and ULog.",
        "status": "verified",
        "confidence": 0.86,
        "access": "sample"
      },
      {
        "id": "E18",
        "sourceId": "S18",
        "claimIds": [
          "C5"
        ],
        "summary": "Foxglove's ROS 2 documentation recommends Foxglove Bridge for live visualization, says it subscribes to ROS topics, and notes that MCAP captures message definitions better than older db3 ROS 2 bag defaults.",
        "status": "verified",
        "confidence": 0.86,
        "access": "sample"
      }
    ],
    "claims": [
      {
        "id": "C1",
        "statement": "A commercial robot operating system can abstract deployment, configuration, services, telemetry and evidence above heterogeneous hardware.",
        "confidence": 0.9,
        "evidenceIds": [
          "E1",
          "E2",
          "E4",
          "E5"
        ],
        "access": "sample"
      },
      {
        "id": "C2",
        "statement": "Viam is a documented commercial test case for robot-stack abstraction because it normalizes resources, modules, services, fragments, data and rollout mechanics above heterogeneous hardware.",
        "confidence": 0.88,
        "evidenceIds": [
          "E1",
          "E2",
          "E4",
          "E5"
        ],
        "access": "sample"
      },
      {
        "id": "C3",
        "statement": "ROS 2 remains a production substrate, not a solved portability contract; distribution, RMW, cross-distribution and support choices still have to be approved explicitly.",
        "confidence": 0.9,
        "evidenceIds": [
          "E8"
        ],
        "access": "sample"
      },
      {
        "id": "C4",
        "statement": "Nav2, MoveIt 2 and ros2_control are domain engines that commercial platforms should wrap carefully rather than hide, because they carry navigation, manipulation, controller and sensor-state semantics.",
        "confidence": 0.88,
        "evidenceIds": [
          "E10",
          "E12",
          "E15"
        ],
        "access": "sample"
      },
      {
        "id": "C5",
        "statement": "Foxglove belongs in the evidence layer: it improves observability and replay, while motion authority, controller safety and deployment acceptance stay in motion, control and OEM lanes.",
        "confidence": 0.86,
        "evidenceIds": [
          "E10",
          "E17",
          "E18"
        ],
        "access": "sample"
      },
      {
        "id": "C15",
        "statement": "The practical answer is yes above the robot and no inside the safety case: abstract the work system, expose the body-specific proof.",
        "confidence": 0.89,
        "evidenceIds": [
          "E1",
          "E5",
          "E10",
          "E15"
        ],
        "access": "sample"
      }
    ],
    "colophon": {
      "checkedAt": "2026-06-05",
      "latestRevisionAt": "2026-06-05T00:00:00Z",
      "reviewStandard": "expert_human_reviewed",
      "kinetics": {
        "speed": "moderate",
        "impact": 0.87,
        "momentum": 0.8,
        "businessImpact": "Robot buyers now approve the operating envelope, not the platform label: body, planner, controller and evidence boundaries decide scale.",
        "rateOfChange": "Release cadence, platform resource models and OEM control interfaces can move approval boundaries before annual refresh.",
        "from": "ROS packages, OEM SDK calls and site scripts",
        "toward": "approved robot routes with exportable evidence and body-specific reapproval"
      },
      "watch": [],
      "gapAnalysis": "Public evidence still lacks comparable production telemetry, integration-labour denominators, retest failure records, controller incidents and accepted physical-output records across platforms."
    },
    "body": {
      "sections": [
        {
          "id": "executive-summary",
          "title": "Executive summary",
          "access": "sample",
          "dek": "The operating system is the evidence boundary.",
          "claimIds": [
            "C1",
            "C2",
            "C3",
            "C4",
            "C5",
            "C15"
          ],
          "evidenceIds": [
            "E1",
            "E2",
            "E4",
            "E5",
            "E8",
            "E10",
            "E12",
            "E18"
          ],
          "blocks": [
            {
              "id": "executive-summary-narrative",
              "evidenceIds": [
                "E1",
                "E2",
                "E4",
                "E5",
                "E8",
                "E10",
                "E12",
                "E15",
                "E18"
              ],
              "type": "section_narrative",
              "lead": "Robot operating systems after ROS should be judged by what they refuse to hide.",
              "body": [
                "The useful commercial layer above ROS 2 governs resources, modules, configuration, deployment and rollback [E1, E4]. Motion calls need their own evidence because they touch physical output [E5]. Telemetry and data export need field records that can survive support and incident review [E7, E37].",
                "One public example is Viam: it documents typed hardware components [E2], modules and fragments [E3, E4], and motion and data services [E5, E7]. Treat it as a test case for the solution type, not as the whole market.",
                "The hard boundary is still below the platform. ROS 2 distribution and RMW choices remain approval objects [E8, E9]. Nav2 behaviour trees and ros2_control command interfaces need the same treatment [E10, E12]. MoveIt planning scenes and OEM controller modes also have to stay visible [E16, E22].",
                "Use the accepted physical output as the production unit. That unit should connect the configured body, motion service and planner limits [E5, E6] to controller state [E10], OEM authority [E22], replayable telemetry [E18, E37], industrial safety evidence [E32] and controller security records [E34]. Approval should separate platform and fleet deployment, ROS runtime, navigation and manipulation, OEM authority and operating evidence before scale."
              ]
            },
            {
              "id": "route-definition-callout",
              "title": "Approval path definition",
              "evidenceIds": [
                "E5",
                "E10"
              ],
              "type": "callout",
              "tone": "neutral",
              "body": "Route means the approved path from work to accepted output: the source set, data boundary, model or vendor channel, tools, reviewer, evidence record and reapproval trigger that make an AI result usable. In this robotics report, that maps to body class, controller boundary, planner or mission, site condition, operator handoff, telemetry record and reapproval trigger."
            },
            {
              "id": "executive-decision-table",
              "title": "Executive decision: move the work system up while keeping safety proof body-specific",
              "caption": "Source scope is public vendor, ROS-domain and OEM documentation checked on June 5, 2026; private body tests still decide acceptance.",
              "evidenceIds": [
                "E1",
                "E2",
                "E4",
                "E5",
                "E8",
                "E10",
                "E12",
                "E15",
                "E18"
              ],
              "type": "table",
              "columns": [
                {
                  "key": "layer",
                  "label": "Layer",
                  "align": "left"
                },
                {
                  "key": "can_abstract",
                  "label": "Can abstract",
                  "align": "left"
                },
                {
                  "key": "must_expose",
                  "label": "Must expose",
                  "align": "left"
                },
                {
                  "key": "buying_move",
                  "label": "Buying move",
                  "align": "left"
                }
              ],
              "rows": [
                {
                  "layer": "Platform and fleet deployment",
                  "can_abstract": "Resources, configs and deployment state [E1], modules [E3], fragments [E4], and data capture [E7].",
                  "must_expose": "Resolved config [E1], module version [E3], device state and log export [E7], and rollback or config-rollout proof [E1, E4].",
                  "buying_move": "Treat commercial operating-layer platforms as the evidence plane; use Viam as one documented example [E1, E4]. Require equivalent rollout and rollback proof from integration-layer alternatives [E40]."
                },
                {
                  "layer": "ROS 2 runtime",
                  "can_abstract": "Distribution support, RMW vendor choice, dependency lane and messaging-middleware assumptions [E8, E9].",
                  "must_expose": "Distribution, RMW, dependency and cross-distro assumptions [E8, E9].",
                  "buying_move": "Approve a supported ROS lane, not just ROS compatibility."
                },
                {
                  "layer": "Navigation and manipulation",
                  "can_abstract": "Reusable mission calls over Nav2 structures [E12, E13] and task templates over MoveIt planning scenes [E15, E16].",
                  "must_expose": "Nav2 plugins [E13], MoveIt planning scene [E16], controller interface and failure mode [E10, E31].",
                  "buying_move": "Keep planner evidence in the approval file."
                },
                {
                  "layer": "OEM controller authority",
                  "can_abstract": "Controller-resource status and selected command wrappers [E20, E22].",
                  "must_expose": "Write access, remote-control mode, safety function and controller authority [E20, E22].",
                  "buying_move": "Negotiate controller evidence before scale."
                },
                {
                  "layer": "Operating evidence and economics",
                  "can_abstract": "Replayable incident packets [E37], accepted-output ledgers [E38], integration connectors [E40], and fleet-control software examples [E45, E46].",
                  "must_expose": "Accepted output and rejected work [E38], integration hours [E40], and recovery time with exportable logs [E37].",
                  "buying_move": "Price the next body, site and controller approval before funding broad standardization."
                }
              ]
            },
            {
              "id": "executive-approval-decision-tree",
              "title": "Approve the operating envelope before the platform label",
              "evidenceIds": [
                "E1",
                "E4",
                "E8",
                "E10",
                "E18"
              ],
              "type": "decision_tree",
              "lead": "The decision path forces the buyer to clear body, controller, evidence and operating economics before scale.",
              "steps": [
                {
                  "prompt": "Can the platform expose resolved configuration, module versions and rollback evidence? [E1, E4]",
                  "tone": "neutral",
                  "branches": [
                    {
                      "label": "No",
                      "outcome": "Keep the platform in pilot status; fleet rollout would hide the change file.",
                      "tone": "blocked"
                    },
                    {
                      "label": "Yes",
                      "outcome": "Move to runtime and controller boundaries.",
                      "next": "Runtime boundary",
                      "tone": "success"
                    }
                  ]
                },
                {
                  "prompt": "Can ROS runtime [E8], planner and control boundaries [E10], and OEM controller boundaries [E22] be tested on the buyer body?",
                  "tone": "neutral",
                  "branches": [
                    {
                      "label": "No",
                      "outcome": "Approve only the lab workflow; production behaviour is still unproven.",
                      "tone": "warning"
                    },
                    {
                      "label": "Yes",
                      "outcome": "Move to evidence export and operating economics.",
                      "next": "Evidence and economics",
                      "tone": "success"
                    }
                  ]
                },
                {
                  "prompt": "Can the buyer reconstruct incidents [E37] and price accepted output, integration time and exception burden [E38, E40]?",
                  "tone": "neutral",
                  "branches": [
                    {
                      "label": "No",
                      "outcome": "Block scale until logs, accepted-output ledger and support records exist.",
                      "tone": "blocked"
                    },
                    {
                      "label": "Yes",
                      "outcome": "Approve a narrow operating envelope with named reapproval triggers.",
                      "tone": "success"
                    }
                  ]
                }
              ]
            },
            {
              "id": "executive-approval-bridge",
              "evidenceIds": [
                "E1",
                "E8",
                "E10"
              ],
              "type": "paragraph",
              "text": "Approval starts by assigning owners to the platform layer, ROS runtime, motion and control lane, and OEM boundary before scale.",
              "variant": "small"
            }
          ]
        },
        {
          "id": "what-changed",
          "title": "What changed",
          "access": "sample",
          "dek": "The market is selling operating layers because ROS solved only part of the buyer problem.",
          "claimIds": [
            "C1",
            "C2",
            "C3",
            "C4",
            "C5"
          ],
          "evidenceIds": [
            "E1",
            "E2",
            "E4",
            "E5",
            "E8",
            "E10",
            "E12",
            "E15",
            "E17",
            "E18"
          ],
          "blocks": [
            {
              "id": "what-changed-narrative",
              "evidenceIds": [
                "E1",
                "E5",
                "E8",
                "E10",
                "E12",
                "E15",
                "E18"
              ],
              "type": "section_narrative",
              "lead": "ROS made robot software shareable; operations now need governance.",
              "body": [
                "ROS 2 remains central because it provides libraries, tools, packages and middleware choices. The current public release table lists Lyrical Luth as a May 2026 LTS release supported until May 2031 [E8].",
                "That still leaves the buyer with production questions ROS does not answer alone: which configuration is live, which model can command which actuator, which logs prove a failure, which OEM interface owns safety and which change forces reapproval.",
                "Commercial platforms are entering that gap. Viam packages resource APIs, modules and fragments [E1, E4]. Motion and data services add physical-output and evidence workflows [E5, E7]. Foxglove packages observability and replay [E18]. Nav2, MoveIt and ros2_control carry the navigation, manipulation and controller semantics that wrappers must respect [E10, E12].",
                "The market is therefore not moving away from ROS so much as moving around it. The operating layer is useful when it makes ROS and OEM complexity auditable."
              ]
            },
            {
              "id": "abstraction-boundary-table",
              "title": "Abstraction is valuable only when the lower layer remains inspectable",
              "caption": "The same platform can be a useful operating layer in one row and an unsafe hiding place in another.",
              "evidenceIds": [
                "E1",
                "E2",
                "E4",
                "E8",
                "E10",
                "E12",
                "E15",
                "E17"
              ],
              "type": "table",
              "columns": [
                {
                  "key": "signal",
                  "label": "Signal",
                  "align": "left"
                },
                {
                  "key": "what_changed",
                  "label": "What changed",
                  "align": "left"
                },
                {
                  "key": "procurement_effect",
                  "label": "Procurement effect",
                  "align": "left"
                }
              ],
              "rows": [
                {
                  "signal": "ROS 2 LTS and RMW choice",
                  "what_changed": "Distribution support, middleware and cross-distribution assumptions are explicit approval variables [E8, E9].",
                  "procurement_effect": "Contract for a supported runtime lane."
                },
                {
                  "signal": "Viam resource model",
                  "what_changed": "Hardware components can share typed APIs while modules and fragments manage variation [E2, E4].",
                  "procurement_effect": "Ask for resolved config, module version and dependency export."
                },
                {
                  "signal": "Nav2 and MoveIt as engines",
                  "what_changed": "Navigation and manipulation expose plugin, scene, action and controller decisions [E12, E15].",
                  "procurement_effect": "Keep planner settings and failure records outside the UI."
                },
                {
                  "signal": "Foxglove and MCAP",
                  "what_changed": "Logs, ROS bags and message definitions become replayable evidence [E17, E18].",
                  "procurement_effect": "Make record-and-replay part of acceptance."
                }
              ]
            }
          ]
        },
        {
          "id": "decision-spine",
          "title": "Decision spine",
          "access": "sample",
          "dek": "Approve owner lanes and economics before comparing platform features.",
          "claimIds": [
            "C1",
            "C3",
            "C4",
            "C15"
          ],
          "evidenceIds": [
            "E1",
            "E4",
            "E5",
            "E8",
            "E10",
            "E12",
            "E15",
            "E18"
          ],
          "blocks": [
            {
              "id": "decision-spine-narrative",
              "evidenceIds": [
                "E1",
                "E4",
                "E8",
                "E10",
                "E15",
                "E18"
              ],
              "type": "section_narrative",
              "lead": "The early decision is the approved robot stack, not the vendor list.",
              "body": [
                "Start with owner lanes. Platform configuration, ROS runtime, motion and control, OEM authority, observability and site operations each need a named owner and a stop condition.",
                "Then price the retest burden. A robot operating layer is attractive only if the next body, site, controller change or incident replay becomes cheaper to approve."
              ]
            },
            {
              "id": "early-owner-lanes-table",
              "title": "Owner lanes come before platform selection",
              "caption": "A platform pilot should fail if any lower-layer owner cannot explain the evidence it needs to approve.",
              "evidenceIds": [
                "E1",
                "E4",
                "E8",
                "E10",
                "E15",
                "E18"
              ],
              "type": "table",
              "columns": [
                {
                  "key": "lane",
                  "label": "Lane",
                  "align": "left"
                },
                {
                  "key": "owner",
                  "label": "Owner",
                  "align": "left"
                },
                {
                  "key": "approval_evidence",
                  "label": "Approval evidence",
                  "align": "left"
                },
                {
                  "key": "scale_gate",
                  "label": "Scale gate",
                  "align": "left"
                }
              ],
              "rows": [
                {
                  "lane": "Commercial platform",
                  "owner": "Robotics platform lead",
                  "approval_evidence": "Resolved config, module versions, fragment tag, deployment status and rollback proof.",
                  "scale_gate": "No unreviewed module, fragment or device-class rollout."
                },
                {
                  "lane": "ROS runtime",
                  "owner": "ROS engineering owner",
                  "approval_evidence": "Distribution, RMW, QoS, domain, dependency and cross-distribution policy.",
                  "scale_gate": "No unsupported distro, untested RMW or mixed runtime lane."
                },
                {
                  "lane": "Planning and control",
                  "owner": "Autonomy and controls owner",
                  "approval_evidence": "Nav2, MoveIt, ros2_control, controller limits, scene assumptions and private eval.",
                  "scale_gate": "No planner, scene, hardware-interface or controller change without retest."
                },
                {
                  "lane": "OEM authority",
                  "owner": "Safety and OT owner",
                  "approval_evidence": "Enabled services, remote-command mode, diagnostics, credentials and safety regression.",
                  "scale_gate": "No hidden controller authority or remote-write path."
                },
                {
                  "lane": "Evidence replay",
                  "owner": "RobOps and data owner",
                  "approval_evidence": "Logs, MCAP or bags, message definitions, incident link and export test.",
                  "scale_gate": "No scale approval if a field incident cannot be reconstructed."
                }
              ]
            },
            {
              "id": "decision-spine-economics-bridge",
              "evidenceIds": [
                "E4",
                "E10",
                "E18"
              ],
              "type": "paragraph",
              "text": "Once the owner lanes are named, the next question is whether each added body, site or controller change becomes cheaper to approve.",
              "variant": "small"
            },
            {
              "id": "decision-spine-approval-atlas-bridge",
              "evidenceIds": [
                "E5",
                "E10",
                "E15"
              ],
              "type": "paragraph",
              "text": "That retest burden should become body-specific approval paths before platform features enter the buying discussion.",
              "variant": "small"
            }
          ]
        },
        {
          "id": "deployment-economics",
          "title": "Deployment economics",
          "access": "locked",
          "dek": "The operating-system bill is hidden in integration, retest and exception handling.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "deployment-economics-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "scenario-economics",
          "title": "Scenario economics",
          "access": "locked",
          "dek": "Retest burden changes by body, site, OEM boundary and workcell.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "scenario-economics-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "operating-evidence-economics",
          "title": "Operating evidence economics",
          "access": "locked",
          "dek": "Accepted physical output is the only useful denominator for robot OS value.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "operating-evidence-economics-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "body-class-approval-atlas",
          "title": "Body-class approval expansion",
          "access": "locked",
          "dek": "Body class changes the proof file and retest burden.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "body-class-approval-atlas-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "runtime-controls-private-eval",
          "title": "Runtime controls and private eval",
          "access": "locked",
          "dek": "Recovery evidence is the robotics analogue of serving control.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "runtime-controls-private-eval-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "public-evidence-private-evals",
          "title": "Public evidence and private evals",
          "access": "locked",
          "dek": "Public artefacts shortlist the private eval; private tests approve the robot.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "public-evidence-private-evals-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "viam-platform-test",
          "title": "Viam platform test",
          "access": "locked",
          "dek": "Viam is a documented commercial test case for resource-level abstraction.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "viam-platform-test-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "ros-domain-engines",
          "title": "ROS domain engines",
          "access": "locked",
          "dek": "ROS 2, Nav2, MoveIt and ros2_control are approval surfaces.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "ros-domain-engines-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "observability-evidence",
          "title": "Observability and evidence",
          "access": "locked",
          "dek": "Foxglove is the evidence memory layer.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "observability-evidence-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "oem-authority",
          "title": "OEM authority",
          "access": "locked",
          "dek": "Controller access is a production authority boundary.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "oem-authority-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "interoperability-not-os",
          "title": "Interoperability boundary",
          "access": "locked",
          "dek": "Open-RMF, MassRobotics and VDA 5050 solve coordination problems.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "interoperability-not-os-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "development-simulation-layers",
          "title": "Development and simulation layers",
          "access": "locked",
          "dek": "Isaac and Flowstate can package engineering work without owning the runtime truth.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "development-simulation-layers-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "buy-build-control-boundary",
          "title": "Buy, build or stay close to ROS",
          "access": "locked",
          "dek": "The sourcing choice depends on which layer creates advantage.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "buy-build-control-boundary-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "implementation-proof-cases",
          "title": "Implementation proof cases",
          "access": "locked",
          "dek": "Documentation cases show the evidence buyers should ask vendors to reproduce.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "implementation-proof-cases-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "adverse-scenario-controls",
          "title": "Adverse scenario controls",
          "access": "locked",
          "dek": "The approval file should say what changes after a field failure, security event or integration break.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "adverse-scenario-controls-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "operating-model",
          "title": "Operating model",
          "access": "locked",
          "dek": "How to approve a robot operating layer without losing the robot.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "operating-model-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "known-unknowns",
          "title": "Known unknowns",
          "access": "locked",
          "dek": "Public evidence cannot prove the buyer's physical workflow.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "known-unknowns-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "watch-and-reapproval",
          "title": "Watch and reapproval triggers",
          "access": "locked",
          "dek": "Events that should reopen the robot OS decision.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "watch-and-reapproval-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "vendor-directory",
          "title": "Platform and stack directory",
          "access": "locked",
          "dek": "Representative systems to include in the robot OS shortlist.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "vendor-directory-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "source-ledger",
          "title": "Source ledger",
          "access": "locked",
          "dek": "Primary sources and diligence anchors behind the analysis.",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "source-ledger-locked",
              "title": "Locked section",
              "evidenceIds": [],
              "type": "callout",
              "tone": "locked",
              "body": "Purchase or subscribe to unlock this section."
            }
          ]
        },
        {
          "id": "glossary",
          "title": "Glossary",
          "access": "sample",
          "claimIds": [],
          "evidenceIds": [],
          "blocks": [
            {
              "id": "glossary-table",
              "title": "Terms used in this report",
              "caption": "Definitions are reader aids, not separate evidence claims.",
              "evidenceIds": [],
              "type": "table",
              "columns": [
                {
                  "key": "term",
                  "label": "Term",
                  "align": "left"
                },
                {
                  "key": "meaning",
                  "label": "Plain meaning",
                  "align": "left"
                }
              ],
              "rows": [
                {
                  "term": "Route",
                  "meaning": "The approved path from work to accepted output: source set, data boundary, model or vendor channel, tools, reviewer, evidence record and reapproval trigger."
                },
                {
                  "term": "API",
                  "meaning": "Application programming interface: a governed software connection used by an app or workflow to call a model or service."
                },
                {
                  "term": "SDK",
                  "meaning": "Software development kit: packaged code and tools developers use to connect a product to an API or service."
                },
                {
                  "term": "JSON",
                  "meaning": "JavaScript Object Notation: a structured text format commonly used for machine-readable API output."
                }
              ]
            }
          ]
        }
      ]
    }
  },
  "gap_analysis": "Public evidence still lacks comparable production telemetry, integration-labour denominators, retest failure records, controller incidents and accepted physical-output records across platforms.",
  "kinetics": {
    "speed": "moderate",
    "impact": 0.87,
    "momentum": 0.8,
    "businessImpact": "Robot buyers now approve the operating envelope, not the platform label: body, planner, controller and evidence boundaries decide scale.",
    "rateOfChange": "Release cadence, platform resource models and OEM control interfaces can move approval boundaries before annual refresh.",
    "from": "ROS packages, OEM SDK calls and site scripts",
    "toward": "approved robot routes with exportable evidence and body-specific reapproval"
  },
  "watch_signals": [],
  "sample_findings": [
    "The buyer is not approving a robot OS label; they are approving an operating envelope with body, planner, controller, telemetry and reapproval evidence."
  ]
}
```
HumanAgent