{
  "name": "ATLAS",
  "description": "The verified route layer for the AI ecosystem. Maps goals to evidence-backed routes, stacks, receipts, and outcomes for humans and AI agents.",
  "version": "0.8.0",
  "audience": [
    "humans",
    "ai-agents"
  ],
  "contact": "hello@atlas.vaultsparkstudios.com",
  "capabilities": [
    {
      "name": "verified-paths",
      "description": "Curated, evidence-backed routes from goals to recommended stacks",
      "endpoint": "/verified-paths",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "entities",
      "description": "AI tools, models, agents, and frameworks tracked by ATLAS",
      "endpoint": "/entities",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "route-generation",
      "description": "Generate a verified route from a natural-language goal and optional constraints",
      "endpoint": "/routes/generate",
      "format": "application/json",
      "methods": [
        "POST"
      ],
      "input": {
        "goal": "string",
        "constraints": "string[]"
      },
      "output": {
        "route": "VerifiedPath",
        "receipt": "Receipt"
      }
    },
    {
      "name": "receipt-generation",
      "description": "Generate an evidence receipt for a verified path",
      "endpoint": "/receipts/generate",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "signed-receipts",
      "description": "Generate and verify HMAC-signed path receipts when the Worker receipt secret is configured",
      "endpoint": "/paths/{pathId}/receipt",
      "format": "application/json",
      "methods": [
        "GET"
      ],
      "related": [
        "/receipts/verify"
      ]
    },
    {
      "name": "path-comparison",
      "description": "Compare 2 or 3 verified paths side by side and return a recommendation",
      "endpoint": "/paths/compare",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "terrain-diff",
      "description": "Show stack deltas and confidence changes between two paths",
      "endpoint": "/terrain/diff",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "outcomes",
      "description": "Record whether a path worked - closes the verification loop",
      "endpoint": "/outcomes",
      "format": "application/json",
      "methods": [
        "GET",
        "POST"
      ]
    },
    {
      "name": "api-contract",
      "description": "Complete manifest-derived route table and safe smoke profile for AI agents",
      "endpoint": "/api-contract.json",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "runtime-status",
      "description": "Non-secret runtime storage status; reports whether mutable write surfaces are durable or ephemeral",
      "endpoint": "/api/runtime/status",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "mcp-server",
      "description": "MCP server for AI agents - query verified paths, score stacks, generate routes, compare paths, and verify receipts",
      "endpoint": "/mcp",
      "protocol": "MCP v1 (stdio)",
      "tools": [
        "atlas.search_entities",
        "atlas.get_verified_path",
        "atlas.generate_route",
        "atlas.score_stack",
        "atlas.generate_receipt",
        "atlas.compare_paths",
        "atlas.verify_receipt",
        "atlas.get_route_for_goal"
      ]
    }
  ],
  "primitives": [
    "Goal",
    "Route",
    "Evidence",
    "Stack",
    "Receipt",
    "Outcome",
    "Waypoint",
    "Trail"
  ],
  "trust": {
    "scoringModel": "freshnessScore * evidenceQuality * agentReadiness",
    "stalenessPolicy": "entities verified >30 days ago are blocked from display",
    "paidPlacement": "never affects score (SOUL commandment #7)"
  },
  "schema": "https://github.com/VaultSparkStudios/atlas/blob/main/ATLAS_v0.8_Windows_Safe_Export/ATLAS_v08/atlas/packages/schemas/src/entity.schema.json",
  "openapi": "/api-schema.json",
  "apiContract": "/api-contract.json",
  "requestLimits": {
    "maxJsonBodyBytes": 65536
  },
  "runtimeStatus": "/api/runtime/status",
  "persistenceReadiness": {
    "mode": "ephemeral",
    "status": "blocked",
    "durableWrites": false,
    "requiredStore": "supabase",
    "criticalStores": [
      "entity-overrides",
      "admin-audit-log",
      "outcomes",
      "path-subscriptions",
      "waitlist"
    ],
    "statusEndpoint": "/api/runtime/status",
    "note": "Public and review write endpoints are intentionally reported as ephemeral until Supabase-backed storage is wired."
  },
  "x-api-routes": [
    {
      "id": "health",
      "endpoint": "/health",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "path-deltas-batch",
      "endpoint": "/paths/deltas",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "path-delta",
      "endpoint": "/paths/{pathId}/delta",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "entities-list",
      "endpoint": "/entities",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "entities-batch",
      "endpoint": "/entities/batch",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "entity-detail",
      "endpoint": "/entities/{entityId}",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "admin-review",
      "endpoint": "/api/admin/review/{entityId}",
      "methods": [
        "POST"
      ],
      "authRequired": true,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "admin-log",
      "endpoint": "/api/admin/log",
      "methods": [
        "GET"
      ],
      "authRequired": true,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "admin-status",
      "endpoint": "/api/admin/status",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "runtime-status",
      "endpoint": "/api/runtime/status",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "obelisk-verify",
      "endpoint": "/api/obelisk-verify",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": false,
      "smokeSkipReason": "External Obelisk IdP fetch; covered by auth-contract source checks without network."
    },
    {
      "id": "verified-paths-list",
      "endpoint": "/verified-paths",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "verified-path-detail",
      "endpoint": "/verified-paths/{pathId}",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "evidence-list",
      "endpoint": "/evidence",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "evidence-submit",
      "endpoint": "/evidence/submit",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "score-entity",
      "endpoint": "/scoring/entity/{entityId}",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "score-path",
      "endpoint": "/scoring/path/{pathId}",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "generate-route",
      "endpoint": "/routes/generate",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "generate-receipt",
      "endpoint": "/receipts/generate",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "signed-path-receipt",
      "endpoint": "/paths/{pathId}/receipt",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "verify-receipt",
      "endpoint": "/receipts/verify",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "outcomes",
      "endpoint": "/outcomes",
      "methods": [
        "GET",
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "outcome-aggregate",
      "endpoint": "/outcomes/aggregate/{pathId}",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "outcome-summary",
      "endpoint": "/outcomes/summary",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "compare-paths",
      "endpoint": "/paths/compare",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "terrain-diff",
      "endpoint": "/terrain/diff",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "client-errors",
      "endpoint": "/api/errors",
      "methods": [
        "GET",
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "contact-status",
      "endpoint": "/api/contact/status",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "contact-send",
      "endpoint": "/api/contact",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "popular-goals",
      "endpoint": "/api/popular-goals",
      "methods": [
        "GET"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "subscribe",
      "endpoint": "/api/subscribe",
      "methods": [
        "GET",
        "POST",
        "DELETE"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "waitlist-insights",
      "endpoint": "/api/admin/waitlist/insights",
      "methods": [
        "GET"
      ],
      "authRequired": true,
      "safeToSmoke": true,
      "smokeSkipReason": null
    },
    {
      "id": "waitlist",
      "endpoint": "/api/waitlist",
      "methods": [
        "POST"
      ],
      "authRequired": false,
      "safeToSmoke": true,
      "smokeSkipReason": null
    }
  ],
  "x-capabilities": [
    {
      "name": "health",
      "description": "Manifest route: /health",
      "endpoint": "/health",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "path-deltas-batch",
      "description": "Manifest route: /paths/deltas",
      "endpoint": "/paths/deltas",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "path-delta",
      "description": "Manifest route: /paths/{pathId}/delta",
      "endpoint": "/paths/{pathId}/delta",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "entities-batch",
      "description": "Manifest route: /entities/batch",
      "endpoint": "/entities/batch",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "entity-detail",
      "description": "Manifest route: /entities/{entityId}",
      "endpoint": "/entities/{entityId}",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "admin-review",
      "description": "Manifest route: /api/admin/review/{entityId}",
      "endpoint": "/api/admin/review/{entityId}",
      "format": "application/json",
      "methods": [
        "POST"
      ],
      "auth": "X-Obelisk-Session or X-Admin-Token"
    },
    {
      "name": "admin-log",
      "description": "Manifest route: /api/admin/log",
      "endpoint": "/api/admin/log",
      "format": "application/json",
      "methods": [
        "GET"
      ],
      "auth": "X-Obelisk-Session or X-Admin-Token"
    },
    {
      "name": "admin-status",
      "description": "Manifest route: /api/admin/status",
      "endpoint": "/api/admin/status",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "runtime-status",
      "description": "Manifest route: /api/runtime/status",
      "endpoint": "/api/runtime/status",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "obelisk-verify",
      "description": "Manifest route: /api/obelisk-verify (External Obelisk IdP fetch; covered by auth-contract source checks without network.)",
      "endpoint": "/api/obelisk-verify",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "verified-path-detail",
      "description": "Manifest route: /verified-paths/{pathId}",
      "endpoint": "/verified-paths/{pathId}",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "evidence-list",
      "description": "Manifest route: /evidence",
      "endpoint": "/evidence",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "evidence-submit",
      "description": "Manifest route: /evidence/submit",
      "endpoint": "/evidence/submit",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "score-entity",
      "description": "Manifest route: /scoring/entity/{entityId}",
      "endpoint": "/scoring/entity/{entityId}",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "score-path",
      "description": "Manifest route: /scoring/path/{pathId}",
      "endpoint": "/scoring/path/{pathId}",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "verify-receipt",
      "description": "Manifest route: /receipts/verify",
      "endpoint": "/receipts/verify",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "outcome-aggregate",
      "description": "Manifest route: /outcomes/aggregate/{pathId}",
      "endpoint": "/outcomes/aggregate/{pathId}",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "outcome-summary",
      "description": "Manifest route: /outcomes/summary",
      "endpoint": "/outcomes/summary",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "client-errors",
      "description": "Manifest route: /api/errors",
      "endpoint": "/api/errors",
      "format": "application/json",
      "methods": [
        "GET",
        "POST"
      ]
    },
    {
      "name": "contact-status",
      "description": "Manifest route: /api/contact/status",
      "endpoint": "/api/contact/status",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "contact-send",
      "description": "Manifest route: /api/contact",
      "endpoint": "/api/contact",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "popular-goals",
      "description": "Manifest route: /api/popular-goals",
      "endpoint": "/api/popular-goals",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "subscribe",
      "description": "Manifest route: /api/subscribe",
      "endpoint": "/api/subscribe",
      "format": "application/json",
      "methods": [
        "GET",
        "POST",
        "DELETE"
      ]
    },
    {
      "name": "waitlist-insights",
      "description": "Manifest route: /api/admin/waitlist/insights",
      "endpoint": "/api/admin/waitlist/insights",
      "format": "application/json",
      "methods": [
        "GET"
      ],
      "auth": "X-Obelisk-Session or X-Admin-Token"
    },
    {
      "name": "waitlist",
      "description": "Manifest route: /api/waitlist",
      "endpoint": "/api/waitlist",
      "format": "application/json",
      "methods": [
        "POST"
      ]
    },
    {
      "name": "release-readiness",
      "description": "Machine-readable go/no-go release gate generated from PROJECT_STATUS without claiming launch approval",
      "endpoint": "/release-gate.json",
      "format": "application/json",
      "methods": [
        "GET"
      ]
    },
    {
      "name": "get-route-for-goal",
      "description": "MCP one-call shortcut: natural-language goal to best route, evidence receipt, and ranked alternatives. Replaces 3 sequential MCP calls with one.",
      "tool": "atlas.get_route_for_goal",
      "protocol": "MCP v1",
      "input": {
        "goal": "string",
        "top_n": "number (optional, default 3)"
      },
      "output": {
        "route": "VerifiedPath",
        "receipt": "Receipt",
        "rankedMatches": "RankedMatch[]"
      }
    }
  ]
}
