[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"project-94783":3},{"id":4,"name":5,"fullName":6,"owner":7,"repo":5,"description":8,"homepage":9,"htmlUrl":9,"language":10,"languages":9,"totalLinesOfCode":9,"stars":11,"forks":12,"watchers":13,"openIssues":14,"contributorsCount":15,"subscribersCount":15,"size":15,"stars1d":15,"stars7d":15,"stars30d":16,"stars90d":15,"forks30d":15,"starsTrendScore":15,"compositeScore":17,"rankGlobal":9,"rankLanguage":9,"license":18,"archived":19,"fork":19,"defaultBranch":20,"hasWiki":21,"hasPages":19,"topics":22,"createdAt":9,"pushedAt":9,"updatedAt":31,"readmeContent":32,"aiSummary":33,"trendingCount":15,"starSnapshotCount":15,"syncStatus":14,"lastSyncTime":34,"discoverSource":35},94783,"skilldoctor","xyiqq\u002Fskilldoctor","xyiqq","Quality gate for Agent Skills: lint, security audit, and Claude\u002FCursor\u002FCodex\u002FOpenCode compatibility.",null,"TypeScript",394,12,3,2,0,293,53.34,"MIT License",false,"main",true,[23,24,25,26,27,28,29,30],"agent-skills","claude-code","cli","codex","cursor","linter","opencode","security","2026-08-24 04:01:22","# skilldoctor\n\n[![CI](https:\u002F\u002Fgithub.com\u002Fxyiqq\u002Fskilldoctor\u002Factions\u002Fworkflows\u002Fci.yml\u002Fbadge.svg)](https:\u002F\u002Fgithub.com\u002Fxyiqq\u002Fskilldoctor\u002Factions\u002Fworkflows\u002Fci.yml)\n\nQuality gate for [Agent Skills](https:\u002F\u002Fagentskills.io). Lint the spec, audit unsafe instructions, and check whether a `SKILL.md` actually works on Claude Code, Cursor, Codex, OpenCode, Gemini CLI, and GitHub Copilot.\n\nAgent Skills 的质量门禁：校验官方规范、审计危险指令，并检查同一个 `SKILL.md` 在 Claude Code、Cursor、Codex、OpenCode、Gemini CLI、GitHub Copilot 上能不能移植。\n\nVercel `npx skills` installs skills. skilldoctor decides whether you should keep them.\n\nVercel 的 `npx skills` 负责安装。skilldoctor 负责判断该不该留。\n\n## Install \u002F 安装\n\n```bash\nnpx --yes github:xyiqq\u002Fskilldoctor --help\nnpx --yes github:xyiqq\u002Fskilldoctor lint .\nnpx --yes github:xyiqq\u002Fskilldoctor audit .\nnpx --yes github:xyiqq\u002Fskilldoctor compat .\nnpx --yes github:xyiqq\u002Fskilldoctor ci .\n```\n\nFrom a clone \u002F 从源码：\n\n```bash\ngit clone https:\u002F\u002Fgithub.com\u002Fxyiqq\u002Fskilldoctor.git\ncd skilldoctor\nnpm install\nnpm run build\nnode dist\u002Fcli.js --help\n```\n\nRequires Node.js 18.18 or newer.\n\n## Commands \u002F 命令\n\n```bash\nnpx --yes github:xyiqq\u002Fskilldoctor lint .\u002Fmy-skill\nnpx --yes github:xyiqq\u002Fskilldoctor audit .\u002Fmy-skill\nnpx --yes github:xyiqq\u002Fskilldoctor compat .\u002Fmy-skill\nnpx --yes github:xyiqq\u002Fskilldoctor ci .\u002Fmy-skill\nnpx --yes github:xyiqq\u002Fskilldoctor scan\nnpx --yes github:xyiqq\u002Fskilldoctor init pdf-processing\nnpx --yes github:xyiqq\u002Fskilldoctor rules\nnpx --yes github:xyiqq\u002Fskilldoctor explain lint\u002Fname-invalid\nnpx --yes github:xyiqq\u002Fskilldoctor fix .\u002Fmy-skill\nnpx --yes github:xyiqq\u002Fskilldoctor fix .\u002Fmy-skill --dry-run\nnpx --yes github:xyiqq\u002Fskilldoctor score .\u002Fmy-skill\n```\n\n`scan` is also available as `skilldoctor doctor`.\n\n`path` can be one skill directory or a repository root. skilldoctor walks the tree and finds every `SKILL.md`.\n\n`path` 可以是单个 Skill 目录，也可以是仓库根目录。skilldoctor 会向下查找全部 `SKILL.md`。\n\n### Options \u002F 参数\n\n| Flag | Values | Default |\n|---|---|---|\n| `--format` | `human`, `json`, `sarif`, `markdown` | `human` |\n| `--fail-on` | `error`, `warning`, `never`, or `score:\u003Cn>` for `score` | `error` |\n| `--ignore` | glob or path prefix, repeatable | none |\n| `--suppress` | rule id or `lint\u002F*` style prefix, repeatable | none |\n| `--quiet` |  | off |\n| `--dry-run` | with `fix` only | off |\n\n```bash\nskilldoctor ci . --format json --fail-on warning\nskilldoctor ci . --ignore examples --format markdown\nskilldoctor ci . --suppress lint\u002Fdescription-vague --suppress compat\u002F*\nskilldoctor score . --fail-on score:80\nskilldoctor scan --ignore keep-out\n```\n\nOptional config files in the repo root \u002F 仓库根目录可选配置：\n\n```json\n{\n  \"failOn\": \"error\",\n  \"ignore\": [\"vendor\u002Fskills\"],\n  \"suppress\": [\"lint\u002Fdescription-vague\", \"compat\u002F*\"]\n}\n```\n\n`.skilldoctorignore` uses one path prefix per line. `#` comments are skipped.\n\n`.skilldoctorignore` 每行一个路径前缀，`#` 开头是注释。\n\n`suppress` hides matching findings from reports, exit codes, scores, and GitHub annotations. Use it for gradual adoption, not to silence security errors forever.\n\n`suppress` 会从报告、退出码、评分和 GitHub annotation 里隐藏匹配规则。适合渐进接入，不要长期用来掩盖安全问题。\n\n## Example \u002F 示例\n\n```text\nskilldoctor ci  1 skill(s)\n\n✔ release-notes  examples\u002Frelease-notes\n\n1 skills  0 errors  0 warnings  0 info\n```\n\nA failing audit looks like this \u002F 失败的审计类似：\n\n```text\n✖ audit-injection  test\u002Ffixtures\u002Faudit-injection\n  error  audit\u002Fprompt-injection  SKILL.md:8  instructions try to override system or hidden-user policy\n```\n\n## GitHub Action\n\n```yaml\nname: skilldoctor\non:\n  pull_request:\n  push:\n    branches: [main]\njobs:\n  skills:\n    runs-on: ubuntu-latest\n    steps:\n      - uses: actions\u002Fcheckout@v4\n      - uses: actions\u002Fsetup-node@v4\n        with:\n          node-version: 22\n      - uses: xyiqq\u002Fskilldoctor@v0.2.3\n        with:\n          path: .\n          fail-on: error\n          suppress: lint\u002Fdescription-vague\n```\n\nOr run the CLI from this repository \u002F 或者直接跑本仓库 CLI：\n\n```yaml\n      - run: npx --yes github:xyiqq\u002Fskilldoctor ci .\n```\n\n## What it checks \u002F 检查什么\n\n- **lint** — `name`, `description`, directory match, YAML, metadata types, 500-line budget, broken `references\u002F` \u002F `scripts\u002F` \u002F `assets\u002F` links\n- **audit** — prompt injection, hardcoded secrets, credential paths, `Bash(*)`, `curl | sh`, dump hosts, self-modifying skills\n- **compat** — which frontmatter fields survive outside Claude Code\n- **scan** — skills already installed for local agents, including duplicate names\n\nRule IDs are stable: [docs\u002FRULES.en.md](docs\u002FRULES.en.md) \u002F [docs\u002FRULES.zh-CN.md](docs\u002FRULES.zh-CN.md)\n\n## Why not another installer? \u002F 为什么不再做安装器？\n\nThe installer slot is taken. This tool is the missing CI gate: authors add one command, reviewers see annotations, users run `audit` before a skill touches `~\u002F.codex\u002Fskills`.\n\n安装器赛道已经有人占了。这个工具补的是 CI 门禁：作者加一条命令，审查者能在 PR 里看到 annotation，用户在 Skill 进 `~\u002F.codex\u002Fskills` 之前先跑 `audit`。\n\n## Development \u002F 开发\n\n```bash\nnpm install\nnpm test\nnpm run build\nnode dist\u002Fcli.js lint examples\n```\n\nSee [CONTRIBUTING.md](CONTRIBUTING.md).\n\n## License\n\nMIT\n","skilldoctor 是一个面向 Agent Skill（智能体技能）的质量门禁工具，用于校验技能规范（SKILL.md）的合规性、安全性与跨平台兼容性。它提供三大核心能力：静态检查（lint）规范格式与语义、安全审计（audit）高危指令（如系统命令调用）、兼容性验证（compat）是否能在 Claude Code、Cursor、Codex、OpenCode、Gemini CLI 和 GitHub Copilot 等主流 AI 编程助手环境中正常运行。支持 CLI 快速扫描、自动修复、多格式输出（SARIF\u002FJSON\u002FMarkdown）及配置化策略管理。适用于 AI 技能开发者、技能市场运营方及自动化 CI 流水线中对第三方技能进行准入审查与质量管控。","2026-08-15 02:30:14","CREATED_QUERY"]