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 kimi session.
-
Observe: the codebase-memory skill 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
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.
Summary
A Skill whose
descriptionfrontmatter 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
/home/gurumi/workspace-wartable-5eKIMI_CODE_HOME: unset (default~/.kimi-code/)Reproduction
Create a skill at
~/.kimi-code/skills/codebase-memory/SKILL.md(User scope) with this frontmatter:(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:
Start a new session.
Observe: the skill now appears correctly.
Expected behavior
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)
.agents/skills/codebase-memory/SKILL.md(Project scope) — also dropped. Shortening the description fixed both scopes.convex) created by tooling load fine; the scan logic itself works.convexskills load normally under a third-party provider with no Kimi plan. The skill subsystem is active; only this specific file is rejected.nameanddescriptionboth present (required for directory-formSKILL.mdper docs); the long description is a single line.Docs reference
The Skills docs describe
descriptionas "a one-line summary" and mention a 240-char fallback for the body's first line whendescriptionis omitted in flat-form files — which hints at a length consideration, but no hard limit is documented fordescription, 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
descriptionlength 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.