Skip to main content
Glama

Hive Mind

CI License: Apache-2.0

Hive Mind is a self-hosted, temporal decision memory for coding agents. It records what was decided, why it was decided, when it became effective, and which later ruling superseded it.

The canonical record lives in Neo4j and is exposed through MCP tools, fail-open agent hooks, and a local web interface. Decisions are project-scoped so memory from one project is not returned to another.

IMPORTANT

Hive Mind is alpha software. Back up your Neo4j volume and review its privacy model before using it with confidential material.

What it provides

  • A canonical Decision record with rationale and rejected alternatives.

  • Separate valid time (decided_at) and record time (recorded_at).

  • Explicit supersession chains and historical “as of” queries.

  • One current ruling per project, scope, repository, and decision key.

  • Full-text retrieval on the prompt path without an LLM or embedding model.

  • MCP tools for recording, recalling, superseding, and tracing decisions.

  • A review queue for candidate decisions extracted from agent sessions.

  • A local web app for search, correction history, and supersession.

  • Optional Graphiti integration for semantic discovery and provenance.

Related MCP server: Project Context MCP

Temporal model

Field

Meaning

decided_at

When the ruling became effective

recorded_at

When Hive Mind learned about it

superseded_at

When a replacement ended its effective interval

decision_key

Stable topic identity across versions

Corrections preserve an immutable DecisionRevision. Changed rulings create a new Decision linked to the old one with SUPERSEDES. Decisions are never silently expired by a model.

Quick start

Prerequisites:

  • Docker with Compose

  • uv and Python 3.12

  • Node.js 22 or later for the web app

Start Neo4j and install the Python project:

docker compose up -d
uv sync --extra dev
uv run pytest -m "not slow"

For a source checkout, copy the starter scope map and replace its examples:

cp repos.yaml repos.local.yaml

repos.local.yaml is ignored by Git. Each entry maps a repository directory name to a project group:

practice_group: practice

repos:
  checkout-api: acme
  checkout-infrastructure: acme

An unmapped repository receives practice-wide memory only. Hive Mind does not guess project membership.

For an installed package, put the same file at ~/.config/hive-mind/repos.yaml or set HIVE_MIND_REPO_MAP to an explicit path.

Run the MCP server:

uv run hive-mind-mcp

Run the local web app:

./run_viewer.sh

Then open http://localhost:3000.

Configuration

The defaults match the development stack in compose.yaml. Every setting can be overridden:

Variable

Default

Purpose

HIVE_MIND_NEO4J_URI

bolt://localhost:7687

Python Neo4j connection

HIVE_MIND_NEO4J_USER

neo4j

Python Neo4j user

HIVE_MIND_NEO4J_PASSWORD

hive-mind-local-password

Python Neo4j password

NEO4J_HTTP_URL

http://localhost:7474

Web server Neo4j endpoint

NEO4J_USER

neo4j

Web server Neo4j user

NEO4J_PASSWORD

hive-mind-local-password

Web server Neo4j password

HIVE_MIND_REPO_MAP

auto-detected

Explicit scope-map path

HIVE_MIND_HOME

unset

Checkout path used by the bundled Claude command

HIVE_MIND_PRACTICE_GROUP

practice

Shared practice-memory group

HIVE_MIND_ACTOR

human

Attribution on confirmed decisions

HIVE_MIND_GRAPHITI_FACTORY

unset

Optional semantic client factory

The passwords above are development defaults, not production credentials. Bind Neo4j to a trusted interface, use a unique secret, and back up its data volume before storing important memory.

Optional semantic provider

Canonical decision storage, full-text search, temporal queries, MCP, hooks, and the web app do not require embeddings.

Semantic grounding is an extension point. Install the semantic extra and expose a zero-argument factory returning a Graphiti-compatible client:

uv sync --extra semantic
export HIVE_MIND_GRAPHITI_FACTORY="my_provider.graph:build_client"

The original deployment uses Nomic embeddings locally on Apple Silicon through an external provider. Contributions that turn this into a first-party, provider-neutral adapter are especially welcome.

Architecture

coding agent
  ├── MCP tools ────────────────┐
  ├── prompt/session hooks ─────┤
  └── local web app ────────────┤
                                ▼
                         canonical Neo4j graph
                       Decision / Revision / Topic
                                │
                                └── optional semantic provider

The direct Cypher path is authoritative and fast. The optional semantic layer is best-effort discovery; it must never overwrite canonical decision text. See docs/architecture.md for invariants and extension points and docs/roadmap.md for contribution opportunities.

Contributing

Issues, documentation improvements, adapters, tests, and code contributions are welcome. Start with CONTRIBUTING.md, which includes the development workflow and areas where help is most useful.

Maintainers preparing the first public repository should follow the public release checklist; the original private Git history must not be published.

By participating, you agree to the Code of Conduct. Security and privacy reports should follow SECURITY.md.

License

Licensed under the Apache License 2.0.

Available Tools

8 tools
current_decisionB

Return the one live decision for a stable topic key.

ParametersJSON Schema
NameRequiredDescriptionDefault
repoNo
scopeNorepo
clientNo
decision_keyYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3/5.0
Behavior2/5

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

No annotations provided, so description must disclose behaviors. Only states 'return' and 'live,' implying read-only, but no mention of side effects, permissions, error conditions, or uniqueness guarantees.

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?

Single 9-word sentence is concise and front-loaded. However, extreme brevity sacrifices clarity on parameters and usage.

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?

Despite having an output schema and 4 parameters, description omits return value context and parameter semantics. Complexity is high relative to the minimal description, leaving gaps for effective tool invocation.

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%, yet description gives no parameter details. It loosely mentions 'stable topic key' but doesn't explain 'repo,' 'scope,' or 'client.' Agents cannot infer correct usage from description.

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

Purpose5/5

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

Description clearly states 'Return the one live decision for a stable topic key,' specifying verb, resource, and scope. It distinguishes from siblings like 'recall_decisions' (likely returns multiple) and 'record_decision' (create).

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?

Implies usage for stable topic keys, but no explicit when-to-use or when-not-to-use guidance. Lacks comparison to siblings like 'why' or 'decisions_as_of'.

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

decision_lineageB

Show the oldest-to-newest supersession chain containing a decision.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.1/5.0
Behavior2/5

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

Annotations are absent, so the description must compensate, but it only states the basic action. It does not disclose read-only nature, permissions, empty chain handling, or ordering implications beyond 'oldest-to-newest'.

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?

Single sentence that efficiently conveys the core functionality. Front-loaded with action and scope, no filler.

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?

For a simple read tool with one parameter and an output schema, the description covers the main idea but lacks parameter explanation and context about the chain structure. Adequate but incomplete.

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?

The parameter 'uuid' has 0% schema description coverage. The description mentions 'a decision' but does not clarify that uuid identifies the decision, nor does it specify format or constraints. Minimal added meaning.

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

Purpose5/5

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

The description clearly states the verb 'show' and the resource 'supersession chain' for a decision. It distinguishes the tool from siblings like 'current_decision' (shows current only) and 'supersede_decision' (creates a supersession), making the lineage intent unique.

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?

No guidance on when to use this tool versus alternatives such as 'why', 'current_decision', or 'supersede_decision'. There is no explicit context for selection or exclusion.

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

decisions_as_ofC

Return decisions that were effective at a historical point in time.

ParametersJSON Schema
NameRequiredDescriptionDefault
as_ofYes
limitNo
decision_keyNo

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?

With no annotations, the description must disclose behavior. It only states the core function (returning historical decisions) but omits safety, permissions, side effects, or what 'effective' means. Minimal behavioral disclosure.

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?

One concise sentence. However, it is under-specified for a 3-parameter tool. Conciseness is good for the purpose, but missing parameter details lowers effectiveness.

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?

Given 3 parameters, no annotations, and an output schema, the description is incomplete. Does not explain return value or usage context, leaving gaps for an agent to infer.

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 has 0% description coverage. The description only implies 'as_of' is the historical time point but does not explain 'limit' or 'decision_key'. Fails to compensate for missing schema descriptions.

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 clearly states it returns decisions effective at a historical point in time. This distinguishes it from siblings like 'current_decision' but does not explicitly name alternatives.

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?

No guidance on when to use this tool versus alternatives like 'current_decision' or 'recall_decisions'. Lacks context on prerequisites or exclusions.

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

recall_contextA

Search what clients and stakeholders actually said, from meeting transcripts.

Use to find where an ask originated, what was promised, or what a client
required — before writing code against a second-hand description of it.
Facts carry temporal validity: a fact with an invalid_at date was superseded.
ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.7/5.0
Behavior3/5

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

No annotations provided. Description adds temporal validity note about invalid_at dates, which is a behavioral trait. However, it does not disclose other traits like read-only nature, permissions, or result format. With no annotations, the description carries burden but only partially fulfills it.

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?

Description is relatively concise with two sentences plus a critical note on temporal validity. It front-loads the purpose and use case efficiently, though the note could be integrated more smoothly.

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?

Given the presence of an output schema (not shown) and sibling tools, the description provides adequate context for core purpose and usage guidelines. However, it lacks parameter details and more thorough behavioral transparency, leaving gaps for a complete understanding.

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% and description does not explain parameters. While 'query' and 'limit' are intuitive, the description adds no guidance on their usage, formats, or constraints. For a tool with no parameter descriptions in schema, this is a notable gap.

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

Purpose5/5

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

Description clearly states the tool searches meeting transcripts for client/stakeholder statements. It differentiates from siblings like recall_decisions by focusing on 'context' rather than decisions. Verb 'search' and resource 'meeting transcripts' are specific.

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?

Explicitly tells when to use: to find origins of asks, promises, or requirements before acting on second-hand info. Does not specify when not to use or list alternatives, but the context is clear.

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

recall_decisionsA

Search prior architectural decisions before proposing an approach.

Call this before designing anything non-trivial. Superseded decisions and rejected alternatives are the most useful results — they are exactly the approaches that should not be proposed again.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
queryYes
include_supersededNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description must cover behavioral traits. It implies a read-only search but does not explicitly state idempotency, side effects, or permissions. Adequate for a simple search tool but not rich in transparency.

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?

Three concise sentences; first sentence states purpose, next two provide usage guidance. No redundancy, every sentence earns its place.

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?

Given multiple sibling tools and an output schema, the description omits parameter explanations and usage comparisons. It gives a clear call-to-action but lacks full context for an agent to use 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%, and the description adds no parameter-level details (e.g., what query means, how limit works, or the effect of include_superseded). It barely adds meaning beyond the schema's bare names.

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

Purpose5/5

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

The description clearly states the verb (search) and resource (prior architectural decisions), and the context about superseded decisions distinguishes it from sibling tools like record_decision or current_decision.

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?

Explicitly says to call before non-trivial design, and highlights superseded/rejected decisions as valuable. However, it does not discuss when not to use or compare to siblings like recall_context or why.

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

record_decisionB

Record a settled architectural decision so it is not re-litigated.

decision_key is a stable lowercase kebab-case topic preserved across revisions.
decided_at is when the ruling became effective, not when it was recorded.
scope: 'repo' (this repo only), 'client' (all client repos), or 'practice'.
ParametersJSON Schema
NameRequiredDescriptionDefault
repoNo
scopeNorepo
clientNo
sourceNoexplicit
rationaleYes
statementYes
decided_atNo
session_idNo
decision_keyYes
alternatives_rejectedNo

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

B3.4/5.0
Behavior3/5

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

No annotations are present, so the description must convey behavior. It adds useful context for decision_key (stable kebab-case), decided_at (effective date), and scope (repo/client/practice), but omits critical behaviors like whether duplicate keys overwrite, required permissions, or side effects (e.g., creation vs. update). The description is partially transparent but insufficient for a mutation tool.

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?

The description is concise (4 sentences) with the main purpose front-loaded. The bullet-like clarifications for decision_key, decided_at, and scope are efficient. However, additional structure (e.g., grouping parameters) could improve scannability.

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?

Despite having an output schema (not shown), the description does not explain the return value, error conditions, or how to use all 10 parameters. Given the tool's moderate complexity and missing schema descriptions, the description leaves significant gaps for the agent.

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 must compensate. It explains only 3 of 10 parameters (decision_key, decided_at, scope), leaving repo, client, statement, rationale, source, session_id, and alternatives_rejected undocummented. This partial coverage fails to guide an agent on the majority of inputs.

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

Purpose5/5

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

The description clearly states the tool's purpose with a specific verb ('Record') and resource ('settled architectural decision'), and distinguishes it from sibling tools like recall_decisions or supersede_decision by focusing on creation rather than retrieval or modification. The purpose is unambiguous and action-oriented.

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 description implies usage for persisting decisions to avoid re-litigation, but does not explicitly contrast with sibling tools (e.g., when to use this vs. supersede_decision or decisions_as_of). No 'when not to use' guidance is provided, leaving the agent to infer context from the name alone.

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

supersede_decisionB

Retire a decision and replace it, preserving the old one as REJECTED history.

ParametersJSON Schema
NameRequiredDescriptionDefault
uuidYes
reasonYes
rationaleNo
decided_atNo
new_statementYes

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?

Discloses that the old decision becomes 'REJECTED history', a key side effect. However, given no annotations, more details (e.g., permissions, irreversibility) would improve transparency.

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 concise sentence that front-loads the action. It is efficient, though it could be expanded slightly to include parameter hints without losing brevity.

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?

Despite having an output schema and multiple sibling tools, the description lacks parameter guidance, usage context, and behavioral details. Significant gaps remain for an agent to use it correctly.

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%, and the description does not explain any parameter. The agent must infer meaning from parameter names alone, which is insufficient.

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

Purpose5/5

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

The description clearly states it retires a decision and replaces it, preserving the old one as rejected. This distinguishes it from sibling tools like record_decision (create) and current_decision (read).

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?

No explicit guidance on when to use this tool versus alternatives. The purpose implies replacement, but no contrasts to siblings are provided.

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

whyA

Explain why a decision exists, quoting the client conversation behind it.

Use when a constraint looks arbitrary, when you are about to argue against an existing decision, or when the user asks where a requirement came from. Returns decisions plus dated, speaker-attributed excerpts from the meetings that motivated them.

ParametersJSON Schema
NameRequiredDescriptionDefault
limitNo
topicYes

Output Schema

ParametersJSON Schema
NameRequiredDescription
resultYes

TDQS

A3.8/5.0
Behavior3/5

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

No annotations provided, so description carries full burden. It states returns 'dated, speaker-attributed excerpts', which is useful but doesn't disclose potential side effects, auth needs, or performance. Read-like behavior implied but not explicit.

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?

Three sentences, front-loaded with purpose, then usage, then return info. No redundant words. Highly efficient.

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?

Given output schema exists but not detailed here, description covers return structure adequately. However, missing parameter documentation is a gap for a simple 2-param 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%. The description does not explain 'topic' or 'limit' parameters. 'Topic' is implied but not defined, and 'limit' is not mentioned. Agent likely needs more guidance on what 'topic' refers to.

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

Purpose5/5

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

Description clearly states the verb 'Explain why' and resource 'a decision exists', adding 'quoting the client conversation'. It distinguishes from siblings like 'recall_context' and 'recall_decisions' by focusing on justification and quotes.

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?

Explicitly lists three scenarios for use: when a constraint looks arbitrary, when arguing against a decision, or when the user asks for a requirement's origin. No explicit when-not-to-use, but context is clear.

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 observedcurrent_decision
    • First observeddecision_lineage
    • First observeddecisions_as_of
    • First observedrecall_context
    • First observedrecall_decisions
    • First observedrecord_decision
    • First observedsupersede_decision
    • First observedwhy

TDQS

B3.2/5.0

Scored across 8 tools

Disambiguation4/5

Most tools have distinct purposes (e.g., 'why' explains decisions with quotes, 'recall_context' searches transcripts), but 'recall_decisions' and 'decisions_as_of' could be confused as both retrieve decision information, though the descriptions clarify the difference.

Naming Consistency2/5

Naming conventions are mixed: some use verb_noun ('record_decision', 'recall_context'), while others use noun_preposition ('decisions_as_of') or adjective_noun ('current_decision', 'decision_lineage'), lacking a uniform pattern.

Tool Count5/5

With 8 tools, the set is well-scoped for the domain of decision management and context recall, covering all essential operations without being bloated.

Completeness4/5

The tool surface covers recording, superseding, and querying decisions (current, historical, lineage) and searching context. A minor gap is the absence of a tool to list all decision topics, but this can be worked around via search.

Maintenance

ActivitySlowing
ResponsivenessNo issues

Related MCP Connectors

Related MCP Servers