Skip to content
Cockpit0.29.0
A snapshot: read at commit 707a04c7ce8 on 2026-10-18T00:06:01Z by majordomus 0.29.0. Nothing on this page is read again. See it live

adr.adr-0047

The session domain is typed, its identities are not interchangeable, and closing is exactly once

What it is

The session domain is typed, its identities are not interchangeable, and closing is exactly once

Descriptor

Canonical id
adr.adr-0047
Module
adr
Kind
resource
Stability
implemented
Provenance
declared
Source
.ai/repo/adrs/0047-the-session-domain-is-typed-and-its-identities-are-not-interchangeable.md
Cache
disabled
Benchmark
waived: not_executable
Tags
sessionscontinuityarchitectureidentityrust

Run

This capability declares no HTTP exposure, so the Cockpit cannot call it. The MCP and command-line projections may still reach it.

Projections

InterfaceAsWhere
MCP toolnot exposed-
MCP resourcemajordomus://adr/adr-0047-
HTTPnot exposed-
Command linenot exposed-

Schemas

Input · (anonymous)
{
  "type": "object",
  "properties": {},
  "additionalProperties": false
}
Output · ObjectView
{
  "type": "object",
  "properties": {
    "uri": {
      "type": "string",
      "description": "`majordomus://<kind>/<identity>`."
    },
    "id": {
      "type": "string",
      "description": "The capability id, `<kind>.<identity>`."
    },
    "kind": {
      "type": "string",
      "description": "The kind the object was read as (`rule`, `prompt`, `document`, ...)."
    },
    "identity": {
      "type": "string",
      "description": "The identity within the kind (`majordomus.scope-integrity@1`, `continue`, a path)."
    },
    "title": {
      "type": [
        "string",
        "null"
      ],
      "description": "The title the kind's title rule found, when it found one."
    },
    "description": {
      "type": [
        "string",
        "null"
      ],
      "description": "The one-line description the kind's description field held, when it held one."
    },
    "metadata": {
      "description": "The parsed front matter or YAML, keys in the file's order."
    },
    "provenance": {
      "$ref": "#/$defs/ObjectProvenance",
      "description": "Where the object came from: path, directory, source class, section, size, member."
    },
    "media_type": {
      "type": "string",
      "description": "IANA media type of `content` (`text/markdown`, `application/yaml`, `application/json`, `text/plain`)."
    },
    "content": {
      "type": "string",
      "description": "The file as read."
    }
  },
  "required": [
    "uri",
    "id",
    "kind",
    "identity",
    "metadata",
    "provenance",
    "media_type",
    "content"
  ],
  "description": "One declarative object of the repository's layer, as a client reads it.",
  "title": "ObjectView",
  "$defs": {
    "ObjectProvenance": {
      "type": "object",
      "properties": {
        "path": {
          "type": "string",
          "description": "Repository-relative path, forward slashes, as the version-control index names it."
        },
        "directory": {
          "type": "string",
          "description": "The directory the path sits in, repository-relative; `.` for the root. This is the\nhierarchy position a client orders by; no merge semantics are implied."
        },
        "source_class": {
          "type": "string",
          "description": "The `sources.yaml` class that discovered the file (`rule`, `readme`, ...)."
        },
        "section": {
          "type": [
            "string",
            "null"
          ],
          "description": "The manifest section the path falls under (`rules`, `prompts`, ...), when it falls\nunder one; a root `README.md` falls under none."
        },
        "bytes": {
          "type": "integer",
          "format": "uint64",
          "minimum": 0,
          "description": "Size of the file in bytes."
        },
        "member": {
          "type": [
            "string",
            "null"
          ],
          "description": "For an object that is one member of a collection file: the member's key path in\nthe file (`claims.3`)."
        }
      },
      "required": [
        "path",
        "directory",
        "source_class",
        "bytes"
      ],
      "description": "Where an object came from. Every field is computed from the repository, never authored."
    }
  }
}

Examples

This capability declares no benchmark cases, so it has no examples.