adr 0050 shared project tools - Alshival-Ai/neural-labs GitHub Wiki
ADR 0050: Share project tools across agent transports
- Status: Accepted
- Date: 2026-10-10
Context
External project MCP clients and native workspace agents need the same task and relationship operations. Connected portals have separate storage and permission policies, so a shared catalog must not imply shared credentials or unrestricted access to another workspace.
Decision
Version the tool names, inputs, results, and error envelopes in
contracts/project-tools.v1.json. Both MCP adapters use that contract. Native
calls pass through the execution broker to an authenticated private control-plane
endpoint, with the actor selected from the broker's execution grant. Providers
cannot supply another actor or obtain the service credential. Revalidate grants
before invocation and before returning results; read-only turns reject mutations.
External calls retain environment scopes and fresh member authorization. The same domain adapter enforces item visibility, revisions, dependency-cycle checks, and transactional idempotency receipts. Connected portals may implement the contract using their own authorized records and optional board restrictions.
Synchronizers negotiate shared_graph_v1 before exchanging related links across
tasks, notes, and resources. Preserve IDs, clocks, and explicit tombstones; never
infer deletion from an omitted record. Resource projections contain public
metadata only. The new receipt table is additive.
Consequences
Each transport exposes the same capabilities while retaining its authentication boundary. Legacy browser routes and graph-read aliases remain available. Contract changes require matching packaged copies and conformance tests in every adapter. See Shared project tools for usage and update requirements.