application · active
Topolo Roadmapper
Roadmap and project management application in the Topolo portfolio with AI onboarding, scoped project-chat planning sessions, hierarchy-wide guest sharing and guest edit auditability, and narrative presentation delivery.
Documentation map
- Topolo Roadmapper — Public overview of Roadmapper, including AI-assisted project onboarding, durable planning sessions, and stakeholder presentation delivery.
Authority and runtime
- System ID
topolo-roadmapper- App IDs
- app_topolo_roadmapper
- Owners
- product-platform
- Repositories
- apps/TopoloRoadmapper
- Hosts
- https://roadmapper.topolo.app, https://roadmapper-api.topolo.app, https://roadmapper-api.stg.topolo.us, https://roadmapper.stg.topolo.us
- Dependencies
- topolo-auth, topolo-nexus, topolo-notify, applications-packages
Security and data ownership
- Risk tier
- standard
- Tenant isolation
- organization_scoped
- Privacy classification
- restricted
- Storage
- d1, external_provider, r2
- Export and deletion
- planned
- Enterprise ready
- no
Source-derived capability inventory
Source revisions: apps/TopoloRoadmapper@4d949b9e65b36e73fd832edcf0a142205a1db5bd
Declared actions: 74 · API routes: 3 · UI routes: 26
{
"id": "topolo-roadmapper",
"name": "Topolo Roadmapper",
"slug": "topolo-roadmapper",
"kind": "application",
"visibility": "public",
"repo_paths": [
"apps/TopoloRoadmapper"
],
"source_revisions": [
{
"source_path": "apps/TopoloRoadmapper",
"repository": "apps/TopoloRoadmapper",
"revision": "4d949b9e65b36e73fd832edcf0a142205a1db5bd",
"ref": "origin/staging"
}
],
"source_counts": {
"source_files": 222,
"test_files": 140,
"test_cases": 0,
"migration_files": 10,
"database_tables": 0,
"manifests": 1,
"deploy_targets": 2,
"actions": 74,
"mobile_contracts": 1,
"notifications": 8,
"package_manifests": 5,
"deployment_configs": 0
},
"manifests": [
{
"source_path": "apps/TopoloRoadmapper/topolo.app.json",
"service_slug": "topolo-roadmapper",
"name": "topolo-roadmapper",
"app_id": "app_topolo_roadmapper",
"compatibility_date": "2026-04-10",
"primary_target": null,
"environments": [
"development",
"production",
"staging"
],
"targets": [
{
"name": "web",
"kind": "worker",
"directory": "apps/web",
"main": "src/worker.ts",
"worker_name": "topolo-roadmapper",
"subdomain": "roadmapper",
"healthcheck_path": null,
"variable_names": [
"AUTH_API_URL",
"INSIGHTS_SITE_KEY"
],
"secret_names": [],
"bindings": [
{
"kind": "services",
"binding": "API",
"target": null
}
]
},
{
"name": "api",
"kind": "worker",
"directory": "apps/api",
"main": "src/index.ts",
"worker_name": "topolo-roadmapper-api",
"subdomain": null,
"healthcheck_path": "/health",
"variable_names": [
"ENVIRONMENT",
"FRONTEND_URL",
"TOPOLO_AUTH_API_URL",
"TOPOLO_NOTIFY_URL"
],
"secret_names": [],
"bindings": [
{
"kind": "d1",
"binding": "ROADMAP_CORE_DB",
"target": null
},
{
"kind": "d1",
"binding": "ROADMAP_COLLAB_DB",
"target": null
},
{
"kind": "d1",
"binding": "ROADMAP_PLANNING_DB",
"target": null
},
{
"kind": "d1",
"binding": "ROADMAP_EXPORT_DB",
"target": null
},
{
"kind": "r2",
"binding": "ATTACHMENTS_BUCKET",
"target": null
}
]
}
],
"notifications": [
"roadmapper.comment.mention",
"roadmapper.dependency.blocked",
"roadmapper.guest_share.invited",
"roadmapper.item.assigned",
"roadmapper.item.due",
"roadmapper.presentation.ready",
"roadmapper.project.created",
"roadmapper.roadmap.created"
],
"notification_contract": {
"source_path": "topolo.notification-contracts.json",
"role": "producer",
"schema_version": 1,
"owner_app_id": "app_topolo_roadmapper",
"events": [
{
"type": "roadmapper.comment.mention",
"version": 1,
"description": "A Roadmapper comment durably mentioned an organization member.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"comment_id",
"item_id",
"item_name",
"comment_excerpt",
"object_id",
"occurred_at"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"comment_id": {
"type": "string",
"minLength": 1
},
"item_id": {
"type": "string",
"minLength": 1
},
"item_name": {
"type": "string",
"minLength": 1
},
"comment_excerpt": {
"type": "string",
"maxLength": 240
},
"object_id": {
"type": "string",
"minLength": 1
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
},
"actor_id": {
"type": "string"
},
"actor_display_name": {
"type": "string"
}
},
"additionalProperties": true
},
"examples": [
{
"title": "Ada mentioned you in a comment",
"body": "Ada mentioned you on Launch API.",
"comment_id": "comment_123",
"item_id": "item_123",
"item_name": "Launch API",
"comment_excerpt": "Please review this dependency.",
"object_id": "comment_123",
"occurred_at": "2026-07-20T00:00:00.000Z"
}
],
"dataClassification": "internal",
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^roadmapper:comment-mention:"
},
"sensitiveFields": []
},
{
"type": "roadmapper.dependency.blocked",
"version": 1,
"description": "A persisted blocks or requires dependency blocked an assigned Roadmapper item.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"dependency_id",
"dependency_type",
"blocked_item_id",
"blocked_item_name",
"blocking_item_id",
"blocking_item_name",
"object_id",
"occurred_at"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"dependency_id": {
"type": "string",
"minLength": 1
},
"dependency_type": {
"enum": [
"blocks",
"requires"
]
},
"blocked_item_id": {
"type": "string",
"minLength": 1
},
"blocked_item_name": {
"type": "string",
"minLength": 1
},
"blocking_item_id": {
"type": "string",
"minLength": 1
},
"blocking_item_name": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": true
},
"examples": [
{
"title": "Roadmap item blocked",
"body": "Launch API is blocked by Authentication rollout.",
"dependency_id": "dependency_123",
"dependency_type": "blocks",
"blocked_item_id": "item_123",
"blocked_item_name": "Launch API",
"blocking_item_id": "item_456",
"blocking_item_name": "Authentication rollout",
"object_id": "item_123",
"occurred_at": "2026-07-20T00:00:00.000Z"
}
],
"dataClassification": "internal",
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^roadmapper:dependency-blocked:"
},
"sensitiveFields": []
},
{
"type": "roadmapper.guest_share.invited",
"version": 1,
"description": "Roadmapper recorded the durable guest share invited transition.",
"status": "published",
"payloadSchema": {
"type": "object",
"additionalProperties": false,
"required": [
"recipient_email",
"resource_label",
"resource_name",
"share_url",
"access_mode",
"allow_item_navigation",
"occurred_at"
],
"properties": {
"recipient_email": {
"type": "string",
"format": "email"
},
"resource_label": {
"type": "string",
"minLength": 1
},
"resource_name": {
"type": "string",
"minLength": 1
},
"share_url": {
"type": "string",
"format": "uri"
},
"access_mode": {
"enum": [
"view",
"edit"
]
},
"allow_item_navigation": {
"type": "boolean"
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"actor_id": {
"type": "string"
}
}
},
"examples": [
{
"recipient_email": "guest@example.com",
"resource_label": "Roadmap",
"resource_name": "Product launch",
"share_url": "https://roadmapper.topolo.app/roadmaps/guest/share_123",
"access_mode": "view",
"allow_item_navigation": true,
"occurred_at": "2026-07-17T12:00:00.000Z"
}
],
"dataClassification": "confidential",
"sensitiveFields": [
"recipient_email",
"share_url"
],
"recipients": {
"modes": [
"external"
],
"externalAddress": "required"
},
"idempotency": {
"required": true,
"pattern": "^roadmapper:guest-share-invited:"
}
},
{
"type": "roadmapper.item.assigned",
"version": 1,
"description": "A Roadmapper item durably acquired a new member assignee.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"item_id",
"item_name",
"assignee_user_id",
"object_id",
"occurred_at"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"item_id": {
"type": "string",
"minLength": 1
},
"item_name": {
"type": "string",
"minLength": 1
},
"assignee_user_id": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
},
"actor_id": {
"type": "string"
}
},
"additionalProperties": true
},
"examples": [
{
"title": "Roadmap item assigned to you",
"body": "Ada assigned Launch API to you.",
"item_id": "item_123",
"item_name": "Launch API",
"assignee_user_id": "usr_123",
"object_id": "item_123",
"occurred_at": "2026-07-20T00:00:00.000Z"
}
],
"dataClassification": "internal",
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^roadmapper:item-assigned:"
},
"sensitiveFields": []
},
{
"type": "roadmapper.item.due",
"version": 1,
"description": "A persisted assigned Roadmapper item reached its due date and had not completed.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"item_id",
"item_name",
"due_date",
"assignee_user_id",
"object_id",
"occurred_at"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"item_id": {
"type": "string",
"minLength": 1
},
"item_name": {
"type": "string",
"minLength": 1
},
"due_date": {
"type": "string",
"format": "date"
},
"assignee_user_id": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": true
},
"examples": [
{
"title": "Roadmap item is due",
"body": "Launch API is due on 2026-07-20.",
"item_id": "item_123",
"item_name": "Launch API",
"due_date": "2026-07-20",
"assignee_user_id": "usr_123",
"object_id": "item_123",
"occurred_at": "2026-07-20T00:00:00.000Z"
}
],
"dataClassification": "internal",
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^roadmapper:item-due:"
},
"sensitiveFields": []
},
{
"type": "roadmapper.presentation.ready",
"version": 1,
"description": "A Roadmapper presentation deck was durably generated in ready state.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"presentation_id",
"presentation_title",
"project_id",
"object_id",
"occurred_at"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"presentation_id": {
"type": "string",
"minLength": 1
},
"presentation_title": {
"type": "string",
"minLength": 1
},
"project_id": {
"type": "string",
"minLength": 1
},
"object_id": {
"type": "string",
"minLength": 1
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"cta_url": {
"type": "string",
"format": "uri"
}
},
"additionalProperties": true
},
"examples": [
{
"title": "Presentation ready",
"body": "Launch review is ready to review.",
"presentation_id": "presentation_123",
"presentation_title": "Launch review",
"project_id": "project_123",
"object_id": "presentation_123",
"occurred_at": "2026-07-20T00:00:00.000Z"
}
],
"dataClassification": "internal",
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^roadmapper:presentation-ready:"
},
"sensitiveFields": []
},
{
"type": "roadmapper.project.created",
"version": 1,
"description": "A roadmap project was created.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"occurred_at"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"surface": {
"enum": [
"notification",
"action"
]
},
"action_kind": {
"enum": [
"open",
"review",
"approve",
"resolve",
"complete"
]
},
"action_status": {
"type": "string"
},
"priority": {
"enum": [
"low",
"normal",
"high",
"urgent"
]
},
"cta_url": {
"type": "string",
"format": "uri"
},
"cta_label": {
"type": "string"
},
"category": {
"type": "string"
},
"severity": {
"enum": [
"info",
"success",
"warning",
"critical"
]
},
"object_type": {
"type": "string"
},
"object_id": {
"type": "string",
"minLength": 1
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"actor_id": {
"type": "string"
},
"actor_display_name": {
"type": "string"
},
"recipient_email": {
"type": "string",
"format": "email"
},
"thread_key": {
"type": "string"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"action_context": {
"type": "object"
}
},
"additionalProperties": true
},
"examples": [
{
"title": "A roadmap project was created.",
"body": "Open the owning app to review this event.",
"object_id": "object_123",
"occurred_at": "2026-07-17T00:00:00.000Z"
}
],
"dataClassification": "internal",
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^roadmapper:project-created:"
},
"sensitiveFields": []
},
{
"type": "roadmapper.roadmap.created",
"version": 1,
"description": "A roadmap was created.",
"status": "published",
"payloadSchema": {
"type": "object",
"required": [
"title",
"body",
"object_id",
"occurred_at"
],
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"body": {
"type": "string",
"minLength": 1
},
"surface": {
"enum": [
"notification",
"action"
]
},
"action_kind": {
"enum": [
"open",
"review",
"approve",
"resolve",
"complete"
]
},
"action_status": {
"type": "string"
},
"priority": {
"enum": [
"low",
"normal",
"high",
"urgent"
]
},
"cta_url": {
"type": "string",
"format": "uri"
},
"cta_label": {
"type": "string"
},
"category": {
"type": "string"
},
"severity": {
"enum": [
"info",
"success",
"warning",
"critical"
]
},
"object_type": {
"type": "string"
},
"object_id": {
"type": "string",
"minLength": 1
},
"occurred_at": {
"type": "string",
"format": "date-time"
},
"actor_id": {
"type": "string"
},
"actor_display_name": {
"type": "string"
},
"recipient_email": {
"type": "string",
"format": "email"
},
"thread_key": {
"type": "string"
},
"expires_at": {
"type": "string",
"format": "date-time"
},
"action_context": {
"type": "object"
}
},
"additionalProperties": true
},
"examples": [
{
"title": "A roadmap was created.",
"body": "Open the owning app to review this event.",
"object_id": "object_123",
"occurred_at": "2026-07-17T00:00:00.000Z"
}
],
"dataClassification": "internal",
"recipients": {
"modes": [
"organization_member"
],
"externalAddress": "forbidden"
},
"idempotency": {
"required": true,
"pattern": "^roadmapper:roadmap-created:"
},
"sensitiveFields": []
}
]
},
"actions": [
{
"name": "organizations.data.export",
"title": "Export organization data",
"description": "Export all Roadmapper data owned by the authenticated organization across four D1 stores and linked attachment metadata.",
"method": "GET",
"path": "/api/organizations/data/export",
"permission": "privacy:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/organizations/data/export",
"body": null
},
"effects": "Reads state through GET /api/organizations/data/export without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/organizations/data/export",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "organizations.data.erase",
"title": "Erase organization data",
"description": "Permanently erase all Roadmapper data owned by the authenticated organization while retaining backups under policy.",
"method": "DELETE",
"path": "/api/organizations/data/erase",
"permission": "privacy:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"confirmation": {
"type": "string",
"const": "ERASE"
}
},
"required": [
"confirmation"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": true,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"confirmation": "ERASE"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/organizations/data/erase",
"body": null
},
"effects": "May change state through DELETE /api/organizations/data/erase. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/organizations/data/erase",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.list",
"title": "Projects List",
"description": "Execute Projects List in Topolo Roadmapper.",
"method": "GET",
"path": "/api/projects",
"permission": "projects:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/projects",
"body": null
},
"effects": "Reads state through GET /api/projects without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/projects",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.create",
"title": "Projects Create",
"description": "Call POST /projects.",
"method": "POST",
"path": "/api/projects",
"permission": "projects:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
},
"status": {
"type": "string",
"enum": [
"active",
"on_hold",
"completed",
"cancelled",
"archived"
]
}
},
"required": [
"name"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"name": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects",
"body": {
"name": "example"
}
},
"effects": "May change state through POST /api/projects. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.update",
"title": "Projects Update",
"description": "Call PUT /projects/{id}.",
"method": "PUT",
"path": "/api/projects/{id}",
"permission": "projects:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
},
"status": {
"type": "string",
"enum": [
"active",
"on_hold",
"completed",
"cancelled",
"archived"
]
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Update.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/projects/00000000-0000-4000-8000-000000000000",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through PUT /api/projects/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/projects/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.delete",
"title": "Projects Delete",
"description": "Call DELETE /projects/{id}.",
"method": "DELETE",
"path": "/api/projects/{id}",
"permission": "projects:write",
"requiresConfirmation": true,
"destructive": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Delete.",
"additionalProperties": true
},
"readOnly": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/projects/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "May change state through DELETE /api/projects/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/projects/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.archive",
"title": "Projects Archive",
"description": "Call POST /projects/{id}/archive.",
"method": "POST",
"path": "/api/projects/{id}/archive",
"permission": "projects:write",
"requiresConfirmation": true,
"destructive": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"archive": {
"type": "boolean"
}
},
"required": [
"id",
"archive"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Archive.",
"additionalProperties": true
},
"readOnly": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"archive": true
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects/00000000-0000-4000-8000-000000000000/archive",
"body": {
"id": "00000000-0000-4000-8000-000000000000",
"archive": true
}
},
"effects": "May change state through POST /api/projects/{id}/archive. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects/*/archive",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.guest_shares.create",
"title": "Projects Guest Shares Create",
"description": "Execute Projects Guest Shares Create in Topolo Roadmapper.",
"method": "POST",
"path": "/api/projects/{id}/share-guest",
"permission": "projects:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"expiresInHours": {
"anyOf": [
{
"type": "number",
"minimum": 1,
"maximum": 720
},
{
"type": "null"
}
]
},
"accessMode": {
"type": "string",
"enum": [
"view",
"edit"
]
},
"allowItemNavigation": {
"type": "boolean"
},
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects/00000000-0000-4000-8000-000000000000/share-guest",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through POST /api/projects/{id}/share-guest. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects/*/share-guest",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.guest_shares.list",
"title": "Projects Guest Shares List",
"description": "Execute Projects Guest Shares List in Topolo Roadmapper.",
"method": "GET",
"path": "/api/projects/{id}/share-guest",
"permission": "projects:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/projects/00000000-0000-4000-8000-000000000000/share-guest",
"body": null
},
"effects": "Reads state through GET /api/projects/{id}/share-guest without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/projects/*/share-guest",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.guest_shares.revoke",
"title": "Projects Guest Shares Revoke",
"description": "Execute Projects Guest Shares Revoke in Topolo Roadmapper.",
"method": "DELETE",
"path": "/api/projects/{id}/share-guest/{token}",
"permission": "projects:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"token": {
"type": "string",
"minLength": 1
}
},
"required": [
"id",
"token"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": true,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"token": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/projects/00000000-0000-4000-8000-000000000000/share-guest/example",
"body": null
},
"effects": "May change state through DELETE /api/projects/{id}/share-guest/{token}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/projects/*/share-guest/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.guest_shares.invite",
"title": "Projects Guest Shares Invite",
"description": "Execute Projects Guest Shares Invite in Topolo Roadmapper.",
"method": "POST",
"path": "/api/projects/{id}/share-guest/{token}/invite-email",
"permission": "projects:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"token": {
"type": "string",
"minLength": 1
},
"recipientEmail": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"id",
"token",
"recipientEmail"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"token": "example",
"recipientEmail": "user@example.com"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects/00000000-0000-4000-8000-000000000000/share-guest/example/invite-email",
"body": {
"id": "00000000-0000-4000-8000-000000000000",
"token": "example",
"recipientEmail": "user@example.com"
}
},
"effects": "May change state through POST /api/projects/{id}/share-guest/{token}/invite-email. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects/*/share-guest/*/invite-email",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.presentations.generate",
"title": "Projects Presentations Generate",
"description": "Call POST /projects/{id}/presentations/generate.",
"method": "POST",
"path": "/api/projects/{id}/presentations/generate",
"permission": "reports:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"template": {
"type": "string",
"enum": [
"executive_status_update",
"steering_committee_review",
"program_increment_review",
"customer_safe_roadmap_update",
"delivery_risk_review"
]
},
"scenarioId": {
"type": "string"
},
"liveLinked": {
"type": "boolean"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Presentations Generate.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects/00000000-0000-4000-8000-000000000000/presentations/generate",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through POST /api/projects/{id}/presentations/generate. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects/*/presentations/generate",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.planning_sessions.create",
"title": "Projects Planning Sessions Create",
"description": "Call POST /projects/{id}/planning/sessions.",
"method": "POST",
"path": "/api/projects/{id}/planning/sessions",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"scopeType": {
"type": "string",
"enum": [
"project",
"roadmap",
"item"
]
},
"scopeRecordId": {
"type": "string",
"minLength": 1,
"maxLength": 128
},
"impactMode": {
"type": "string",
"enum": [
"project_wide",
"selected_only",
"selected_with_descendants"
]
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Planning Sessions Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects/00000000-0000-4000-8000-000000000000/planning/sessions",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through POST /api/projects/{id}/planning/sessions. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects/*/planning/sessions",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.ai_draft.create",
"title": "Projects Ai Draft Create",
"description": "Call POST /projects/ai/draft.",
"method": "POST",
"path": "/api/projects/ai/draft",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"messages": {
"minItems": 1,
"maxItems": 40,
"type": "array",
"items": {
"type": "object",
"properties": {
"role": {
"type": "string",
"enum": [
"user",
"assistant"
]
},
"content": {
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"required": [
"role",
"content"
],
"additionalProperties": false
}
},
"currentDraft": {
"anyOf": [
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
}
},
"required": [
"name"
],
"additionalProperties": false
},
"roadmaps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"completed",
"blocked"
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"assignee": {
"type": "string",
"maxLength": 255
},
"children": {
"type": "array",
"items": {}
}
},
"required": [
"name"
],
"additionalProperties": false
}
}
},
"required": [
"name",
"items"
],
"additionalProperties": false
}
}
},
"required": [
"project",
"roadmaps"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"messages"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Ai Draft Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"messages": [
{
"role": "user",
"content": "example"
}
]
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects/ai/draft",
"body": {
"messages": [
{
"role": "user",
"content": "example"
}
]
}
},
"effects": "May change state through POST /api/projects/ai/draft. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects/ai/draft",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.ai_apply",
"title": "Projects Ai Apply",
"description": "Call POST /projects/ai/apply.",
"method": "POST",
"path": "/api/projects/ai/apply",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"draft": {
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
}
},
"required": [
"name"
],
"additionalProperties": false
},
"roadmaps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"completed",
"blocked"
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"assignee": {
"type": "string",
"maxLength": 255
},
"children": {
"type": "array",
"items": {}
}
},
"required": [
"name"
],
"additionalProperties": false
}
}
},
"required": [
"name",
"items"
],
"additionalProperties": false
}
}
},
"required": [
"project",
"roadmaps"
],
"additionalProperties": false
}
},
"required": [
"draft"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Ai Apply.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"draft": {
"project": {
"name": "example"
},
"roadmaps": [
{
"name": "example",
"items": [
{
"name": "example"
}
]
}
]
}
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects/ai/apply",
"body": {
"draft": {
"project": {
"name": "example"
},
"roadmaps": [
{
"name": "example",
"items": [
{
"name": "example"
}
]
}
]
}
}
},
"effects": "May change state through POST /api/projects/ai/apply. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects/ai/apply",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.ai_sessions.create",
"title": "Projects Ai Sessions Create",
"description": "Call POST /projects/ai/sessions.",
"method": "POST",
"path": "/api/projects/ai/sessions",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Ai Sessions Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects/ai/sessions",
"body": {}
},
"effects": "May change state through POST /api/projects/ai/sessions. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects/ai/sessions",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.ai_sessions.update",
"title": "Projects Ai Sessions Update",
"description": "Call PATCH /projects/ai/sessions/{id}.",
"method": "PATCH",
"path": "/api/projects/ai/sessions/{id}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"draft": {
"anyOf": [
{
"type": "object",
"properties": {
"project": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
}
},
"required": [
"name"
],
"additionalProperties": false
},
"roadmaps": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"items": {
"type": "array",
"items": {
"type": "object",
"properties": {
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string"
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"completed",
"blocked"
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"assignee": {
"type": "string",
"maxLength": 255
},
"children": {
"type": "array",
"items": {}
}
},
"required": [
"name"
],
"additionalProperties": false
}
}
},
"required": [
"name",
"items"
],
"additionalProperties": false
}
}
},
"required": [
"project",
"roadmaps"
],
"additionalProperties": false
},
{
"type": "null"
}
]
}
},
"required": [
"id",
"draft"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Ai Sessions Update.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"draft": {
"project": {
"name": "example"
},
"roadmaps": [
{
"name": "example",
"items": []
}
]
}
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PATCH",
"path": "/api/projects/ai/sessions/00000000-0000-4000-8000-000000000000",
"body": {
"id": "00000000-0000-4000-8000-000000000000",
"draft": {
"project": {
"name": "example"
},
"roadmaps": [
{
"name": "example",
"items": []
}
]
}
}
},
"effects": "May change state through PATCH /api/projects/ai/sessions/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PATCH /api/projects/ai/sessions/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.ai_sessions.delete",
"title": "Projects Ai Sessions Delete",
"description": "Call DELETE /projects/ai/sessions/{id}.",
"method": "DELETE",
"path": "/api/projects/ai/sessions/{id}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"destructive": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Ai Sessions Delete.",
"additionalProperties": true
},
"readOnly": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/projects/ai/sessions/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "May change state through DELETE /api/projects/ai/sessions/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/projects/ai/sessions/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.ai_sessions.turns.create",
"title": "Projects Ai Sessions Turns Create",
"description": "Call POST /projects/ai/sessions/{id}/turns.",
"method": "POST",
"path": "/api/projects/ai/sessions/{id}/turns",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 4000
}
},
"required": [
"id",
"message"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Ai Sessions Turns Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"message": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects/ai/sessions/00000000-0000-4000-8000-000000000000/turns",
"body": {
"id": "00000000-0000-4000-8000-000000000000",
"message": "example"
}
},
"effects": "May change state through POST /api/projects/ai/sessions/{id}/turns. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects/ai/sessions/*/turns",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.ai_sessions.apply",
"title": "Projects Ai Sessions Apply",
"description": "Call POST /projects/ai/sessions/{id}/apply.",
"method": "POST",
"path": "/api/projects/ai/sessions/{id}/apply",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Ai Sessions Apply.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/projects/ai/sessions/00000000-0000-4000-8000-000000000000/apply",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through POST /api/projects/ai/sessions/{id}/apply. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/projects/ai/sessions/*/apply",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.create",
"title": "Items Create",
"description": "Call POST /items.",
"method": "POST",
"path": "/api/items",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"roadmapId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 1000
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"completed",
"blocked"
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"assignee": {
"type": "string",
"maxLength": 255
},
"assigneeUserId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"parentItemId": {
"type": "string"
}
},
"required": [
"roadmapId",
"name",
"status",
"priority"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Items Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"roadmapId": "example",
"name": "example",
"status": "planned",
"priority": "low"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/items",
"body": {
"roadmapId": "example",
"name": "example",
"status": "planned",
"priority": "low"
}
},
"effects": "May change state through POST /api/items. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/items",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.update",
"title": "Items Update",
"description": "Call PATCH /items/{id}.",
"method": "PATCH",
"path": "/api/items/{id}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 1000
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"completed",
"blocked"
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"assignee": {
"type": "string",
"maxLength": 255
},
"assigneeUserId": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"parentItemId": {
"type": "string"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Items Update.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PATCH",
"path": "/api/items/00000000-0000-4000-8000-000000000000",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through PATCH /api/items/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PATCH /api/items/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.delete",
"title": "Items Delete",
"description": "Call DELETE /items/{id}.",
"method": "DELETE",
"path": "/api/items/{id}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"destructive": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Items Delete.",
"additionalProperties": true
},
"readOnly": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/items/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "May change state through DELETE /api/items/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/items/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.presentations.generate",
"title": "Items Presentations Generate",
"description": "Call POST /items/{id}/presentations/generate.",
"method": "POST",
"path": "/api/items/{id}/presentations/generate",
"permission": "reports:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"template": {
"type": "string",
"enum": [
"executive_status_update",
"steering_committee_review",
"program_increment_review",
"customer_safe_roadmap_update",
"delivery_risk_review"
]
},
"scenarioId": {
"type": "string"
},
"liveLinked": {
"type": "boolean"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Items Presentations Generate.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/items/00000000-0000-4000-8000-000000000000/presentations/generate",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through POST /api/items/{id}/presentations/generate. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/items/*/presentations/generate",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.guest_shares.create",
"title": "Items Guest Shares Create",
"description": "Execute Items Guest Shares Create in Topolo Roadmapper.",
"method": "POST",
"path": "/api/items/{id}/share-guest",
"permission": "roadmaps:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"expiresInHours": {
"anyOf": [
{
"type": "number",
"minimum": 1,
"maximum": 720
},
{
"type": "null"
}
]
},
"accessMode": {
"type": "string",
"enum": [
"view",
"edit"
]
},
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/items/00000000-0000-4000-8000-000000000000/share-guest",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through POST /api/items/{id}/share-guest. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/items/*/share-guest",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.guest_shares.list",
"title": "Items Guest Shares List",
"description": "Execute Items Guest Shares List in Topolo Roadmapper.",
"method": "GET",
"path": "/api/items/{id}/share-guest",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/items/00000000-0000-4000-8000-000000000000/share-guest",
"body": null
},
"effects": "Reads state through GET /api/items/{id}/share-guest without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/items/*/share-guest",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.guest_shares.revoke",
"title": "Items Guest Shares Revoke",
"description": "Execute Items Guest Shares Revoke in Topolo Roadmapper.",
"method": "DELETE",
"path": "/api/items/{id}/share-guest/{token}",
"permission": "roadmaps:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"token": {
"type": "string",
"minLength": 1
}
},
"required": [
"id",
"token"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": true,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"token": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/items/00000000-0000-4000-8000-000000000000/share-guest/example",
"body": null
},
"effects": "May change state through DELETE /api/items/{id}/share-guest/{token}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/items/*/share-guest/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.guest_shares.invite",
"title": "Items Guest Shares Invite",
"description": "Execute Items Guest Shares Invite in Topolo Roadmapper.",
"method": "POST",
"path": "/api/items/{id}/share-guest/{token}/invite-email",
"permission": "roadmaps:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"token": {
"type": "string",
"minLength": 1
},
"recipientEmail": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"id",
"token",
"recipientEmail"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"token": "example",
"recipientEmail": "user@example.com"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/items/00000000-0000-4000-8000-000000000000/share-guest/example/invite-email",
"body": {
"id": "00000000-0000-4000-8000-000000000000",
"token": "example",
"recipientEmail": "user@example.com"
}
},
"effects": "May change state through POST /api/items/{id}/share-guest/{token}/invite-email. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/items/*/share-guest/*/invite-email",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.guest_scope.create",
"title": "Items Guest Scope Create",
"description": "Execute Items Guest Scope Create in Topolo Roadmapper.",
"method": "POST",
"path": "/api/items/guest/{scope}/items",
"permission": "roadmaps:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"scope": {
"type": "string",
"minLength": 1
},
"roadmapId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 1000
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"completed",
"blocked"
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"assignee": {
"type": "string",
"maxLength": 255
},
"parentItemId": {
"type": "string"
}
},
"required": [
"scope",
"roadmapId",
"name",
"status",
"priority"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"scope": "example",
"roadmapId": "example",
"name": "example",
"status": "planned",
"priority": "low"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/items/guest/example/items",
"body": {
"scope": "example",
"roadmapId": "example",
"name": "example",
"status": "planned",
"priority": "low"
}
},
"effects": "May change state through POST /api/items/guest/{scope}/items. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/items/guest/*/items",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.guest_scope.update",
"title": "Items Guest Scope Update",
"description": "Execute Items Guest Scope Update in Topolo Roadmapper.",
"method": "PATCH",
"path": "/api/items/guest/{scope}/items/{id}",
"permission": "roadmaps:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"scope": {
"type": "string",
"minLength": 1
},
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"description": {
"type": "string",
"maxLength": 1000
},
"status": {
"type": "string",
"enum": [
"planned",
"in_progress",
"completed",
"blocked"
]
},
"priority": {
"type": "string",
"enum": [
"low",
"medium",
"high",
"critical"
]
},
"startDate": {
"type": "string"
},
"endDate": {
"type": "string"
},
"assignee": {
"type": "string",
"maxLength": 255
},
"parentItemId": {
"type": "string"
}
},
"required": [
"scope",
"id"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"scope": "example",
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PATCH",
"path": "/api/items/guest/example/items/00000000-0000-4000-8000-000000000000",
"body": {
"scope": "example",
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through PATCH /api/items/guest/{scope}/items/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PATCH /api/items/guest/*/items/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.list",
"title": "Roadmaps List",
"description": "Execute Roadmaps List in Topolo Roadmapper.",
"method": "GET",
"path": "/api/roadmaps",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/roadmaps",
"body": null
},
"effects": "Reads state through GET /api/roadmaps without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/roadmaps",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.create",
"title": "Roadmaps Create",
"description": "Call POST /roadmaps.",
"method": "POST",
"path": "/api/roadmaps",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"projectId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
}
},
"required": [
"projectId",
"name"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Roadmaps Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"projectId": "example",
"name": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/roadmaps",
"body": {
"projectId": "example",
"name": "example"
}
},
"effects": "May change state through POST /api/roadmaps. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/roadmaps",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.update",
"title": "Roadmaps Update",
"description": "Call PUT /roadmaps/{id}.",
"method": "PUT",
"path": "/api/roadmaps/{id}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"projectId": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 100
},
"description": {
"type": "string",
"maxLength": 500
},
"startDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"endDate": {
"type": "string",
"pattern": "^\\d{4}-\\d{2}-\\d{2}$"
},
"status": {
"type": "string",
"enum": [
"active",
"completed",
"archived"
]
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Roadmaps Update.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/roadmaps/00000000-0000-4000-8000-000000000000",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through PUT /api/roadmaps/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/roadmaps/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.delete",
"title": "Roadmaps Delete",
"description": "Call DELETE /roadmaps/{id}.",
"method": "DELETE",
"path": "/api/roadmaps/{id}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"destructive": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Roadmaps Delete.",
"additionalProperties": true
},
"readOnly": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/roadmaps/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "May change state through DELETE /api/roadmaps/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/roadmaps/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.presentations.generate",
"title": "Roadmaps Presentations Generate",
"description": "Call POST /roadmaps/{id}/presentations/generate.",
"method": "POST",
"path": "/api/roadmaps/{id}/presentations/generate",
"permission": "reports:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"template": {
"type": "string",
"enum": [
"executive_status_update",
"steering_committee_review",
"program_increment_review",
"customer_safe_roadmap_update",
"delivery_risk_review"
]
},
"scenarioId": {
"type": "string"
},
"liveLinked": {
"type": "boolean"
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Roadmaps Presentations Generate.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/roadmaps/00000000-0000-4000-8000-000000000000/presentations/generate",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through POST /api/roadmaps/{id}/presentations/generate. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/roadmaps/*/presentations/generate",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.guest_shares.create",
"title": "Roadmaps Guest Shares Create",
"description": "Execute Roadmaps Guest Shares Create in Topolo Roadmapper.",
"method": "POST",
"path": "/api/roadmaps/{id}/share-guest",
"permission": "roadmaps:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"expiresInHours": {
"anyOf": [
{
"type": "number",
"minimum": 1,
"maximum": 720
},
{
"type": "null"
}
]
},
"accessMode": {
"type": "string",
"enum": [
"view",
"edit"
]
},
"allowItemNavigation": {
"type": "boolean"
},
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/roadmaps/00000000-0000-4000-8000-000000000000/share-guest",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through POST /api/roadmaps/{id}/share-guest. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/roadmaps/*/share-guest",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.guest_shares.list",
"title": "Roadmaps Guest Shares List",
"description": "Execute Roadmaps Guest Shares List in Topolo Roadmapper.",
"method": "GET",
"path": "/api/roadmaps/{id}/share-guest",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/roadmaps/00000000-0000-4000-8000-000000000000/share-guest",
"body": null
},
"effects": "Reads state through GET /api/roadmaps/{id}/share-guest without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/roadmaps/*/share-guest",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.guest_shares.revoke",
"title": "Roadmaps Guest Shares Revoke",
"description": "Execute Roadmaps Guest Shares Revoke in Topolo Roadmapper.",
"method": "DELETE",
"path": "/api/roadmaps/{id}/share-guest/{token}",
"permission": "roadmaps:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"token": {
"type": "string",
"minLength": 1
}
},
"required": [
"id",
"token"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": true,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"token": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/roadmaps/00000000-0000-4000-8000-000000000000/share-guest/example",
"body": null
},
"effects": "May change state through DELETE /api/roadmaps/{id}/share-guest/{token}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/roadmaps/*/share-guest/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.guest_shares.invite",
"title": "Roadmaps Guest Shares Invite",
"description": "Execute Roadmaps Guest Shares Invite in Topolo Roadmapper.",
"method": "POST",
"path": "/api/roadmaps/{id}/share-guest/{token}/invite-email",
"permission": "roadmaps:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"token": {
"type": "string",
"minLength": 1
},
"recipientEmail": {
"type": "string",
"format": "email",
"pattern": "^(?!\\.)(?!.*\\.\\.)([A-Za-z0-9_'+\\-\\.]*)[A-Za-z0-9_+-]@([A-Za-z0-9][A-Za-z0-9\\-]*\\.)+[A-Za-z]{2,}$"
}
},
"required": [
"id",
"token",
"recipientEmail"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"token": "example",
"recipientEmail": "user@example.com"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/roadmaps/00000000-0000-4000-8000-000000000000/share-guest/example/invite-email",
"body": {
"id": "00000000-0000-4000-8000-000000000000",
"token": "example",
"recipientEmail": "user@example.com"
}
},
"effects": "May change state through POST /api/roadmaps/{id}/share-guest/{token}/invite-email. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/roadmaps/*/share-guest/*/invite-email",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "dependencies.create",
"title": "Dependencies Create",
"description": "Call POST /dependencies.",
"method": "POST",
"path": "/api/dependencies",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"fromItemId": {
"type": "string",
"minLength": 1
},
"toItemId": {
"type": "string",
"minLength": 1
},
"type": {
"type": "string",
"enum": [
"blocks",
"requires",
"related"
]
}
},
"required": [
"fromItemId",
"toItemId",
"type"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Dependencies Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"fromItemId": "example",
"toItemId": "example",
"type": "blocks"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/dependencies",
"body": {
"fromItemId": "example",
"toItemId": "example",
"type": "blocks"
}
},
"effects": "May change state through POST /api/dependencies. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/dependencies",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "dependencies.delete",
"title": "Dependencies Delete",
"description": "Call DELETE /dependencies/{id}.",
"method": "DELETE",
"path": "/api/dependencies/{id}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"destructive": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Dependencies Delete.",
"additionalProperties": true
},
"readOnly": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/dependencies/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "May change state through DELETE /api/dependencies/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/dependencies/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "comments.create",
"title": "Comments Create",
"description": "Call POST /comments.",
"method": "POST",
"path": "/api/comments",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"roadmapItemId": {
"type": "string",
"minLength": 1
},
"content": {
"type": "string",
"minLength": 1
},
"mentionedUserIds": {
"type": "array",
"items": {
"type": "string",
"minLength": 1,
"maxLength": 255
},
"maxItems": 50
}
},
"required": [
"roadmapItemId",
"content"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Comments Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"roadmapItemId": "example",
"content": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/comments",
"body": {
"roadmapItemId": "example",
"content": "example"
}
},
"effects": "May change state through POST /api/comments. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/comments",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "comments.update",
"title": "Comments Update",
"description": "Call PUT /comments/{commentId}.",
"method": "PUT",
"path": "/api/comments/{commentId}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"commentId": {
"type": "string",
"minLength": 1
},
"content": {
"type": "string",
"minLength": 1
}
},
"required": [
"commentId",
"content"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Comments Update.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"commentId": "example",
"content": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PUT",
"path": "/api/comments/example",
"body": {
"commentId": "example",
"content": "example"
}
},
"effects": "May change state through PUT /api/comments/{commentId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PUT /api/comments/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "comments.delete",
"title": "Comments Delete",
"description": "Call DELETE /comments/{commentId}.",
"method": "DELETE",
"path": "/api/comments/{commentId}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"destructive": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"commentId": {
"type": "string",
"minLength": 1
}
},
"required": [
"commentId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Comments Delete.",
"additionalProperties": true
},
"readOnly": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"commentId": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/comments/example",
"body": null
},
"effects": "May change state through DELETE /api/comments/{commentId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/comments/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "attachments.upload",
"title": "Attachments Upload",
"description": "Call POST /attachments/upload.",
"method": "POST",
"path": "/api/attachments/upload",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"roadmapItemId": {
"type": "string",
"minLength": 1
},
"fileName": {
"type": "string",
"minLength": 1
},
"contentType": {
"type": "string",
"minLength": 1
},
"base64": {
"type": "string",
"minLength": 1,
"maxLength": 14000000
}
},
"required": [
"roadmapItemId",
"fileName",
"contentType",
"base64"
],
"additionalProperties": false
},
"agentContract": {
"upload": {
"profile": "inline-base64",
"contentField": "base64",
"contentTypeField": "contentType",
"fileNameField": "fileName",
"maxBytes": 10485760,
"acceptedContentTypes": [
"*/*"
]
}
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Attachments Upload.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"roadmapItemId": "example",
"fileName": "example",
"contentType": "example",
"base64": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/attachments/upload",
"body": {
"roadmapItemId": "example",
"fileName": "example",
"contentType": "example",
"base64": "example"
}
},
"effects": "May change state through POST /api/attachments/upload. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/attachments/upload",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "attachments.delete",
"title": "Attachments Delete",
"description": "Call DELETE /attachments/{attachmentId}.",
"method": "DELETE",
"path": "/api/attachments/{attachmentId}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"destructive": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"attachmentId": {
"type": "string",
"minLength": 1
}
},
"required": [
"attachmentId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Attachments Delete.",
"additionalProperties": true
},
"readOnly": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"attachmentId": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/attachments/example",
"body": null
},
"effects": "May change state through DELETE /api/attachments/{attachmentId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/attachments/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "reports.generate",
"title": "Reports Generate",
"description": "Call POST /reports/generate.",
"method": "POST",
"path": "/api/reports/generate",
"permission": "reports:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"title": {
"type": "string",
"minLength": 1
},
"description": {
"type": "string"
},
"filters": {
"type": "object",
"properties": {
"projectIds": {
"type": "array",
"items": {
"type": "string"
}
},
"roadmapIds": {
"type": "array",
"items": {
"type": "string"
}
},
"statuses": {
"type": "array",
"items": {
"type": "string"
}
},
"priorities": {
"type": "array",
"items": {
"type": "string"
}
},
"dateRange": {
"type": "object",
"properties": {
"start": {
"type": "string"
},
"end": {
"type": "string"
}
},
"required": [
"start",
"end"
],
"additionalProperties": false
},
"assignees": {
"type": "array",
"items": {
"type": "string"
}
}
},
"additionalProperties": false
}
},
"required": [
"title",
"filters"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Reports Generate.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"title": "example",
"filters": {
"projectIds": [
"example"
],
"roadmapIds": [
"example"
],
"statuses": [
"example"
]
}
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/reports/generate",
"body": {
"title": "example",
"filters": {
"projectIds": [
"example"
],
"roadmapIds": [
"example"
],
"statuses": [
"example"
]
}
}
},
"effects": "May change state through POST /api/reports/generate. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/reports/generate",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "imports.csv",
"title": "Imports Csv",
"description": "Execute Imports Csv in Topolo Roadmapper.",
"method": "POST",
"path": "/api/import",
"permission": "roadmaps:write",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"csv": {
"type": "string",
"minLength": 1
},
"importType": {
"type": "string",
"enum": [
"roadmaps",
"projects",
"combined"
]
}
},
"required": [
"csv"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"csv": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/import",
"body": {
"csv": "example"
}
},
"effects": "May change state through POST /api/import. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/import",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "planning.sessions.delete",
"title": "Planning Sessions Delete",
"description": "Call DELETE /planning/sessions/{id}.",
"method": "DELETE",
"path": "/api/planning/sessions/{id}",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"destructive": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Planning Sessions Delete.",
"additionalProperties": true
},
"readOnly": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/planning/sessions/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "May change state through DELETE /api/planning/sessions/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/planning/sessions/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "planning.turns.create",
"title": "Planning Turns Create",
"description": "Call POST /planning/sessions/{id}/turns.",
"method": "POST",
"path": "/api/planning/sessions/{id}/turns",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"message": {
"type": "string",
"minLength": 1,
"maxLength": 4000
},
"document": {}
},
"required": [
"id",
"message"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Planning Turns Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"message": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/planning/sessions/00000000-0000-4000-8000-000000000000/turns",
"body": {
"id": "00000000-0000-4000-8000-000000000000",
"message": "example"
}
},
"effects": "May change state through POST /api/planning/sessions/{id}/turns. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/planning/sessions/*/turns",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "planning.scenarios.create",
"title": "Planning Scenarios Create",
"description": "Call POST /planning/sessions/{id}/scenarios.",
"method": "POST",
"path": "/api/planning/sessions/{id}/scenarios",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"name": {
"type": "string",
"minLength": 1,
"maxLength": 120
},
"document": {}
},
"required": [
"id",
"name"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Planning Scenarios Create.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"name": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/planning/sessions/00000000-0000-4000-8000-000000000000/scenarios",
"body": {
"id": "00000000-0000-4000-8000-000000000000",
"name": "example"
}
},
"effects": "May change state through POST /api/planning/sessions/{id}/scenarios. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/planning/sessions/*/scenarios",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "planning.apply",
"title": "Planning Apply",
"description": "Call POST /planning/sessions/{id}/apply.",
"method": "POST",
"path": "/api/planning/sessions/{id}/apply",
"permission": "roadmaps:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"document": {}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Planning Apply.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/planning/sessions/00000000-0000-4000-8000-000000000000/apply",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through POST /api/planning/sessions/{id}/apply. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/planning/sessions/*/apply",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "presentations.update",
"title": "Presentations Update",
"description": "Call PATCH /presentations/{id}.",
"method": "PATCH",
"path": "/api/presentations/{id}",
"permission": "reports:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"title": {
"type": "string",
"minLength": 1,
"maxLength": 160
},
"summary": {
"type": "string",
"maxLength": 1200
},
"slides": {
"type": "array",
"items": {}
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Presentations Update.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "PATCH",
"path": "/api/presentations/00000000-0000-4000-8000-000000000000",
"body": {
"id": "00000000-0000-4000-8000-000000000000"
}
},
"effects": "May change state through PATCH /api/presentations/{id}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "PATCH /api/presentations/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "presentations.export",
"title": "Presentations Export",
"description": "Call POST /presentations/{id}/export.",
"method": "POST",
"path": "/api/presentations/{id}/export",
"permission": "reports:write",
"requiresConfirmation": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
},
"format": {
"type": "string",
"enum": [
"web",
"pptx"
]
}
},
"required": [
"id",
"format"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Presentations Export.",
"additionalProperties": true
},
"readOnly": false,
"destructive": false,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000",
"format": "web"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "POST",
"path": "/api/presentations/00000000-0000-4000-8000-000000000000/export",
"body": {
"id": "00000000-0000-4000-8000-000000000000",
"format": "web"
}
},
"effects": "May change state through POST /api/presentations/{id}/export. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "POST /api/presentations/*/export",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "workspaces.delete",
"title": "Workspaces Archive",
"description": "Archive an empty Roadmapper workspace: Roadmapper confirms it holds no planning data, then asks the platform to archive it.",
"method": "DELETE",
"path": "/api/roadmapper/workspaces/{workspaceId}",
"permission": "workspace:delete",
"readOnly": false,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"workspaceId": {
"type": "string",
"minLength": 1
}
},
"required": [
"workspaceId"
],
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": true,
"requiresConfirmation": true,
"agentAccess": "confirm",
"authorizationMode": "static",
"documentation": {
"example_input": {
"workspaceId": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --confirm --json"
],
"http_example": {
"method": "DELETE",
"path": "/api/roadmapper/workspaces/example",
"body": null
},
"effects": "May change state through DELETE /api/roadmapper/workspaces/{workspaceId}. Inspect the plan and honor the published confirmation policy.",
"verification": [
"Check the structured action result.",
"Read the affected resource back through the corresponding get or list action."
],
"recovery": [
"Do not retry an ambiguous mutation until a read confirms whether it applied.",
"Use a published inverse, update, archive, or delete action only after inspecting its contract."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "DELETE /api/roadmapper/workspaces/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "widget.get",
"title": "Get widget summary",
"description": "Get the TopoloOne widget summary for this service.",
"method": "GET",
"path": "/api/widget",
"permission": "projects:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"outputSchema": {
"type": "object",
"additionalProperties": true
},
"target": "api",
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/widget",
"body": null
},
"effects": "Reads state through GET /api/widget without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/widget",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.get",
"title": "Projects Get",
"description": "Call GET /projects/{id}.",
"method": "GET",
"path": "/api/projects/{id}",
"permission": "projects:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Get.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/projects/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "Reads state through GET /api/projects/{id} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/projects/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.dashboard.get",
"title": "Projects Dashboard Get",
"description": "Call GET /projects/{id}/dashboard.",
"method": "GET",
"path": "/api/projects/{id}/dashboard",
"permission": "projects:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Dashboard Get.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/projects/00000000-0000-4000-8000-000000000000/dashboard",
"body": null
},
"effects": "Reads state through GET /api/projects/{id}/dashboard without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/projects/*/dashboard",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.planning_feed.get",
"title": "Projects Planning Feed Get",
"description": "Call GET /projects/{id}/planning-feed.",
"method": "GET",
"path": "/api/projects/{id}/planning-feed",
"permission": "projects:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Planning Feed Get.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/projects/00000000-0000-4000-8000-000000000000/planning-feed",
"body": null
},
"effects": "Reads state through GET /api/projects/{id}/planning-feed without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/projects/*/planning-feed",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.planning_sessions.list",
"title": "Projects Planning Sessions List",
"description": "Call GET /projects/{id}/planning/sessions.",
"method": "GET",
"path": "/api/projects/{id}/planning/sessions",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Planning Sessions List.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/projects/00000000-0000-4000-8000-000000000000/planning/sessions",
"body": null
},
"effects": "Reads state through GET /api/projects/{id}/planning/sessions without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/projects/*/planning/sessions",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.ai_status.get",
"title": "Projects Ai Status Get",
"description": "Call GET /projects/ai/status.",
"method": "GET",
"path": "/api/projects/ai/status",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Ai Status Get.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/projects/ai/status",
"body": null
},
"effects": "Reads state through GET /api/projects/ai/status without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/projects/ai/status",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.ai_sessions.list",
"title": "Projects Ai Sessions List",
"description": "Call GET /projects/ai/sessions.",
"method": "GET",
"path": "/api/projects/ai/sessions",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {},
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Ai Sessions List.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/projects/ai/sessions",
"body": null
},
"effects": "Reads state through GET /api/projects/ai/sessions without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/projects/ai/sessions",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "projects.ai_sessions.get",
"title": "Projects Ai Sessions Get",
"description": "Call GET /projects/ai/sessions/{id}.",
"method": "GET",
"path": "/api/projects/ai/sessions/{id}",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Projects Ai Sessions Get.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/projects/ai/sessions/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "Reads state through GET /api/projects/ai/sessions/{id} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/projects/ai/sessions/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "items.get",
"title": "Items Get",
"description": "Call GET /items/{id}.",
"method": "GET",
"path": "/api/items/{id}",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Items Get.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/items/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "Reads state through GET /api/items/{id} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/items/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.get",
"title": "Roadmaps Get",
"description": "Call GET /roadmaps/{id}.",
"method": "GET",
"path": "/api/roadmaps/{id}",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Roadmaps Get.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/roadmaps/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "Reads state through GET /api/roadmaps/{id} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/roadmaps/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "roadmaps.items.list",
"title": "Roadmaps Items List",
"description": "Call GET /roadmaps/{id}/items.",
"method": "GET",
"path": "/api/roadmaps/{id}/items",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Roadmaps Items List.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/roadmaps/00000000-0000-4000-8000-000000000000/items",
"body": null
},
"effects": "Reads state through GET /api/roadmaps/{id}/items without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/roadmaps/*/items",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "dependencies.item.list",
"title": "Dependencies Item List",
"description": "Call GET /dependencies/item/{id}.",
"method": "GET",
"path": "/api/dependencies/item/{id}",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Dependencies Item List.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/dependencies/item/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "Reads state through GET /api/dependencies/item/{id} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/dependencies/item/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "comments.by_roadmap_item.list",
"title": "Comments By Roadmap Item List",
"description": "Call GET /comments/roadmap-item/{roadmapItemId}.",
"method": "GET",
"path": "/api/comments/roadmap-item/{roadmapItemId}",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"roadmapItemId": {
"type": "string",
"minLength": 1
}
},
"required": [
"roadmapItemId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Comments By Roadmap Item List.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"roadmapItemId": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/comments/roadmap-item/example",
"body": null
},
"effects": "Reads state through GET /api/comments/roadmap-item/{roadmapItemId} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/comments/roadmap-item/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "attachments.by_roadmap_item.list",
"title": "Attachments By Roadmap Item List",
"description": "Call GET /attachments/roadmap-item/{roadmapItemId}.",
"method": "GET",
"path": "/api/attachments/roadmap-item/{roadmapItemId}",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"roadmapItemId": {
"type": "string",
"minLength": 1
},
"includeDescendants": {
"type": "string",
"enum": [
"true",
"false"
]
}
},
"required": [
"roadmapItemId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Attachments By Roadmap Item List.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"roadmapItemId": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/attachments/roadmap-item/example",
"body": null
},
"effects": "Reads state through GET /api/attachments/roadmap-item/{roadmapItemId} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/attachments/roadmap-item/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "attachments.by_roadmap.list",
"title": "Attachments By Roadmap List",
"description": "Call GET /attachments/roadmap/{roadmapId}.",
"method": "GET",
"path": "/api/attachments/roadmap/{roadmapId}",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"roadmapId": {
"type": "string",
"minLength": 1
}
},
"required": [
"roadmapId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Attachments By Roadmap List.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"roadmapId": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/attachments/roadmap/example",
"body": null
},
"effects": "Reads state through GET /api/attachments/roadmap/{roadmapId} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/attachments/roadmap/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "attachments.download",
"title": "Attachments Download",
"description": "Call GET /attachments/{attachmentId}/download.",
"method": "GET",
"path": "/api/attachments/{attachmentId}/download",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"attachmentId": {
"type": "string",
"minLength": 1
}
},
"required": [
"attachmentId"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Attachments Download.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"attachmentId": "example"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/attachments/example/download",
"body": null
},
"effects": "Reads state through GET /api/attachments/{attachmentId}/download without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/attachments/*/download",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "planning.sessions.get",
"title": "Planning Sessions Get",
"description": "Call GET /planning/sessions/{id}.",
"method": "GET",
"path": "/api/planning/sessions/{id}",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Planning Sessions Get.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/planning/sessions/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "Reads state through GET /api/planning/sessions/{id} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/planning/sessions/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "planning.revisions.list",
"title": "Planning Revisions List",
"description": "Call GET /planning/sessions/{id}/revisions.",
"method": "GET",
"path": "/api/planning/sessions/{id}/revisions",
"permission": "roadmaps:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Planning Revisions List.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/planning/sessions/00000000-0000-4000-8000-000000000000/revisions",
"body": null
},
"effects": "Reads state through GET /api/planning/sessions/{id}/revisions without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/planning/sessions/*/revisions",
"evidence": "Matched to a served route extracted from canonical staging source."
}
},
{
"name": "presentations.get",
"title": "Presentations Get",
"description": "Call GET /presentations/{id}.",
"method": "GET",
"path": "/api/presentations/{id}",
"permission": "reports:read",
"readOnly": true,
"inputSchema": {
"$schema": "https://json-schema.org/draft/2020-12/schema",
"type": "object",
"properties": {
"id": {
"type": "string",
"minLength": 1
}
},
"required": [
"id"
],
"additionalProperties": false
},
"target": "api",
"outputSchema": {
"type": "object",
"description": "Response returned by Presentations Get.",
"additionalProperties": true
},
"destructive": false,
"requiresConfirmation": false,
"agentAccess": "auto",
"authorizationMode": "static",
"documentation": {
"example_input": {
"id": "00000000-0000-4000-8000-000000000000"
},
"cli_example": [
"topolo actions --service topolo-roadmapper --json",
"topolo actions get <action-id> --json",
"topolo actions validate <action-id> --data @payload.json --json",
"topolo actions plan <action-id> --data @payload.json --json",
"topolo actions call <action-id> --data @payload.json --json"
],
"http_example": {
"method": "GET",
"path": "/api/presentations/00000000-0000-4000-8000-000000000000",
"body": null
},
"effects": "Reads state through GET /api/presentations/{id} without a declared mutation.",
"verification": [
"Check the structured action result and pagination or resource identifiers before using it downstream."
],
"recovery": [
"Correct identity, resource context, permission, or input validation failures, then retry the read."
],
"docs_url": null,
"resource": null,
"next_action_ids": [],
"rollback_action_id": null
},
"implementation": {
"status": "implemented",
"route_key": "GET /api/presentations/*",
"evidence": "Matched to a served route extracted from canonical staging source."
}
}
],
"action_coverage": {
"status": "ok",
"served_routes": 84,
"matched_actions": 74,
"declared_unserved_actions": [],
"coverage_excluded_actions": [],
"uncatalogued_routes": [],
"ignored_routes": 10,
"configured_exclusions": 6,
"configuration_findings": [],
"notes": [
"5 manually-declared route(s)"
]
},
"runtime_contract_audit": {
"status": "verified",
"actions": 74,
"contracts": 74,
"contract_module": "topolo.action-contracts.mjs",
"validator_sources": [
"apps/api/src/index.ts"
],
"authorization_sources": [
"apps/api/src/index.ts"
],
"findings": []
}
}
],
"mobile_contracts": [
{
"source_path": "apps/TopoloRoadmapper/topolo.mobile-experience.json",
"contract": {
"version": "1.0.0",
"status": "published",
"mode": "native_capability",
"appId": "app_topolo_roadmapper",
"localizationNamespace": "roadmapper",
"permissions": [
"projects:read",
"projects:write",
"roadmaps:read",
"roadmaps:write"
],
"offlinePolicy": "read_through_cache",
"fallbackPath": "/projects",
"auth": {
"audience": "topolo-roadmapper",
"scopes": [
"projects:read",
"projects:write",
"roadmaps:read",
"roadmaps:write"
]
},
"routes": [
{
"path": "/projects",
"apiPath": "/api/projects",
"title": "Projects",
"titleKey": "roadmapper.nav.projects",
"template": "record.list",
"dataSource": "roadmapper.projects.list",
"detailRoute": "/projects/:id"
},
{
"path": "/projects/:id",
"apiPath": "/api/projects/:id",
"title": "Project",
"titleKey": "roadmapper.pages.projects.id.project",
"template": "record.detail",
"dataSource": "roadmapper.projects.detail"
},
{
"path": "/roadmaps",
"apiPath": "/api/roadmaps",
"title": "Roadmaps",
"titleKey": "roadmapper.nav.roadmaps",
"template": "record.list",
"dataSource": "roadmapper.roadmaps.list",
"detailRoute": "/roadmaps/:id"
},
{
"path": "/roadmaps/:id",
"apiPath": "/api/roadmaps/:id",
"title": "Roadmap",
"titleKey": "roadmapper.pages.roadmaps.roadmap",
"template": "record.detail",
"dataSource": "roadmapper.roadmaps.detail"
}
]
}
}
],
"package_manifests": [],
"deployment_configs": [],
"source_signals": {
"api_routes": [
{
"method": "ALL",
"path": "/health",
"source_path": "apps/TopoloRoadmapper/apps/api/src/index.ts"
},
{
"method": "ALL",
"path": "/api/widget",
"source_path": "apps/TopoloRoadmapper/apps/api/src/index.ts"
},
{
"method": "ALL",
"path": "/",
"source_path": "apps/TopoloRoadmapper/apps/api/src/index.ts"
}
],
"ui_routes": [
{
"path": "/dashboard",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/calendar",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/projects",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/projects/new",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/projects/new/manual",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/projects/:id",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/projects/:id/dashboard",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/roadmaps",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/roadmaps/new",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/roadmaps/:id",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/roadmap-items/:id",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/presentations/:id",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/settings",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/settings/:section",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/import",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/export",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/reports",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/getting-started",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/projects/guest/:token",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/roadmaps/guest/:token",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/roadmap-items/guest/:token",
"source_path": "apps/TopoloRoadmapper/apps/web/src/App.tsx"
},
{
"path": "/dashboard",
"source_path": "apps/TopoloRoadmapper/apps/web/src/app-routes.tsx"
},
{
"path": "/calendar",
"source_path": "apps/TopoloRoadmapper/apps/web/src/app-routes.tsx"
},
{
"path": "/projects",
"source_path": "apps/TopoloRoadmapper/apps/web/src/app-routes.tsx"
},
{
"path": "/roadmaps",
"source_path": "apps/TopoloRoadmapper/apps/web/src/app-routes.tsx"
},
{
"path": "/reports",
"source_path": "apps/TopoloRoadmapper/apps/web/src/app-routes.tsx"
}
],
"test_cases": [],
"database_tables": []
},
"documentation": {
"declared_paths": [
"applications/roadmapper",
"internal/apps/roadmapper"
],
"present_paths": [
"applications/roadmapper",
"internal/apps/roadmapper"
],
"missing_paths": [],
"human_reference": "/systems/topolo-roadmapper",
"machine_reference": "/machine/systems/topolo-roadmapper.json",
"action_examples": 74,
"action_schemas": 74
},
"source_findings": []
}