Iron Proxy Gateway for NanoClaw
nanocoai/nanoclaw
Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.
“CI检查验证和质量保障”
$ npx skills add shenjingnan/xiaozhi-client --skill ci-validator -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install shenjingnan/xiaozhi-client ci-validator --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/shenjingnan/xiaozhi-client.git skills-src && mkdir -p .claude/skills && cp -r skills-src/.agents/skills/ci-validator .claude/skills/ci-validator && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "ci-validator" agent skill from https://github.com/shenjingnan/xiaozhi-client/tree/main/.agents/skills/ci-validator into .claude/skills/ci-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-validator", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/shenjingnan/xiaozhi-client/tree/main/.agents/skills/ci-validatorType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add shenjingnan/xiaozhi-client --skill ci-validator -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install shenjingnan/xiaozhi-client ci-validator --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shenjingnan/xiaozhi-client.git skills-src && mkdir -p .agents/skills && cp -r skills-src/.agents/skills/ci-validator .agents/skills/ci-validator && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "ci-validator" agent skill from https://github.com/shenjingnan/xiaozhi-client/tree/main/.agents/skills/ci-validator into .agents/skills/ci-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-validator", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add shenjingnan/xiaozhi-client --skill ci-validator -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install shenjingnan/xiaozhi-client ci-validator --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shenjingnan/xiaozhi-client.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/.agents/skills/ci-validator .cursor/skills/ci-validator && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "ci-validator" agent skill from https://github.com/shenjingnan/xiaozhi-client/tree/main/.agents/skills/ci-validator into .cursor/skills/ci-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-validator", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/shenjingnan/xiaozhi-client.git --path .agents/skills/ci-validator--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add shenjingnan/xiaozhi-client --skill ci-validator -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install shenjingnan/xiaozhi-client ci-validator --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shenjingnan/xiaozhi-client.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/.agents/skills/ci-validator .gemini/skills/ci-validator && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "ci-validator" agent skill from https://github.com/shenjingnan/xiaozhi-client/tree/main/.agents/skills/ci-validator into .gemini/skills/ci-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-validator", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install shenjingnan/xiaozhi-client ci-validatorInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add shenjingnan/xiaozhi-client --skill ci-validator -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/shenjingnan/xiaozhi-client.git skills-src && mkdir -p .github/skills && cp -r skills-src/.agents/skills/ci-validator .github/skills/ci-validator && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "ci-validator" agent skill from https://github.com/shenjingnan/xiaozhi-client/tree/main/.agents/skills/ci-validator into .github/skills/ci-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-validator", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add shenjingnan/xiaozhi-client --skill ci-validator -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install shenjingnan/xiaozhi-client ci-validator --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/shenjingnan/xiaozhi-client.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/.agents/skills/ci-validator .opencode/skills/ci-validator && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "ci-validator" agent skill from https://github.com/shenjingnan/xiaozhi-client/tree/main/.agents/skills/ci-validator into .opencode/skills/ci-validator/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "ci-validator", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
ci-validatorCI Validator is a skill in shenjingnan/xiaozhi-client (341 stars). Its SKILL.md is about 2.1k tokens. Licence: MIT.
12 steps, taken from the step headings in SKILL.md.
Read from SKILL.md and the folder at commit fe3c382. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Shell commands in SKILL.md call:
pnpmgitnpxFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pnpm, git and npx, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
CI Validator loads about 2.1k tokens when it runs. Until then it costs about 6 tokens; SKILL.md has 126 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check found no risky patterns in SKILL.md.
Automated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); files beside SKILL.md are not scanned.
The full file from shenjingnan/xiaozhi-client at commit fe3c382, republished under its MIT licence (© shenjingnan). 126 words, ~2,141 tokens.
.claude/skills/ci-validator/SKILL.md (or your agent's skills folder).我是 CI 检查验证和质量保障技能,专门确保 xiaozhi-client 项目的代码质量符合标准,同时遵循务实开发理念。
核心能力:自动执行项目要求的所有代码质量检查,确保代码符合 CI 标准。
# 1. 执行完整检查(xiaozhi-client 项目)
pnpm check:all
# 2. 运行测试套件
pnpm test
# 3. (可选)生成覆盖率报告
pnpm test:coveragepnpm check:all 包含:
pnpm lint - Biome 代码规范和格式检查pnpm typecheck - TypeScript 严格类型检查pnpm spellcheck - 拼写检查pnpm check:cpd - 重复代码检查pnpm test 包含:
当检查失败时,自动分析失败原因并提供针对性修复建议。
// 常见问题1:any 类型使用
// ❌ 错误示例
function processData(data: any): any {
return data.value;
}
// ✅ 修复建议
function processData<T extends Record<string, unknown>>(data: T): T[keyof T] {
return data.value as T[keyof T];
}
// 常见问题2:类型定义缺失
// ❌ 错误示例
const config = {
apiEndpoint: "https://api.home-assistant.local",
timeout: 5000,
};
// ✅ 修复建议
interface Config {
apiEndpoint: string;
timeout: number;
}
const config: Config = {
apiEndpoint: "https://api.home-assistant.local",
timeout: 5000,
};# 常见问题及修复命令
# 问题:Biome 检查失败
# 解决方案:运行自动修复
pnpm lint
# 问题:导入路径不规范
# 解决方案:使用路径别名系统
import { UnifiedMCPServer } from "@core/unified-server"; // ✅
import { StartCommand } from "@cli/commands/start"; // ✅
import { UnifiedMCPServer } from "./core/unified-server"; // ❌
# 问题:未使用的导入
# 解决方案:移除未使用的导入
pnpm lint # 会自动清理# 常见问题:技术术语被标记为拼写错误
# 解决方案1:确认确实是错误,修正拼写
# 解决方案2:如果是专业术语,添加到项目词典
echo "homeassistant" >> .cspell.json
# 解决方案3:忽略特定文件或目录
# 在 .cspell.json 中配置 ignorePaths// 常见问题1:测试覆盖率不足
// 解决方案:补充测试用例,覆盖未测试的代码路径
// 常见问题2:异步测试处理不当
// ❌ 错误示例
test("should fetch data", () => {
const result = await fetchData();
expect(result).toBeDefined();
});
// ✅ 修复建议
test("should fetch data", async () => {
const result = await fetchData();
expect(result).toBeDefined();
});
// 常见问题3:Mock 设置不完整
// ❌ 错误示例
vi.mock("@/services/light-service");
// ✅ 修复建议
vi.mock("@/services/light-service", () => ({
LightService: {
turnOn: vi.fn(),
turnOff: vi.fn(),
},
}));确保代码符合项目的 CI/CD 要求,避免流水线失败。
# GitHub Actions CI 流程检查项
- ✅ 类型检查通过 (pnpm typecheck)
- ✅ 代码规范检查通过 (pnpm lint)
- ✅ 拼写检查通过 (pnpm spellcheck)
- ✅ 构建成功 (pnpm build)
- ✅ 测试通过 (pnpm test:coverage)
- ✅ 覆盖率达到要求# 检查当前覆盖率
pnpm test:coverage
# 覆盖率要求(基于 vitest.config.ts)
- 函数覆盖率: 80%
- 行覆盖率: 80%
- 语句覆盖率: 80%
- 分支覆盖率: 70%在代码提交前自动执行所有必要的检查,确保只提交高质量的代码。
# 安装 husky(如果未安装)
pnpm add -D husky
# 设置 pre-commit hook
npx husky add .husky/pre-commit "pnpm check:all && pnpm test"
# 设置 pre-push hook
npx husky add .husky/pre-push "pnpm test:coverage"# 完整预提交检查流程
function preCommitCheck() {
echo "🔍 执行预提交检查..."
# 1. 代码规范检查和修复(包括格式化)
pnpm lint
# 2. 类型检查
pnpm typecheck
# 3. 拼写检查
pnpm spellcheck
# 4. 运行测试
pnpm test
# 5. 生成覆盖率报告
pnpm test:coverage
echo "✅ 预提交检查完成"
}# 必须执行检查的时机
- ✅ 每次代码修改后
- ✅ 提交代码前 (git commit)
- ✅ 创建 PR 前
- ✅ 合并到 main 分支前
- ✅ 发布版本前interface CheckFailure {
type: 'type_error' | 'lint_error' | 'spell_error' | 'test_failure';
severity: 'error' | 'warning';
file: string;
line?: number;
message: string;
fixCommand?: string;
autoFixable: boolean;
}
function handleCheckFailure(failure: CheckFailure): void {
switch (failure.type) {
case 'type_error':
console.log(`🔧 类型错误: ${failure.message}`);
if (failure.autoFixable) {
console.log(`💡 建议修复: ${failure.fixCommand}`);
}
break;
case 'lint_error':
console.log(`📝 代码规范错误: ${failure.message}`);
console.log(`💡 自动修复: pnpm lint`);
break;
case 'spell_error':
console.log(`📖 拼写错误: ${failure.message}`);
console.log(`💡 检查拼写: pnpm spellcheck`);
break;
case 'test_failure':
console.log(`🧪 测试失败: ${failure.message}`);
console.log(`💡 修复测试: /fix-test ${failure.file}`);
break;
}
}interface QualityGates {
typeCheck: {
anyTypesAllowed: 0; // 0 容忍度
strictMode: true; // 必须启用严格模式
implicitAny: false; // 禁止隐式 any
};
lintCheck: {
errorsAllowed: 0; // 0 错误容忍度
warningsAllowed: 5; // 最多 5 个警告
autoFixRate: 0.95; // 95% 自动修复率
};
spellCheck: {
spellingErrors: 0; // 0 拼写错误容忍度
technicalTerms: 'verified'; // 技术术语必须验证
};
testCoverage: {
functions: 80; // 函数覆盖率 80%
lines: 80; // 行覆盖率 80%
statements: 80; // 语句覆盖率 80%
branches: 70; // 分支覆盖率 70%
};
}# 修复所有可自动修复的问题
pnpm lint
# 如果仍有问题,运行详细诊断
pnpm check:all # 查看具体错误
pnpm typecheck # 查看类型错误详情
pnpm spellcheck # 查看拼写错误详情#!/bin/bash
# auto-fix.sh - 智能修复脚本
echo "🚀 开始自动修复..."
# 1. 代码规范检查和自动修复(包括格式化)
echo "🔧 修复代码规范问题..."
pnpm lint
# 2. 类型检查(仅诊断,不自动修复)
echo "🔍 检查类型问题..."
TYPE_ERRORS=$(pnpm typecheck 2>&1 | grep -c "error" || echo "0")
if [ "$TYPE_ERRORS" -gt 0 ]; then
echo "❌ 发现 $TYPE_ERRORS 个类型错误,需要手动修复"
pnpm typecheck
exit 1
fi
# 4. 拼写检查
echo "📖 检查拼写..."
SPELL_ERRORS=$(pnpm spellcheck 2>&1 | grep -c "error" || echo "0")
if [ "$SPELL_ERRORS" -gt 0 ]; then
echo "❌ 发现 $SPELL_ERRORS 个拼写错误,请检查"
pnpm spellcheck
exit 1
fi
# 5. 运行测试
echo "🧪 运行测试..."
pnpm test
echo "✅ 自动修复完成!"interface FixStrategy {
priority: 'high' | 'medium' | 'low';
autoFix: boolean;
description: string;
}
const fixStrategies: FixStrategy[] = [
{
priority: 'high',
autoFix: true,
description: '代码格式和规范问题(使用 pnpm lint)'
},
{
priority: 'high',
autoFix: false,
description: 'TypeScript 严重类型错误'
},
{
priority: 'medium',
autoFix: false,
description: '测试用例修复(使用 /fix-test)'
},
{
priority: 'low',
autoFix: true,
description: '拼写错误(添加到词典或修正)'
}
];interface QualityReport {
timestamp: string;
checkType: {
passed: boolean;
errors: number;
warnings: number;
issues: TypeIssue[];
};
lintCheck: {
passed: boolean;
errors: number;
warnings: number;
fixed: number;
};
spellCheck: {
passed: boolean;
errors: number;
words: string[];
};
testCoverage: {
passed: boolean;
coverage: CoverageReport;
failingTests: TestFailure[];
};
overall: {
passed: boolean;
score: number; // 0-100
recommendations: string[];
};
}# 生成质量报告
function generateQualityReport() {
echo "📊 生成代码质量报告..."
# 运行所有检查
pnpm check:all > check-results.txt 2>&1
pnpm test:coverage > coverage-results.txt 2>&1
# 分析结果
echo "📈 质量趋势分析:"
echo "- 类型错误: $(grep -c "error" check-results.txt || echo "0")"
echo "- 代码规范问题: $(grep -c "error" check-results.txt || echo "0")"
echo "- 测试覆盖率: $(tail -10 coverage-results.txt | grep -o "[0-9]*%" | head -1)"
# 生成改进建议
echo "💡 改进建议:"
echo "- 定期运行 pnpm check:all 进行预防性检查"
echo "- 在提交前确保所有检查通过"
echo "- 保持测试覆盖率在要求水平以上"
}# 使用技能验证代码质量
skill: ci-validator
# 手动执行完整检查
pnpm check:all && pnpm test
# 快速检查(仅核心检查)
pnpm lint && pnpm test// .vscode/settings.json
{
"editor.formatOnSave": true,
"editor.codeActionsOnSave": {
"quickfix.biome": "explicit",
"source.organizeImports": "explicit"
},
"typescript.preferences.preferTypeOnlyAutoImports": true,
"cSpell.enableFiletypes": ["typescript", "javascript", "markdown", "yaml"]
}# 创建 Git 别名简化检查
git config --global alias.precheck '!pnpm check:all && pnpm test'
git config --global alias.quality '!pnpm check:all && pnpm test:coverage'
# 使用别名
git precheck # 快速检查
git quality # 完整质量检查pnpm check:all通过这个技能,可以确保 xiaozhi-client 项目始终保持高质量的代码标准,减少 CI/CD 流水线失败,提升开发效率和代码质量。特别适配项目的 MCP 协议特性和复杂路径别名系统。
© shenjingnan, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
Just SKILL.md in .agents/skills/ci-validator of shenjingnan/xiaozhi-client.
Open the folder on GitHubat commit fe3c382
CI Validator next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| CI Validator this skillshenjingnan/xiaozhi-client | 341 | — | ~2.1k | Automated safety check: Pass | MIT | |
| Iron Proxy Gateway for NanoClawnanocoai/nanoclaw | 31k | — | ~4.6k | Automated safety check: Notes | MIT | |
| Container Devyansongda/pay | 5.4k | — | ~968 | Automated safety check: Pass | MIT | |
| Desktop Release Sync LandingEynzof/Hermes-CN-Desktop | 1.7k | — | ~1.3k | Automated safety check: Pass | Custom licence | |
| CI GitHub Actionsgnomeria/usbtree | 690 | — | ~1.4k | Automated safety check: Pass | MIT | |
| Check Deps SyncHyk260/PureChat | 546 | — | ~594 | Automated safety check: Pass | MIT |
nanocoai/nanoclaw
Installs or refreshes Iron Proxy and its Iron Control web console for NanoClaw, with a local Docker setup, database, credentials and a human approval bridge.
yansongda/pay
A skill your agent uses when local PHP environment is unavailable.
Eynzof/Hermes-CN-Desktop
Use only for stable/public Hermes Agent CN Desktop releases that should be visible to all users.
gnomeria/usbtree
GitHub Actions CI pipeline conventions — job shape, caching, permissions, and action pinning.
Hyk260/PureChat
Check if package.json files are in sync with pnpm-lock.yaml.
webspatial/webspatial-sdk
WebSpatial SDK 仓库的版本发布与 Changesets 使用规范. An agent skill from webspatial/webspatial-sdk.
shenjingnan/xiaozhi-client
分析当前分支 git 改动,检查 e2e 测试用例覆盖情况,并可补充缺失的测试用例. An agent skill from shenjingnan/xiaozhi-client.
shenjingnan/xiaozhi-client
GitHub 评论修复技能,用于获取 PR 的 Copilot 评论并分析修复问题. An agent skill from shenjingnan/xiaozhi-client.
shenjingnan/xiaozhi-client
文档自动生成
shenjingnan/xiaozhi-client
生成代码评审友好的 commit 信息
shenjingnan/xiaozhi-client
开发流程检查技能,确保代码修改后执行必要的质量检查
shenjingnan/xiaozhi-client
文档创建技能,用于创建标准化的项目文档
Works with
Categories
Run `npx skills add shenjingnan/xiaozhi-client --skill ci-validator -a claude-code`. Or copy the skill folder (.agents/skills/ci-validator in shenjingnan/xiaozhi-client) into .claude/skills/ci-validator in your project. Claude Code loads it when a task matches its description.
Run `npx skills add shenjingnan/xiaozhi-client --skill ci-validator -a codex`. Or copy the skill folder (.agents/skills/ci-validator in shenjingnan/xiaozhi-client) into .agents/skills/ci-validator in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add shenjingnan/xiaozhi-client --skill ci-validator -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/ci-validator, .gemini/skills/ci-validator, .github/skills/ci-validator and .opencode/skills/ci-validator in your project.
Going by SKILL.md and its folder, CI Validator needs the command-line tools its instructions call (pnpm, git and npx).
SKILL.md contains no URLs. Its commands use git and npx, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found no risky patterns, such as piping downloads into a shell, reading credential files or hidden Unicode. It is not a guarantee. Review the folder before installing.
CI Validator is published under the MIT licence (the repository's licence). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.1k tokens (SKILL.md is roughly 8.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full.
Skills that share tags, products or a category with CI Validator: Iron Proxy Gateway for NanoClaw (nanocoai/nanoclaw, 31k stars), Container Dev (yansongda/pay, 5.4k stars), Desktop Release Sync Landing (Eynzof/Hermes-CN-Desktop, 1.7k stars) and CI GitHub Actions (gnomeria/usbtree, 690 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
shenjingnan (a GitHub user) maintains it in shenjingnan/xiaozhi-client, which has 341 GitHub stars. The repository holds 16 skills in this directory. The repository was last updated on September 3, 2026.
Source: shenjingnan/xiaozhi-client on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.