{
  "$schema": "https://meshkore.com/reference/manifest.schema.json",
  "version": 5,
  "updated": "2026-05-20",
  "description": "Machine-readable index of the MeshKore reference catalog. Agents fetch this at session start (or once per 24h) to discover canonical URLs and detect when standards have been updated. Each entry has a stable URL — safe to bake into prompts, CI scripts, agent runtimes.",
  "human_url": "https://meshkore.com/reference/",
  "refresh_cadence": "weekly",
  "canonical_standard": {
    "html": "https://meshkore.com/standard",
    "markdown": "https://meshkore.com/standard.md",
    "json": "https://meshkore.com/standard.json",
    "version": "https://meshkore.com/standard/version",
    "changelog": "https://meshkore.com/standard/CHANGELOG.md",
    "rule": "Single source of truth for folder layout, schemas, governance R1-R6, path conventions, and the editor boot block. If anything elsewhere disagrees, the canonical wins.",
    "version_relationship": "This catalog (`version` field above) versions independently from the standard. The standard's version lives at /standard/version (a single integer) and is the answer to 'which MeshKore standard does this repo apply'. Each project pins it in .meshkore/STANDARD_VERSION. See standard §3 for the spec ↔ manifest ↔ daemon table."
  },
  "categories": {
    "cluster": {
      "label": "Cluster scaffolding (guides)",
      "description": "Adoption + install + operator manual. The normative spec lives at canonical_standard above.",
      "items": [
        { "id": "adopt",   "url": "https://meshkore.com/cluster/adopt",   "kind": "guide", "title": "Adoption ladder + CLI cheat sheet" },
        { "id": "install", "url": "https://meshkore.com/cluster/install", "kind": "guide", "title": "Daemon install (L3)" },
        { "id": "operate", "url": "https://meshkore.com/cluster/operate", "kind": "guide", "title": "Operator manual" }
      ]
    },
    "scripts": {
      "label": "Python utilities",
      "description": "Stdlib-only scripts the daemon and humans run on .meshkore/.",
      "items": [
        { "id": "roadmap-build",      "url": "https://meshkore.com/reference/cluster/scripts/roadmap-build.py",      "kind": "script", "title": "Build state.json from tasks" },
        { "id": "enrich-frontmatter", "url": "https://meshkore.com/reference/cluster/scripts/enrich-frontmatter.py", "kind": "script", "title": "Backfill task frontmatter" },
        { "id": "migrate-tasklist",   "url": "https://meshkore.com/reference/cluster/scripts/migrate-tasklist.py",   "kind": "script", "title": "Migrate legacy tasklist/ → modules/<id>/tasks/" },
        { "id": "verify",             "url": "https://meshkore.com/reference/cluster/scripts/verify.py",             "kind": "script", "title": "Verify a repo conforms to the MeshKore standard" }
      ]
    },
    "templates": {
      "label": "cluster.yaml starters",
      "description": "Curl one into .meshkore/public/cluster.yaml, replace {{placeholders}}, then start `python3 .meshkore/scripts/daemon.py`.",
      "items": [
        { "id": "dev",     "url": "https://meshkore.com/reference/cluster/templates/cluster.yaml.dev",     "kind": "template", "title": "Dev cluster (code)" },
        { "id": "service", "url": "https://meshkore.com/reference/cluster/templates/cluster.yaml.service", "kind": "template", "title": "Service cluster (long-running agent)" },
        { "id": "comms",   "url": "https://meshkore.com/reference/cluster/templates/cluster.yaml.comms",   "kind": "template", "title": "Comms cluster (chat-only)" },
        { "id": "links",    "url": "https://meshkore.com/reference/cluster/templates/links.yaml",   "kind": "template", "title": "Deployment links registry (.meshkore/public/links.yaml) — standard §13" },
        { "id": "protocol", "url": "https://meshkore.com/reference/cluster/templates/protocol.md", "kind": "template", "title": "Protocol scaffold (.meshkore/protocols/P<N>-*.md) — standard §14" }
      ]
    },
    "editor-rules": {
      "label": "Editor bootstrap files",
      "description": "Per-editor rules that wire the conventions into every new agent session.",
      "items": [
        { "id": "claude",   "url": "https://meshkore.com/reference/cluster/editor-rules/CLAUDE.md",     "kind": "rules", "title": "Claude Code bootstrap" },
        { "id": "cursor",   "url": "https://meshkore.com/reference/cluster/editor-rules/.cursorrules", "kind": "rules", "title": "Cursor rules" },
        { "id": "windsurf", "url": "https://meshkore.com/reference/cluster/editor-rules/.windsurfrules", "kind": "rules", "title": "Windsurf rules" }
      ]
    },
    "prompts": {
      "label": "Battle-tested prompts",
      "description": "End-to-end prompts you hand to an agent for a known task.",
      "items": [
        { "id": "project-from-scratch",  "url": "https://meshkore.com/reference/prompts/project-from-scratch.md",  "kind": "prompt", "title": "Bootstrap a project end-to-end (empty repo)" },
        { "id": "migrate-existing-repo", "url": "https://meshkore.com/reference/prompts/migrate-existing-repo.md", "kind": "prompt", "title": "Apply the standard to a repo that already has docs/tasks" },
        { "id": "project-audit",         "url": "https://meshkore.com/reference/prompts/project-audit.md",         "kind": "prompt", "title": "Audit an existing project" },
        { "id": "deploy-by-agent",       "url": "https://meshkore.com/reference/prompts/deploy-by-agent.md",       "kind": "prompt", "title": "Deploy via agent" },
        { "id": "docs-write",            "url": "https://meshkore.com/reference/prompts/docs-write.md",            "kind": "prompt", "title": "Write docs" }
      ]
    },
    "stacks": {
      "label": "Full project recipes",
      "description": "End-to-end stack templates ('how to set up a Rust API on Fly.io').",
      "items": [
        { "id": "api-fly-rust",            "url": "https://meshkore.com/reference/stacks/api-fly-rust.md",            "kind": "stack", "title": "Rust API on Fly.io" },
        { "id": "webapp-static-cf",        "url": "https://meshkore.com/reference/stacks/webapp-static-cf.md",        "kind": "stack", "title": "Static webapp on Cloudflare Pages" },
        { "id": "worker-fly-python",       "url": "https://meshkore.com/reference/stacks/worker-fly-python.md",       "kind": "stack", "title": "Python worker on Fly.io" },
        { "id": "cluster-dev-claudecode",  "url": "https://meshkore.com/reference/stacks/cluster-dev-claudecode.md",  "kind": "stack", "title": "Dev cluster with Claude Code" }
      ]
    },
    "standards": {
      "label": "Engineering standards (the catalog)",
      "description": "The shared baseline every project inherits: audits, layer conventions, deploy, testing, monitor, tools.",
      "human_url": "https://meshkore.com/reference/standards/",
      "groups": {
        "audit": {
          "label": "Audit protocols",
          "items": [
            { "id": "backend-rust",        "url": "https://meshkore.com/reference/standards/audit/backend-rust.md",        "kind": "audit", "title": "Rust API audit (Axum/SQLx/Tokio)" },
            { "id": "backend-rust-worker", "url": "https://meshkore.com/reference/standards/audit/backend-rust-worker.md", "kind": "audit", "title": "Rust worker audit" },
            { "id": "frontend-languages",  "url": "https://meshkore.com/reference/standards/audit/frontend-languages.md",  "kind": "audit", "title": "Frontend i18n audit" },
            { "id": "frontend-nextjs",     "url": "https://meshkore.com/reference/standards/audit/frontend-nextjs.md",     "kind": "audit", "title": "Next.js audit" },
            { "id": "frontend-solidjs",    "url": "https://meshkore.com/reference/standards/audit/frontend-solidjs.md",    "kind": "audit", "title": "SolidJS audit" }
          ]
        },
        "stack": {
          "label": "Layer conventions",
          "items": [
            { "id": "overview",          "url": "https://meshkore.com/reference/standards/stack/overview.md",          "kind": "stack-doc", "title": "Lean code philosophy" },
            { "id": "frontends",         "url": "https://meshkore.com/reference/standards/stack/frontends.md",         "kind": "stack-doc", "title": "Frontend layer" },
            { "id": "apis",              "url": "https://meshkore.com/reference/standards/stack/apis.md",              "kind": "stack-doc", "title": "API layer" },
            { "id": "workers",           "url": "https://meshkore.com/reference/standards/stack/workers.md",           "kind": "stack-doc", "title": "Workers layer" },
            { "id": "databases",         "url": "https://meshkore.com/reference/standards/stack/databases.md",         "kind": "stack-doc", "title": "Database layer" },
            { "id": "cloudflare-pages",  "url": "https://meshkore.com/reference/standards/stack/cloudflare-pages.md",  "kind": "stack-doc", "title": "Cloudflare Pages caveats" }
          ]
        },
        "database": {
          "label": "Database conventions",
          "items": [
            { "id": "overview",    "url": "https://meshkore.com/reference/standards/database/overview.md",    "kind": "db", "title": "DB overview · LOCAL is truth" },
            { "id": "migrations",  "url": "https://meshkore.com/reference/standards/database/migrations.md",  "kind": "db", "title": "Migrations workflow" }
          ]
        },
        "deploy": {
          "label": "Deploy playbooks",
          "items": [
            { "id": "fly-safe-deploy",          "url": "https://meshkore.com/reference/standards/deploy/fly-safe-deploy.md",          "kind": "deploy", "title": "Fly.io safe deploy" },
            { "id": "fly-issues",               "url": "https://meshkore.com/reference/standards/deploy/fly-issues.md",               "kind": "deploy", "title": "Fly.io known issues" },
            { "id": "cloudflare-issues",        "url": "https://meshkore.com/reference/standards/deploy/cloudflare-issues.md",        "kind": "deploy", "title": "CF Pages/Workers issues" },
            { "id": "cloudflare-troubleshooting","url": "https://meshkore.com/reference/standards/deploy/cloudflare-troubleshooting.md","kind": "deploy", "title": "CF triage flowchart" }
          ]
        },
        "testing": {
          "label": "Testing strategy",
          "items": [
            { "id": "readme", "url": "https://meshkore.com/reference/standards/testing/README.md", "kind": "testing", "title": "Testing overview" }
          ]
        },
        "monitor": {
          "label": "Observability",
          "items": [
            { "id": "frontend-languages", "url": "https://meshkore.com/reference/standards/monitor/frontend-languages.md", "kind": "monitor", "title": "i18n monitoring" }
          ]
        },
        "tools": {
          "label": "Tooling reference",
          "items": [
            { "id": "image-services-overview",     "url": "https://meshkore.com/reference/standards/tools/image-services/overview.md",     "kind": "tools", "title": "Image services overview" },
            { "id": "image-services-ai-generator", "url": "https://meshkore.com/reference/standards/tools/image-services/ai-generator.md", "kind": "tools", "title": "AI image generator" },
            { "id": "image-services-classic-editor","url": "https://meshkore.com/reference/standards/tools/image-services/classic-editor.md","kind": "tools", "title": "Classic image editor" },
            { "id": "image-services-health-check", "url": "https://meshkore.com/reference/standards/tools/image-services/health-check.md", "kind": "tools", "title": "Image services health" }
          ]
        }
      }
    }
  },
  "agent_protocol": {
    "fetch_at_session_start": "https://meshkore.com/reference/manifest.json",
    "cache_dir": ".meshkore/.runtime/standards/",
    "cache_ttl_seconds": 86400,
    "before_writing_code": "Fetch the relevant standards/stack/<layer>.md and standards/audit/<stack>.md inline. Do not commit copies into the repo.",
    "on_divergence": "If local .meshkore/docs/governance.md contradicts the online standard, surface diff to the operator and ask. Online is canonical for universal pieces."
  }
}
