# K-Lint **Repository Path**: anolis/k-lint ## Basic Information - **Project Name**: K-Lint - **Description**: No description available - **Primary Language**: Unknown - **License**: Apache-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 2 - **Created**: 2026-04-21 - **Last Updated**: 2026-09-01 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # K-Lint #### 介绍 AI 驱动的内核代码审查工具。基于自定义规则,对 C/C++ 内核代码进行三阶段审查(规则匹配 → 规则检测 → 输出标准化)。提供 **CLI 命令行工具** 和 **VS Code 插件** 两种使用方式。 #### 软件架构 ``` K-Lint/ ├── K-Lint/ # 核心工程 │ ├── src/ │ │ ├── engine/ # 审查引擎(LLM 交互、规则匹配、Prompt 编排) │ │ ├── vscode/ # VS Code 插件代码 │ │ └── cli.ts # CLI 入口 │ ├── rules/ # 规则文件目录 │ ├── docs/ # 技术文档 │ └── test/ # 测试用例 ├── Makefile # 构建脚本 └── README.md # 本文件 ``` #### 安装教程 ```bash # 编译 + 安装 CLI 到全局(推荐,安装后可直接使用 k-lint 命令) # 注意:需要 root 权限,普通用户请改用 sudo make install make install # 编译 + 安装 VSIX 到 VS Code # 注意:需要 VS Code 已打开且 WSL 远程已连接 # 如果安装后看不到插件,请在 VS Code 中按 Ctrl+Shift+P → Reload Window # 如果 make vscode 失败(VS Code 非默认安装路径),请手动安装: # 方式一:命令行 # code --install-extension k-lint-1.0.0.vsix --force # 方式二:VS Code 内安装 # 侧边栏 → 扩展 → ··· → 从 VSIX 安装 → 选择 k-lint-1.0.0.vsix make vscode # 仅编译(不打包) make build # 清理构建产物 make clean ``` 配置 LLM: ```bash export K_LINT_LLM_URL="https://your-llm-api-url" export K_LINT_API_KEY="sk-xxx" export K_LINT_MODEL="qwen3.6-plus" ``` #### 使用说明 ##### CLI 命令行 ```bash # 审查指定文件 k-lint review --content-file src/sensor.c # 通过 pipe 输入 git diff git diff HEAD~3..HEAD | k-lint review # 带规则引擎审查 k-lint review --content-file src/sensor.c --rules-dir ./rules # JSON 输出(适合 CI/CD) k-lint review --content-file src/sensor.c --json # 开启调试日志 K_LINT_DEBUG=all k-lint review --content-file src/sensor.c ``` ##### VS Code 插件 | 入口 | 操作 | 说明 | |------|------|------| | **右键菜单 — 选中代码** | 选中代码 → 右键 → `分析代码块` | 审查选中的代码片段 | | **右键菜单 — 文件全文** | 无选中时右键 → `分析当前文件` | 审查整个文件 | | **侧边栏面板** | 点击活动栏 K-Lint 图标 | 查看审查进度和结果 | | **Problems 面板** | 审查完成后自动打开 | 查看带行号的问题列表 | | **状态栏** | 扫描时显示进度 | 实时进度,点击可取消 | 插件配置(`Ctrl+,` 搜索 `K-Lint`): | 配置项 | 说明 | |--------|------| | `k-lint.url` | LLM API 地址 | | `k-lint.model` | 模型名称(如 `qwen3.6-plus`) | | `k-lint.apiKey` | API Key(输入框自动隐藏) | | `k-lint.timeout` | 请求超时时间(秒),默认 600 | 配置完成后,如果分析过程中遇到 LLM 访问问题,可通过以下命令验证配置是否正确: ```bash k-lint llm-connection-test --url <你的API地址> --key <你的API Key> --model <你的模型名> ``` #### 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request #### 规则编写 规则文件放在 `rules/` 目录下,格式为 `.md`,由 YAML frontmatter + Markdown 正文组成: ```yaml --- id: null-pointer-001 title: 空指针解引用 category: 内存安全 severity: high tags: [kmalloc, kcalloc, NULL] description: 内存分配函数可能返回 NULL,直接使用会导致段错误。 detection_checkpoints: - 检查 kmalloc/kcalloc 返回值是否判空 - 检查函数返回值是否判空 fix_suggestion: 在使用指针前检查是否为 NULL,若为 NULL 则进行错误处理。 --- ``` 详细规则编写指南见 [K-Lint/docs/rule-writing-guide.md](K-Lint/docs/rule-writing-guide.md)。 #### 审查流程 ``` Phase 1: 规则匹配 — LLM 综合规则元数据(title/description/tags/checkpoints) + diff,判断哪些规则相关 Phase 2: 规则检测 — 对每条命中规则,注入完整规则内容 + diff,逐条检查检测要点 Phase 3: 输出标准化 — 合并所有发现,附加 rule_id / rule_title / category ``` CLI 中可通过 `--enforce-strict false` 关闭严格模式,额外启用自由分析作为补充。