원클릭으로
feature-smoke-test
// 针对 Kimi Code CLI 的新增或变更功能,规划并执行可重复的端到端冒烟测试。从 git diff 推断功能边界,读取相关文档和代码,设计测试 prompt,以 --print 非交互模式运行本地 CLI,检查进程退出码和 session 产物,总结预期与实际行为之间的差异。发现问题时自动启动多路并行探查以定位根因。
// 针对 Kimi Code CLI 的新增或变更功能,规划并执行可重复的端到端冒烟测试。从 git diff 推断功能边界,读取相关文档和代码,设计测试 prompt,以 --print 非交互模式运行本地 CLI,检查进程退出码和 session 产物,总结预期与实际行为之间的差异。发现问题时自动启动多路并行探查以定位根因。
Execute the release workflow for Kimi Code CLI packages.
Generate changelog entries for code changes.
Sample plugin demonstrating the Skills + Tools model. Includes a Python tool (greeting) and a TypeScript tool (calculator).
Spawn and manage multiple Codex CLI agents via tmux to work on tasks in parallel. Use whenever a task can be decomposed into independent subtasks (e.g. batch triage, parallel fixes, multi-file refactors). When codex and tmux are available, prefer this over the built-in Task tool for parallelism.
Audit all git worktrees in the current project. Use when the user asks about worktree status, which branches are merged, which have uncommitted changes, or which worktrees can be safely cleaned up.
Sync Rust implementation with Python changes (exclude UI/login) by reviewing recent changes, mapping modules, porting logic, and updating tests.
| name | feature-smoke-test |
| description | 针对 Kimi Code CLI 的新增或变更功能,规划并执行可重复的端到端冒烟测试。从 git diff 推断功能边界,读取相关文档和代码,设计测试 prompt,以 --print 非交互模式运行本地 CLI,检查进程退出码和 session 产物,总结预期与实际行为之间的差异。发现问题时自动启动多路并行探查以定位根因。 |
冒烟测试是运行时验证,不是写完 prompt 或读完代码就结束。必须实际执行、实际检查产物。
动手之前,先从代码变更推断功能边界:
git diff main --name-only
git diff main --stat
根据变更文件集合,明确写下:
如果功能涉及状态、异步、审批流或时序敏感逻辑,默认认为单条 prompt 不够。
读取定义该功能真实行为的最小文件集合:
不要信任过时的 prompt 示例。先从代码或当前文档重建真实的工具接口。
默认覆盖三个场景:
每个场景记录:
目标前置准备prompt 策略成功信号失败信号需要检查的产物如果功能存在竞态条件,必须显式标注时序。用长时间运行的命令或刻意的等待来制造时序窗口,不要用"快速再跑一个"这种模糊说法。
默认采用多轮流程:
仅对无状态的简单功能使用单轮 prompt。
多轮测试时,每一轮单独调用 CLI,在两轮之间检查上一轮的输出和产物,再决定下一轮的 prompt。不要把多轮 prompt 一次性塞进 stdin——那是盲写,无法根据上一轮结果调整。
测试时,显式要求 agent 先列举当前可用的工具,不要臆造历史工具名。可复用的 prompt 模板见 references/prompt-patterns.md。
使用 /tmp 下的一次性目录作为 --work-dir,实现 session 隔离。CLI 的 session 路径由 ~/.kimi/sessions/<md5(work_dir)>/ 决定,不同的 work-dir 自动产生独立的 session 命名空间,不会污染正常项目的 session。认证状态保留在 ~/.kimi 下,无需额外配置。
SMOKE_DIR="$(mktemp -d /tmp/kimi-smoke-XXXXXX)"
如果功能需要仓库上下文(读取代码、git 信息等),把仓库文件复制或软链到 SMOKE_DIR。如果功能会编辑文件,绝不要用活跃仓库作为 work-dir。
绝大多数场景使用这个模式:
uv run python -m kimi_cli.cli \
--print \
--prompt "你的测试 prompt" \
--work-dir "$SMOKE_DIR"
echo "exit_code=$?"
--print 会自动启用 --yolo(自动批准所有操作),适合无人值守的冒烟测试。
执行后必须先检查退出码:非零表示 CLI 本身崩溃或超时,应优先排查进程级错误,再看 session 产物。
当默认方式不满足需求时,按需选用:
cat <<'PROMPT' | uv run python -m kimi_cli.cli --print --input-format text --work-dir "$SMOKE_DIR"--output-format stream-json,输出逐行 JSON,便于程序化解析--quiet,等价于 --print --output-format text --final-message-onlySMOKE_DIR、最终 session 目录(可通过 inspect_session.py 定位)、功能特定的输出文件。执行过程中维护一份简短的运行日志:
不要仅凭 assistant 的最终文本推断正确性。运行时文件和工具结果才是事实来源。
首先检查:
~/.kimi/sessions/.../context.jsonl~/.kimi/sessions/.../wire.jsonl使用 scripts/inspect_session.py 查找并汇总最新 session:
uv run python .agents/skills/feature-smoke-test/scripts/inspect_session.py --share-dir ~/.kimi
脚本退出码含义:0 = 正常汇总,1 = session 目录缺失或无法解析。
如果功能会创建后台任务、通知或附属文件,直接检查这些文件,不要只依赖模型摘要。
将结果分为三类:
对于每个 bug 或回归,记录:
当发现与预期不符的行为时,不要停在报告层面。启动并行探查流程定位根因:
针对每个发现的问题,同时启动多个独立的探查方向(使用 Agent 工具并行执行)。根据问题的具体表现自行判断最有价值的探查角度,常见方向包括但不限于:
不必机械地覆盖所有方向。根据 session 产物中的具体异常信号,选择最可能命中根因的 2-3 个方向并行展开。
每条探查方向独立汇报:
汇总所有探查结果后,输出: