MoonshotAI / MoonshotAI/kimi-code
Skill silently dropped when description exceeds length limit — no warning or error
Nobody has claimed this yet.
- Dominant language
- TypeScript
- Stars
- 7.5k
- Forks
- 1.2k
- Avg merge
- 11h 53m
- Merged PRs (30d)
- 350
Description
Summary
A Skill whose description frontmatter field exceeds an undocumented length limit is silently dropped from the session's skill list — it does not appear in the model's available skills, and no warning or error is emitted at session start. This makes the failure mode invisible and very costly to diagnose.
Environment
- kimi-code CLI: 0.28.0
- OS: Linux (WSL)
- Working dir:
/home/gurumi/workspace-wartable-5e KIMI_CODE_HOME: unset (default~/.kimi-code/)- Provider: third-party (not a Kimi plan subscription) — confirmed unrelated (see investigation below)
Reproduction
-
Create a skill at
~/.kimi-code/skills/codebase-memory/SKILL.md(User scope) with this frontmatter:--- name: codebase-memory description: Use the codebase knowledge graph for structural code queries. Triggers on: explore the codebase, understand the architecture, what functions exist, show me the structure, who calls this function, what does X call, trace the call chain, find callers of, show dependencies, impact analysis, dead code, unused functions, high fan-out, refactor candidates, code quality audit, graph query syntax, Cypher query examples, edge types, how to use search_graph. ---(This description is 453 characters.)
-
Start a new
kimisession. -
Observe: the
codebase-memoryskill does not appear in the skill list. No warning is printed. -
Edit the frontmatter to shorten the description to ~130 chars:
description: Use the codebase knowledge graph for structural code queries (callers, callees, impact, dead code, architecture, Cypher). -
Start a new session.
-
Observe: the skill now appears correctly.
Expected behavior
- Either: accept long descriptions (the docs only say "a one-line summary" with no stated length cap), or
- If there is a length limit: emit a clear warning/error at session start naming the offending skill file and the limit, instead of silently dropping it.
Actual behavior
Skill is silently dropped. The only way to discover the failure is to notice the skill is missing from the list and bisect the frontmatter by hand.
Investigation notes (what I ruled out)
- Not a scope/scan-path bug: the same file was also placed at
.agents/skills/codebase-memory/SKILL.md(Project scope) — also dropped. Shortening the description fixed both scopes. - Not a "manual mkdir" issue: Project-scope sibling skills (e.g.
convex) created by tooling load fine; the scan logic itself works. - Not a subscription/provider gate: Project-scope
convexskills load normally under a third-party provider with no Kimi plan. The skill subsystem is active; only this specific file is rejected. - Not a session-staleness issue: tested in a freshly started session.
- File format is valid YAML:
nameanddescriptionboth present (required for directory-formSKILL.mdper docs); the long description is a single line.
Docs reference
The Skills docs describe description as "a one-line summary" and mention a 240-char fallback for the body's first line when description is omitted in flat-form files — which hints at a length consideration, but no hard limit is documented for description, and no truncation or warning behavior is specified for the over-limit case.
Suggested fix
At minimum: log a warning naming the file and the exceeded limit when a skill is dropped during load. Ideally also: document the exact description length limit in the docs (and/or raise it — 240 chars is quite tight for a field the model uses to decide when to auto-invoke a skill).
Reproducibility
100% reproducible. Bisection between 453-char and 130-char description is the decisive variable.
Contributor guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
Research direction
Reproduce with the user-scope ~/.kimi-code/skills/codebase-memory/SKILL.md and the 453-character description, then compare it with the shortened version. Trace the skill-loading path for directory-form SKILL.md files and check the Skills documentation linked in the issue. Done means the length behavior is either accepted or reported clearly with the affected file and limit, with the limit documented if it remains.
Written by the indexing model from the issue text.
Assessment
- Tech stack
- typescript
- Domain
- cli
- Issue type
- Bug
- Difficulty
- 3/5
- Estimated time
- 1-2 days
- Activity status
- Quiet
- Clarity
- Clearly specified
- Newbie friendliness
- 70/100