167-read-only-tool-projection

Project cataloged reads as read-only tools

Lifecycle approvedImplementation completeVerification unknownQualification unknown

Adds a transport-neutral, read-only tool projection derived from the spec-162 capability catalog: one tool descriptor per eligible judging-tier read, with a closed input schema, the exact argv it maps to, budget and pagination members, trust marking, and a closed error vocabulary. A tool call is one invocation of the pinned binary's existing verb, so its answer is that verb's bytes. spec-spine ships the descriptors and their tests; it runs no server, holds no session, and adds no write tool.

Read the full pinned specification ↗

Relationships

Claimed units

  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-types/src/projection.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-types/schemas/tool-projection.schema.json"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-core/src/projection.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-core/tests/projection.rs"
    }
  • establishes
    {
      "kind": "file",
      "path": "crates/spec-spine-cli/tests/projection.rs"
    }
  • establishes
    {
      "kind": "directory",
      "path": "crates/spec-spine-cli/tests/fixtures/projection/"
    }
  • establishes
    {
      "anchor": "the-read-only-tool-projection",
      "file": "docs/read-only-projection.md",
      "kind": "section"
    }
  • extends
    {
      "nature": "additive",
      "spec": "162-capability-catalog",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/capability.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "162-capability-catalog",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/schemas/capability-catalog.schema.json"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "162-capability-catalog",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/capability.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "162-capability-catalog",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/tests/capability_catalog.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "162-capability-catalog",
      "unit": {
        "kind": "file",
        "path": "docs/capability-catalog.md"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "002-registry-query",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/src/main.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "074-a-governed-read-names-its-version",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/version.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "001-compile-registry",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-core/src/lib.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "170-a-consumer-is-served-answers-not-access",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-cli/src/cmd_capabilities.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "170-a-consumer-is-served-answers-not-access",
      "unit": {
        "kind": "file",
        "path": "crates/spec-spine-types/src/capabilities.rs"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "057-the-docs-name-what-adopters-derived",
      "unit": {
        "kind": "file",
        "path": "docs/api.md"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "057-the-docs-name-what-adopters-derived",
      "unit": {
        "anchor": "cli-reference",
        "file": "docs/cli-reference.md",
        "kind": "section"
      }
    }
  • extends
    {
      "nature": "additive",
      "spec": "057-the-docs-name-what-adopters-derived",
      "unit": {
        "kind": "file",
        "path": "docs/schema-versioning.md"
      }
    }

Source headings

  1. 167: Project cataloged reads as read-only tools
  2. 1. Purpose
  3. 2. Territory
  4. 3. Behavior
  5. 3.1 The projection is derived, never authored
  6. 3.2 Which operations are projected
  7. 3.3 The tool descriptor
  8. 3.4 Input schemas are closed and never name a host path
  9. 3.5 A call is one invocation of the existing verb
  10. 3.6 Budgets, pagination, and unbounded answers
  11. 3.7 The error vocabulary is closed
  12. 3.8 How the projection is served
  13. 3.9 Canonical bytes, digest, and schema
  14. 3.10 Authority, security, and disclosure boundary
  15. 3.11 The projection is held to the catalog and the binary
  16. 4. Acceptance criteria
  17. 5. Out of scope
  18. 6. Resolved decisions
  19. Verification

Frozen anchors

No frozen anchors declared.