MoonshotAI / MoonshotAI/kimi-code

Skill silently dropped when description exceeds length limit — no warning or error

Open
#1,972 2 comments 0 reactions 0 assignees View on GitHub

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

  1. 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.)

  2. Start a new kimi session.

  3. Observe: the codebase-memory skill does not appear in the skill list. No warning is printed.

  4. 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).
    
  5. Start a new session.

  6. 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 convex skills 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: name and description both present (required for directory-form SKILL.md per 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

Open the contributing guide

First steps

  1. Read the whole issue, then the project's contributing guide.
  2. Comment on the issue to say you are picking it up — it saves two people doing the same work.
  3. Fork the repository and make your change on a branch.
  4. 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

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.