{
  "projects": [
    {
      "name": "signet",
      "slug": "signet",
      "domain": "identity",
      "status": "experimental",
      "visibility": "public",
      "accent": "#9dbcc2",
      "question": "How can a machine prove possession without carrying a bearer token?",
      "primitive": "identity that cannot be copied",
      "description": "Cryptographic tools for signing commits, files, and HTTP requests with ephemeral certificates.",
      "links": [
        {
          "label": "source",
          "href": "https://github.com/agentic-research/signet"
        },
        {
          "label": "docs",
          "href": "https://github.com/agentic-research/signet#readme"
        }
      ],
      "relationships": [
        {
          "project": "notme",
          "verb": "verifies through"
        },
        {
          "project": "rosary",
          "verb": "authenticates"
        }
      ],
      "depends_on": [],
      "depended_on_by": []
    },
    {
      "name": "notme",
      "slug": "notme",
      "domain": "identity",
      "status": "experimental",
      "visibility": "public",
      "accent": "#65c9d2",
      "question": "How can agents have scoped identities distinct from the people who deploy them?",
      "primitive": "agent identities, separate from their operators",
      "description": "An authority that turns existing authentication into scoped, ephemeral proof-of-possession credentials.",
      "links": [
        {
          "label": "site",
          "href": "https://notme.bot"
        },
        {
          "label": "source",
          "href": "https://github.com/agentic-research/notme"
        },
        {
          "label": "docs",
          "href": "https://github.com/agentic-research/notme#readme"
        }
      ],
      "relationships": [
        {
          "project": "signet",
          "verb": "issues for"
        },
        {
          "project": "cloister",
          "verb": "supplies identity to"
        }
      ],
      "depends_on": [],
      "depended_on_by": [
        {
          "project": "canonical-hours",
          "kinds": [
            "library"
          ]
        },
        {
          "project": "cloister",
          "kinds": [
            "artifact",
            "composition",
            "library",
            "protocol"
          ]
        }
      ]
    },
    {
      "name": "mache",
      "slug": "mache",
      "domain": "code-intelligence",
      "status": "active",
      "visibility": "public",
      "accent": "#c3d0cb",
      "question": "How can structured data become navigable rather than merely searchable?",
      "primitive": "code as a filesystem you can walk",
      "description": "Projects code and other structured sources into a navigable graph for tools and filesystems.",
      "links": [
        {
          "label": "source",
          "href": "https://github.com/agentic-research/mache"
        },
        {
          "label": "docs",
          "href": "https://github.com/agentic-research/mache#readme"
        }
      ],
      "relationships": [
        {
          "project": "ley-line-open",
          "verb": "reads projections from"
        },
        {
          "project": "x-ray",
          "verb": "routes navigation for"
        }
      ],
      "depends_on": [
        {
          "project": "ley-line-open",
          "kinds": [
            "artifact",
            "library"
          ]
        }
      ],
      "depended_on_by": [
        {
          "project": "canonical-hours",
          "kinds": [
            "artifact"
          ]
        },
        {
          "project": "cloister",
          "kinds": [
            "artifact",
            "composition",
            "protocol"
          ]
        }
      ]
    },
    {
      "name": "ley-line-open",
      "slug": "ley-line-open",
      "domain": "libraries",
      "status": "active",
      "visibility": "public",
      "accent": "#a6b89d",
      "question": "What can tools share when they run in different places?",
      "primitive": "storage addressed by content, not location",
      "description": "Open data-plane primitives that parse source into canonical, content-addressed structured data.",
      "links": [
        {
          "label": "source",
          "href": "https://github.com/agentic-research/ley-line-open"
        },
        {
          "label": "docs",
          "href": "https://github.com/agentic-research/ley-line-open#readme"
        }
      ],
      "relationships": [
        {
          "project": "mache",
          "verb": "supplies structure to"
        },
        {
          "project": "cloister",
          "verb": "supports"
        }
      ],
      "depends_on": [],
      "depended_on_by": [
        {
          "project": "cloister",
          "kinds": [
            "artifact",
            "composition",
            "library"
          ]
        },
        {
          "project": "mache",
          "kinds": [
            "artifact",
            "library"
          ]
        },
        {
          "project": "rosary",
          "kinds": [
            "library"
          ]
        }
      ]
    },
    {
      "name": "cloister",
      "slug": "cloister",
      "domain": "execution",
      "status": "experimental",
      "visibility": "public",
      "accent": "#bba888",
      "question": "How can AI tooling be bundled, constrained, and made traceable?",
      "primitive": "tool bundles that declare their own limits",
      "description": "A traceable MCP tool bundle that runs consistently locally and on Cloudflare Workers.",
      "links": [
        {
          "label": "source",
          "href": "https://github.com/agentic-research/cloister"
        },
        {
          "label": "docs",
          "href": "https://github.com/agentic-research/cloister#readme"
        }
      ],
      "relationships": [
        {
          "project": "notme",
          "verb": "uses identity from"
        },
        {
          "project": "ley-line-open",
          "verb": "builds on"
        },
        {
          "project": "rosary",
          "verb": "runs tools for"
        }
      ],
      "depends_on": [
        {
          "project": "canonical-hours",
          "kinds": [
            "composition"
          ]
        },
        {
          "project": "ley-line-open",
          "kinds": [
            "artifact",
            "composition",
            "library"
          ]
        },
        {
          "project": "mache",
          "kinds": [
            "artifact",
            "composition",
            "protocol"
          ]
        },
        {
          "project": "notme",
          "kinds": [
            "artifact",
            "composition",
            "library",
            "protocol"
          ]
        },
        {
          "project": "rosary",
          "kinds": [
            "artifact",
            "composition",
            "protocol"
          ]
        }
      ],
      "depended_on_by": []
    },
    {
      "name": "rosary",
      "slug": "rosary",
      "domain": "coordination",
      "status": "experimental",
      "visibility": "public",
      "accent": "#cda66a",
      "question": "How can agents do the work without deciding what the work is?",
      "primitive": "work tracked and dispatched across repositories",
      "description": "A local-first orchestrator that tracks small work units, dispatches agents, and verifies results.",
      "links": [
        {
          "label": "site",
          "href": "https://rosary.bot"
        },
        {
          "label": "source",
          "href": "https://github.com/agentic-research/rosary"
        },
        {
          "label": "docs",
          "href": "https://github.com/agentic-research/rosary#readme"
        }
      ],
      "relationships": [
        {
          "project": "signet",
          "verb": "uses identity from"
        },
        {
          "project": "cloister",
          "verb": "dispatches through"
        },
        {
          "project": "mache",
          "verb": "orients with"
        }
      ],
      "depends_on": [
        {
          "project": "ley-line-open",
          "kinds": [
            "library"
          ]
        }
      ],
      "depended_on_by": [
        {
          "project": "cloister",
          "kinds": [
            "artifact",
            "composition",
            "protocol"
          ]
        }
      ]
    },
    {
      "name": "x-ray",
      "slug": "x-ray",
      "domain": "code-intelligence",
      "status": "archived",
      "visibility": "public",
      "accent": "#a9badc",
      "question": "How can an agent navigate an interface through structure instead of pixel guesses?",
      "primitive": "interfaces as a filesystem",
      "description": "A voice-driven UI navigator that projects browser and terminal interfaces into a semantic filesystem.",
      "links": [
        {
          "label": "source",
          "href": "https://github.com/agentic-research/x-ray"
        },
        {
          "label": "docs",
          "href": "https://github.com/agentic-research/x-ray#readme"
        }
      ],
      "relationships": [
        {
          "project": "mache",
          "verb": "uses as a router"
        }
      ],
      "depends_on": [],
      "depended_on_by": []
    },
    {
      "name": "assay",
      "slug": "assay",
      "domain": "code-intelligence",
      "status": "experimental",
      "visibility": "public",
      "accent": "#b4bbc8",
      "question": "How can documentation claims be checked against the code they describe?",
      "primitive": "checks documentation against the code",
      "description": "A tree-sitter-based verifier that compares documented references with exported code entities.",
      "links": [
        {
          "label": "source",
          "href": "https://github.com/agentic-research/assay"
        },
        {
          "label": "docs",
          "href": "https://github.com/agentic-research/assay#readme"
        }
      ],
      "relationships": [
        {
          "project": "mache",
          "verb": "checks documentation beside"
        }
      ],
      "depends_on": [],
      "depended_on_by": []
    },
    {
      "name": "q-q.dev",
      "slug": "q-q-dev",
      "domain": "writing",
      "status": "active",
      "visibility": "public",
      "accent": "#d89aaa",
      "question": "What ideas and constraints shape this work?",
      "primitive": "research notebook",
      "description": "Long-form writing on agent systems, security primitives, and the projects under agentic-research.",
      "links": [
        {
          "label": "site",
          "href": "https://q-q.dev"
        },
        {
          "label": "writing",
          "href": "https://q-q.dev/writing/"
        }
      ],
      "relationships": [
        {
          "project": "rosary",
          "verb": "explains"
        },
        {
          "project": "notme",
          "verb": "writes about"
        },
        {
          "project": "mache",
          "verb": "writes about"
        }
      ],
      "depends_on": [],
      "depended_on_by": []
    },
    {
      "name": "canonical-hours",
      "slug": "canonical-hours",
      "domain": "coordination",
      "status": "experimental",
      "visibility": "public",
      "accent": "#b8a9d1",
      "question": "How can scattered agent activity become one board that survives a restart?",
      "primitive": "a status board that polls on a schedule",
      "description": "A standing agent and MCP surface that folds GitHub, Linear, lectio, and snapshot observations into an operational board.",
      "links": [
        {
          "label": "source",
          "href": "https://github.com/agentic-research/canonical-hours"
        },
        {
          "label": "docs",
          "href": "https://github.com/agentic-research/canonical-hours#readme"
        }
      ],
      "relationships": [
        {
          "project": "rosary",
          "verb": "observes work around"
        },
        {
          "project": "cloister",
          "verb": "can run through"
        }
      ],
      "depends_on": [
        {
          "project": "mache",
          "kinds": [
            "artifact"
          ]
        },
        {
          "project": "notme",
          "kinds": [
            "library"
          ]
        }
      ],
      "depended_on_by": [
        {
          "project": "cloister",
          "kinds": [
            "composition"
          ]
        }
      ]
    },
    {
      "name": "kiln",
      "slug": "kiln",
      "domain": "libraries",
      "status": "archived",
      "visibility": "public",
      "accent": "#777b81",
      "question": "How were Mache and ley-line distributed as one tool?",
      "primitive": "a retired way of shipping two tools as one",
      "description": "A retired Homebrew tap and shared build setup; sibling projects now own their image builds directly.",
      "links": [
        {
          "label": "source",
          "href": "https://github.com/agentic-research/kiln"
        }
      ],
      "relationships": [
        {
          "project": "mache",
          "verb": "packaged"
        },
        {
          "project": "ley-line-open",
          "verb": "packaged"
        }
      ],
      "depends_on": [],
      "depended_on_by": []
    }
  ]
}