Skip to main content
Glama

needfix_update

Idempotent

Updates mutable fields on a NeedFix record, enabling targeted edits to tags, scope, evidence, severity, and readiness while preserving unspecified fields and blocking stale writes.

Instructions

Manager update of mutable NeedFix fields.

None keeps a field. evidence is an explicit FULL REPLACE of the evidence object; evidence_patch is a JSON merge patch (keys merged, nested objects merged, null deletes a key) applied server-side to the stored object, so one measurement can be added without re-sending the rest. The two are mutually exclusive. evidence_refs_add/remove, tags_add/remove, scope_files_add and scope_symbols_add edit the lists in place (add appends missing values, remove filters). expected_updated_at is optimistic concurrency: the update is refused (needfix_update_stale) when the stored updated_at differs. kind vocabulary and synonym normalisation are as in needfix_add.

Replies with a delta receipt (aiworkhub.needfix_update_receipt.v1): id, status, fields_changed, updated_at, evidence_keys_after, event_id, kind_normalized. The updated audit event records the same fields_changed plus the evidence sha256 before and after.

Tool call template

Replace each placeholder with a value matching the input schema. Only required parameters are included; add optional parameters as needed.

{
  "id": 1,
  "jsonrpc": "2.0",
  "method": "tools/call",
  "params": {
    "arguments": {
      "needfix_id": "<needfix_id>"
    },
    "name": "needfix_update"
  }
}

Input Schema

NameRequiredDescriptionDefault
kindNoAccepted kind values: benchmark_gap, bug, docs, documentation_drift, feature, idea, improvement, investigation, optimization, other, refactor, roadmap_candidate, security, security_risk, technical_debt. None keeps the field; case, space and known synonyms normalize server-side.
tagsNoFull replacement tag list; omit to keep the current tags.
scopeNoNew free-text scope label; omit to keep the current one.
titleNoNew title; omit to keep the current one.
evidenceNoFull replacement evidence object, at most 500000 bytes serialized; refused together with evidence_patch. Omit to keep the stored evidence.
severityNoAccepted severity values: critical, high, info, low, medium. None keeps the field.
tags_addNoTags to append when not already present.
needfix_idYesId of the NeedFix to update, e.g. NF-2026-01447; a NeedFix that is converting cannot be updated.
descriptionNoNew description; omit to keep the current one.
scope_filesNoFull replacement list of repository file paths this NeedFix concerns; omit to keep the current list.
tags_removeNoTags to remove when present.
evidence_refsNoFull replacement list of evidence reference strings; omit to keep the current list.
scope_symbolsNoFull replacement list of code symbols this NeedFix concerns; omit to keep the current list.
evidence_patchNoJSON merge patch applied to the stored evidence: keys merge, nested objects merge, null deletes a key. Refused together with evidence.
readiness_scoreNoNew readiness score, an integer from 0 to 100; omit to keep the current one.
scope_files_addNoRepository file paths to append to scope_files when not already present.
evidence_refs_addNoEvidence reference strings to append when not already present.
scope_symbols_addNoCode symbols to append to scope_symbols when not already present.
expected_updated_atNoOptimistic concurrency guard: the updated_at timestamp you last read; the update is refused as needfix_update_stale when the stored value differs.
evidence_refs_removeNoEvidence reference strings to remove when present.

Schema Changelog

Changes observed during successful MCP inspections.

  1. Changed18 schema fields changedv0.12.67
    • addedInput schema / properties / description / description
      Added value: +"New description; omit to keep the current one."
    • addedInput schema / properties / evidence / description
      Added value: +"Full replacement evidence object, at most 500000 bytes serialized; refused together with evidence_patch. Omit to keep the stored evidence."
    • addedInput schema / properties / evidence_patch / description
      Added value: +"JSON merge patch applied to the stored evidence: keys merge, nested objects merge, null deletes a key. Refused together with evidence."
    • addedInput schema / properties / evidence_refs / description
      Added value: +"Full replacement list of evidence reference strings; omit to keep the current list."
    • addedInput schema / properties / evidence_refs_add / description
      Added value: +"Evidence reference strings to append when not already present."
    • addedInput schema / properties / evidence_refs_remove / description
      Added value: +"Evidence reference strings to remove when present."
    • addedInput schema / properties / expected_updated_at / description
      Added value: +"Optimistic concurrency guard: the updated_at timestamp you last read; the update is refused as needfix_update_stale when the stored value differs."
    • addedInput schema / properties / needfix_id / description
      Added value: +"Id of the NeedFix to update, e.g. NF-2026-01447; a NeedFix that is converting cannot be updated."
    • addedInput schema / properties / readiness_score / description
      Added value: +"New readiness score, an integer from 0 to 100; omit to keep the current one."
    • addedInput schema / properties / scope / description
      Added value: +"New free-text scope label; omit to keep the current one."
    • addedInput schema / properties / scope_files / description
      Added value: +"Full replacement list of repository file paths this NeedFix concerns; omit to keep the current list."
    • addedInput schema / properties / scope_files_add / description
      Added value: +"Repository file paths to append to scope_files when not already present."
    • addedInput schema / properties / scope_symbols / description
      Added value: +"Full replacement list of code symbols this NeedFix concerns; omit to keep the current list."
    • addedInput schema / properties / scope_symbols_add / description
      Added value: +"Code symbols to append to scope_symbols when not already present."
    • addedInput schema / properties / tags / description
      Added value: +"Full replacement tag list; omit to keep the current tags."
    • addedInput schema / properties / tags_add / description
      Added value: +"Tags to append when not already present."
    • addedInput schema / properties / tags_remove / description
      Added value: +"Tags to remove when present."
    • addedInput schema / properties / title / description
      Added value: +"New title; omit to keep the current one."
  2. First observedv0.1.0

TDQS

A4.3/5.0
Behavior5/5

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

Adds substantial behavior beyond annotations: optimistic concurrency with needfix_update_stale refusal, full-replace vs merge-patch semantics including null-delete, add/remove list semantics, and a described delta receipt plus audit event.

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?

Front-loads the core 'None keeps a field' rule and the evidence/evidence_patch distinction, then covers list edits and concurrency. Dense but organized; some phrasing echoes the schema descriptions.

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

Completeness5/5

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

For a 20-parameter mutation tool with no output schema, the description supplies the missing return contract (delta receipt fields) and concurrency/failure behavior, making it complete enough to invoke correctly.

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?

Schema coverage is 100%, so the baseline is 3; the description adds value by explaining cross-parameter behavior (evidence vs evidence_patch exclusivity, add/remove edit semantics, expected_updated_at concurrency) rather than repeating field docs.

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 and resource: 'Manager update of mutable NeedFix fields.' Clearly an update tool, but it does not differentiate from siblings like needfix_add or aiworkhub_dashboard_needfix_update, so an agent must infer routing.

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

Usage Guidelines4/5

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

Gives clear context for choosing between the evidence and evidence_patch paths, declaring them mutually exclusive, and pointing to needfix_add for kind vocabulary. It does not, however, state when to prefer this tool over sibling update/add tools.

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

Deploy Server

Other Tools