Agent Skills
› vllm-project/vime
› vime-code-review-preferences
vime-code-review-preferences
GitHub提供Vime代码审查的轻量级启发式规则,涵盖移除冗余包装、优化分支逻辑、保持抽象诚实及避免在参数中传递运行时状态等实践。
Trigger Scenarios
审查或编辑Vime代码时
重构辅助API或分支选择逻辑时
检查参数验证或控制流清晰度时
Install
npx skills add vllm-project/vime --skill vime-code-review-preferences -g -y
SKILL.md
Frontmatter
{
"name": "vime-code-review-preferences",
"description": "Use when reviewing or editing vime code, especially refactors around helper APIs, branch selection, argument validation, or recurring reviewer preferences about avoiding unnecessary wrappers and making control flow self-explanatory."
}
Vime Code Review Preferences
Apply these lightweight review heuristics when changing vime code.
Prefer Direct APIs Over Thin Wrappers
- Remove helper layers that only rename a call, format one path, or forward arguments without owning meaningful behavior.
- Prefer calling the concrete reusable API directly, for example a
*_to_pathhelper when the caller already knows the destination path. - Keep a wrapper only if it owns a real boundary: compatibility, validation, nontrivial error policy, lifecycle management, metrics/logging semantics, async/retry behavior, or cross-module ownership.
- Avoid moving a redundant wrapper's body into another file just to preserve the wrapper shape. Inline the simple call at the natural ownership site.
- When removing a wrapper, search for sibling wrappers and nearby helpers with
rgand delete confirmed dead functions in the same pass. - Treat single-use convenience functions as suspicious when their only job is path formatting plus forwarding. Prefer the caller owning that one line.
Make Branches Explain Themselves
- Order conditionals by semantic precedence: special transport/lifecycle modes first, then explicit mode choices, then default paths.
- Prefer predicates that fully describe the branch, such as
mode == "full" and transport == "disk", over a broad predicate followed by an assert that explains what the branch really meant. - Use asserts as invariants for impossible states after validation, not as a substitute for clear branch conditions.
Keep Abstractions Honest
- Add an abstraction only when it removes real duplication, hides fragile mechanics, or clarifies ownership.
- When a review comment points out repeated indirection, look for a smaller public surface rather than adding another alias.
- Preserve existing behavior intentionally. If cleanup changes error handling, logging, or failure visibility, call that out in the final response.
Keep Runtime State Out of Args
- Treat
argsas configuration. Do not add ad hocargs._xxxattributes to pass actor handles, caches, recovery progress, current versions, or other runtime state between components. Renaming these to public attributes does not fix the ownership problem. - Put live state on the component that owns its lifecycle. Pass dependencies explicitly, and use typed return values for startup plans or restoration results shared between components.
- Avoid replacing scattered temporary fields with a generic
args.contextbag. Keep each state object's responsibility and lifetime clear. - Preserve existing custom hook signatures, call arguments, and return conventions when refactoring internal state. User implementations must not need new parameters merely to accommodate an internal cleanup.
Version History
- d7e40fe Current 2026-10-18 22:04
- 8d1f4cc 2026-07-05 14:58


