Elenchus MCP Server
Supports adversarial code verification and dependency analysis for C++ systems to identify security, correctness, and performance issues.
Enables adversarial verification of CSS files to ensure maintainability and structural integrity within web applications.
Analyzes JavaScript and TSX code through a multi-round Verifier-Critic debate loop to uncover semantic bugs and security vulnerabilities.
Performs adversarial verification on PHP scripts, using AST-based analysis to evaluate code correctness and security requirements.
Facilitates deep semantic analysis of Python codebases through dialectical reasoning to identify reliability and edge-case issues.
Provides adversarial verification for Ruby applications, analyzing code intent and potential logic contradictions.
Offers specialized adversarial verification for Rust systems, focusing on correctness and safety through tree-sitter-powered dependency mapping.
Performs rigorous adversarial verification of TypeScript codebases, identifying security vulnerabilities and calculating ripple effects of changes.
Click on "Deploy Server".
Wait a few minutes for the server to deploy. Once ready, it will show a "Started" state.
In the chat, type
@followed by the MCP server name and your instructions, e.g., "@Elenchus MCP ServerPerform a Verifier-Critic debate to uncover security flaws in this code."
That's it! The server will respond to your query, and you can continue using it as needed.
Here is a step-by-step guide with screenshots.
Elenchus MCP Server
English | 한국어
Adversarial Code Verification System using Verifier↔Critic Debate Loop
Elenchus (ἔλεγχος): Socrates' method of refutation through systematic questioning - exposing contradictions to reach truth.
Related MCP server: tenth-man-mcp
Table of Contents
Overview
Elenchus is a Model Context Protocol (MCP) server that implements adversarial code verification. Unlike simple linting or static analysis, Elenchus orchestrates a debate between Verifier and Critic agents to systematically uncover issues through dialectical reasoning.
Why Adversarial Verification?
Traditional Approach | Elenchus Approach |
Single-pass analysis | Multi-round debate |
Checklist-based | Intent-based semantic analysis |
Fixed rules | Adaptive convergence |
Silent on clean code | Explicit negative assertions |
The Verifier↔Critic Loop
┌──────────────────────────────────────────────────────────────┐
│ VERIFICATION LOOP │
├──────────────────────────────────────────────────────────────┤
│ Round 1: Verifier → Examines code, RAISES issues │
│ Round 2: Critic → Challenges issues (VALID/INVALID/PARTIAL)│
│ Round 3: Verifier → Defends, resolves, or finds new issues │
│ Round 4: Critic → Re-evaluates, checks coverage │
│ ...continues until convergence... │
│ Final: Verdict (PASS / FAIL / CONDITIONAL) │
└──────────────────────────────────────────────────────────────┘Key Features
🔄 Adversarial Debate System
Verifier: Finds issues with evidence
Critic: Challenges findings, validates claims
Role Enforcement: Strict alternation with compliance scoring
📊 Intent-Based Convergence
Semantic understanding instead of keyword matching
5 category coverage (Security, Correctness, Reliability, Maintainability, Performance)
Edge case documentation requirements
Negative assertions for clean code
🧠 LLM-Based Evaluation (Optional)
Convergence Assessment: LLM judges verification quality (vs rigid boolean checks)
Severity Classification: Context-aware impact analysis
Edge Case Validation: Verifies actual analysis, not just keyword presence
False Positive Detection: Evidence-based issue validation
🔍 Automatic Impact Analysis
Multi-language dependency graph (15 languages via tree-sitter)
Ripple effect prediction
Cascade depth calculation
Risk level assessment
🌐 Multi-Language Support
Dependency analysis powered by tree-sitter AST parsing:
Category | Languages |
Web | TypeScript, TSX, JavaScript, CSS |
Systems | Rust, Go, C, C++ |
Enterprise | Java, C# |
Scripting | Python, Ruby, PHP, Bash, PowerShell |
💾 Session Management
Checkpoint/rollback support
Global session storage
Audit trail preservation
⚡ Token Optimization (Optional)
Differential analysis (verify only changed code)
Response caching
Selective chunking
Tiered verification pipeline
Quick Start
Add to your MCP client configuration:
{
"mcpServers": {
"elenchus": {
"command": "npx",
"args": ["-y", "@jhlee0409/elenchus-mcp"]
}
}
}Then use naturally with your AI assistant:
"Please verify src/auth for security issues"See Installation for client-specific setup instructions.
Installation
Supported Clients
Client | Status | Notes |
Claude Desktop | ✅ Supported | macOS, Windows |
Claude Code | ✅ Supported | CLI tool |
VS Code (Copilot) | ✅ Supported | Requires v1.102+ |
Cursor | ✅ Supported | 40 tool limit applies |
Other MCP Clients | ✅ Compatible | Any stdio-based client |
Claude Desktop
Add to your Claude Desktop configuration file:
macOS: ~/Library/Application Support/Claude/claude_desktop_config.json
Windows: %APPDATA%\Claude\claude_desktop_config.json
{
"mcpServers": {
"elenchus": {
"command": "npx",
"args": ["-y", "@jhlee0409/elenchus-mcp"]
}
}
}Claude Code
Add to your Claude Code settings (.mcp.json or ~/.claude/settings.json):
{
"mcpServers": {
"elenchus": {
"command": "npx",
"args": ["-y", "@jhlee0409/elenchus-mcp"]
}
}
}VS Code (GitHub Copilot)
Add to .vscode/mcp.json:
{
"mcp": {
"servers": {
"elenchus": {
"command": "npx",
"args": ["-y", "@jhlee0409/elenchus-mcp"]
}
}
}
}Cursor
Go to Settings > MCP > Add new global MCP Server:
{
"mcpServers": {
"elenchus": {
"command": "npx",
"args": ["-y", "@jhlee0409/elenchus-mcp"]
}
}
}Usage
Simply describe what you want to verify:
"Verify src/auth for security vulnerabilities"
"Check the payment module for edge cases"
"Review src/api for correctness and reliability issues"Your AI assistant will automatically use Elenchus tools.
For structured workflows, see MCP Prompts.
MCP Tools Reference
Session Lifecycle
elenchus_start_session
Initialize a new verification session.
Inputs:
target(string, required): Target path to verify (file or directory)requirements(string, required): Verification requirements/focus areasworkingDir(string, required): Working directory for relative pathsmaxRounds(number, optional): Maximum rounds before stopping (default: 10)verificationMode(object, optional): Mode configurationmode:"standard"|"fast-track"|"single-pass"skipCriticForCleanCode: boolean
differentialConfig(object, optional): Verify only changed filescacheConfig(object, optional): Cache previous verificationschunkingConfig(object, optional): Split large files into chunkspipelineConfig(object, optional): Tiered verificationllmEvalConfig(object, optional): LLM-based evaluation settingsenabled: boolean - Enable LLM evaluationconvergenceEval: boolean - Use LLM for convergence qualityseverityEval: boolean - Use LLM for severity classificationedgeCaseEval: boolean - Use LLM for edge case validationfalsePositiveEval: boolean - Use LLM for false positive detection
Returns: Session ID and initial context including files collected, dependency graph stats, and role configuration.
Example:
elenchus_start_session({
target: "src/auth",
requirements: "Security audit for authentication",
workingDir: "/path/to/project",
verificationMode: { mode: "fast-track" }
})elenchus_get_context
Get current session context including files, issues, and proactive guidance.
Inputs:
sessionId(string, required): The session ID
Returns: Files, issues summary, focus areas, unreviewed files, recommendations.
elenchus_submit_round
Submit a Verifier or Critic round.
Inputs:
sessionId(string, required): The session IDrole("verifier"|"critic", required): Role for this roundoutput(string, required): Full agent analysis outputissuesRaised(Issue[], optional): New issues (Verifier role)issuesResolved(string[], optional): Resolved issue IDs (Critic role)
Issue Schema:
{
id: string,
category: "SECURITY" | "CORRECTNESS" | "RELIABILITY" | "MAINTAINABILITY" | "PERFORMANCE",
severity: "CRITICAL" | "HIGH" | "MEDIUM" | "LOW",
summary: string,
location: string, // "file:line" format
description: string,
evidence: string // Code snippet or proof
}Returns: Round number, convergence status, mediator interventions, role compliance score.
elenchus_end_session
End session with final verdict.
Inputs:
sessionId(string, required): The session IDverdict("PASS"|"FAIL"|"CONDITIONAL", required): Final verdict
Returns: Session summary including total rounds, issues by category and severity.
elenchus_get_issues
Query issues with optional filtering.
Inputs:
sessionId(string, required): The session IDstatus("all"|"unresolved"|"critical", optional): Filter by status
Returns: Array of issues matching the filter.
Additional Tools (31 more)
Beyond the core tools above, Elenchus provides 31 additional tools for advanced workflows:
Category | Tools |
LLM Evaluation |
|
State Management |
|
Analysis |
|
Role Enforcement |
|
Re-verification |
|
Differential |
|
Cache |
|
Pipeline |
|
Safeguards |
|
Optimization |
|
Dynamic Roles |
|
All tools are auto-discovered by MCP clients. Use MCP Inspector (
npm run inspector) for detailed schemas.
MCP Resources
Access session data via URI-based resources:
URI Pattern | Description |
| List all active sessions |
| Get specific session details |
Usage:
Read elenchus://sessions/
Read elenchus://sessions/2026-01-17_src-auth_abc123MCP Prompts (Slash Commands)
Prompt Name | Description |
| Run complete Verifier↔Critic loop |
| Create prioritized fix plan |
| Apply fixes with verification |
| Full pipeline until zero issues |
| Adversarial cross-verification |
Invocation format varies by client. Check your MCP client's documentation.
Verification Modes
Three modes for different use cases:
Mode | Min Rounds | Critic Required | Best For |
| 3 | Yes | Thorough verification |
| 1 | Optional | Quick validation |
| 1 | No | Fastest, Verifier-only |
Example:
elenchus_start_session({
target: "src/",
requirements: "Security audit",
workingDir: "/project",
verificationMode: {
mode: "fast-track",
skipCriticForCleanCode: true
}
})Issues transition through states:
RAISED → CHALLENGED → RESOLVED
↓
DISMISSED (false positive)
↓
MERGED (combined)
↓
SPLIT (divided)Issue States
Status | Description |
| Initially discovered by Verifier |
| Under debate between Verifier and Critic |
| Fixed and verified |
| Invalidated as false positive |
| Combined with another issue |
| Divided into multiple issues |
Critic Verdicts
Verdict | Meaning |
| Issue is legitimate |
| False positive |
| Partially valid, needs refinement |
A session converges when ALL criteria are met:
No CRITICAL or HIGH severity unresolved issues
Stable for 2+ rounds (no new issues)
Minimum rounds completed (varies by mode)
All 5 categories examined
No recent issue state transitions
Edge cases documented
Clean areas explicitly stated (negative assertions)
High-risk impacted files reviewed
Category Coverage
All 5 categories must be examined:
SECURITY - Authentication, authorization, injection
CORRECTNESS - Logic errors, type mismatches
RELIABILITY - Error handling, resource management
MAINTAINABILITY - Code structure, documentation
PERFORMANCE - Efficiency, resource usage
Token Optimization
Verify only changed files:
{
differentialConfig: {
enabled: true,
baseRef: "main" // Compare against main branch
}
}Cache previous verification results:
{
cacheConfig: {
enabled: true,
ttlSeconds: 3600 // Cache for 1 hour
}
}Split large files into focused chunks:
{
chunkingConfig: {
enabled: true,
maxChunkSize: 500 // Lines per chunk
}
}Start with quick analysis, escalate if needed:
{
pipelineConfig: {
enabled: true,
startTier: "screen" // screen → focused → exhaustive
}
}Configuration
Environment Variables
Variable | Description | Default |
| Custom storage directory |
|
| XDG base directory (Linux/macOS) | - |
| Windows AppData location | - |
Storage Location
Sessions and data are stored in a client-agnostic location:
~/.elenchus/
├── sessions/ # Verification sessions
├── baselines/ # Differential analysis baselines
├── cache/ # Response cache
└── safeguards/ # Quality safeguards dataPriority Order:
$ELENCHUS_DATA_DIR- Explicit override$XDG_DATA_HOME/elenchus- XDG spec%LOCALAPPDATA%\elenchus- Windows~/.elenchus- Default fallback
Custom Storage
# Set custom location
export ELENCHUS_DATA_DIR=/path/to/custom/storage
# Or use XDG spec
export XDG_DATA_HOME=~/.local/shareSession Cleanup
Sessions are preserved as audit records. Manual cleanup:
rm -rf ~/.elenchus/sessions/*
# Or for specific sessions
rm -rf ~/.elenchus/sessions/2026-01-17_*Architecture
┌─────────────────────────────────────────────────────────────────────┐
│ ELENCHUS MCP SERVER │
├─────────────────────────────────────────────────────────────────────┤
│ │
│ ┌──────────────────────────────────────────────────────────────┐ │
│ │ MCP PROTOCOL LAYER │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ ┌──────────────┐ │ │
│ │ │ Tools │ │Resources │ │ Prompts │ │ Notifications│ │ │
│ │ │ (36) │ │ (URI) │ │ (5) │ │ (optional) │ │ │
│ │ └────┬─────┘ └────┬─────┘ └────┬─────┘ └──────────────┘ │ │
│ └───────┼─────────────┼─────────────┼──────────────────────────┘ │
│ │ │ │ │
│ ┌───────┴─────────────┴─────────────┴──────────────────────────┐ │
│ │ CORE MODULES │ │
│ │ Session Manager │ Context Manager │ Mediator System │ │
│ │ Role Enforcement │ Issue Lifecycle │ Pipeline (Tiered) │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │ │
│ ▼ │
│ ┌──────────────────┐ │
│ │ STORAGE │ │
│ │ ~/.elenchus/ │ │
│ └──────────────────┘ │
└─────────────────────────────────────────────────────────────────────┘Module Responsibilities
Module | Purpose |
Session Manager | Create, persist, and manage verification sessions |
Context Manager | Collect and organize target files and dependencies |
Mediator System | Multi-language dependency graphs (tree-sitter), issue detection, interventions |
Role Enforcement | Ensure Verifier↔Critic alternation, validate compliance |
Issue Lifecycle | Track issue states from RAISED to RESOLVED |
Pipeline | Tiered verification (screen → focused → exhaustive) |
Security
Security Model
Elenchus operates with the following security considerations:
No Code Execution: Elenchus does NOT execute the code it verifies. It performs static analysis only.
Local Storage: All session data is stored locally in
~/.elenchus/. No data is sent to external servers.Path Validation: All file paths are validated to prevent path traversal attacks.
No Secrets in Output: Tool outputs are sanitized to avoid exposing sensitive data.
Permissions
Elenchus requires:
Read access to target files for verification
Write access to
~/.elenchus/for session storage
Reporting Security Issues
Please report security vulnerabilities via GitHub Security Advisories.
Troubleshooting
Common Issues
Symptom: Your MCP client doesn't recognize Elenchus commands or tools.
Solutions:
Verify installation in your client's MCP settings
Restart your MCP client after adding the server
Check config syntax (JSON must be valid)
Ensure Node.js ≥18 is installed:
node --version
Symptom: Error "Session not found: xxx"
Solutions:
List active sessions:
Read elenchus://sessions/Sessions may have been cleaned up - start a new session
Verify session ID is correct (check for typos)
Symptom: Cannot read files or write sessions.
Solutions:
Check file permissions on target directory
Verify write access to
~/.elenchus/:ls -la ~/.elenchus/Try custom storage location:
export ELENCHUS_DATA_DIR=/tmp/elenchus
Symptom: Round rejected due to compliance score.
Solutions:
Check current role requirements:
elenchus_get_role_prompt({ role: "verifier" })Lower minimum compliance score:
elenchus_update_role_config({ sessionId: "...", minComplianceScore: 50, strictMode: false })Ensure role alternation (Verifier → Critic → Verifier)
Debugging
Use MCP Inspector for debugging:
npm run inspector
# or
npx @modelcontextprotocol/inspector node dist/index.jsGetting Help
Issues: GitHub Issues
Discussions: GitHub Discussions
Development
Build Commands
npm run build # Compile TypeScript to dist/
npm run dev # Watch mode with auto-rebuild
npm run start # Run the compiled server
npm run inspector # Launch MCP Inspector for debuggingProject Structure
elenchus-mcp/
├── src/
│ ├── index.ts # Entry point, MCP server setup
│ ├── tools/ # Tool definitions and handlers
│ ├── resources/ # Resource definitions
│ ├── prompts/ # Prompt templates
│ ├── types/ # TypeScript interfaces
│ ├── state/ # Session and context management
│ ├── mediator/ # Multi-language dependency analysis (tree-sitter)
│ ├── roles/ # Role enforcement
│ ├── config/ # Configuration constants
│ ├── cache/ # Response caching
│ ├── chunking/ # Code chunking
│ ├── diff/ # Differential analysis
│ ├── pipeline/ # Tiered verification
│ └── safeguards/ # Quality safeguards
├── dist/ # Compiled output
├── package.json
├── tsconfig.json
└── README.mdContributing
Contributions welcome! Please:
Fork the repository
Create a feature branch
Submit a pull request
License
MIT
Available Tools
36 toolselenchus_apply_fixA
Apply a fix for an issue within the current session. Creates checkpoint, updates issue status, refreshes file context, and optionally triggers re-verification. Use this to maintain fix-verify continuity without starting new sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| issueId | Yes | Issue ID being fixed | |
| fixDescription | Yes | Description of the fix applied | |
| filesModified | Yes | List of files modified | |
| triggerReVerify | No | Whether to trigger re-verification after fix |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden and discloses multiple behavioral traits: creates checkpoint, updates issue status, refreshes file context, optionally triggers re-verification. Does not cover error conditions or authorization needs, but provides strong transparency for core actions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, first states action and sub-actions, second provides usage guidance. No redundant words, every sentence earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Covers main functionality and usage context. Missing output details (no output schema), but given it's an action tool, the description is sufficiently complete for an agent to understand purpose and behavior.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, baseline is 3. Description adds value by explaining the integrated workflow (fix application, checkpoint, context refresh), giving higher-level context to parameters like sessionId and issueId beyond their schema descriptions.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the tool applies a fix for an issue within the current session, lists specific sub-actions (creates checkpoint, updates issue status, etc.), and distinguishes from siblings by emphasizing continuity without starting new sessions.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Provides explicit guidance on when to use: to maintain fix-verify continuity within a session. Explicitly contrasts with starting new sessions, but does not mention when not to use or list alternative tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_check_convergence_allowedB
Check if session convergence is allowed based on quality safeguards.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| strictMode | No | Use strict quality requirements |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, and the description does not disclose key behaviors beyond a vague reference to 'quality safeguards'. It does not state whether the tool is read-only, what triggers a denial, or any 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, front-loaded sentence with no redundant information. It efficiently conveys the tool's purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description lacks detail on return values. For a simple check tool, it might be considered adequate, but it does not explain what 'allowed' means or what the boolean response indicates.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so parameters are fully defined. The description adds minimal value beyond the schema, only mentioning 'quality safeguards' without linking to parameters. Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool checks if session convergence is allowed based on quality safeguards. It uses a specific verb ('Check') and resource, and distinguishes from siblings like 'elenchus_evaluate_convergence' which likely performs a different evaluation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as 'elenchus_evaluate_convergence' or other safeguard-related tools. The description does not include conditions, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_checkpointB
Create a checkpoint for potential rollback.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must disclose behavioral traits but only states the action. It omits critical details such as whether the checkpoint overwrites previous ones, if it is destructive, or any authorization requirements.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single, concise sentence that immediately conveys the core function. No extraneous words or redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity of the tool (one parameter, no output schema), the description covers the basic purpose. However, it lacks context on checkpoint lifecycle, limits, or relationship with rollback tool, which would improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with a single 'sessionId' parameter described. The description adds no additional meaning beyond the schema, so a baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly uses the verb 'Create' and the resource 'checkpoint', with the purpose of facilitating potential rollback. This distinguishes it from sibling 'elenchus_rollback', which performs the actual rollback action.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives like 'elenchus_rollback'. There is no mention of prerequisites, typical context, or when not to use it, which limits its utility for an agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_clear_cacheB
Clear all cached verification results. Requires confirm: true.
| Name | Required | Description | Default |
|---|---|---|---|
| confirm | Yes | Confirm cache clear operation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are present, so the description must fully disclose behavioral traits. It only states the action and the confirmation requirement, but does not discuss effects on ongoing operations, irreversibility, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short (two sentences) and front-loaded with the purpose. It is efficient, though could benefit from minimal structure like bullet points for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description does not explain what the tool returns or confirm success/failure. It also lacks context on side effects or whether the operation is reversible. For a destructive action, more completeness is needed.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, and the description's mention of 'Requires confirm: true' adds no new meaning beyond what the schema's parameter description already provides. It simply restates the requirement.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('Clear all cached verification results') with a specific verb and resource. It distinguishes from siblings like `elenchus_get_cache_stats` which is for reading, while this tool is for clearing.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description mentions the requirement for confirm: true, which provides some usage guidance. However, it does not specify when to use this tool over alternatives or mention any prerequisites or side effects.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_complete_tierC
Mark the current tier as complete and check for auto-escalation based on issues found.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| filesVerified | Yes | Number of files verified | |
| issuesFound | Yes | Total issues found | |
| criticalIssues | Yes | Critical issues found | |
| highIssues | Yes | High issues found | |
| tokensUsed | Yes | Tokens used in this tier | |
| timeMs | Yes | Time taken in milliseconds |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description must fully disclose behavior. It mentions marking complete and auto-escalation but does not explain side effects, reversibility, or what triggers escalation. This is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that is front-loaded with the main action. It is efficient and avoids unnecessary words, though it could benefit from slightly more structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given 7 required parameters and no output schema or annotations, the description is incomplete. It does not explain what auto-escalation entails, what the return value is, or how the tool integrates with the larger pipeline (e.g., does it trigger elenchus_escalate_tier?).
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds slight value by linking auto-escalation to issues found, but most parameter meaning is already in the schema. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (mark complete) and the resource (current tier), and mentions auto-escalation, which distinguishes it from manual escalation tools. However, it does not explicitly differentiate from siblings like elenchus_escalate_tier.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives, such as elenchus_escalate_tier or elenchus_check_convergence_allowed. The description lacks context for when marking complete is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_configure_optimizationC
Configure token optimization settings including compression, context management, and semantic caching.
| Name | Required | Description | Default |
|---|---|---|---|
| compression | No | Compression settings | |
| context | No | Context management settings | |
| semanticCache | No | Semantic caching settings |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure, but it only says 'Configure' without detailing side effects, persistence, immediacy of changes, or whether it requires an active session.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single 10-word sentence, very concise and to the point. No superfluous content, though it could be expanded slightly for clarity.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool is complex with three nested objects and many properties, but the description is extremely high-level. It lacks explanation of defaults, effects, or relationships with sibling tools like elenchus_set_compression_mode.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% with each nested object having a brief description (e.g., 'Compression settings'). The description only mirrors those labels without adding meaning about what the settings do (e.g., modes like 'full' vs 'compact'). Thus it adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description states a clear verb+resource ('Configure token optimization settings') and lists three main categories (compression, context management, semantic caching). However, it does not differentiate from the sibling tool 'elenchus_set_compression_mode' which covers a subset of this functionality.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives, no prerequisites, and no context about appropriate usage scenarios.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_end_sessionB
End the verification session with a final verdict.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| verdict | Yes | Final verdict: must be exactly "PASS", "FAIL", or "CONDITIONAL" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must disclose behavioral traits. It only says 'with a final verdict' but does not explain side effects, irreversibility, or what happens to the session after ending. 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundant words, front-loaded with verb and resource. Efficient and to the point.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Despite simplicity, the description omits behavioral context and return value. With no output schema, it should clarify what the tool returns (e.g., success confirmation). Incomplete for a self-contained definition.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline is 3. The description adds no extra meaning beyond the schema; parameters are sufficiently described in the schema itself.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'End' and resource 'verification session', and specifies it requires a 'final verdict'. This distinguishes it from sibling tools like elenchus_start_session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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, nor any prerequisites or conditions. The description only states the action, leaving the agent to infer usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_escalate_tierA
Manually escalate to a higher verification tier (screen → focused → exhaustive).
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| targetTier | Yes | Target tier to escalate to: "focused" or "exhaustive" | |
| reason | Yes | Reason for escalation | |
| scope | No | Files to focus on (if any) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description adds minimal behavioral context beyond the tool name; it does not disclose side effects, permissions, or reversibility, which is 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.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that efficiently conveys the tool's action, though it lacks structure or additional sections that could be beneficial.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The tool has no output schema and multiple siblings; the description fails to mention return values, side effects, or prerequisites, making it incomplete for an agent to use confidently.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
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 contextualizing the targetTier enum values (screen → focused → exhaustive), clarifying the escalation hierarchy.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (manually escalate) and the resource (verification tier), along with the progression from screen to focused to exhaustive, which distinguishes it from sibling tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (manual escalation) but does not provide explicit guidance on when not to use or mention alternatives, leaving the agent to infer context from sibling names.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_estimate_savingsC
Estimate potential token savings for a verification session.
| Name | Required | Description | Default |
|---|---|---|---|
| totalTokens | Yes | Total tokens before optimization | |
| expectedRounds | Yes | Expected number of rounds | |
| sessionType | No |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided and description does not disclose behavioral traits such as side effects, required permissions, or whether it modifies state. The tool is purely estimative, but this is not explicitly stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence is concise and front-loaded. However, the description is too brief and omits important context that could be added without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema or behavioral details. The description is incomplete for an agent to fully understand usage, especially without annotations. Missing information about return format and when to invoke.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 67% with two parameters having clear descriptions. The tool description adds no additional meaning beyond schema. The optional sessionType parameter lacks description, but its enum provides some guidance.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the action (estimate) and resource (token savings for a verification session). It distinguishes itself from sibling tools like get_optimization_stats which report stats rather than estimate savings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. There is no mention of prerequisites or context for estimation.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_evaluate_convergenceC
Get LLM evaluation prompt for convergence quality assessment. Returns a prompt to send to an LLM.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID to evaluate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It states the tool returns a prompt (indicates read-only behavior) but does not explain side effects, required permissions, or what 'convergence quality assessment' entails. Behavior is minimally disclosed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences long and avoids redundancy. It is front-loaded with the core purpose. However, it could be slightly more informative without adding length.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema is provided, yet the description only briefly mentions the output is a prompt. It does not explain what the prompt contains, how to use it with sibling tools like elenchus_submit_llm_evaluation, or the context of convergence assessment. This leaves gaps for the agent.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has one parameter (sessionId) with a description. Schema coverage is 100%, so the description adds no additional meaning beyond the schema. Baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool returns an LLM evaluation prompt for convergence quality assessment. It uses a specific verb ('Get') and resource ('LLM evaluation prompt'), but does not differentiate from sibling evaluation tools like elenchus_evaluate_edge_cases or elenchus_evaluate_severity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description gives no explicit guidance on when to use this tool versus alternatives. It implies use for convergence quality assessment but does not mention when not to use it or reference sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_evaluate_edge_casesA
Get LLM evaluation prompt for edge case coverage. Returns a prompt to send to an LLM.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID to evaluate |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description partially handles behavioral disclosure by stating that the tool returns a prompt (not performing evaluation directly). However, it does not discuss authorization needs, side effects, or conditions under which the prompt is generated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundancy. The essential information is front-loaded efficiently.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no nested objects), the description adequately covers what the tool does and what it returns. It could briefly explain 'edge case coverage' or how the prompt is structured, but remains mostly complete for a straightforward tool.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% and the description adds no extra meaning beyond what the schema already provides for the single parameter (sessionId). The description does not elaborate on format, constraints, or usage context for the parameter.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb (Get) and identifies the resource (LLM evaluation prompt for edge case coverage). It clearly distinguishes from sibling tools like elenchus_submit_llm_evaluation, which likely submits evaluations, while this tool generates a prompt.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives such as elenchus_evaluate_convergence or elenchus_evaluate_severity. It does not specify prerequisites, context, or when not to use it.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_evaluate_severityB
Get LLM evaluation prompt for issue severity assessment. Returns a prompt to send to an LLM.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| issueId | Yes | Issue ID to evaluate | |
| codeContext | No | Additional code context for evaluation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries full burden for behavioral disclosure. It only states it returns a prompt, but does not mention any side effects, read-only nature, required permissions, or rate limits. The tool likely reads data without modifying state, but this is not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise with two sentences, no filler, and front-loaded purpose. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has three parameters and no output schema, the description should explain the output format or content of the prompt. It does not. It is minimally adequate but leaves questions about what the prompt looks like. Lacks completeness for a tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so the schema already documents each parameter. The description adds no extra meaning beyond the parameter names and descriptions. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool gets an LLM evaluation prompt for issue severity assessment. The verb 'Get' and resource 'LLM evaluation prompt' are specific, and it distinguishes from siblings like elenchus_submit_llm_evaluation which actually submits evaluations.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives such as elenchus_evaluate_convergence or elenchus_submit_llm_evaluation. It only implies the prompt is for sending to an LLM, but does not explain when or why one would use this tool.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_generate_rolesA
Generate customized Verifier/Critic role prompts based on user requirements. This is a 3-step process:
detect_domain - Detects the verification domain from requirements
generate_verifier - Generates Verifier role (needs domain result)
generate_critic - Generates Critic role (needs verifier role)
Each step returns a prompt to send to an LLM. After all 3 steps, call elenchus_set_dynamic_roles with the results.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID to generate roles for | |
| step | Yes | Generation step: detect_domain → generate_verifier → generate_critic | |
| previousResult | No | JSON result from previous step (domain detection result for verifier, verifier role for critic) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Despite no annotations, the description discloses the multi-step behavioral process, including dependencies between steps and that each step returns a prompt for an LLM. It could mention side effects or statefulness, but the core behavior is well communicated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise, fitting the key information in a single paragraph with numbered steps. It is front-loaded with the purpose and then details the process, though a bulleted list could improve readability slightly.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema, the description adequately explains that each step returns a prompt to send to an LLM, and it mentions the final call to set_dynamic_roles. The process is fully covered, but more details on return formats could improve completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so the schema already describes all parameters. The description adds value by explaining the step enum order and the role of previousResult as the JSON result from the prior step, which goes beyond the schema's basic description.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool generates customized Verifier/Critic role prompts based on user requirements. It outlines the three-step process and distinguishes the tool from siblings by detailing the sequential steps and the final call to elenchus_set_dynamic_roles.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides explicit guidance on when to use the tool and the exact sequence of steps (detect_domain → generate_verifier → generate_critic). It also tells the user to call elenchus_set_dynamic_roles after all three steps, offering clear usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_get_cache_statsB
Get cache statistics including hit rate, total entries, and token savings.
| Name | Required | Description | Default |
|---|---|---|---|
| workingDir | No | Working directory (optional, for context) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so the description must convey behavioral traits. The verb 'get' implies read-only, but it does not explicitly state that the tool is non-destructive or safe. No side effects or costs are mentioned, which is acceptable for a simple stats retrieval but could be more explicit.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no redundancy, and effectively conveys the tool's purpose. However, it lacks any structured formatting (e.g., bullet points) that could aid scanning.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simple nature of the tool (one optional parameter, no output schema), the description adequately explains what the tool does and what statistics are returned. It does not specify the return format (e.g., JSON object), but the listed metrics provide sufficient context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has one optional parameter (workingDir) with a description, giving 100% schema description coverage. The tool description does not add any additional meaning beyond the schema's existing documentation, aligning with the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states it retrieves cache statistics and lists specific metrics (hit rate, total entries, token savings). The name and purpose differentiate from sibling tools like elenchus_clear_cache, but no explicit contrast is made with other get_* tools.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 elenchus_get_optimization_stats or elenchus_clear_cache. The agent receives no context about appropriate use cases or prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_get_contextB
Get current verification context including files, issues summary, and session state.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. The description implies a read operation ('Get') but does not explicitly state idempotency, side-effect-free behavior, or error conditions. It adds some context on what is included but not enough for full transparency.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence that front-loads the purpose and includes key elements. No wasted words; perfectly concise.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple get tool with one parameter and no output schema, the description covers the main components of the context (files, issues summary, session state). Could mention return format or error behavior, but adequate for the complexity.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema provides 100% coverage with one parameter 'sessionId' described as 'Session ID'. The description adds no additional meaning beyond the schema, so baseline 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states 'Get current verification context' with specific items 'files, issues summary, and session state.' It is specific and distinguishes from other tools like 'elenchus_get_issues' by mentioning a broader scope, though it could be more explicit about differentiation.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. It does not mention prerequisites, exclusions, or context for use among 30+ sibling tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_get_diff_summaryA
Get differential analysis summary for a project. Shows what has changed since the last verification and estimates token savings.
| Name | Required | Description | Default |
|---|---|---|---|
| workingDir | Yes | Working directory for the project | |
| baseRef | No | Base reference: "last-verified", commit hash, or branch (default: last-verified) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided; description does not disclose whether the tool is read-only, has side effects, or requires specific permissions. Minimal behavioral insight beyond the function purpose.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences with no redundant information. Front-loaded with purpose and outcome.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema; description says 'differential analysis summary and token savings' but does not specify return format or structure. Adequate for a simple tool but could be more complete.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so description adds no additional parameter meaning. Baseline score of 3 applies; description repeats default value for baseRef but does not provide new info.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states the verb 'Get', resource 'differential analysis summary', and what it does (shows changes, estimates token savings). Differentiates from siblings like elenchus_get_issues or elenchus_get_project_history.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Implies usage for checking changes since last verification but does not explicitly state when to use this tool versus alternatives like elenchus_get_project_history or elenchus_get_issues.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_get_issuesB
Get issues from the current session with optional filtering.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| status | No | Filter issues: "all", "unresolved", or "critical" | all |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description carries the full burden of behavioral disclosure. It does not state whether the operation is read-only, what side effects exist, or any potential latency or pagination behavior. The word 'Get' implies read-only but no explicit confirmation.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is very short at one sentence, but it includes the key elements (verb, resource, optional filter). It is not overly verbose, though it could be slightly more informative without losing conciseness.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the simplicity (2 params, no output schema), the description is minimal. It does not explain what 'issues' are, the format of the response, or any constraints. While functional, it leaves many details unspecified.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with clear parameter descriptions. The description adds no new meaning beyond the schema, just a restatement of optional filtering. Baseline score of 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Get' and the resource 'issues from the current session', with optional filtering. It effectively distinguishes from sibling tools like elenchus_get_context or elenchus_get_diff_summary by focusing on issues.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. The description does not mention prerequisites, exclusions, or context for selecting among many getter siblings on the server.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_get_optimization_statsB
Get current token optimization statistics and recommendations.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID to get stats for |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries full burden for behavioral traits. It implies a read operation but does not explicitly state read-only, safety, side effects, or permissions needed. Lacks depth for a mutation-free tool.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single, clear sentence with no unnecessary words. Efficiently communicates the purpose.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema exists; description doesn't detail type or contents of 'statistics and recommendations'. With many sibling tools, lacks context for when this tool is appropriate. Adequate but not thorough.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100% (one parameter with description). The tool description adds no extra meaning beyond what the schema already provides, so baseline score of 3 applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb ('Get') and resource ('token optimization statistics and recommendations'), clearly distinguishing from sibling tools which involve other actions like applying fixes, checking convergence, etc.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance on when to use this tool vs alternatives. The description does not mention context, prerequisites, or when not to use it, leaving the agent without usage direction.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_get_pipeline_statusB
Get current tier pipeline status including completed tiers, escalations, and token usage.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should disclose behavioral traits. It only implies a read operation via 'Get' but does not explicitly state safety, side effects, or permissions. This is minimal disclosure.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 11 words, front-loading the core purpose and including key output details without any fluff.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema or annotations, the description adequately conveys the basic purpose and what is included in the status, but lacks details on return structure, potential errors, or how sessionId affects results.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% for the single parameter sessionId, which is described as 'Session ID' in the schema. The description adds no further meaning, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action 'Get' and the resource 'current tier pipeline status', and specifies included details (completed tiers, escalations, token usage). This distinguishes it from sibling tools that perform actions like applying fixes or checking convergence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. It does not mention prerequisites, context, or cases where a different tool should be used.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_get_project_historyB
Get verification history for a project including past sessions and baselines.
| Name | Required | Description | Default |
|---|---|---|---|
| workingDir | Yes | Working directory for the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries full burden. It only states what the tool returns (history) but does not disclose whether it is read-only, any side effects, output format, or limitations.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that directly states purpose without extraneous words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and many siblings, the description lacks details about the return structure, pagination, or what constitutes history. It is insufficient for an AI agent to understand all usage contexts.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% with one parameter described as 'Working directory for the project'. The description adds no extra meaning beyond the schema, meeting baseline but not exceeding it.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'Get' and identifies the resource 'verification history for a project', clearly distinguishing it from siblings like elenchus_get_context or elenchus_get_diff_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Siblings exist for similar purposes (e.g., elenchus_get_context), but the description does not differentiate usage context or provide exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_get_role_promptA
Get detailed role prompt and guidelines for Verifier or Critic. Includes mustDo/mustNotDo rules, output templates, and checklists.
| Name | Required | Description | Default |
|---|---|---|---|
| role | Yes | Role to get prompt for: must be "verifier" or "critic" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description bears full responsibility. It describes the output content but does not explicitly state that the operation is read-only, idempotent, or free of side effects. Since it is a getter, the agent might infer it is safe, but it is not stated.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is one efficient sentence with no fluff. It front-loads the purpose and includes specific content details. Every word adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema), the description adequately conveys what the tool returns and its structure (must-do/must-not-do rules, templates, checklists). It is complete enough for an agent to understand the tool's value, though it could mention if the prompt is static or configurable.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema already provides a complete description of the 'role' parameter (including enum and description at 100% coverage). The description adds no additional parameter semantics beyond confirming the roles. Per guidelines, baseline 3 when schema_coverage is high.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool retrieves detailed role prompts for 'Verifier' or 'Critic' and lists what it includes (rules, templates, checklists). It distinguishes from sibling tools by naming the specific roles, and the verb 'Get' indicates retrieval. No ambiguity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage: use when you need the prompt for a verifier or critic. However, it does not explicitly state when not to use it or mention alternatives among siblings (e.g., elenchus_generate_roles might be related). Lacks explicit guidance on context or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_get_safeguards_statusB
Get quality safeguards status including periodic verification, confidence, and sampling stats.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| projectId | Yes | Project ID (usually workingDir) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, and description lacks behavioral details like read-only nature, error handling, or required permissions.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, no unnecessary words, front-loaded with purpose and components.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
With no output schema, description mentions three output components but lacks structure or format; adequate for basic understanding but incomplete for direct invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers both parameters with descriptions, so baseline 3 applies; description does not add additional meaning beyond schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clear verb 'Get' and specific resource 'quality safeguards status' with listed components; distinguishes from sibling getters like get_cache_stats or get_context.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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; no mention of prerequisites or context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_mediator_summaryA
Get mediator summary including dependency graph stats, verification coverage, and intervention history.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided. The description indicates a read operation (via 'Get') and lists output content, but does not disclose potential side effects, authorization needs, or real-time constraints. It is minimally transparent.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single concise sentence that immediately states the function and key outputs, with no wasted words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a summary tool with one parameter and no output schema, the description covers the basics but omits details like data freshness, scope, or formatting. It is adequate but not comprehensive.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100% (one parameter), but the description adds no meaning beyond the schema's minimal 'Session ID'. Baseline score is 3 due to high coverage, but no additional value.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description specifies the verb 'Get', resource 'mediator summary', and lists included components (dependency graph stats, verification coverage, intervention history), clearly distinguishing it from sibling tools like 'get_diff_summary' or 'role_summary'.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 alternative summary tools (e.g., 'elenchus_role_summary'). The description lacks context for when a mediator summary is appropriate.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_record_sampling_resultB
Record results from random sampling verification of a skipped file.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| filePath | Yes | Path of the sampled file | |
| issuesFound | Yes | Number of issues found | |
| severities | Yes | Severities of issues found: array of "CRITICAL", "HIGH", "MEDIUM", or "LOW" |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided. Description does not disclose side effects, dependencies, or state requirements. Only states action 'record', omitting behavioral traits.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Single sentence, front-loaded with verb and object, no redundant information.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Lacks context about what 'random sampling verification' entails, workflow placement, and what happens after recording. Insufficient for a 4-parameter tool with no output schema.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema covers all parameters with descriptions. Description adds no additional meaning beyond schema. Baseline score applies.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states verb 'Record' and resource 'results from random sampling verification of a skipped file'. It uniquely identifies the tool's action among siblings.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. Does not mention prerequisites, exclusions, or related tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_ripple_effectA
Analyze ripple effect of a code change. Shows which files and functions will be affected by modifying a specific file.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| changedFile | Yes | File that will be changed | |
| changedFunction | No | Specific function that will be changed |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It states the tool shows affected files/functions but does not disclose whether it modifies state, requires specific permissions, or any side effects. As a read-heavy analysis tool, read-only behavior is implied but not confirmed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two concise sentences, front-loaded with the main action and output. No redundant or filler content, earning its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool has 3 parameters, no output schema, and no annotations, the description provides adequate context for purpose but lacks behavioral transparency and return format details. It covers the main functionality but leaves gaps in operational expectations.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema covers all 3 parameters with full description (100% coverage). Description adds minimal value beyond parameter names, mentioning 'specific file' and 'specific function' but not clarifying optionality of changedFunction or any additional constraints.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the tool analyzes ripple effects of code changes, specifying it shows affected files and functions. Verb 'analyze' and resource 'ripple effect' are well-defined, and it distinguishes from sibling tools focused on other operations like session management or convergence.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Description implies usage context: when you want to know impact of a code change. However, it does not specify when not to use it or mention alternative sibling tools like elenchus_get_diff_summary or elenchus_evaluate_severity. No explicit exclusions or recommendations.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_role_summaryB
Get role enforcement summary including compliance history, average scores, violations, and current expected role.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully disclose behavioral traits. It describes a read operation ('Get') and lists returned data, but fails to mention any side effects, permissions required, data freshness, or whether the session must be active.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence of 15 words, front-loaded with the core action 'Get role enforcement summary' and efficiently lists included data. No unnecessary words.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the tool's simplicity (1 parameter, no output schema, no annotations), the description adequately explains what the tool returns. However, it could mention that a valid sessionId is required and that no side effects occur.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% description coverage for the sole parameter 'sessionId', described as 'Session ID'. The description does not add any additional semantic meaning beyond the schema, meeting the baseline of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool's purpose: 'Get role enforcement summary' with a specific list of included data (compliance history, average scores, violations, current expected role). This exactly defines what the tool does and distinguishes it from other sibling tools like elenchus_mediator_summary.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives. With many sibling tools covering different aspects of role management, an agent cannot determine the appropriate context for this tool without additional hints.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_rollbackC
Rollback session to a previous checkpoint.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| toRound | Yes | Round number to rollback to |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
The description 'Rollback session to a previous checkpoint' is minimal and does not disclose behavioral traits beyond the basic action. With no annotations provided, the description carries full burden, but it omits critical details: potential data loss, irreversibility, error handling (e.g., invalid session or round), or success confirmation. These gaps reduce agent trust.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is extremely concise (one sentence, 6 words). While it avoids unnecessary fluff, it is arguably too brief, missing key information that could be included without harming conciseness. It earns its place but does not efficiently convey all needed context.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of a rollback operation (destructive and potentially reversible only to certain points), the description is incomplete. There is no output schema to explain return values, and the description does not cover edge cases, side effects, or error conditions. An agent might misuse this tool without more context.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema covers both parameters with descriptions (sessionId and toRound). Since schema coverage is 100%, the description adds no additional meaning beyond what the schema already provides. According to guidelines, baseline is 3, and this is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description uses a specific verb 'rollback' and clearly names the resource 'session to a previous checkpoint'. This makes the tool's purpose immediately apparent. However, it does not explicitly distinguish from sibling tools like 'elenchus_checkpoint', which might be related to creating checkpoints, but the action is distinct enough.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
No guidance is provided on when to use this tool versus alternatives. There is no mention of prerequisites, such as having a checkpoint created, or when rolling back is appropriate. The description lacks any context for an agent to decide between 'elenchus_rollback' and other session management tools.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_save_baselineA
Save verification baseline after a successful session. This baseline is used for differential analysis in future verifications to only check changed code.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID of successful verification to use as baseline | |
| workingDir | Yes | Working directory for the project |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description carries the full burden. It mentions the baseline is used for differential analysis, but does not disclose whether it overwrites previous baselines, requires specific permissions, or what happens on failure. Basic behavioral context is present but incomplete.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is two sentences, front-loaded with the primary action, and contains no unnecessary words. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
For a simple save tool with only two parameters and no output schema, the description provides adequate context about its purpose and usage. However, it lacks details on potential side effects (e.g., overwriting) and prerequisites, which would be helpful for completeness.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage for its two parameters (sessionId, workingDir), so the schema already documents their meanings. The description adds no additional detail beyond what is in the schema, earning a baseline score of 3.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action ('save') and the resource ('verification baseline'), and explains its purpose for differential analysis. It distinguishes itself from sibling tools by focusing specifically on saving a baseline after a successful session.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description indicates it should be used 'after a successful session' and for future verifications, but does not explicitly state when not to use it or mention alternative tools. The context is clear but lacks explicit exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_set_compression_modeC
Set the response compression mode for token optimization. Use "compact" for moderate savings or "minimal" for aggressive savings.
| Name | Required | Description | Default |
|---|---|---|---|
| mode | Yes | Compression mode: full (no compression), compact (moderate), minimal (aggressive) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations provided, the description carries the full burden of disclosing behavioral traits. It only restates the primary purpose and partially describes the modes, but fails to mention side effects, reversibility, or any other behavioral implications of changing compression modes.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is concise at two sentences, front-loaded with the main purpose. It could be improved by including all three modes, but overall it is not verbose and efficiently communicates the core action.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the single parameter, full schema coverage, and no output schema, the description is adequate for a basic understanding. However, it omits the 'full' mode, which is a clear gap that could mislead an agent into thinking only two modes exist.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so baseline is 3. The description adds marginal value by rephrasing 'compact' and 'minimal' effects, but it omits the 'full' option and repeats information already in the schema, thus not significantly enhancing understanding.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Set' and the resource 'response compression mode' with the goal of 'token optimization'. It distinguishes from sibling tools by its unique purpose, but it omits mention of the 'full' mode option, which slightly reduces clarity.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternatives like elenchus_configure_optimization. It does not mention exclusions or prerequisites, leaving the agent with only implied usage context.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_set_dynamic_rolesA
Set dynamically generated roles for a session. Call this after completing all 3 steps of elenchus_generate_roles. The roles will be used automatically by getRolePrompt when sessionId is provided.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| domainResult | Yes | JSON string of domain detection result | |
| verifierRole | Yes | JSON string of generated verifier role | |
| criticRole | Yes | JSON string of generated critic role |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description must bear behavioral disclosure. It states the roles will be used automatically, but does not cover side effects, error behavior, or overwrite semantics. Adequate but not rich.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Three sentences: purpose, precondition, downstream usage. No redundant information, highly efficient.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
No output schema, but description explains role in workflow. All parameters documented in schema. Lacks error handling or out-of-order invocation details, but sufficient for a step in a multi-step process.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema descriptions cover all 4 parameters (100% coverage), but are minimal. The tool description adds no extra parameter-specific meaning beyond the schema, so baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Clearly states it sets dynamically generated roles for a session, uses specific verb 'Set' with clear resource. Distinguishes from sibling elenchus_generate_roles by positioning as post-generation step.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
Explicitly says to call after completing all 3 steps of elenchus_generate_roles, and explains downstream use by getRolePrompt. Does not explicitly mention when not to use, but precondition is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_start_reverificationA
Start a re-verification session for resolved issues. Links to a previous verification session and focuses on verifying that fixes are correct and complete. Returns focused verification context with target issues.
| Name | Required | Description | Default |
|---|---|---|---|
| previousSessionId | Yes | ID of the original verification session | |
| targetIssueIds | No | Specific issue IDs to re-verify (if empty, all resolved issues) | |
| workingDir | Yes | Working directory for relative paths | |
| maxRounds | No | Maximum rounds for re-verification (default: 6) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
With no annotations, the description should fully disclose behavior. It mentions starting a session and returning context but does not cover side effects, prerequisites, idempotency, or error conditions, leaving some ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is three sentences, front-loaded with the core purpose, and no extraneous information. Every sentence adds value.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
The description covers the main functionality and return value. Given 4 parameters, 2 required, and no output schema, it is adequate but could elaborate on optional behavior and prerequisites.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so baseline 3. The description adds no extra parameter-specific information beyond what the schema already provides (e.g., default for maxRounds is already in schema).
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool starts a re-verification session for resolved issues, linking to a previous verification session. It distinguishes itself from siblings like elenchus_start_session by specifying it is for re-verifying fixes.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies when to use (for resolving issues from a previous session) but does not explicitly state when not to use or compare to alternatives. Given the sibling set, the usage context is clear enough.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_start_sessionB
Start a new Elenchus verification session. Collects initial context, builds dependency graph, and initializes mediator.
| Name | Required | Description | Default |
|---|---|---|---|
| target | Yes | Target path to verify (file or directory) | |
| requirements | Yes | User verification requirements | |
| workingDir | Yes | Working directory for relative paths | |
| maxRounds | No | Maximum rounds before forced stop | |
| verificationMode | No | Verification mode configuration for controlling convergence behavior. Use "fast-track" or "single-pass" for one-shot verification. | |
| differentialConfig | No | Differential analysis configuration. When enabled, only verifies code that has changed since the last verification baseline. | |
| cacheConfig | No | Response caching configuration. When enabled, caches verification results to skip re-verification of unchanged files. | |
| chunkingConfig | No | Selective context configuration. When enabled, chunks files into function-level pieces for more efficient verification. | |
| pipelineConfig | No | Tiered pipeline configuration. When enabled, uses screen→focused→exhaustive verification tiers with auto-escalation. | |
| safeguardsConfig | No | Quality safeguards configuration. Ensures verification quality when using optimizations (caching, chunking, tiered). | |
| dynamicRoleConfig | No | Dynamic role generation configuration. When enabled, generates customized Verifier/Critic roles based on requirements using LLM. | |
| llmEvalConfig | No | LLM-based evaluation configuration. When enabled, uses LLM reasoning for convergence, severity, edge case, and false positive evaluation. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It mentions what the tool does internally but does not disclose side effects like state changes, resource locking, authentication needs, or error conditions. For a session-starting tool, more behavioral context is needed.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is short (1 sentence plus two fragments) and front-loaded with the core action. It is not verbose but could be slightly restructured for clarity. Overall, efficient but missing some organizational structure.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity (12 parameters, many nested objects), the description is too sparse. It does not explain the relationship between the many configuration options or what the session returns. No output schema, so return values are undocumented. A more complete summary of available configurations is warranted.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema coverage is 100%, so each parameter has a description. The tool-level description adds a high-level purpose ('collects initial context, builds dependency graph') but does not explain individual parameters beyond the schema. Baseline is 3; description does not significantly enhance meaning.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool starts a new Elenchus verification session, with specific actions (collect context, build dependency graph, initialize mediator). It uses a strong verb-resource pair 'Start a new Elenchus verification session' and distinguishes itself from sibling tools like end_session or start_reverification.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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. While it implies it is the first step in a verification workflow, it does not specify prerequisites, conditions, or mention when not to use it (e.g., if a session already exists).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_submit_llm_evaluationB
Submit LLM evaluation response. Call this after receiving an LLM response to an evaluation prompt.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| evaluationType | Yes | Type of evaluation | |
| llmResponse | Yes | LLM response to the evaluation prompt | |
| targetId | No | Target ID (issue ID for severity/falsePositive evaluations) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must disclose behavior. It only states the action ('submit') without explaining side effects, state changes, authorization needs, or consequences. This leaves the agent uninformed about what this mutation entails.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single sentence that conveys the core purpose and usage timing. It is efficient but could be slightly more structured or include a brief note on required parameters. No extraneous content.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the absence of annotations and output schema, the description is incomplete. It does not explain what happens after submission (e.g., confirmation, state change), prerequisites, or error conditions. A submission tool requires more context for safe invocation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema has 100% coverage with descriptions for all parameters. The tool description adds no additional parameter-level context beyond what the schema provides, meeting the baseline for high coverage.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the tool submits an LLM evaluation response and specifies when to call it (after receiving an LLM response). This distinguishes it from sibling tools like elenchus_evaluate_* which perform the evaluation itself.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies usage context ('after receiving an LLM response to an evaluation prompt') but does not explicitly state when not to use it or mention alternative tools. The agent must infer from the tool name and siblings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_submit_roundA
Submit the output of a verification round. Analyzes for new issues, context expansion, convergence, and mediator interventions.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| role | Yes | Role of this round: must be "verifier" or "critic" | |
| output | Yes | Complete output from the agent | |
| issuesRaised | No | New issues raised in this round | |
| issuesResolved | No | Issue IDs resolved in this round |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must carry the burden. It discloses that the tool analyzes for new issues, context expansion, convergence, and mediator interventions, which adds behavioral context. However, it does not mention side effects, error handling, or required permissions. The transparency is moderate but not comprehensive.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Two sentences: the first clearly states the action, the second adds key analytical purpose. No redundant or irrelevant information. Every word earns its place.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given the complexity of the tool (5 parameters, no output schema, no annotations), the description provides a high-level overview but lacks detail on how to structure inputs or what the analysis results look like. It is adequate for basic understanding but not fully complete for an agent to use without schema inspection.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Schema description coverage is 100%, so parameters are well-documented in the schema. The tool description adds no additional semantic value beyond what the schema provides. For example, it does not explain how to format issuesRaised or the meaning of 'output.' Baseline 3 is appropriate.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the verb 'Submit' and the resource 'output of a verification round,' and further specifies that it analyzes for new issues, context expansion, convergence, and mediator interventions. This distinguishes it from sibling tools like elenchus_get_issues (retrieval) and elenchus_evaluate_convergence (evaluation step).
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description implies the tool is used to submit round outputs and analyze results, but it does not explicitly state when to use it versus alternatives like elenchus_evaluate_convergence or elenchus_get_issues. There is no guidance on when not to use it or what prerequisites are needed.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_update_confidenceB
Update confidence scores for files based on verification method (cache, chunk, tiered, etc.).
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| fileConfidences | Yes | Confidence scores for each file |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations are provided, so the description must fully inform about behaviors. It only says 'update confidence scores' but does not disclose whether the update overwrites or merges, whether it's idempotent, any required permissions, or effects on other data. This leaves significant behavioral ambiguity.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
The description is a single concise sentence that captures the core purpose without extraneous words. It is front-loaded and wastes no tokens.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no annotations and no output schema, the description fails to provide sufficient context for safe and correct usage. It omits behavioral details, error conditions, and side effects, making it incomplete for a mutation tool with multiple parameters.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
The input schema provides descriptions for all parameters (100% coverage). The description adds only the phrase 'based on verification method', which is already implied by the 'source' enum. Thus the description adds minimal value beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
The description clearly states the action (update) and the resource (confidence scores for files) and specifies the basis (verification method). It effectively distinguishes from siblings focused on other operations like apply_fix or clear_cache.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The description provides no guidance on when to use this tool versus alternative tools, such as when to use different verification methods or how it relates to other update operations. No exclusions or prerequisites are mentioned.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
elenchus_update_role_configC
Update role enforcement configuration. Can enable strict mode, change minimum compliance score, or toggle role alternation requirement.
| Name | Required | Description | Default |
|---|---|---|---|
| sessionId | Yes | Session ID | |
| strictMode | No | Reject non-compliant rounds | |
| minComplianceScore | No | Minimum compliance score (0-100) | |
| requireAlternation | No | Require verifier/critic alternation |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
No annotations provided, so description carries full burden. It indicates a mutation ('update') but fails to disclose any side effects, state changes, or required permissions. Lacks details on what happens if updating partial fields or whether changes are reversible.
Agents need to know what a tool does to the world before calling it. Descriptions should go beyond structured annotations to explain consequences.
Is the description appropriately sized, front-loaded, and free of redundancy?
Description is a single sentence, concise and direct. However, it could be slightly more structured by separating the purpose from the list of configurable items.
Shorter descriptions cost fewer tokens and are easier for agents to parse. Every sentence should earn its place.
Given the tool's complexity, does the description cover enough for an agent to succeed on first attempt?
Given no output schema and no annotations, the description should explain return values or success signals. It only mentions what can be updated, leaving the agent uninformed about the outcome of the operation.
Complex tools with many parameters or behaviors need more documentation. Simple tools need less. This dimension scales expectations accordingly.
Does the description clarify parameter syntax, constraints, interactions, or defaults beyond what the schema provides?
Input schema has 100% description coverage, so schema already explains each parameter. Description adds value by listing the three optional parameters together, reinforcing their group purpose, but does not provide new semantic details beyond the schema.
Input schemas describe structure but not intent. Descriptions should explain non-obvious parameter relationships and valid value ranges.
Does the description clearly state what the tool does and how it differs from similar tools?
Description clearly states the verb 'update' and the resource 'role enforcement configuration', listing specific configurable aspects. It distinguishes from siblings by saying 'role enforcement configuration', which is unique among the sibling tools listed.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
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 'elenchus_set_dynamic_roles' or 'elenchus_configure_optimization'. Does not specify prerequisites or conditions for use.
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.
36 tool updates
v1.3.0- First observed
elenchus_apply_fix - First observed
elenchus_check_convergence_allowed - First observed
elenchus_checkpoint - First observed
elenchus_clear_cache - First observed
elenchus_complete_tier - First observed
elenchus_configure_optimization - First observed
elenchus_end_session - First observed
elenchus_escalate_tier - First observed
elenchus_estimate_savings - First observed
elenchus_evaluate_convergence - First observed
elenchus_evaluate_edge_cases - First observed
elenchus_evaluate_severity - First observed
elenchus_generate_roles - First observed
elenchus_get_cache_stats - First observed
elenchus_get_context - First observed
elenchus_get_diff_summary - First observed
elenchus_get_issues - First observed
elenchus_get_optimization_stats - First observed
elenchus_get_pipeline_status - First observed
elenchus_get_project_history - First observed
elenchus_get_role_prompt - First observed
elenchus_get_safeguards_status - First observed
elenchus_mediator_summary - First observed
elenchus_record_sampling_result - First observed
elenchus_ripple_effect - First observed
elenchus_role_summary - First observed
elenchus_rollback - First observed
elenchus_save_baseline - First observed
elenchus_set_compression_mode - First observed
elenchus_set_dynamic_roles - First observed
elenchus_start_reverification - First observed
elenchus_start_session - First observed
elenchus_submit_llm_evaluation - First observed
elenchus_submit_round - First observed
elenchus_update_confidence - First observed
elenchus_update_role_config
TDQS
Scored across 36 tools
Most tools have clearly distinct purposes (e.g., start_session vs. start_reverification), but there is some overlap in concept among multiple 'get' tools and evaluation prompts that could cause minor confusion. Overall, descriptions help differentiate them.
All tools follow a consistent 'elenchus_verb_noun' pattern using snake_case. The naming is predictable and uniform across the entire tool set.
36 tools is on the higher side for an MCP server. While the domain (code verification) is complex, this many tools can overwhelm an agent. Some tools might be consolidated, but the scope justifies the count.
The tool surface covers the full verification lifecycle: session management, context gathering, role generation, evaluation prompts, result submission, rollback, caching, optimization, and history. No obvious gaps for the stated purpose.
Maintenance
Related MCP Connectors
Deterministic AI code review, with an audit record. Governance inside the agent loop.
Agentic code review, no signup to try: reality gates + frontier-model review, with veto.
Writes adversarial test suites for AI-built code. Your agent's test engineer.
Production-safety audits for AI-generated code, with a fix for every finding.
Related MCP Servers
AlicenseNot gradedqualityAmaintenanceEnables multi-agent code review with cross-verification of findings against source code, catching hallucinations and improving agent accuracy over time.75 npm41MIT- AlicenseAqualityDmaintenanceAdversarial review system that spawns three independent contrarian reviewers to catch issues before AI coding agents execute critical changes.35 npmMIT
- FlicenseAqualityDmaintenanceEnables adversarial collaboration between Claude and GPT for automated code critique, verification, and multi-round debate to improve output quality.3-
- AlicenseBqualityCmaintenanceAn MCP server that improves LLM reasoning through dialectical argumentation and generates verified code via a player-coach loop.4172MIT