kumiko agent
kumiko agent lintkumiko agent ships with @cosmicdrift/kumiko-cli. Its only subcommand is
lint. Run it from the app directory as bun kumiko agent lint. Any other
subcommand prints the usage line and exits with code 1.
What it reads
Section titled “What it reads”The command loads kumiko.config.ts from the current directory. The file
default-exports an object with a features array:
import { myFeature } from "./src/features/my-feature";
export default { features: [myFeature] };The command only checks the features in that list. Pass the same list the
server mounts. If the file is missing, or its default export has no features
array, the command prints an example and exits with code 1.
What it reports
Section titled “What it reports”It runs findAgentDocGaps() from @cosmicdrift/kumiko-bundled-features/agent-tools
and reports four kinds of gap:
| Gap | Cause |
|---|---|
| Handler without description | A write or query handler has no non-empty description and does not set agent: { expose: false }. |
| Input schema not expressible | A handler is exposed to the agent, but its input schema cannot be converted to JSON Schema. The agent manifest leaves it out. |
| Custom screen without description | A custom screen that the agent can see has no description. |
| Exposed entity without description | An entity is reachable through an agent-visible handler and has no description. |
Each gap prints as one line with the qualified name and a message that says how to fix it. The list is sorted by qualified name:
1 AI-agent doc gap found:
shop:write:archive-order — This write handler has no description, so it stays invisible to the AI agent — set `description` to expose it, or `agent: { expose: false }` to opt out deliberately.Exit codes
Section titled “Exit codes”| Code | Meaning |
|---|---|
0 | No gaps found |
1 | At least one gap, a missing kumiko.config.ts, or an invalid config |
The exit code lets you use the command as a CI step. Mounting the
agent-tools feature runs the same check at boot, where gaps only produce a
warning.