Repository navigation
Commit 0ea342f
authored
feat(engine): 建立 Legacy/Rust 引擎边界,并同步 codeguard-skills v0.1.3 (#83)
* docs(rust-cli): 补充命令架构、误报白名单、遗留差分与项目初始化规格
补齐 introduce-rust-codeguard-cli 变更的设计文档与规格缺口:
- command-architecture / static-check-catalog / false-positive-allowlist:
命令面、静态检查目录与已知误报处置
- legacy-delta-20260924 / legacy-v1-protocol-map:遗留实现与 v1 协议映射,
明确哪些是迁移债、哪些是已完成
- project-initialization:项目初始化能力规格
- architecture / technical-design / coverage-and-acceptance / remediation-workflow
与各 specs 同步更新,新增 implementation-coverage 汇总覆盖情况
本次提交与 Agent Plugins 可移植布局迁移无关,单独成commit 以便独立回滚。
* feat(plugin): 迁移到 Agent Plugins v1.0.0 可移植布局
此前仅发布各客户端专属清单(.codex-plugin/、.zcode-plugin/、kimi.plugin.json),
不符合 Agent Plugins 规范。符合规范的客户端会因缺少根清单而整体拒绝该插件,
其中的 68 个技能一个也加载不到(§5.1/§5.3:缺清单是致命错误,不是警告)。
- 新增根 plugin.json:$schema 常量 + name 约束 + 封闭字段集;客户端专属的
interface 等数据移入 extensions["com.openai"] / extensions["ai.nanoco.nanoclaw"]
- version 取基础版本,+codex.<stamp> 构建元数据留在兼容通道
- 新增客户端扩展目录,让非可移植的 commands/hooks/agents 对注册表客户端可见:
- 新增 `com.github.copilot/`(VS Code 与 GitHub Copilot 共用)
- 新增 `dev.openhands/`(OpenHands)
根目录副本保留,Codex/ZCode/Kimi 通道不受影响
- 新增 scripts/validate_portable_plugin.py:纯标准库、无网络,按发布 schema
校验清单、技能发现与镜像漂移
- 新增 docs/portable-migration.md 记录迁移内容与客户端覆盖
校验:19/19 包通过规范校验;4655 个测试,红色套件 9 个且全部为迁移前既有失败,
本次迁移零新增失败。
仓库内同步调整:
- scripts/check_architecture.py:把 scripts/validate_portable_plugin.py 登记进
SCRIPT_ROLES(角色 entry),否则未分类顶层脚本会触发架构门禁。
* docs: 将 Rust 规范与设计迁移至 codeguard 独立仓库
* feat(engine): 建立 Legacy/Rust 引擎边界,结论签发方显式化
插件与独立 Rust 内核各自都能给出检查结论,但此前没有一处声明"谁签发"。
两者的退出码语义也不相同:Legacy 的 3 是参数错误,Rust 的 3 是检查未完成——
按同一张表翻译会把"没跑完"读成"通过"。
- `scripts/codeguard/engine.py`:登记两个引擎与其权威性,提供退出码翻译表。
未知码一律按 UNVERIFIED 阻塞(fail closed)。
- `scripts/engine_report.py` + `codeguard engine`:只读报告签发方与 Rust 组件
探测结果。Legacy 无 --version(未知子命令退出 1),Rust 以
report_type=version 的 JSON 应答,两者可无歧义区分。
- `resolve_authoritative(rust_available=True)` 仍返回 Legacy:二进制存在
不改变权威性,Rust 在能力矩阵 gap 清空前不能签发质量结论。
- 新增 `engine` 子命令并登记进 SCRIPT_ROLES / CORE_DEPENDENCIES。
13 项契约测试覆盖:两引擎退出码不共享语义、仅 0 可通过、未知码 fail closed、
探测到 Rust 仍不夺权、Legacy 形态不被误判为 Rust。
架构门禁 / run_all 144 / 可移植性校验均绿;unittest discover 645 项中唯一
失败为 test_add_all_widens_to_three_lanes,已 stash 验证为预先存在。
* chore(skills): 同步 codeguard-skills v0.1.3,重新对齐引擎契约
lock 由 v0.1.2 / 2c0c807 升至 v0.1.3 / 33d737f,68 个受管技能快照与摘要整体刷新。
本次同步带入源仓的引擎契约修正:新增 `codeguard/references/operations/engine-contract.md`
作为双引擎命令面的唯一权威对照,并修正 5 个技能与 Rust 内核的调用不一致——
`fix` / `dockerfile` / `--lang` / `--ecosystem` / `--severity` / `--json` 在 Rust 侧不存在。
与本仓新增的 `codeguard engine` 边界报告配套:Rust 组件对所有质量路径固定返回
退出码 3(未完成),不能签发质量结论;`codeguard-check` 的状态语义因此新增
INCOMPLETE,以区分"未完成"与"通过"。
验证:架构门禁 OK / run_all 144 通过 / 可移植性 PASS / skill_vendor check PASS /
unittest discover 645 项中唯一失败为预先存在的 test_add_all_widens_to_three_lanes。
* style: 修复 ruff EXE001 与冗余 noqa
engine_report.py 有 shebang 但缺执行位;三个 # noqa: E402 在本仓 ruff 配置下
E402 并未启用,属冗余抑制。移除后 `ruff check hooks scripts tests` 全绿。1 parent 7b1a5d7 commit 0ea342f
89 files changed
Lines changed: 860 additions & 2063 deletions
File tree
- bin
- docs/rust-cli
- openspec/changes/introduce-rust-codeguard-cli
- specs
- binary-distribution
- execution-kernel
- hook-protocol
- language-gate-commands
- native-tool-adapters
- remediation-workflow
- rulepack-governance
- scan-scope-policy
- unified-cli-contract
- verdict-integrity
- scripts
- codeguard
- skills
- codeguard-ansible
- codeguard-arkts
- codeguard-astro
- codeguard-cfml
- codeguard-check
- codeguard-clojure
- codeguard-cobol
- codeguard-cpp
- codeguard-crystal
- codeguard-csharp
- codeguard-css
- codeguard-cuda
- codeguard-cve
- codeguard-c
- codeguard-dart
- codeguard-dockerfile
- codeguard-elixir
- codeguard-elm
- codeguard-erlang
- codeguard-fix
- codeguard-fsharp
- codeguard-go
- codeguard-graphql
- codeguard-groovy
- codeguard-haskell
- codeguard-html
- codeguard-java
- codeguard-julia
- codeguard-kotlin
- codeguard-liquid
- codeguard-luau
- codeguard-lua
- codeguard-markdown
- codeguard-metal
- codeguard-nim
- codeguard-nix
- codeguard-objc
- codeguard-ocaml
- codeguard-pascal
- codeguard-perl
- codeguard-php
- codeguard-powershell
- codeguard-protobuf
- codeguard-python
- codeguard-ruby
- codeguard-rust
- codeguard-r
- codeguard-scala
- codeguard-security-code
- codeguard-shell
- codeguard-solidity
- codeguard-sql
- codeguard-svelte
- codeguard-swift
- codeguard-terraform
- codeguard-toml
- codeguard-typescript
- codeguard-vbnet
- codeguard-vue
- codeguard-yaml
- codeguard-zig
- codeguard
- references/operations
- tests
Some content is hidden
Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
39 | 40 | | |
40 | 41 | | |
41 | 42 | | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
42 | 46 | | |
43 | 47 | | |
44 | 48 | | |
| |||
53 | 57 | | |
54 | 58 | | |
55 | 59 | | |
56 | | - | |
| 60 | + | |
57 | 61 | | |
58 | 62 | | |
59 | 63 | | |
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1 | | - | |
| 1 | + | |
2 | 2 | | |
3 | | - | |
| 3 | + | |
4 | 4 | | |
5 | | - | |
6 | | - | |
7 | | - | |
8 | | - | |
9 | | - | |
10 | | - | |
11 | | - | |
12 | | - | |
13 | | - | |
| 5 | + | |
| 6 | + | |
| 7 | + | |
14 | 8 | | |
15 | | - | |
16 | | - | |
17 | | - | |
| 9 | + | |
This file was deleted.
0 commit comments