Skip to main content
Glama

AI Delivery

A personal design for AI-native software delivery in organizations: let agents move work forward, while people keep authority over intent, risk, and release.

The missing layer is shared delivery memory. A coding agent can produce a patch, but an organization needs every agent and person to work from the same approved intent, hand work across roles without losing context, and show evidence tied to the exact work and source revision under review. A green check is useful only when the team can tell what it checked, against which revision, in which environment, and under whose authority.

AI Delivery is an original, small reference implementation of that idea. It was informed by public work on AI-driven development lifecycles, agent workflows, MCP, and reusable agent skills. It does not implement or claim conformance with any one organization's development method. The AI-DLC references below are inspiration and background, not dependencies.

What exists today

This repository contains a runnable Python package, an offline demonstration, and an MCP server using one shared service layer. The implemented lifecycle includes:

  • versioned work items with compare-and-swap updates (expected_revision);

  • role-tagged handoffs tied to a work revision;

  • append-only evidence tied to a work revision, actual Git SHA-1/SHA-256, and named environment;

  • a QA gate with mandatory implementation and qa evidence, latest-result semantics, work-status checks, and stale-evidence rejection;

  • a separate release-owner attestation that requires the QA gate to pass for approval;

  • local JSON persistence with atomic replacement and POSIX file locking on macOS and Linux; Windows is not supported by this file adapter.

A decided_by value is an audit claim supplied by the caller. This local reference server does not authenticate users or enforce organizational roles. It has no deployment integration, so recording an approval never deploys software. The JSON adapter is suitable for a local demonstration; it is not a network service, distributed store, or complete enterprise control plane.

Related MCP server: agileharness

Run it

Python 3.11 or newer is required.

python -m venv .venv
. .venv/bin/activate
python -m pip install -e '.[dev]'
ai-delivery demo --store /tmp/ai-delivery-demo.json
pytest

The demo creates a fictional reading-list export item, shows a closed gate before evidence exists, records implementation and QA evidence for one source revision in qa, and records a separate release-owner attestation. The demo makes no network calls and performs no deployment.

Connect an MCP client

Install the package in an environment available to the MCP host, then launch the stdio server:

AI_DELIVERY_STORE=/path/to/your/delivery.json ai-delivery-mcp

A client configuration commonly looks like this; exact configuration keys depend on the client:

{
  "mcpServers": {
    "ai-delivery": {
      "command": "python",
      "args": ["-m", "ai_delivery.mcp_server"],
      "env": {
        "AI_DELIVERY_STORE": "/path/to/your/delivery.json"
      }
    }
  }
}

The server currently exposes eight tools: list_work_items, get_context, create_work_item, update_work_item, handoff_work, record_evidence, evaluate_qa_gate, and record_release_decision. Every update, handoff, evidence append, and release decision names the expected work revision. A stale write is rejected, so the caller must reread context before proceeding. The server exposes tools only; MCP resources and prompts are possible future interfaces, not implemented features.

For a real organization, put the MCP endpoint behind authenticated identity, authorization, audit, and network controls. Give each role the narrow operations it needs: product can draft intent, engineering can create implementation revisions, QA can record test evidence, and an authorized human release owner can attest to a release decision. Those boundaries are design goals here; this demo accepts caller-supplied role labels and does not enforce them.

A delivery memory with three layers

AI Delivery separates durable authority from agent convenience. This is a design proposal for an organization-scale implementation; only versioned work items, handoffs, evidence, and the gate are present in this repository today.

Layer

What belongs there

Authority and freshness

Canonical delivery record

Approved specs, ADRs, work-item revisions, handoffs, evidence manifests, gate results, and human decisions

Authoritative. Each record has an immutable revision or identifier, actor, time, parent references, and content/source digest. A change creates a new revision; it does not silently rewrite history.

Working agent memory

Current assignment, relevant context excerpts, decisions still in progress, and next actions

A disposable, task-scoped cache. It carries source references and the revision/hash it was read from. Before a write or handoff, the agent refreshes if that source has advanced. It cannot override the canonical record.

Derived search index

Embeddings, keyword indexes, summaries, and cross-project discovery metadata

Rebuildable projection. Every indexed chunk points to its source record and exact revision/hash. Results are hints; the reader fetches and validates the canonical source before acting.

In the proposed Git-backed mode, reviewed specifications, ADRs, and work-item manifests live in version control. Evidence can be a small signed or immutable manifest in the repository, with large reports and logs in an approved artifact store addressed by digest. A portable transactional store can serve the same record contract where Git is not the right persistence layer. Git commits make changes reviewable; a storage adapter provides queries and concurrent writes. Neither an index nor an agent's notes becomes the source of truth.

Freshness is explicit. A handoff names the work revision. Evidence names both the work revision and source commit digest, plus the environment and outcome. A later revision does not inherit earlier evidence. A search result or working-memory note is accepted only if its source revision still matches the canonical record. Retention is policy-driven: preserve decisions and evidence for the required audit period, expire disposable agent memory quickly, and rebuild or delete derived indexes according to their source and retention policy.

Credentials, tokens, private keys, and personal data do not belong in Git specs, agent memory, evidence summaries, or search indexes. A production adapter should use a secrets manager or short-lived identity exchange and store only a reference to the secret or credential event where audit requires one. Access to records and tools should follow least privilege, with environment and project boundaries enforced by the service rather than by skill instructions alone.

Gates and role skills

The proposed lifecycle uses five review points. Each has a small SKILL.md example under skills/gates, following the public Agent Skills file format. Skills tell an agent how to prepare work and evidence; a trusted service and an authorized person must enforce decisions. A skill cannot grant access or prove that a human approved something.

Gate

Agent prepares

Required exit evidence

Status here

Inception

Intent, users, constraints, success measures, assumptions, and a small set of work items

Human-confirmed scope and acceptance criteria

Proposed skill; no inception gate in the package

Design / ready for development

Design notes, ADR proposals, dependencies, risks, and implementation slices

Reviewed design where needed; accepted ready-for-dev revision

Proposed skill; current package can version the spec but has no design approval policy

Implementation / review

Code changes, test results, source commit, and review response

Implementation evidence tied to exact work revision and source hash; review disposition

Package can record implementation evidence; it does not run tests or perform code review

QA

Test plan, environment, scenario results, and failures

Passing QA evidence for the same work revision and source hash

Implemented as a simple required-evidence gate

Release / post-release

Release notes, rollout and rollback plan, monitoring signals, and post-release observations

Human release decision; later, deployment and post-release evidence

Package records a separate release attestation; it has no deployment or post-release gate

The hard-coded minimum gate policy requires the most recent relevant result for both implementation and qa to be passed, the current work status to be implemented or qa_ready, and all evidence to match the current revision, source hash, and QA environment. A later failure blocks the gate until a newer passing result is recorded. Callers may add evidence kinds; they cannot remove the two minimum kinds. The local service does not establish who is allowed to set a work status or write a result.

Walkthrough

  1. Product records a concise outcome and acceptance criteria as revision 1.

  2. The work is handed to engineering with a role-tagged note that points to revision 1.

  3. Engineering creates revision 2, records a source commit hash, and moves it to a testable status.

  4. Engineering and QA record results against revision 2, the same source hash, and qa.

  5. The service evaluates the gate. Missing, stale, wrong-environment, or failed latest evidence keeps it closed.

  6. A release owner reviews the evidence and records a decision for the target environment. This record is separate from QA and does not deploy.

  7. In a future operations stage, deployment and post-release observations would be recorded against the released source revision and environment, then fed into future work as linked evidence and new requirements.

If a new work revision is created, evidence from the old revision remains available for audit but does not satisfy the current gate. If two writers update from the same revision, the second write sees the new revision and fails with a conflict rather than replacing the first writer's work.

Architecture

flowchart LR
  Product[Product agent / human] --> Canonical[Versioned delivery records]
  Engineering[Engineering agent] --> Canonical
  QA[QA agent] --> Canonical
  Owner[Human release owner] --> Canonical
  Canonical --> Service[Policy and revision service]
  Service --> MCP[MCP tools]
  MCP --> Agents[Compatible agent clients]
  Canonical --> Index[Derived search index]
  Index -->|source refs and revision checks| Service
  Service --> Gate[QA evidence gate]
  Gate -->|passing QA evidence| HumanDecision[Separate release decision]
  HumanDecision -->|future integration| Operations[Deployment and post-release evidence]

The current implementation is deliberately smaller: one Python service, a local JSON adapter, an offline CLI, and an MCP stdio adapter. It does not contain the Git canonical backend, transactional database, search index, authenticated role policy, skill runner, CI/deployment connector, or post-release observation pipeline shown as future design.

Design principles and public references

This project synthesizes a few useful public ideas rather than claiming a new standard:

  • AWS's AI-Driven Development Life Cycle overview describes Inception, Construction, and Operations, with AI planning and execution under human oversight. The AWS open-source adaptive workflow is a separate, evolving implementation of that methodology.

  • Anthropic's Building Effective Agents recommends simple composable patterns and describes where fixed workflows, gates, and more autonomous agents fit. AI Delivery applies that spirit to explicit revision and evidence contracts.

  • The MCP specification defines a protocol for exposing tools, resources, and prompts. AI Delivery currently uses MCP tools as the portable action interface; transport and authorization remain separate concerns.

  • The Agent Skills specification defines a portable folder format centered on SKILL.md, with optional scripts, references, and assets. The example gate skills here are workflow instructions, not policy enforcement.

Roadmap

The code-backed MVP is the revision, handoff, evidence, QA gate, release-attestation, CLI, MCP, and local-store flow. The next design steps are a Git-backed canonical adapter, a proper multi-user transactional store, authenticated role authorization, policy configuration owned by the service, review and post-release evidence schemas, and integration tests across concurrent writers. Search indexing and deployment should follow only when their source provenance, access policy, and recovery behavior can be made explicit.

License

MIT. See LICENSE.

Available Tools

8 tools
create_work_itemC

Create a versioned work item.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleNoproduct
specYes
titleYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.6/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, yet it discloses almost nothing: not what permissions are required, not what "versioned" means operationally, and not whether the created item is immutable or drafts a new revision. It states a mutation but gives no side-effect context.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

The single sentence is efficient and front-loaded with the verb and resource, with no filler. But it is terse to the point of under-specification, so the brevity does not fully earn its place given the missing information.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a mutation tool with no annotations and 0% parameter description coverage, the description is too thin. The existence of an output schema means return values need not be explained, but preconditions, the meaning of "versioned," and parameter intent are all absent.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the description is responsible for explaining the three parameters, and it mentions none of them. Parameter names like title and spec are somewhat self-evident, but role (with a default of "product") and spec are ambiguous and remain unexplained in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description pairs a specific verb ("Create") with a specific resource ("versioned work item"), so an agent knows exactly what operation is performed. However, it offers no differentiation from the siblings that also involve work items (list_work_items, update_work_item, handoff_work), so it stays short of a 5.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives. The only implicit signal is that "create" is distinct from the sibling update/list tools, which the agent must infer on its own.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

evaluate_qa_gateC

Evaluate whether current revision has all passing QA evidence.

ParametersJSON Schema
NameRequiredDescriptionDefault
work_item_idYes
required_kindsYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.4/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full behavioral burden, and it discloses almost nothing: it doesn't say whether this is a read-only check or mutates gate state, whether it blocks a handoff or release decision, what permissions are needed, or how the 'current revision' is resolved. For a gate-evaluation tool with zero annotation coverage this is a substantial gap.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or repetition. It is efficient, though its brevity reflects under-specification rather than disciplined concision.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

The presence of an output schema relieves the description of explaining return values, but everything else is missing: parameter meaning, read-vs-write nature, gate outcome semantics, and how it relates to the evidence and release-decision siblings. Given two required undocumented parameters and no annotations, this is inadequate.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% for both required parameters. The description never mentions work_item_id and gives no explanation of required_kinds — which is the central concept of the tool (which evidence kinds count toward the gate). At most it vaguely implies the existence of evidence kinds, adding nearly nothing over the bare schema.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description names a specific verb ('Evaluate') and resource ('QA gate') and states the condition being checked (all passing QA evidence on the current revision). However, it does not distinguish this from siblings like record_evidence or record_release_decision, and 'current revision' is never defined even though no revision parameter exists.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no mention of prerequisites (e.g., evidence must be recorded first), and no reference to alternative tools such as record_evidence or record_release_decision. The agent must infer the workflow context entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

get_contextB

Read the current spec, revision, evidence, and role handoffs.

ParametersJSON Schema
NameRequiredDescriptionDefault
work_item_idYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden, and 'Read' does imply a non-mutating operation. It usefully signals that the response is an aggregate of several artifacts (spec, revision, evidence, handoffs), which is real behavioral context, but it says nothing about scoping, permissions, or whether the read is cached or live.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler or repetition. It is efficient, though terse enough that it could have absorbed a routing clause without becoming bloated.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness3/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

Because an output schema exists, the return values need not be explained, and the description does list the artifact categories returned. What remains missing is the linkage to the required work_item_id and any signal of when this read is appropriate, so it is adequate but not complete for a context-gathering tool.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0%, so the sole required parameter 'work_item_id' is undocumented in both schema and description. The description alludes to a single item's context but never names or explains the identifier, leaving the agent to infer the parameter's meaning.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description gives a specific verb ('Read') and enumerates the resources returned (spec, revision, evidence, role handoffs), so the agent knows this is a composite read of a work item's state. It is clearly distinct from the write siblings (create_work_item, update_work_item, record_evidence), though it never explicitly positions itself against list_work_items.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no explicit when-to-use guidance, no prerequisites, and no mention of alternatives. The agent must infer that this is the read step preceding updates or handoffs, which is guesswork rather than instruction.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

handoff_workC

Record a role-to-role handoff tied to the current revision.

ParametersJSON Schema
NameRequiredDescriptionDefault
noteYes
to_roleYes
from_roleYes
work_item_idYes
expected_revisionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden. 'Record' implies a mutation, and 'tied to the current revision' hints at concurrency/optimistic-locking behavior, but the description never states whether it requires a matching revision, what happens on conflict, whether the handoff is idempotent, or what permissions are needed.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words. However, the brevity reflects under-specification rather than disciplined conciseness for a 5-parameter mutation.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, but for a 5-required-parameter mutation with zero annotation coverage and zero schema description coverage, the description leaves critical behavioral and parameter context unstated.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 5 required parameters. The description indirectly accounts for from_role/to_role ('role-to-role') and expected_revision ('current revision'), but work_item_id and note are left entirely undocumented in both schema and description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Record') and resource ('role-to-role handoff') with a scoping detail ('tied to the current revision'), which distinguishes it from siblings like record_evidence and record_release_decision. It does not explicitly name a sibling alternative, but the action and object are unambiguous.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to hand off work versus recording evidence or updating a work item, and no prerequisites or exclusions are given. The agent must infer the usage context entirely.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

list_work_itemsB

List work item IDs, titles, and current revisions.

ParametersJSON Schema
NameRequiredDescriptionDefault

No parameters

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.3/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full burden of behavioral disclosure. It hints at a read-only listing and names the returned fields, but says nothing about scope (all work items vs. a subset), pagination, ordering, or the fact that no parameters/filtering are accepted.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness5/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no wasted words; the verb and the returned fields come first. Nothing extraneous is included.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness4/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so the description need not explain return values, and the zero-parameter schema is trivial. The main gap is the absence of annotations, leaving the read-only/side-effect profile implicit rather than declared.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters4/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

The tool takes zero parameters, so per the rubric the baseline is 4. There is nothing further for the description to disambiguate about arguments.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description states a specific verb (List) and resource (work items) and names the returned fields (IDs, titles, current revisions), so its function is unambiguous. It does not explicitly distinguish itself from siblings such as get_context, but the read-only listing intent is clear.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no statement of when to use this tool versus alternatives like get_context, nor any mention of prerequisites, scope, or exclusions. Usage is only implied by the word 'List'.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_evidenceC

Append evidence tied to the current revision, hash, and environment.

ParametersJSON Schema
NameRequiredDescriptionDefault
kindYes
outcomeYes
summaryYes
environmentYes
recorded_byYes
source_hashYes
work_item_idYes
expected_revisionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.7/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full behavioral burden. 'Append' hints at append-only/immutable semantics and 'current revision' hints at optimistic-concurrency checking, but the description never states what happens on a revision mismatch, whether the record is mutable, permission requirements, or side effects.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler, and the key scoping constraints (revision, hash, environment) come first. It is efficient, though arguably terse to the point of under-specification.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists so return values need no explanation, but for an 8-required-parameter mutation tool with zero annotations and 0% schema coverage, the description omits too much to let an agent invoke it confidently.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 8 required parameters, so the description must compensate. It only gestures at three of them (revision, hash, environment) and leaves kind, outcome, summary, recorded_by, and work_item_id completely undefined, adding little semantic value.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description uses a specific verb and resource ('Append evidence') scoped by revision, hash, and environment, so an agent can grasp the core operation. It does not, however, distinguish this tool from the sibling record_release_decision, which is a similar append-style recording operation.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no guidance on when to call this versus alternatives like record_release_decision or update_work_item, and no prerequisites or caveats are stated. The agent must infer the usage context entirely from the name.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

record_release_decisionB

Record caller-supplied release-owner attestation; approval requires the QA evidence gate.

ParametersJSON Schema
NameRequiredDescriptionDefault
reasonYes
decisionYes
decided_byYes
environmentYes
work_item_idYes
required_kindsYes
expected_revisionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior3/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

With no annotations, the description carries the full burden. It does disclose one real behavioral trait beyond the schema: approval decisions are gated on QA evidence. However, it omits mutation semantics, what happens on an expected_revision mismatch, and whether the recorded attestation is immutable.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness4/5

Is the description appropriately sized, front-loaded, and free of redundancy?

A single front-loaded sentence with no filler; the precondition clause is placed after the core action. It is efficient, though arguably too terse for a seven-parameter mutation tool.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

For a 7-required-parameter mutation tool with zero schema coverage, no annotations, and an output schema, the description should at minimum explain the decision/revision semantics and the gate precondition's enforcement. It supplies only the gate hint, leaving the calling contract largely undocumented.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters2/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Seven required parameters at 0% schema description coverage, and the description explains none of them. Terms like 'release-owner' and 'approval' only loosely gesture at decided_by and decision; work_item_id, expected_revision, environment, and required_kinds are entirely unaddressed.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose4/5

Does the description clearly state what the tool does and how it differs from similar tools?

States a specific verb ('Record') and resource ('caller-supplied release-owner attestation'), which is meaningfully distinct from siblings like record_evidence and evaluate_qa_gate. It stops short of explicitly routing between those siblings, but the resource is identifiable.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines3/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

The clause 'approval requires the QA evidence gate' implies a precondition for approval decisions, but the description never states when to call this versus evaluate_qa_gate or record_evidence, nor whether the gate must be run first. Usage is implied rather than directed.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

update_work_itemC

Create a new work revision, optionally bound to the produced source SHA-256.

ParametersJSON Schema
NameRequiredDescriptionDefault
roleYes
specYes
statusYes
source_hashNo
work_item_idYes
expected_revisionYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

C2.2/5.0
Behavior2/5

Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?

No annotations are provided, so the description carries the full disclosure burden. It usefully reveals that the operation creates a revision (implying history is preserved rather than destructive in-place mutation) and that source-hash binding is optional, but it says nothing about conflict behavior for expected_revision, permission requirements, or what happens to required fields omitted. That is a large gap for a five-required-parameter mutation.

Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.

Conciseness3/5

Is the description appropriately sized, front-loaded, and free of redundancy?

It is a single front-loaded sentence with no wasted wording. But brevity here is under-specification rather than economy — for a six-parameter mutating tool the one line is too sparse to be proportionate, though that is partly captured under contextual completeness.

Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.

Completeness2/5

Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?

An output schema exists, so return values need not be described. However, with no annotations, 0% schema description coverage, and five required parameters, the description leaves the agent without the information needed to fill the required fields or predict conflict handling. It is not remotely adequate for a tool of this complexity.

Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.

Parameters1/5

Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?

Schema description coverage is 0% across 6 parameters. The description explains only one of them, the optional source_hash, and even that only restates its binding target. work_item_id, expected_revision (presumably an optimistic-concurrency token), spec, status, and role are entirely undocumented in both the schema and the description.

Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.

Purpose3/5

Does the description clearly state what the tool does and how it differs from similar tools?

The description does convey the underlying semantics — an update is implemented as a new revision — which is genuinely informative. However, the verb 'Create a new work revision' sits awkwardly against the tool name update_work_item and reads confusingly close to the sibling create_work_item, with no explicit statement of what distinguishes the two. An agent could plausibly route to the wrong tool.

Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.

Usage Guidelines2/5

Does the description explain when to use this tool, when not to, or what alternatives exist?

There is no when-to-use guidance, no prerequisites, and no mention of alternatives such as create_work_item or handoff_work. The only hint resembling guidance is that source_hash is optional, which is about a parameter rather than selection between tools.

Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.

Tool Schema Changelog

Recent tool additions, removals, and schema changes observed during successful MCP inspections.

  1. 8 tool updatesv0.1.0
    • First observedcreate_work_item
    • First observedevaluate_qa_gate
    • First observedget_context
    • First observedhandoff_work
    • First observedlist_work_items
    • First observedrecord_evidence
    • First observedrecord_release_decision
    • First observedupdate_work_item

TDQS

B3.2/5.0

Scored across 8 tools

Disambiguation4/5

Each tool targets a distinct lifecycle action (list, get, create, update, handoff, record evidence, evaluate gate, record decision), and descriptions clarify the boundaries. However, 'get_context' is somewhat broad and could be confused with 'list_work_items' or overlaps with update/handoff in terms of reading revision state.

Naming Consistency5/5

All tools follow the consistent verb_noun pattern (e.g., list_work_items, update_work_item, record_evidence), with predictable snake_case and clear action-oriented prefixes.

Tool Count5/5

Eight tools are well-scoped for the domain of managing versioned work items, evidence, handoffs, and gated releases, with each tool earning its place without obvious redundancy.

Completeness4/5

The surface covers the core lifecycle from creation to release decision, including evidence and QA gates. However, it lacks explicit deletion or archival operations, and evidence retrieval is only implicit through get_context, which may limit some workflows.

Maintenance

ActivityMaintained
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers

  • A
    license
    Not graded
    quality
    A
    maintenance
    Enables managing agile project boards with automated agent-driven workflows, enforcing stage gates and generating service and MCP client configurations.
    Apache 2.0
  • A
    license
    B
    quality
    B
    maintenance
    Enables MCP clients to drive developer workflows through APIs and CLIs, with explicit workspace or trusted-workstation launch modes, bounded command previews, multi-repository rules discovery, and an on-demand skills/recipes entry point. It lets agents review changes, run commands, and load only the smallest relevant rule or skill while reporting evidence and unverified steps.
    19
    1
    Apache 2.0