Kilo-Kit
Kilo-Kit is a governed MCP server that supervises AI coding agents with workflow orchestration, persistent memory, curated skills, and gated code execution.
Orchestrate coding tasks through the C4 lifecycle, task-mode routing, and 4-tier gating.
Store and retrieve cross-session architectural facts, reflections, and memory reports in SQLite.
Search, load, validate, and synthesize curated skills across engineering, security, productivity, DevOps, and agent frameworks.
Safely read files, search files, and grep code with workspace-boundary protections.
Write, edit, and run commands only through hard-gated session-based tools with narration and security guardrails.
Perform structured reasoning with Tree-of-Thoughts stepping, adversarial plan grilling, and 5-Whys root-cause tracing.
Compact verbose context while preserving invariants and synthesize reusable skills from solved problems.
Inspect and reset Sentinel circuit-breaker state, step budgets, failure streaks, and grounded-file telemetry.
Benchmark solutions against industry/GitHub practices and triangulate research with DAG trade-offs and confidence scoring.
Provides GitHub-grounded research and benchmarking, using popular repository patterns and standards to audit and validate solution trajectories.
Allows agents to store, retrieve, and reflect on persistent memory facts, decisions, reflections, and task trajectories in a local SQLite database for continuous self-improvement.
Kilo-Kit
The Autonomous Cognitive Cortex & Governed Agency Substrate for AI Coding Agents
Kilo-Kit is an enterprise-grade Model Context Protocol (MCP) server and supervisor engine that transforms raw LLM coding assistants (GitHub Copilot, Cursor, Windsurf, Claude Code, Gemini CLI) into disciplined, self-correcting software engineers. It enforces grounded diagnostic probing, Tree-of-Thoughts DAG planning, cross-session memory via SQLite FTS5 BM25, and runtime supervisor guardrails to eliminate blind code edits and infinite loop thrashing.
Quick Start (30s) • Why Kilo-Kit? • Architecture • IDE Setup • Core Capabilities • Tools Reference • Skills Catalog
💡 Why Kilo-Kit?
The Crisis of Unbounded AI Agency
Modern LLMs are exceptional code generators, but when given autonomous tools without structural guardrails, they suffer from critical operational failure modes:
Blind Mutations (Ungrounded Edits): Agents modify files without reading their contents, dependencies, or type contracts, introducing silent architectural regressions.
The Infinite Thrashing Loop: When a test or build fails, the agent repeats the exact same failing edit 5 to 10 times in a row until credits or context windows are exhausted.
Context Collapse & Lost-in-the-Middle: Unbounded test dumps and terminal traces inject 50,000+ tokens of raw noise, causing severe attention degradation and hallucinated refactoring.
Agent Amnesia: Every new session starts from zero—past mistakes, verified bug fixes, and architectural decisions are completely forgotten across conversations.
The Solution: Governed Autonomy
Kilo-Kit acts as an intelligent supervisor sitting between the AI agent and your codebase, establishing a balance of Macro-Determinism (strict safety boundaries) with Micro-Agency (unconstrained local implementation freedom):
🛡️ Pre-Flight Grounding Lock: File modifications are physically rejected at the protocol level if the agent has not inspected the target file during the active session.
🛑 Circuit Breaker Tripwire: Automatically halts execution after 3 consecutive identical actions or repeated failures, forcing structured root-cause analysis.
✂️ Smart Truncation (20/80 Rule): Retains critical command flags, dynamically scans and preserves intermediate exceptions (
FAIL,TypeError,panic), and keeps final stack traces while streaming raw verbose output safely to disk.🧠 Persistent BM25 Memory: Every architectural decision, verified solution, and reflection is indexed in embedded SQLite FTS5 for sub-millisecond retrieval across future sessions.
Related MCP server: lnwjud
⚡ Quick Start (in 30 seconds)
1. Zero-Install Instant Setup
Run Kilo-Kit directly with npx to automatically detect and configure all installed IDEs on your machine:
npx @vodailocz/kilo-kit-mcp setupOr install globally for zero-latency local execution:
npm install -g @vodailocz/kilo-kit-mcp
kilo-kit-setup --local2. Verify System Health
Run the 18-point empirical diagnostic suite:
kilo-kit-doctor🏥 Kilo-Kit System Health Doctor [HEALTHY]
✅ PASS Node.js Runtime: Node.js meets requirement (>= 20.0.0).
✅ PASS CLI Global Binaries: All CLI binaries resolved in PATH.
✅ PASS SQLite Persistence: SQLite verified (14 tables, FTS5 BM25 active, integrity: ok).
✅ PASS Skill Library: Successfully indexed all 180/180 skills in repository.
✅ PASS Client: GitHub Copilot: Configured in ~/.copilot/mcp-config.json [Local linked binary]
✅ PASS Client: Cursor IDE: Configured in ~/.cursor/mcp.json [Local linked binary]
✅ PASS Client: Claude Code: Configured in ~/.claude.json [Local linked binary]
✅ PASS MCP Server Runtime: All 24 tools registered; functional probe executed successfully.
Summary: Kilo-Kit Doctor: 18/18 checks passed. Overall Status: HEALTHY🏛️ Architecture & C4 Protocol
Kilo-Kit establishes a strict separation of concerns between Cognitive Reasoning (Cortex), Supervisor Guardrails (Sentinel), and Safe I/O Execution (Limbs):
[ Host AI Agent: Cursor / Copilot / Windsurf / Claude / Gemini ]
│
stdio / JSON-RPC
▼
┌────────────────────────────────────────────────────────────┐
│ KILO-SENTINEL SUPERVISOR MIDDLEWARE │
│ • Pre-Flight Grounding Lock • Loop & Thrashing Tripwire│
│ • 20/80 Smart Log Truncation • Step Budget Enforcer │
└──────────────────────────┬─────────────────────────────────┘
│
┌──────────────────┴──────────────────┐
▼ ▼
┌─────────────────────────────┐ ┌──────────────────────────┐
│ KILO COGNITIVE CORTEX │ │ SAFE EXECUTION │
│ • 4-Tier Adaptive Gating │ │ • Atomic File Writers │
│ • Tree-of-Thoughts DAG │ │ • AST-Safe File Editors │
│ • 5-Whys Diagnostic Engine │ │ • Filtered Command Exec │
│ • 180 Curated Skills │ └──────────────────────────┘
└──────────────┬──────────────┘
▼
┌─────────────────────────────┐
│ SQLITE ATOMIC MEMORY │
│ • FTS5 BM25 Search Engine │
│ • Self-Authoring Skills │
│ • Cross-Session Knowledge │
└─────────────────────────────┘The C4 5-Gate Lifecycle
Every non-trivial coding task proceeds through a verifiable state machine:
flowchart LR
G1["<b>Gate 1: Grounded Probe</b><br/>• BM25 Memory Recall<br/>• Exploratory Read"]
G2["<b>Gate 2: Cognitive Reasoning</b><br/>• 3-Option ToT DAG<br/>• Adversarial Grill<br/>• 5-Whys Root Cause"]
G3["<b>Gate 3: Approval</b><br/>• Plan Locked<br/>• Skills Injected"]
G4["<b>Gate 4: Execution</b><br/>• Defense-in-Depth<br/>• Sentinel Guarded"]
G5["<b>Gate 5: 4D QA</b><br/>• Empirical Tests<br/>• SQLite Reflection"]
G1 --> G2
G2 --> G3
G3 --> G4
G4 --> G5
G4 -.->|3x Loop Detected| Breaker["🛑 Circuit Breaker<br/>(Supervised Reset)"]
Breaker -.-> G1Gate 1 (Grounded Probe): Recalls relevant past lessons via BM25 ranking and performs read-only codebase reconnaissance.
Gate 2 (Cognitive Reasoning): Formulates a 3-option trade-off hypothesis DAG (
kilo_think_step) and conducts adversarial stress-testing (kilo_grill_plan).Gate 3 (Approval & Skills): Locks the implementation plan and injects domain-specific expert workflows (
kilo_get_skill).Gate 4 (Guarded Execution): Performs surgical code edits backed by atomic writes and syntax validation.
Gate 5 (Empirical QA & Reflection): Validates changes with automated test runners and Playwright before persisting lessons into SQLite memory.
💻 IDE Integration Guide
Kilo-Kit integrates natively into any MCP-compliant editor or CLI agent.
Client | Configuration Path | Command Configuration |
Cursor IDE |
|
|
GitHub Copilot |
|
|
Claude Code & Desktop |
|
|
Windsurf IDE |
|
|
Google Antigravity & Gemini CLI |
|
|
OpenCode |
|
|
⚡ Core Capabilities
1. 🚦 4-Tier Adaptive Task Gating
Replaces rigid one-size-fits-all rituals with task-calibrated execution paths:
Tier 0 (Inspect): Read-only exploration, file searches, regex grep. Immediately ready with zero gate friction.
Tier 1 (Micro-fix): Single-line bug fixes, typo corrections, linter remediations. Fast-path authorization with lightweight validation.
Tier 2 (Feature): Multistage feature implementation and refactoring. Requires Tree-of-Thoughts DAG planning and skill injection.
Tier 3 (Critical): Database migrations, auth workflows, cross-cutting architectural changes. Enforces adversarial red-team grilling and human-in-the-loop checkpoints.
2. 🔍 SQLite FTS5 with BM25 Lexical Ranking
Persistent memory engineered for instant recall:
Sub-millisecond full-text retrieval across thousands of past trajectories, decisions, and reflections.
Native BM25 relevance ranking surfaces verified past bug fixes before planning starts.
Prevents agents from repeating mistakes made in previous sessions or branches.
3. ✍️ Self-Authoring Skills & Autonomous Evolution
Turns every hard-won bug fix into persistent institutional knowledge:
Upon resolving complex edge cases, Gate 5 reflections automatically synthesize reusable
SKILL.mdinstruction files.New skills are dynamically indexed and discoverable across all connected agents via
kilo_get_skill.
4. 🛡️ Kilo-Sentinel Loop & Thrashing Tripwire
Real-time supervisor middleware that protects developer credits and context:
Blocks file modifications on unread files (enforces grounding).
Detects repeated identical tool calls and edit thrashing, cutting off execution before runaway token burns occur.
Offloads complete execution transcripts to disk while enforcing concise, information-dense summaries.
🧰 MCP Tools Suite (24 Tools)
Kilo-Kit provides a comprehensive, battery-included suite of cognitive and execution tools:
Group | Tool | Description |
Orchestration & Memory |
| Enforces C4 lifecycle gates and 4-tier task classification. |
| Routes intent to optimal workflow chains and task modes. | |
| Loads curated | |
| High-precision keyword and semantic search across 180 skills. | |
| Inspects stored SQLite facts, reflections, and session state. | |
| Pins immutable architectural guidelines and ADRs into SQLite. | |
| Persists session lessons and indexes successes into BM25. | |
| Audits skill catalog for schema and structure conformance. | |
Cognitive Reasoning |
| Tree-of-Thoughts DAG reasoning with 3-option trade-off matrix. |
| Adversarial Red-Team stress testing (inversion & simplification). | |
| 5-Whys diagnostic engine with recursive causal back-propagation. | |
| Grounded synthesis combining memory, GitHub context, and DAGs. | |
| Compresses conversation state by 40-70% while locking invariants. | |
| Distills complex resolved patterns into new reusable skills. | |
Supervisor & Sentinel |
| Inspects circuit breaker state, grounded files, and step budget. |
| Resets tripped circuit breaker with mandatory causal explanation. | |
| Audits solution trajectory against established industry patterns. | |
Safe Execution Limbs |
| Safe reading with line slicing, size capping, and boundary checks. |
| Atomic write protected by Grounding Lock, code smell & secret checks. | |
| AST-aware target replacement with bracket & syntax validation. | |
| Guarded command execution with security filters and 20/80 truncation. | |
| High-speed glob pattern searching across workspaces. | |
| Line-by-line regex and pattern matching across repositories. | |
| Telemetry report on routing confidence, skill selection, and weights. |
📚 Curated Skills Catalog (180 Skills)
Domain-specific expert engineering workflows bundled directly into the engine:
engineering/(39 skills): Clean code standards, backend APIs, Next.js App Router, React patterns, Tailwind CSS v4, Better-Auth, ASP.NET Core, database schema design.problem-solving/(24 skills): Systematic debugging, 5-Whys root cause tracing, collision-zone thinking, inversion exercise, scale game, simplification cascades.productivity/(33 skills): Spec-driven development, TDD workflows, peer code review, plan writing, verification before completion, subagent delegation.agent-frameworks/(26 skills): Agent memory, agentic RAG, multi-agent orchestration, context optimization, workflow state machines, MCP agent patterns.security/(22 skills): AI guardrails, OWASP vulnerability scanner, red-team tactics, defense-in-depth validation, secret scanning.devops-cloud/(36 skills): Cloudflare edge deployment, Docker containers, server management, performance profiling, Playwright automated testing.
Fuzzy Alias Support: Calling kilo_get_skill("tdd"), kilo_get_skill("clean-code"), or kilo_get_skill("debugging") automatically resolves to the canonical skill path without requiring directory prefixes.
📊 Empirical Verification & Quality Benchmarks
Metric | Vanilla Agent (Prompt Only) | With Kilo-Kit | Enforcement Mechanism |
Silent Chained Tool Calls | 65% of turns (empty text) | 0% (100% Narrated) | Inter-Tool Narration Badge & Guard |
Ungrounded Blind Edits | 42% of sessions | 0% (100% Blocked) | Pre-Flight Grounding Lock |
Infinite Thrashing Loops | Frequent on hard test failures | Terminated at 3 repeats | Kilo-Sentinel Circuit Breaker |
Token Longevity | Degrades at >30k tokens | Sustained >150k tokens | Smart 20/80 Truncation & Compaction |
Cross-Session Memory | 0% (Total amnesia) | Sub-ms BM25 Recall | SQLite FTS5 Lexical Ranking Engine |
Verification Rigor | Self-declared "everything works" | 100% Empirical Tests | Native Test Runner & Playwright Gate |
🧪 Development & Testing
# Clone repository
git clone https://github.com/VoDaiLocz/KILO-KIT.git
cd KILO-KIT
# Build TypeScript package
npm --prefix mcp install
npm --prefix mcp run build
# Link globally for local testing
npm link
# Run complete Vitest suite (16 files, 77 tests)
npm --prefix mcp test
# Run full 18-point system diagnostics
kilo-kit-doctor
# Validate all 180 skills against YAML schema standards
node src/tools/validate-skill.js --all skills📄 License
Distributed under the Apache 2.0 License. See LICENSE for details.
Available Tools
24 toolskilo_benchmark_solutionBenchmark Solution Against Industry & GitHubBRead-only
Audit the current session trajectory against open-source GitHub standards and industry best practices. Returns alignment score or triggers re-planning.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown | |
| sessionId | Yes | Active Kilo-Kit session ID | |
| proposedApproach | Yes | The approach, architecture, or code produced in this session | |
| decision_narration | No | MANDATORY INTER-TOOL NARRATION: State what you just concluded, verified, or analyzed before calling this tool. Appears in terminal tool badge for full user observability. | |
| industryBestPractice | Yes | Standard pattern, library, or algorithm used by top GitHub repos | |
| next_action_narration | No | MANDATORY: State what this tool will execute and what immediate action follows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, destructiveHint=false, and idempotentHint=false. The description adds one behavioral detail beyond that: the tool may 'trigger re-planning,' which is a side effect worth knowing. It does not explain what triggers re-planning or how the alignment score is computed.
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 tight sentences, front-loaded with the action and scope. No filler, though it is terse to the point of omitting usage 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?
With no output schema, the description's mention of an 'alignment score' is the only clue about return values, and the re-planning trigger is left unexplained. For an audit tool with six parameters, this is minimally adequate but leaves gaps.
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 83%, so the schema already documents sessionId, proposedApproach, industryBestPractice, and the two narration params. The description adds no parameter-level meaning (e.g., expected format of industryBestPractice), so the 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?
States a specific verb+resource: 'Audit the current session trajectory against open-source GitHub standards and industry best practices.' An agent can tell it apart from siblings like kilo_grill_plan or kilo_validate_skills, though no sibling is named explicitly.
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 when-to-use, prerequisites, or alternatives are given. 'Returns alignment score or triggers re-planning' hints at the outcome but does not tell the agent when this tool is preferred over kilo_grill_plan or kilo_trace_root_cause.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_compact_contextCognitive Context CompactorARead-onlyIdempotent
Compacts verbose logs, test dumps, and noisy output by 40-70% while preserving architectural invariants.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown | |
| content | Yes | Verbose content to compact | |
| sessionId | No | Active session ID to register context compaction | |
| targetReduction | No | Compaction aggressiveness | |
| preserveInvariants | No | Key invariant rules or phrases to lock |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already cover the safety profile (readOnly, idempotent, non-destructive), so the bar is lower. The description adds meaningful behavioral traits beyond annotations: the 40-70% reduction magnitude and invariant preservation. It omits session registration side effects and the mechanics of preserveInvariants/targetReduction, keeping it short of a 5.
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?
A single front-loaded sentence with the verb first and zero wasted words. Efficient and immediately scannable.
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 5-parameter tool with no output schema, the description carries the burden of describing the return value and the role of sessionId, format, and targetReduction levels. None of this is addressed, so an agent cannot know what the tool returns or how session registration behaves.
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 80%, so the baseline is 3. The description alludes to invariants and reduction (loosely mapping to preserveInvariants and targetReduction) but adds no syntax or semantics for format, sessionId, or how the preservation list is applied. It does not meaningfully compensate 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 gives a specific verb ('Compacts') and resource (verbose logs, test dumps, noisy output) and even quantifies the effect (40-70%). It is clearly the only compaction tool among siblings like kilo_remember_fact and kilo_grep_code, though it does not explicitly name a sibling it differs from.
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?
Usage is implied by naming the input types (verbose logs, test dumps, noisy output), so an agent can infer when it applies. However, there is no explicit when-to-use vs alternatives guidance and no exclusions or prerequisites (e.g., session requirements).
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_edit_fileEdit File (Kilo-Kit Hard-Gated)ADestructive
Perform exact targeted search-and-replace edit on an existing file with AST check. PROTOCOL HARD-GATE: Requires valid sessionId in 'ready' state.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Alias for filePath | |
| path | No | Alias for filePath | |
| format | No | markdown | |
| filePath | No | Relative or absolute path to file | |
| sessionId | Yes | Active Kilo-Kit session ID (must be in ready state) | |
| allowMultiple | No | Allow multiple replacements | |
| targetContent | Yes | Exact content substring to replace | |
| decision_narration | No | MANDATORY INTER-TOOL NARRATION: State what you just concluded, verified, or analyzed before calling this tool. Appears in terminal tool badge for full user observability. | |
| replacementContent | Yes | Replacement content | |
| next_action_narration | No | MANDATORY: State what this tool will execute and what immediate action follows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and idempotentHint=false, so the description's job is lighter. It adds valuable context by disclosing the AST-check behavior and a hard-gate protocol requirement that isn't captured by annotations, which helps an agent understand preconditions and verification.
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 tightly focused sentences with no filler, and the critical gate condition is front-loaded in capitals. It is appropriately sized for a simple edit tool, though the all-caps gate phrasing is slightly stylized.
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, so the description need not explain return values. It covers the core operation, the AST check, and the session gate, which is sufficient for a 10-parameter but structurally simple tool. Minor gaps around replacement failure behavior remain but are not critical.
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 90%, so the schema already documents most parameters (targetContent, replacementContent, sessionId, aliases, narration fields). The description does not add parameter-level detail beyond what the schema provides, 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?
States a precise verb and resource ('exact targeted search-and-replace edit on an existing file') plus the AST verification mechanism. This clearly distinguishes it from siblings like kilo_write_file (whole-file writes) and kilo_read_file.
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 hard-gate condition (valid sessionId in 'ready' state) implies when the tool can be used, but there is no explicit guidance on when to prefer this edit tool over kilo_write_file or other editing alternatives. Usage is implied rather than stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_get_skillLoad Kilo-Kit SkillBRead-onlyIdempotent
Load a Kilo-Kit skill by name or category/skill. Supports fuzzy aliases (e.g. 'brainstorming', 'diagnose', 'playwright', 'tdd', 'productivity/brainstorming').
| Name | Required | Description | Default |
|---|---|---|---|
| skill | Yes | Skill name or identifier (e.g. 'brainstorming', 'diagnose', 'playwright', 'productivity/brainstorming'). | |
| format | No | markdown | |
| category | No | Optional skill category, for example engineering or productivity. | |
| maxChars | No | Maximum SKILL.md characters to return. | |
| sessionId | No | Active session ID to register skill delivery |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already carry the safety profile (readOnlyHint=true, idempotentHint=true, destructiveHint=false), so the burden is lighter. The description adds one useful behavioral trait, fuzzy alias matching, but omits the sessionId side effect of registering skill delivery and does not say what happens when a skill name does not resolve. Adequate with annotations, but thin on the delivery mechanics.
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 tight sentences with the core action front-loaded and the alias capability immediately after; nothing is padded. The parenthetical alias list is somewhat redundant with the schema examples for the skill parameter, which keeps it from a 5.
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 5-parameter tool with no output schema, the description should say more about what comes back. It never mentions the markdown/json format choice, whether output is truncated by maxChars, or the failure mode for an unknown skill, so an agent cannot predict the response shape from the description alone.
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 80%, so the schema already documents skill, category, maxChars, and sessionId. The description's alias examples duplicate the examples already present in the skill parameter's schema description, and it says nothing about the format enum or maxChars truncation behavior. Baseline 3 is correct.
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?
States a specific verb and resource ('Load a Kilo-Kit skill') with the retrieval keys ('by name or category/skill'), so the agent knows exactly what the tool returns a skill, not metadata about one. It stops short of explicitly distinguishing itself from the sibling kilo_search_skills, leaving the retrieval-vs-discovery boundary to inference.
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 alias examples but no when-to-use guidance: it never says when to load a skill directly versus searching first with kilo_search_skills, nor whether a search is a prerequisite when the exact name is unknown. There are no exclusions or preconditions stated.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_grep_codeGrep Code (Kilo-Kit)BRead-onlyIdempotent
Search code snippets and matching lines across workspace files.
| Name | Required | Description | Default |
|---|---|---|---|
| query | No | Search string or regex pattern | |
| format | No | markdown | |
| search | No | Alias for query | |
| isRegex | No | Whether query is regex | |
| pattern | No | Alias for query | |
| rootDir | No | Subdirectory or workspace path to limit search | |
| sessionId | No | Active session ID from kilo_orchestrate_task. | |
| maxResults | No | Max matches to return | |
| caseSensitive | No | Case-sensitive match |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered by structured data. The description adds only a modest amount of context, conveying that results are line-level matches across the workspace, but says nothing about result caps, truncation, or the interaction with session state.
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?
It is a single front-loaded sentence with no redundancy or filler. It is arguably too terse for a 9-parameter tool, but nothing in it is wasted.
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 tool with 9 parameters, zero required fields, three interchangeable aliases, a format switch, an undocumented sessionId dependency, and no output schema, the description is far too thin. An agent is left unsure which alias to use, whether a query is effectively mandatory, or how sessionId affects the call.
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 89%, so the schema already documents nearly every parameter, including the three aliases query/search/pattern. The description adds no extra parameter meaning (no regex syntax, no scope semantics for rootDir), so the baseline 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 gives a specific verb (search) and resource (code snippets / matching lines across workspace files), so the agent knows this is a content search rather than a filename search. However, it does not explicitly contrast itself with the sibling kilo_search_files, leaving the distinction between the two to inference.
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?
There is no when-to-use or when-not-to-use guidance, and no mention of alternatives such as kilo_search_files or kilo_read_file. The agent must guess whether to grep content directly or first locate files by name.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_grill_planRed-Team Plan GrillingCRead-onlyIdempotent
Automated adversarial stress-testing against Inversion, Simplification Cascades, Blast Radius, and Edge-cases.
| Name | Required | Description | Default |
|---|---|---|---|
| plan | Yes | The proposed architecture, implementation plan, or bugfix strategy | |
| depth | No | Grilling depth | |
| label | No | REQUIRED for observability: Describe WHAT plan you are grilling, e.g. 'Phản biện phương án IndexedDB + Dexie cho Bookmark feature'. Displayed in terminal so users monitor agent reasoning. | |
| format | No | markdown | |
| context | No | Relevant file paths, tech stack, or system constraints | |
| sessionId | No | Active session ID to register cognitive gate satisfaction | |
| decision_narration | No | MANDATORY INTER-TOOL NARRATION: State what you just concluded, verified, or analyzed before calling this tool. Appears in terminal tool badge for full user observability. | |
| next_action_narration | No | MANDATORY: State what this tool will execute and what immediate action follows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is covered. The description adds that the analysis is automated and framed around four specific adversarial lenses, which is genuine behavioral context, but it omits whether this registers a cognitive gate, how the sessionId interacts, or what the response contains.
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?
A single efficient sentence with the key concept front-loaded and no padding. It is compact, though the density of unexplained proper-noun lenses makes the concision partly cosmetic.
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 an 8-parameter tool with only one required field and no output schema, the description is thin: it does not explain the return shape, the effect of depth levels, or how sessionId/decision_narration integrate with the broader workflow. Annotations and the rich schema cover safety and inputs, so the gaps are moderate rather than severe.
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 88%, so the schema already documents plan, depth, label, context, sessionId and the narration fields. The description adds nothing about any parameter — notably the depth enum and the mandatory narration/label requirements are left entirely to the schema. 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 verb phrase 'adversarial stress-testing' plus the named lenses (Inversion, Simplification Cascades, Blast Radius, Edge-cases) gestures at red-teaming a plan, but the description never explicitly states that the input is a plan or what the output is. No sibling is named or contrasted, and the four lenses are unexplained jargon an agent cannot act on directly.
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?
There is no statement of when to call this versus e.g. kilo_trace_root_cause, kilo_benchmark_solution, or kilo_think_step, nor any exclusion or prerequisite. The 'depth' param (quick/deep/hardcore) implies graduated use but the description never routes the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_memory_reportKilo-Kit C4 Memory ReportBRead-onlyIdempotent
Read global C4 memory facts, decisions, and recent suggestions.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description usefully says what is read (facts, decisions, suggestions) and that scope is global, but says nothing about size limits, pagination, or recency windows for 'recent suggestions'.
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?
A single front-loaded sentence with no waste. It is appropriately sized but arguably too sparse for the tool's scope.
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 idempotent read tool with one optional parameter and no output schema, the description covers the high-level content reasonably. However it omits the format parameter entirely and gives no sense of the return shape (facts vs decisions vs suggestions structure).
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 0% and there is one optional parameter (format, enum markdown/json, default markdown). The description never mentions the output format option, so it does not compensate for the schema gap.
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?
States a clear verb (Read) and a specific resource (global C4 memory facts, decisions, recent suggestions). It distinguishes itself reasonably from the sibling kilo_remember_fact (which writes), though it doesn't explicitly name that split.
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 indication of when to use this versus siblings like kilo_search_skills, kilo_record_reflection, or kilo_compact_context. The agent must infer usage purely from the resource named.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_orchestrate_taskKilo-Kit C4 Orchestrate TaskARead-only
MANDATORY: Call this tool FIRST before diagnosing, debugging, analyzing, creating, or modifying any code, UI, backend, or project files. Determines task mode, selects required workflow skills, enforces brainstorming gating, and orchestrates the execution flow.
| Name | Required | Description | Default |
|---|---|---|---|
| task | No | Alias for message. | |
| format | No | markdown | |
| prompt | No | Alias for message. | |
| answers | No | ||
| context | No | ||
| message | No | Current user request or task summary. | |
| sessionId | No | ||
| decision_narration | No | MANDATORY INTER-TOOL NARRATION: State what you just concluded, verified, or analyzed before calling this tool. Appears in terminal tool badge for full user observability. | |
| memoryConfirmations | No | ||
| brainstormingApproved | No | ||
| next_action_narration | No | MANDATORY: State what this tool will execute and what immediate action follows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=true and destructiveHint=false, so safety is already covered. The description adds genuinely useful behavior (mode determination, skill selection, brainstorming gating) but never clarifies what the tool returns, that it persists session state (idempotentHint=false with a sessionId param implies this), or what happens when gating blocks execution.
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, front-loaded with the MANDATORY directive, and the capability list is packed into a single clause with no filler. Slightly dense but nothing is wasted.
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 an 11-parameter orchestrator with a nested context object, optional-but-load-bearing flags, no output schema, and 45% schema coverage, the description leaves too much unexplained. An agent cannot tell from this text how to populate brainstormingApproved/answers or what the orchestration step returns.
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?
Coverage is only 45% across 11 parameters with a nested context object, and the description contributes zero parameter meaning. Key inputs like brainstormingApproved, memoryConfirmations, sessionId and the mode/files/previousErrors context sub-fields get no explanation in either place, so the agent must guess at gating semantics.
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?
States a specific verb and resource ('orchestrate task') plus the concrete outputs it produces: determines task mode, selects workflow skills, enforces brainstorming gating. The mandatory-first framing makes it trivially distinguishable from siblings like kilo_route_intent or kilo_think_step, which do narrower routing/thinking work.
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?
Explicit about when to use it: 'Call this tool FIRST before diagnosing, debugging, analyzing, creating, or modifying any code, UI, backend, or project files.' That is a clear gating condition with enumerated trigger situations. It stops short of naming when NOT to call it or which sibling takes over for already-routed follow-up work.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_read_fileRead File (Kilo-Kit Safe Workspace I/O)BRead-onlyIdempotent
Read file content safely across workspace boundaries (supports line ranges and byte capping up to 512KB).
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Alias for filePath | |
| path | No | Alias for filePath | |
| format | No | markdown | |
| endLine | No | Ending line number (1-indexed) | |
| filePath | No | Path to file (supports relative path, absolute path, and '~') | |
| maxBytes | No | Max bytes to return (default: 512KB) | |
| sessionId | No | Active session ID from kilo_orchestrate_task. | |
| startLine | No | Starting line number (1-indexed) |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds useful detail beyond annotations (line-range support, 512KB byte cap, workspace-boundary safety), but does not clarify what 'safely across workspace boundaries' enforces or how it behaves on missing/oversized files.
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?
A single front-loaded sentence that leads with the core action and appends the key constraints. Nothing is wasted, though the parenthetical could be tightened.
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 annotations covering safety and 88% schema coverage plus no output schema, the description is mostly adequate. However, with 8 parameters including three overlapping path aliases and a sessionId, the description leaves the alias/selection ambiguity and error behavior unexplained.
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 high (88%), so the schema already documents parameters well. The description echoes line ranges (startLine/endLine) and byte capping (maxBytes) but adds no format or default details beyond the schema, and importantly does not clarify the file/path/filePath alias ambiguity.
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?
States a specific verb (Read) and resource (file content) with scope qualifier ('across workspace boundaries'). It is clear what the tool does, though it does not explicitly distinguish itself from siblings like kilo_search_files or kilo_grep_code.
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?
There is no when-to-use guidance, no articulation of when to prefer this over kilo_search_files, kilo_grep_code, or the write/edit siblings, and no mention of prerequisites such as sessionId requirements. Usage is only vaguely implied by the word 'Read'.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_record_reflectionRecord Learning Reflection & Self-ImprovementB
Record correct approaches, wrong paths/pitfalls encountered, skill ratings, and lessons learned into SQLite to drive Kilo-Kit's continuous self-improvement across sessions.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown | |
| taskMode | Yes | Task mode (e.g. 'bug', 'architecture', 'ui', 'feature-build'). | |
| sessionId | No | Optional session ID. | |
| taskSummary | Yes | Summary of the problem solved. | |
| lessonsLearned | Yes | Key invariant or takeaway for future tasks. | |
| correctApproach | Yes | The successful strategy, fix, or architectural pattern used. | |
| skillsEvaluated | No | Ratings and feedback for specific skills used. | |
| autoSynthesizeSkill | No | Hermes-inspired: If true, automatically synthesize this reflection into a reusable SKILL.md in skills/learned/ | |
| wrongPathsEncountered | Yes | Mistakes, wrong assumptions, or pitfalls encountered. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=false, destructiveHint=false, and the description is consistent with them (it records/writes). It adds that data lands in SQLite and persists across sessions, which is useful, but says nothing about overwrite behavior, duplicate handling, or side effects of autoSynthesizeSkill writing a SKILL.md.
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?
A single front-loaded sentence that packs purpose, content, storage, and rationale with no wasted clauses. Efficient, though the dense enumeration slightly burdens readability.
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 9-parameter mutation tool with no output schema, the description covers intent and content categories but omits when to invoke it versus siblings, what autoSynthesizeSkill actually produces, and whether repeated calls create duplicates. Adequate but with clear gaps.
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 89%, so the schema already explains nearly every field. The description enumerates the same categories (approaches, wrong paths, ratings, lessons) without adding format, relationship, or edge-case guidance (e.g., how skillsEvaluated interacts with autoSynthesizeSkill). 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?
Specific verb (Record) plus a clear set of resources (correct approaches, wrong paths, skill ratings, lessons learned) and a storage target (SQLite). It doesn't explicitly distinguish itself from sibling tools like kilo_remember_fact or kilo_synthesize_skill, which is what keeps it from a 5.
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 phrase 'across sessions' and 'continuous self-improvement' imply when the tool matters, but there is no explicit when-to-use, no when-not-to-use, and no mention of how it relates to kilo_remember_fact or kilo_synthesize_skill. Usage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_remember_factRemember Architecture & Policy FactAIdempotent
Explicitly persist a project operating rule, workflow default, or verification standard into SQLite memory_facts for cross-session enforcement.
| Name | Required | Description | Default |
|---|---|---|---|
| key | Yes | Unique fact identifier, e.g. 'preference:testing:vitest' or 'rule:architecture:dexie'. | |
| kind | Yes | Fact classification kind. | |
| value | Yes | Fact payload data, e.g. { commands: ['npm test'] } or { library: 'dexie' }. | |
| format | No | markdown | |
| source | No | Source of fact (e.g. 'user-instruction', 'architecture-decision'). | |
| confidence | No | Confidence score between 0.0 and 1.0 (default 1.0). |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, idempotentHint=true, and destructiveHint=false. The description adds context that facts persist 'into SQLite memory_facts' and are used for 'cross-session enforcement,' which is useful. However, it doesn't disclose overwrite behavior for existing keys, upsert mechanics, or any rate/permission concerns—gaps that matter 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?
A single, front-loaded sentence with no filler. It efficiently communicates purpose, storage location, and persistence scope without repetition.
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 mutation tool with 6 parameters (3 required), nested objects, and no output schema, the description is adequate but thin. It doesn't explain the fact lifecycle (e.g., does re-persisting the same key replace or merge?), nor the relationship to sibling memory tools, leaving some ambiguity for correct 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 coverage is 83%, so the schema already documents most parameters well, including examples for key, kind, value, and confidence. The description doesn't add parameter-level detail beyond what the schema provides. Baseline 3 is appropriate when the schema carries the load.
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 specific verb+resource ('persist a project operating rule, workflow default, or verification standard') and names the storage target ('SQLite memory_facts') along with the effect ('cross-session enforcement'). This is clearly distinguishable from siblings like kilo_record_reflection or kilo_memory_report, though it doesn't explicitly name how it differs from them.
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 through 'Explicitly persist' and 'cross-session enforcement,' suggesting this is for durable facts. However, it offers no explicit when-to-use vs when-not guidance, no mention of alternatives (e.g., why not kilo_record_reflection), and no prerequisites.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_reset_circuit_breakerReset Circuit Breaker (Supervised)ADestructive
Reset an open Circuit Breaker with justification and root-cause evidence. Transitions breaker to HALF_OPEN.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown | |
| sessionId | Yes | Active Kilo-Kit session ID | |
| justification | Yes | Detailed justification and root cause explanation for reset |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=false, destructiveHint=true, and idempotentHint=false, so the agent knows this mutates state. The description adds the meaningful target state (HALF_OPEN), which is not derivable from annotations or schema. However, it does not describe consequences of a bad reset, permission/supervision requirements, or what happens after HALF_OPEN.
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 short sentences, no filler, with the action and its outcome front-loaded. Every clause 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?
No output schema exists, yet the description supplies the resulting state so the agent knows what the call produces. For a 3-param mutation tool the coverage is nearly sufficient, with only post-reset behavior and supervision requirements left unstated.
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% and the two required parameters are documented in the schema. The description echoes the 'justification' and 'root-cause evidence' requirement but adds no format, syntax, or length guidance beyond the schema's minLength=10 and never mentions sessionId or format. Baseline 3 for partially covered params.
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?
Specific verb (reset) plus resource (open Circuit Breaker) and an explicit resulting state (HALF_OPEN). It distinguishes itself from siblings like kilo_sentinel_status or kilo_trace_root_cause without needing the schema.
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 trigger condition ('an open Circuit Breaker') and that evidence is required, but never states when not to use it, what prerequisites must hold, or which sibling to consult first. Usage is implied rather than spelled out.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_route_intentRoute Current Intent to SkillsBRead-onlyIdempotent
Recommend the best Kilo-Kit skills for any user request, bug fix, feature, UI task, or coding issue. Call before selecting or executing a workflow skill.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | ||
| format | No | markdown | |
| context | No | ||
| message | Yes | Current user request or task summary. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile needs no restating. The description adds the sequencing behavior (call before workflow selection), which is genuinely useful, but says nothing about the shape of the recommendation, whether it is cached/deterministic, or what the caller receives back.
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 tight sentences with no filler, front-loaded with the core action and followed by the calling condition. Efficient, though the second sentence could be folded in without loss.
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, the description carries some burden for explaining returns, and it only implies a ranked skill recommendation without detail. Combined with three undocumented parameters and a nested object, the definition is adequate but leaves real gaps for an agent invoking it.
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 only 25% and there are 4 parameters including a nested context object. The description implies the request text goes into the message parameter but never explains limit, format, or any of the context sub-fields (mode, files, previousErrors), so it fails to compensate for the coverage gap.
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?
States a specific verb (Recommend) and resource (Kilo-Kit skills), plus enumerates the triggering inputs (bug fix, feature, UI task, coding issue). It is clear what the tool produces, though it never names or contrasts itself with the close sibling kilo_search_skills, so the distinction for an agent is inferential.
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?
Gives explicit timing guidance: 'Call before selecting or executing a workflow skill,' which is strong sequencing context. It does not, however, mention when NOT to call it or name an alternative (e.g., kilo_search_skills for direct lookup), so the routing decision against siblings is left implicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_route_reportKilo-Kit Route ReportBRead-onlyIdempotent
Summarize route telemetry: top skills, task modes, workflow chains, score averages, and conflict penalties.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is fully covered by structured data. The description adds only the list of aggregated metrics and says nothing about whether telemetry must exist first, how stale the data is, or whether the summary is scoped to a session or the whole history.
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?
One front-loaded sentence that names the action first and then the payload contents. No filler, no restatement of the tool name, nothing wasted.
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 parameterless read-only aggregation report with no output schema, the description's enumeration of what gets summarized is sufficient for an agent to decide whether to call it. Missing only marginal context such as the scope/period of the telemetry being summarized.
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 0%, but the sole parameter is a self-documenting format enum (markdown|json) with a default. The description never mentions the format option, so it adds nothing beyond the schema; a baseline 3 is appropriate given how trivial the parameter is.
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?
States a specific verb (Summarize) and resource (route telemetry), and enumerates the report contents: top skills, task modes, workflow chains, score averages, conflict penalties. It is distinguishable from kilo_memory_report by the 'route' domain, though the description never names that sibling explicitly to reinforce the boundary.
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 statement of when to use this report versus kilo_memory_report, kilo_sentinel_status, or the other reporting/telemetry siblings. The agent must infer that this is the post-routing analytics view from the word 'route' alone; there are no triggers, prerequisites, or exclusions.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_run_commandRun Command (Kilo-Kit Hard-Gated)ADestructive
MANDATORY: Execute a terminal command with security guardrails and timeout. Use this INSTEAD OF native Bash/terminal tools. PROTOCOL HARD-GATE: Requires valid sessionId in 'ready' state.
| Name | Required | Description | Default |
|---|---|---|---|
| cwd | No | Working directory relative to repoRoot | |
| format | No | markdown | |
| command | Yes | Terminal command to run | |
| sessionId | Yes | Active Kilo-Kit session ID (must be in ready state) | |
| timeoutMs | No | Timeout in milliseconds | |
| decision_narration | No | MANDATORY INTER-TOOL NARRATION: State what you just concluded, verified, or analyzed before calling this tool. Appears in terminal tool badge for full user observability. | |
| next_action_narration | No | MANDATORY: State what this tool will execute and what immediate action follows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true and readOnlyHint=false, so the mutation profile is known. The description adds meaningful context beyond that: a session hard-gate, security guardrails, and a timeout. It does not explain what the guardrails block or the failure/return format, keeping it short of a 5.
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 tightly-packed sentences with the mandatory execution action front-loaded and the gating requirement last. Efficient, though the heavy capitalization adds noise rather than substance.
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 7-parameter destructive command tool with no output schema, the description covers the key gating and safety framing. Return format and guardrail behavior are left implicit, but the annotations and schema fill most remaining gaps.
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 86%, so parameters like cwd, timeoutMs, and the narration fields are already documented in the schema. The description adds no parameter-level detail, which is the expected baseline when the schema does the heavy lifting.
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?
States a specific verb and resource ('Execute a terminal command') and immediately routes the agent away from alternatives ('Use this INSTEAD OF native Bash/terminal tools'). An agent can identify this as the sanctioned command-execution path without opening the schema.
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?
Gives a clear use directive (prefer over native Bash/terminal) and a hard precondition ('Requires valid sessionId in ready state'). Lacks explicit when-not conditions or failure guidance, but the routing context is clear.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_search_filesSearch Files (Kilo-Kit)BRead-onlyIdempotent
Search for files matching a pattern, substring, or glob across the workspace.
| Name | Required | Description | Default |
|---|---|---|---|
| glob | No | Alias for pattern | |
| query | No | Alias for pattern | |
| format | No | markdown | |
| pattern | No | Glob pattern or file search substring (e.g. '*.ts', '**/*.json', 'story') | |
| rootDir | No | Subdirectory or workspace path to limit search | |
| sessionId | No | Active session ID from kilo_orchestrate_task. | |
| maxResults | No | Maximum file matches |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare read-only, idempotent, non-destructive behavior. The description adds only that the search spans the workspace, which is modest additional scope context, but it does not disclose rate limits, return behavior, or other operational traits beyond what annotations already cover.
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?
A single sentence with no redundant wording. The core action is front-loaded and easily scanned, earning its place fully.
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 7-parameter, non-destructive search tool with 86% schema coverage and no output schema, the description is minimally adequate. However, it omits usage routing against siblings, does not mention the format parameter’s output implications, and gives no guidance on sessionId or search scope beyond 'workspace'.
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 86%, so the schema itself documents nearly all parameters well. The description adds the idea of pattern/substring/glob matching, which is already captured in the schema, but does not explain aliases like glob/query or sessionId, so it neither helps nor harms much beyond the baseline.
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?
States a specific verb and resource: search for files by pattern, substring, or glob. It is clear what the tool does but does not distinguish itself from sibling search tools such as kilo_grep_code, leaving the agent to infer that this searches file paths/names rather than file contents.
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 when-to-use guidance, no when-not-to-use guidance, and no alternatives. It does not mention when to prefer kilo_search_files over kilo_grep_code or kilo_search_skills, so the agent gets only an implied usage.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_search_skillsSearch Kilo-Kit SkillsARead-onlyIdempotent
Search the Kilo-Kit skill library by natural-language query. Use this for broad discovery before loading a specific skill.
| Name | Required | Description | Default |
|---|---|---|---|
| limit | No | Maximum number of skills to return. | |
| query | Yes | Natural-language task or keyword query. | |
| format | No | markdown | |
| category | No | Optional category such as engineering or design. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint, and destructiveHint=false, so the safety profile is covered. The description adds only a workflow positioning ('before loading a specific skill') and says nothing about result shape, ranking, or pagination behavior beyond the schema's limit.
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 short sentences, zero waste, and the core action is front-loaded ahead of the usage hint.
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, the description could usefully hint at what a search returns (ranked matches, snippets, IDs needed for kilo_get_skill) but does not. For a low-complexity search tool it is adequate but leaves that gap.
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 75% and the description adds no parameter detail beyond restating the query modality. The only undocumented-in-schema param (format) has an enum and default, so the schema carries the load; 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?
States a specific verb (search) and resource (Kilo-Kit skill library) with the query modality (natural-language). The phrase 'before loading a specific skill' implicitly separates it from kilo_get_skill, though it never names the sibling.
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 use it for 'broad discovery before loading a specific skill,' which gives a clear when-to-use and implies the alternative (kilo_get_skill). No explicit when-not condition, so it falls short of a 5.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_sentinel_statusKilo-Sentinel Supervisor StatusBRead-onlyIdempotent
Inspect real-time Sentinel supervisor telemetry: Circuit breaker state, step budget, failure streaks, and grounded files list.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown | |
| sessionId | Yes | Active Kilo-Kit session ID |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint, idempotentHint and destructiveHint=false, so the safety profile is fully covered. The description adds the notion of real-time telemetry and names the observable fields, which is useful context, but says nothing about freshness, staleness, permission requirements, or what happens for an inactive 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?
A single dense sentence with the resource front-loaded and the four observable fields listed in order. No filler, no restatement of the title.
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, the enumeration of returned telemetry partially stands in for a return-value contract, which is valuable. However, it omits the format parameter's effect on output shape and the relationship to the circuit-breaker reset sibling, leaving gaps for a diagnostic tool in a 24-tool cluster.
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 only 50%: sessionId is documented as 'Active Kilo-Kit session ID', but the format parameter (enum markdown/json, default markdown) has no description anywhere. The description never mentions either parameter or the output format choice, so it fails to compensate for the coverage gap.
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?
States a specific verb ('Inspect') and resource ('Sentinel supervisor telemetry') and enumerates the concrete payload: circuit breaker state, step budget, failure streaks, grounded files list. That is far more specific than the title. It does not, however, differentiate itself from the closely related sibling kilo_reset_circuit_breaker, which touches the same circuit-breaker concept.
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 says what can be inspected but never says when to call this tool, what triggers it, or which sibling to use instead (e.g., kilo_reset_circuit_breaker when the breaker is tripped). 'Real-time' hints at diagnostic use but nothing is explicit.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_synthesize_skillSynthesize Self-Evolving SkillADestructive
Distill a newly solved architectural pattern or bugfix methodology into a reusable, validated SKILL.md.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown | |
| category | No | Target skill category (defaults to 'learned') | |
| keywords | No | Keywords for discovery | |
| skillName | Yes | Name of the skill to synthesize | |
| solutionPattern | Yes | Proven solution pattern and code guidelines | |
| problemDescription | Yes | Description of the problem solved | |
| verificationGuidance | Yes | Verification and testing steps |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false, and idempotentHint=false, so the agent knows this is a mutating, non-idempotent operation. The description adds that the output is 'reusable, validated,' but never explains what gets created/overwritten, whether it persists to disk, or what 'validated' implies. It neither contradicts the annotations nor richly extends them.
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?
A single, front-loaded sentence with no waste. The purpose and intended input are conveyed immediately without redundancy.
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 destructive, non-idempotent tool with no output schema, the description doesn't cover critical context such as what the synthesized SKILL.md contains, where it is stored, or whether synthesis requires a prior solve. The schema is well-documented, but behavioral completeness falls short.
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 86%, so the schema already documents the 7 parameters well, including enums and formats. The description contributes no additional parameter-level detail (e.g., how format affects output, keyword conventions), 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?
States a specific verb (distill/synthesize) and resource (SKILL.md, self-evolving skill), and names the trigger condition (a newly solved architectural pattern or bugfix methodology). It is clearly distinguishable from siblings like kilo_get_skill and kilo_search_skills, which read rather than create skills.
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 phrase 'newly solved' implies the timing (after solving a problem), which gives some usage context, but no explicit when-not-to-use or alternative tool is named. It does not tell the agent to prefer this over kilo_record_reflection or kilo_remember_fact for capturing learnings.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_think_stepSequential Thinking & BranchingBRead-only
Iterative step-by-step reasoning engine with hypothesis tracking, revision, and solution branching.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | REQUIRED for observability: Describe WHAT you are analyzing, e.g. 'So sánh 3 phương án: LocalStorage vs IndexedDB vs Supabase'. This appears in terminal tool call display so users can monitor agent thinking. | |
| format | No | markdown | |
| thought | Yes | Current reasoning thought | |
| branchId | No | Identifier for this reasoning branch | |
| sessionId | No | Optional session ID | |
| hypothesis | No | Explicit hypothesis being tested | |
| isRevision | No | Whether this thought revises an earlier thought | |
| thoughtNumber | Yes | Current thought step index | |
| totalThoughts | Yes | Estimated total thought steps | |
| revisesThought | No | Which thought index is being revised | |
| branchFromThought | No | Thought index to branch from | |
| nextThoughtNeeded | Yes | Whether more reasoning steps are needed | |
| decision_narration | No | MANDATORY INTER-TOOL NARRATION: State what you just concluded, verified, or analyzed before calling this tool. Appears in terminal tool badge for full user observability. | |
| next_action_narration | No | MANDATORY: State what this tool will execute and what immediate action follows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already establish readOnlyHint=true, destructiveHint=false, so the safety profile is covered. The description adds that thoughts can be revised and branched, which is a real behavioral trait, but it does not disclose the stateful workflow (that thoughtNumber/totalThoughts drive continuity) or what the tool returns. Moderate added value over annotations.
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?
A single front-loaded sentence with no filler; the core capability set leads. It is efficient, though for a 14-parameter, branch/revision-capable tool one more sentence of workflow framing would have earned 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?
For a complex iterative tool with 14 parameters, branching and revision semantics, and no output schema, one sentence is thin. It does not explain how to drive the loop (advancing thoughtNumber, ending with nextThoughtNeeded=false) or how branches interleave with sequential steps, so an agent must reconstruct the protocol from the schema alone.
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 93%, so the schema already documents all 14 parameters, including the mandatory label and narration fields. The description's mention of hypothesis/revision/branching is effectively a restatement of schema fields (hypothesis, isRevision, branchId) rather than adding syntax or sequencing meaning. Baseline 3 is appropriate when the schema does the heavy lifting.
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 names the resource (a reasoning engine) and its distinguishing capabilities: iteration, hypothesis tracking, revision, and branching. It is clear what the tool is for, but it offers no differentiation from nearby reasoning-oriented siblings such as kilo_grill_plan or kilo_trace_root_cause.
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?
There is no when-to-use guidance: nothing says to call this before planning, to drive multi-step analysis, or when to prefer it over kilo_grill_plan or kilo_trace_root_cause. The agent is left to infer the trigger condition from the tool name alone.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_trace_root_cause5-Whys Root Cause TracerBRead-onlyIdempotent
Recursive causal backward-propagation analysis from crash log to the underlying systemic root cause.
| Name | Required | Description | Default |
|---|---|---|---|
| label | No | REQUIRED for observability: Name the bug you are tracing, e.g. 'Truy vết lỗi TypeError: Cannot read property sessionId'. Displayed in terminal so users see what error is being diagnosed. | |
| format | No | markdown | |
| errorLog | Yes | Raw error message, stack trace, or failing test output | |
| sessionId | No | Active session ID to register cognitive gate satisfaction | |
| failingFile | No | File where failure occurred | |
| actualBehavior | No | Actual behavior | |
| expectedBehavior | No | Expected behavior | |
| decision_narration | No | MANDATORY INTER-TOOL NARRATION: State what you just concluded, verified, or analyzed before calling this tool. Appears in terminal tool badge for full user observability. | |
| next_action_narration | No | MANDATORY: State what this tool will execute and what immediate action follows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so the safety profile is covered structurally. The description adds only that the analysis is recursive and causal; it says nothing about depth limits, output shape, latency, or what the trace produces, so added value beyond annotations is modest.
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?
A single front-loaded sentence with no filler, and the essential concept (crash log -> systemic root cause) is stated first. Slightly dense terminology costs it the top mark.
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 9 parameters, no output schema, and no explanation of the 5-Whys output or the mandatory narration gates, the description leaves an agent with only a one-line concept. It is not misleading, but for a tool with this parameter surface it under-delivers.
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 89%, so the schema already documents nearly every parameter (label, errorLog, sessionId, narrations, etc.). The description contributes no parameter-level guidance at all; it neither clarifies the optional fields nor the enum format. Baseline 3 applies when the schema carries the burden.
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?
States a specific analysis verb ('backward-propagation analysis') and target ('crash log to underlying systemic root cause'), which cleanly separates it from sibling reasoning tools like kilo_grill_plan and kilo_triangulate_research. It is jargon-heavy ('recursive causal backward-propagation') but the resource and outcome are unambiguous.
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 crash-log-to-root-cause framing implies when it applies (debugging a specific failure), but there is no explicit when-to-use, when-not-to-use, or routing statement relative to the many siblings that also reason about problems. Usage is left to inference.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_triangulate_researchGrounded Cognitive Triangulation & Low-Confidence EscalatorB
Execute Triangulated Cognitive Synthesis: Combines Internal SQLite Memory, External GitHub Grounding, 3-Option ToT DAG Trade-Offs, and Low-Confidence Research Escalation. Persists reasoning atomically into SQLite before code modification.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown | |
| sessionId | Yes | Active Kilo-Kit session ID | |
| dagOptions | Yes | At least 2 (ideally 3) competing architectural options to compare | |
| chosenOption | Yes | The selected option name with rationale | |
| confidenceScore | Yes | Confidence score between 0.0 and 1.0 (if < 0.70, triggers research escalation) | |
| taskDescription | Yes | The architectural decision, feature spec, or bug to analyze | |
| researchFindings | No | Synthesized findings from research subagent if research escalation was triggered | |
| decision_narration | No | MANDATORY INTER-TOOL NARRATION: State what you just concluded, verified, or analyzed before calling this tool. Appears in terminal tool badge for full user observability. | |
| adversarialRiskScore | No | Adversarial risk score from red-team grilling | |
| internalMemoryLearned | No | Key facts, reflections, or past pitfalls retrieved from SQLite | |
| next_action_narration | No | MANDATORY: State what this tool will execute and what immediate action follows. | |
| externalGroundingPatterns | No | Standard patterns, official docs, or 10k+ stars GitHub implementations | |
| requiresResearchEscalation | No | Explicitly request deep subagent research fallback |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations declare readOnlyHint=false, idempotentHint=false, destructiveHint=false. The description adds useful context beyond that: reasoning is persisted atomically into SQLite and this occurs before code modification, which signals a stateful write with sequencing constraints. It stops short of saying what gets written, whether repeat calls duplicate state, or what the escalation does in practice.
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, front-loaded with the action verb, so it is compact. However, the second sentence is packed with opaque capitalized jargon ('Grounded Cognitive Triangulation', 'Triangulated Cognitive Synthesis') that consumes space without adding precision.
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 13-parameter, non-idempotent write tool with no output schema, the description covers the high-level purpose and the persistence behavior but omits usage routing and expected outcomes. The rich schema compensates for parameter detail, but the agent still lacks guidance on when this tool should be invoked versus its siblings.
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 92%, so the schema already documents nearly every parameter including the confidenceScore escalation threshold and the narration params. The description adds no parameter-level detail beyond what the schema provides, 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?
States a concrete verb ('Execute Triangulated Cognitive Synthesis') and enumerates the distinct operations it combines (SQLite memory, GitHub grounding, ToT DAG trade-offs, research escalation) plus its persistence step. An agent can grasp what the tool does, though the jargon-heavy phrasing and lack of differentiation from siblings like kilo_think_step or kilo_grill_plan keeps it from a 5.
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 never states when to choose this tool over alternatives such as kilo_think_step, kilo_grill_plan, or kilo_benchmark_solution. The routing logic (confidenceScore < 0.70 triggers escalation) lives only in the schema, not in the description, and no prerequisites or exclusion conditions are given.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_validate_skillsValidate Kilo-Kit SkillsCRead-onlyIdempotent
Run the Kilo-Kit skill validator and return a concise quality-gate summary. This is read-only and does not modify files.
| Name | Required | Description | Default |
|---|---|---|---|
| format | No | markdown |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare readOnlyHint=true, idempotentHint=true, and destructiveHint=false, so 'read-only and does not modify files' largely restates structured data. The only added value is the vague hint that it returns a 'quality-gate summary', with no detail on what that contains.
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 short sentences, front-loaded with the action and followed by the safety note. No wasted text, though the tiny size also reflects thin content rather than tight editing.
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 read-only tool with no output schema, the description establishes purpose and safety but omits what 'skills' are being validated (all of them? a target?), what the quality-gate summary includes, and the meaning of the format parameter. Adequate but with clear gaps.
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 sole parameter 'format' (enum markdown/json) has 0% schema description coverage, so the description carries the full burden of explaining it — yet it never mentions output format at all. An agent cannot learn from the description what the format option controls.
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?
States a specific verb and resource ('Run the Kilo-Kit skill validator') plus the nature of the output ('concise quality-gate summary'). This clearly distinguishes it from siblings like kilo_synthesize_skill or kilo_search_skills, though it does not name those siblings explicitly.
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 says what the tool is but never states when to invoke it or how it relates to alternatives such as kilo_synthesize_skill or kilo_get_skill. Usage must be inferred entirely by the agent.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
kilo_write_fileWrite File (Kilo-Kit Hard-Gated)ADestructive
Create a new file or overwrite an existing file. PROTOCOL HARD-GATE: Requires valid sessionId in 'ready' state.
| Name | Required | Description | Default |
|---|---|---|---|
| file | No | Alias for filePath | |
| path | No | Alias for filePath | |
| format | No | markdown | |
| content | Yes | Complete file content to write | |
| filePath | No | Relative or absolute path to file | |
| overwrite | No | Allow overwriting existing files | |
| sessionId | Yes | Active Kilo-Kit session ID (must be in ready state) | |
| decision_narration | No | MANDATORY INTER-TOOL NARRATION: State what you just concluded, verified, or analyzed before calling this tool. Appears in terminal tool badge for full user observability. | |
| next_action_narration | No | MANDATORY: State what this tool will execute and what immediate action follows. |
TDQS
Does the description disclose side effects, auth requirements, rate limits, or destructive behavior?
Annotations already declare destructiveHint=true, readOnlyHint=false and idempotentHint=false. Beyond that, the description adds a real behavioral constraint not in structured form: the session must be valid and in 'ready' state before the call will succeed. It omits overwrite semantics for existing files, keeping it out of 5 territory.
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 tight sentences, front-loaded with the action and followed by the gating condition; every word earns its place. It is not quite maximally structured since the gate could be phrased with the exact consequence if unmet.
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 9-parameter destructive write tool with no output schema, the safety-relevant gate is disclosed and annotations cover the rest of the risk profile. The aliased path parameters and the two mandatory narration fields are left entirely to the schema, which is acceptable at this coverage but leaves a small gap.
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 high (89%), so the schema already carries the parameter burden and the baseline of 3 applies. The description reinforces the sessionId gate but adds no detail on the filePath/file/path aliases or the mandatory narration parameters.
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?
States a specific verb+resource pair ('Create a new file or overwrite an existing file'), so the agent knows exactly what it does. It does not distinguish itself from the sibling kilo_edit_file, which is the main ambiguity for file-writing tools, so it falls short of a 5.
Agents choose between tools based on descriptions. A clear purpose with a specific verb and resource helps agents select the right tool.
Does the description explain when to use this tool, when not to, or what alternatives exist?
The 'PROTOCOL HARD-GATE' line implies a usage prerequisite (sessionId in 'ready' state), which is useful context. However, it never says when to pick this over kilo_edit_file or kilo_read_file, and gives no when-not guidance, so usage is only implied.
Agents often have multiple tools that could apply. Explicit usage guidance like "use X instead of Y when Z" prevents misuse.
Tool Schema Changelog
Recent tool additions, removals, and schema changes observed during successful MCP inspections.
1 tool update
v1.9.1- Changed
kilo_record_reflection1 field changed- added
Input schema / properties / autoSynthesizeSkillAdded value: +{ + "description": "Hermes-inspired: If true, automatically synthesize this reflection into a reusable SKILL.md in skills/learned/", + "type": "boolean" +}
24 tool updates
v0.1.0- First observed
kilo_benchmark_solution - First observed
kilo_compact_context - First observed
kilo_edit_file - First observed
kilo_get_skill - First observed
kilo_grep_code - First observed
kilo_grill_plan - First observed
kilo_memory_report - First observed
kilo_orchestrate_task - First observed
kilo_read_file - First observed
kilo_record_reflection - First observed
kilo_remember_fact - First observed
kilo_reset_circuit_breaker - First observed
kilo_route_intent - First observed
kilo_route_report - First observed
kilo_run_command - First observed
kilo_search_files - First observed
kilo_search_skills - First observed
kilo_sentinel_status - First observed
kilo_synthesize_skill - First observed
kilo_think_step - First observed
kilo_trace_root_cause - First observed
kilo_triangulate_research - First observed
kilo_validate_skills - First observed
kilo_write_file
TDQS
Scored across 24 tools
Several clusters overlap: kilo_orchestrate_task and kilo_route_intent both select/recommend skills, kilo_search_skills vs kilo_get_skill is a discovery-vs-load split that's easy to confuse, and the reasoning family (kilo_think_step, kilo_triangulate_research, kilo_trace_root_cause, kilo_grill_plan, kilo_benchmark_solution) has fuzzy boundaries. Descriptions do help distinguish file ops and memory tools, but an agent could misselect among the reasoning/routing tools.
All 24 tools use a consistent kilo_ prefix followed by a verb_noun pattern (read_file, write_file, route_intent, record_reflection, reset_circuit_breaker). No camelCase or style mixing, and noun suffixes are predictable.
24 tools is heavy for a single server and pushes into the 16-25 'feels heavy' band. While the kit genuinely spans distinct areas (files, memory, skills, reasoning, routing), several reasoning tools could plausibly be consolidated.
Coverage is broad—file CRUD, command execution, skill search/load/synthesize/validate, memory persistence, routing, and reasoning. However, kilo_write_file, kilo_edit_file, and kilo_run_command all require a valid sessionId in 'ready' state, yet no tool exists to create or open a session, creating a potential dead-end for agents.
Maintenance
Related MCP Connectors
MCP server for your apps' tools and custom tools, plus hosted AI agents and approval-gated workflows
214 tools for AI agents over one MCP endpoint: image, video, audio, 3D, data, storage, mail, GPUs.
Hosted MCP server and Agent Skills for specs, engineering threads, and project memory.
Your org's AI agents, tasks, runs, search, and brain files as MCP tools and resources.
Related MCP Servers
- AlicenseDqualityDmaintenanceAI-native orchestration layer with 80+ tools for task management, code editing, browser automation, terminal control, and persistent memory across CLI, local MCP, and cloud deployments.699 npm31ISC
- AlicenseNot gradedqualityBmaintenanceA cross-platform local AI-agent runtime and MCP gateway that exposes 279 tool definitions (267 advertised by default) for local files, Git, processes, Windows automation, WSL, browser control, Office semantic automation, and extensibility. It enables durable goal continuation, Engineering Harness workflows, context capsules, indexing, and resource-aware concurrent agent tasks through a single governed MCP connection.MIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to research topics, map and analyze codebases across 35+ languages, curate project context, and generate PRDs, user stories, task lists, and fullstack starter projects. It also supports multi-step workflow execution and AI-native task management through a CLI, interactive REPL, or MCP client integration.19 npmMIT
- AlicenseNot gradedqualityAmaintenanceEnables AI assistants to research topics, map and analyze codebases across 35+ languages, curate context, and generate requirements documents, user stories, task lists, and full-stack starter projects. It also supports multi-step workflow execution and AI-native task management through a CLI, interactive REPL, or MCP client integration.19 npmMIT