用途:为 NeMo Relay 仓库中的改动选择并执行合适的验证矩阵,覆盖改动所触及的各个表面,避免固定单一测试清单。使用 karpathy-guidelines 配合实现或评审工作,保持改动范围收敛、显式说明假设,并在编辑前定义聚焦的验证。
主要规则:最终 lint/测试前,先用语言原生格式化工具格式化改动文件。改动任何 Rust 代码必须运行 just test-rust,并运行 cargo fmt --all 与 cargo clippy --workspace --all-targets -- -D warnings。若改动 crates/core 或 crates/adaptive,需运行 Rust、Python、Go、Node.js 全量矩阵。若某语言表面有改动,即使 Rust 核心未变,也要运行该语言测试目标。若动态插件行为变化,使用 maintain-dynamic-plugins,并在验证计划中纳入 native SDK、worker 协议、Python SDK、文档、打包与 Codecov 表面。若改动影响 API、绑定、命令、路径、打包行为、可观测性/adaptive 语义或文档化最佳实践,需在同一分支更新依赖的维护者或使用者技能。迭代期间优先 uv run pre-commit run --files <changed files...>,评审或交接前运行 uv run pre-commit run --all-files。
按改动形态选择:核心运行时或共享语义改动用 test-rust-core(含 just test-rust、cargo fmt、cargo clippy 及四语言全量矩阵);仅 Python 包装或绑定改动用 test-python-binding;Go 绑定用 test-go-binding;Node.js 绑定用 test-node-binding;FFI 表面用 test-ffi-surface;框架集成改动运行相关语言测试目标及聚焦集成测试或冒烟路径;动态插件加载器、SDK 或协议改动用 maintain-dynamic-plugins,先跑目标插件 crate 与 just test-python-plugin,运行时行为或 crates/core 变化时升级到核心验证矩阵;仅文档改动在命令、包名或示例变化时做定向检查,just docs 构建站点、just docs-linkcheck 检查链接。
核心矩阵:just test-rust、just test-python、just test-go、just test-node。常用定向命令保留原样:just build-rust、just test-rust、just ci=true test-rust、cargo fmt --all、cargo clippy --workspace --all-targets -- -D warnings、just build-python、just build-python-plugin、just test-python、just test-python-plugin、uv run ruff format python、uv run pytest -k "<pattern>"、just build-go、just test-go、cd go/nemo_relay && go fmt ./...、just build-node、just test-node、npm run format --workspace=nemo-relay-node、just docs、just docs-linkcheck。
pre-commit 语义:迭代时 uv run pre-commit run --files <changed files...>,评审或交接前 uv run pre-commit run --all-files。注意 --files 仍会触发文件或类型选择器匹配的钩子,部分钩子因配置 pass_filenames: false 会忽略文件名并运行整语言或整个工作区命令:匹配 Python 文件会运行 Ruff 并触发 ty check . ;匹配 Rust 文件触发 cargo fmt --all --、cargo clippy --workspace --all-targets -- -D warnings 与 cargo check --workspace --all-targets;匹配 Go 文件触发所选文件的 gofmt 与 go vet ./...;匹配 README.md、CONTRIBUTING.md 或 docs/ 下的 markdown 触发文档链接检查;匹配 Cargo.toml、Cargo.lock 或 deny.toml 触发 cargo deny check;匹配 Cargo.lock、uv.lock 或 package-lock.json 触发 attributions 生成器;匹配 Node.js 公共 JS/TS 表面还可能触发公共文档字符串检查与 prettier 包装。
卫生检查:改动进入评审前运行 cargo fmt --all、cargo clippy --workspace --all-targets -- -D warnings、uv run pre-commit run --all-files。若改动较大或面向公众,还需确认 README 与文档入口仍匹配当前包名和路径、示例仍能用文档中的命令运行、重命名的公共表面在清单与文档中保持一致,动态插件示例除非有意收窄否则使用 compat.relay = ">=0.5,<1.0"。
限制:以上为仓库内验证流程说明,未提供适用的具体平台/环境要求、依赖版本或执行时长信息;其余未提及内容暂未提供。