Skip to content

[Roadmap]: Rebuild the agent-facing capability protocol around canonical identity, typed handoffs, and bounded execution #1079

Description

@morluto

Purpose

This issue is the dependency map for the critical systemic defects found in the agent-facing capability audit. It does not replace the owning issues or prescribe one mathematical research workflow. It exists to prevent the repair program from becoming another sequence of isolated tag, description, example, preview, and transport patches.

The central finding is that Jacobian’s mathematical kernels are often correct, while information needed by agents is lost at the boundaries around them:

canonical server
    -> packaged host
       identity/schema/recovery can drift

mathematical intent
    -> discovery
       vocabulary/taxonomy can lose the applicable operation

selected capability
    -> execution call
       capability-specific type is erased into payload: object

canonical result
    -> model-facing result
       primary value, labels, completeness, and full-resource path can be lost

capability implementation
    -> host execution UX
       effects, deadlines, progress, cancellation, and retry semantics can be lost

component correctness
    -> release confidence
       no single cross-host journey proves that every handoff still works

Architectural invariants

Every implementation under this roadmap should preserve the following invariants.

Canonical identity

One capability/tool/contract has one canonical identity. Host bindings may sanitize function symbols, but they must preserve canonical metadata, validation-equivalent contracts, telemetry identity, and callable recovery actions.

Make invalid states unrepresentable at the nearest boundary

A host that has selected a capability should receive a capability-specific construction contract. Wrong wrapper levels, stale contracts, incompatible modes, and invalid browse/search/inspect combinations should be rejected before mathematical execution with one bounded repair path.

Search metadata is not policy or proof

Retrieval aliases, mathematical domains, deployment policy classes, provider features, effects, assurance ceilings, and producer/checker relationships are different typed namespaces. Similarity or ranking never implies mathematical suitability, availability, authorization, or verification.

Canonical result is not the model-facing projection

The complete mathematical result, the bounded immediate primary value, and the MCP transport representation are distinct objects. A preview is source-bound convenience, never independent evidence. Mathematical completeness and preview completeness remain separate.

Execution, effects, and assurance are orthogonal

EXPLORE does not imply COMPUTED; VERIFY does not imply VERIFIED. Read-only/additive/destructive behavior, idempotence, deadline, cancellation, progress, completeness, and assurance are separately declared and enforced.

Stateless protocol, explicit handles

Cross-call state is represented by typed server-minted handles/URIs bound to tenant, policy, provider, and contract identity—not by hidden connection-local mutation.

Runtime remains authoritative

Host validation, generated examples, Skills, retrieval indices, and annotations improve ergonomics but do not replace runtime validation, operator policy, provider identity checks, tenant isolation, checker authorization, or verification-record binding.

Dependency graph

                           ┌────────────────────────────┐
                           │  Wave 0: callable surface  │
                           └──────────────┬─────────────┘
                                          │
        #935/#1017 ──> #1029 ──> #1076 ──┴──> cross-surface baseline
             HTTP       identity          final MCP
             schema     /connector        lifecycle
                                          │
                                          ▼
                     ┌──────────────────────────────────┐
                     │ Wave 1: canonical contract model │
                     └──────────────┬───────────────────┘
                                    │
       #1062 ──> #1059               #1067     #1034     #1077
       metadata    retrieval         assurance  effects   execution
       namespaces  representation    ceilings   model     lifecycle
            │            │                │         │         │
            └────────────┴────────────────┴─────────┴─────────┘
                                    │
                                    ▼
                              #1073 contract
                              identity/digest
                                    │
                      ┌─────────────┴─────────────┐
                      ▼                           ▼
             #1064 catalog snapshot       #1072 construction schema
                      │                           │
                      └─────────────┬─────────────┘
                                    ▼
                         #1031 selected typed call
                                    │
                             #1071 recovery
                                    │
                                    ▼
                    ┌────────────────────────────────┐
                    │ Wave 3: result and composition │
                    └──────────────┬─────────────────┘
                                   │
                         #1033 primary result
                                   │
                         #1074 bounded transport
                                   │
                 #1018 relationships / typed compatibility
                                   │
                #896 explicit batch preflight where justified
                                   │
                                   ▼
                     ┌──────────────────────────┐
                     │ Wave 4: guidance/release │
                     └────────────┬─────────────┘
                                  │
                         #1070 managed Skill
                         #988 guidance emphasis
                         #1078 journey conformance
                                  │
                                  ▼
                         measured rollout gates

The diagram shows the main dependency direction, not a requirement that every issue land in one monolithic PR. Some leaf fixes can ship earlier when they preserve the eventual contract.

Wave 0 — restore one callable protocol across every surface

#935 / #1017 — Streamable HTTP output-schema compatibility

A client must be able to complete tools/list before any ergonomics work is measurable. Restack the root-union output-schema repair on current MCP architecture and retain real HTTP coverage.

#1029 — canonical MCP identity through packaged aliases

Ensure math.find and math.run retain validation-equivalent schemas, annotations, results, and callable recovery semantics through packaged Codex and installed connector bindings.

#1076 — final MCP 2026-07-28 stateless lifecycle

Define supported protocol versions, test real latest-protocol HTTP requests, make request-stateless deployment the preferred path, and update doctor. This constrains #1031: connection-local temporary tool mutation is not the preferred final design; explicit prepared-contract handles are.

Wave-0 gate

The same deterministic browse → search → inspect → invoke → invalid-recover → resource-read sequence succeeds through in-process, stdio, final-protocol HTTP, packaged Codex, and installed connector surfaces.

Wave 1 — define the capability contract the agent is actually using

#1062 — split overloaded metadata namespaces

Separate canonical mathematical domains, retrieval aliases, policy classes, and provider features. This must precede or accompany a new retrieval index so search tuning cannot alter deployment policy or provider identity.

#1059 — versioned hybrid retrieval index

Replace ASCII exact-overlap-only retrieval and unbounded manual synonym patching with a transparent, deterministic, versioned hybrid index and held-out multilingual/notation-aware query corpus.

#1067 — descriptor-owned assurance ceilings

Stop deriving COMPUTED from EXPLORE. Publish mode-specific HEURISTIC / COMPUTED / VERIFIED ceilings from the same typed contract that constructs results.

#1034 — descriptor-owned effects

Separate read-only, additive, mutating, and destructive effects plus idempotence. Move destructive controls out of an otherwise non-destructive mathematical executor where necessary.

#1077 — descriptor-owned execution lifecycle

Declare synchronous/durable/task execution, maximum deadline, progress, cancellation guarantee, retry semantics, and concurrency weight. Remove SAT/SMT prefix inference and bound late-worker admission.

#1073 — content-addressed per-capability contract identity

Bind the exact input/output/semantic/assurance/effect/execution contract to a digest/URI. Keep human version, provider identity, policy identity, and catalog snapshot identity separate. This is the compatibility key for prepared calls, generated guidance, results, and historical traces.

#1010 — installation/lifetime separation

The provider/checker/tenant-state architecture remains a prerequisite for truthful availability and scalable stateless deployment. Do not let catalog caching or prepared handles recreate producer/checker or host/tenant coupling.

Wave-1 gate

For each installed capability, a machine-readable descriptor can answer independently:

What mathematical domains and search representation does it have?
Which inputs/outputs and exact contract digest does it use?
Which modes and assurance ceilings can it reach?
What external effects and idempotence does it have?
How long can it run, how is progress/cancellation handled, and how is it retried?
Which provider is present/ready and which checker is separately authorized?

No answer is inferred from a generic tag bag, ID prefix, or mode alone.

Wave 2 — make the first valid call the default outcome

#952 — encode browse/search/inspect modes in math.find schema

Publish actual mutually exclusive forms, including typed artifact dependencies and exact-only fields.

#1072 — generation-oriented capability schemas

Retain bounded descriptions, examples/default semantics, and branch/discriminator routing needed to construct calls. Separate canonical, validation, and construction projections.

#1031 — schema-bound selected execution

Use a stable executor plus an explicit prepared-contract handle or equivalent final-protocol-compatible mechanism. Bind capability ID, contract digest, mode, policy/catalog/provider identity, and tenant. Do not expose the full catalog as permanent tools or rely on connection-local tool mutation.

#990 — sole-mode default

Once the selected contract is trustworthy, remove unnecessary mode ceremony for single-mode capabilities without collapsing EXPLORE/VERIFY lanes.

#1071 — machine-actionable outer-tool diagnostics

Preserve path, rule, accepted form, and one callable recovery action for remaining top-level/envelope errors. Use tool execution errors for model-correctable input mistakes where supported.

#941 / PR #929 — verifier examples as immediate compatibility fixes

Land schema-valid examples/envelope corrections where they help current users. Treat them as acceptance fixtures for #1072/#1031 rather than the complete architecture.

Wave-2 gate

Across scalar, nested matrix, sparse polynomial, discriminated union, graph search, inline verifier, and artifact verifier fixtures:

  • the first generated call is host-constrained by the selected contract;
  • wrong wrapper levels are rejected before adapter execution;
  • stale contracts fail closed;
  • one retry using returned recovery succeeds;
  • no complete catalog is returned on error.

Wave 3 — make successful results usable without losing truth

#1033 — common bounded primary-result projection

Every capability declares one source-bound immediate primary value or NO_PRIMARY_VALUE. Preview completeness, interpretation-critical labels/order/domain, and omission semantics are explicit and separate from mathematical completeness.

#1074 — bound both math.run result channels

Do not leave an unbounded canonical result in structuredContent while compacting only text. Persist large complete results under typed resources, bound ResourceLink fanout, and preserve exact recovery identity.

#1018 — typed producer/consumer/checker compatibility

Restore only factual, contract-proven compatibility metadata after reasoning-workflow removal. Use artifact types and contract identities; do not prescribe strategy or materialize ordinary values merely to pass them between operations.

#932 — semantic pagination and transport limits

Apply the same distinction to discovery/inspection: recoverable semantic collections versus operator transport safeguards. CONTRACT/FULL remain complete or link to exact complete resources.

#896 — explicit batch preflight

Batch only where repeated homogeneous work is measured. Validate the whole requested batch before execution and preserve per-member effects, status, provenance, cancellation, and assurance.

Tactical result PRs

PR #992 and PR #986 are useful immediate improvements and should remain acceptance fixtures:

  • projective flats test partial but proof-critical previews;
  • distance matrices test labels/order as inseparable interpretation data.

Wave-3 gate

Agents can extract the correct proof-critical value, retain labels/order, follow the complete resource when required, and invoke a linked verifier without manual reconstruction or transcription. Structured and text channels agree on the bounded result and trust envelope.

Wave 4 — remove stale guidance and make regressions releasable

#1070 — managed Codex Skill lifecycle

Version generated Skills, distinguish untouched old generated content from real user modifications, update or report stale guidance during upgrade, and remove unbound mutable payload fast paths.

#988 — guidance emphasis

After #1067 establishes truthful ceilings, foreground COMPLETED + COMPUTED as the common producer success path while keeping requested independent verification fail-closed.

#1078 — end-to-end agent journey conformance

Create deterministic cross-surface journeys plus repeated model-in-the-loop evaluations. Measure exposure, discovery, first-call validity, recovery, execution contribution, result consumption, resource follow-through, verification binding, final value preservation, scope/assurance calibration, bytes/tokens, and latency separately.

Existing evaluation owners

Wave-4 gate

A release cannot pass by showing only that the server initialized or an operation completed. The journey suite verifies the complete handoff on every supported surface and reports repeated behavioral evidence with uncertainty where a model is involved.

Tactical PR disposition

Current leaf PRs should be reviewed against this map:

PR Immediate value Systemic owner
#929 valid verifier envelope examples #1072 / #1031
#934 sequence/polynomial discovery aliases #1059 / #1062
#935 HTTP tools/list compatibility #1017 / Wave 0
#936 expansion vocabulary + verifier relation #1059 / #1018
#986 labelled distance matrix #1033
#992 projective-flat preview #1033 / #1074

Do not block a sound high-value leaf fix merely because the shared architecture is not complete. Do prevent leaf fixes from establishing new incompatible conventions that the owning systemic issue will immediately have to remove.

Existing issues to revalidate rather than duplicate

#951 — unknown-capability recovery size

Current main appears to bound unknown-ID recovery to nearby IDs and canonical catalog/search paths. Re-run the issue’s original wire probe against current main before deciding whether to close it as completed or update its reproduction.

#953 — open nested math.find output dictionaries

Current main now contains many explicit nested projection models and closed output-schema assertions. Re-run the original schema-drift probe; keep only any remaining open fields not covered by current models.

Program-level acceptance criteria

  • Every issue above has one clear owner and does not duplicate another layer.
  • Tool identity, capability contract, provider, policy, catalog, tenant, artifact, checker, and verification-record identities remain separate and explicitly bound where they interact.
  • Discovery quality no longer depends on an endless series of generic tag additions.
  • The selected capability’s construction contract reaches the host call-generation boundary.
  • Results are bounded, source-bound, correctly labelled, and recoverably complete.
  • Effects, assurance, execution lifecycle, and cancellation are truthful and descriptor-owned.
  • Latest-protocol stateless deployment and cross-host parity are release-tested.
  • Managed guidance cannot remain silently stale after runtime upgrades.
  • End-to-end evaluations score mathematical contribution and final evidence preservation, not tool invocation itself.
  • No ergonomic layer can authorize a checker, widen scope, upgrade assurance, or replace runtime validation.

Non-goals

  • One universal mathematical object/schema.
  • Hundreds of permanent top-level tools.
  • One mandated decomposition, verification order, or stopping policy.
  • A general expression language introduced without held-out evidence.
  • Treating semantic retrieval, examples, previews, annotations, Skills, or model self-reports as mathematical evidence.
  • A monolithic implementation PR spanning the entire roadmap.

Metadata

Metadata

Assignees

No one assigned

    Labels

    area: mcpMCP adapter and server integrationenhancementNew feature or request

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions