martinholovsky/SOTA-skills
GitHub: martinholovsky/SOTA-skills
一套包含 30 个领域技能的 Claude Code 技能库,将最先进的软件构建与审计实践编码为可按需路由加载的规则,让 AI 编程助手按照工程规范进行开发与代码审查。
Stars: 0 | Forks: 1
# SOTA 工程技能
/
SKILL.md # when to use, BUILD/AUDIT workflows,
# severity conventions, rules index, top-10
rules/
01-.md # 150–320 lines each, ends with an
02-.md # executable Audit checklist
...
profiles/
.md # personal stack defaults consulted by router
```
每个技能都在两种模式下工作:
- **BUILD** —— 在设计/编写代码时应用规则。
- **AUDIT** —— 审查现有代码;发现结果将输出为
`file:line | 违反的规则 | 严重程度 (Critical/High/Medium/Low/Info) |
工作量 (trivial/small/medium/large) | 修复建议`。
## 技能
| 技能 | 涵盖范围 |
|---|---|
| `sota` | 主路由器:运行原则、任务→技能路由、全量审计工作流 + 审计方法(工具矩阵、证据标准、报告模板) |
| `sota-architecture` | 架构风格与 ADR、DDD、分布式系统、弹性、可扩展性、云原生、反模式 |
| `sota-code-security` | 注入、authn/authz、加密、Web 安全、资源安全、数据泄露、LLM 应用安全 |
| `sota-threat-modeling` | STRIDE/LINDDUN、DFD 与信任边界、威胁目录、风险评估、模型重构 |
| `sota-secrets-management` | 生命周期与工作负载身份、存储后端、应用模式、泄露检测、凭证类型 |
| `sota-sandboxing` | 隔离边界、seccomp/Landlock/capabilities、容器/microVMs、解析器、AI-agent 沙箱化 |
| `sota-performance` | 测量优先方法论、算法、内存、I/O 与网络、缓存、Web Vitals |
| `sota-async-concurrency` | 并发模型、竞态/死锁、原语、event-loop 卫生、取消操作、背压 |
| `sota-api-design` | REST/HTTP、版本控制、GraphQL、gRPC、websockets/SSE/realtime、webhooks、API 安全与运维 |
| `sota-devsecops` | 流水线加固、SLSA/Sigstore 溯源、依赖项/SBOM、容器构建、IaC、准入控制 |
| `sota-databases` | 建模与引擎选择、零停机迁移、索引、事务、可靠性、安全性、pgvector/Qdrant、SurrealDB |
| `sota-frontend-design` | 排版/颜色、布局、设计系统、UX 模式、WCAG 2.2 无障碍设计、动效设计、视觉工艺 |
| `sota-observability` | 结构化日志、指标、OpenTelemetry 链路追踪、SLOs 与告警、运维就绪 |
| `sota-testing` | 测试策略与设计、测试替身/测试数据、契约测试、e2e、property/fuzzing/mutation、套件健康度 |
| `sota-llm-engineering` | Evals、prompt/context 工程、RAG、agents 与工具、LLM 生产工程、数据生命周期 |
| `sota-cloud-infrastructure` | 账户/landing zones、云 IAM、VPC/DNS/CDN 设置、计算选择、存储、FinOps、弹性与灾难恢复 |
| `sota-kubernetes` | 集群平台安全:RBAC 与提权、准入控制、GitOps 控制器、operators/CRDs、etcd、Helm 供应链、多租户、Talos/k3s |
| `sota-identity-access` | IdP 运维 (OIDC/SAML/SCIM)、RBAC/ABAC/ReBAC 设计、入职-调岗-离职流程、特权访问与破窗应急、SPIFFE、防钓鱼 MFA |
| `sota-network-security` | 零信任与微隔离、NetworkPolicy 深度解析、service mesh/mTLS、egress 控制、WAF/边缘网络、DNS/TLS/PKI 与证书生命周期 |
| `sota-detection-engineering` | 检测即代码 (Sigma/YARA/Falco)、SIEM 与遥测覆盖、告警调优/SOAR、威胁狩猎与情报、欺骗技术、事件响应 |
| `sota-data-engineering` | 流水线与编排、流处理/CDC、lakehouse 与 Parquet、数据质量/契约、治理 |
| `sota-privacy-compliance` | 数据清单、隐私保护设计、同意与用户权利、GDPR/CCPA/HIPAA/PCI/AI Act、SOC 2/ISO 27001、违规响应准备 |
| `sota-mobile` | 平台/技术栈选择、离线优先与推送、移动端安全、性能预算、应用商店发布 |
| `sota-cli-ux` | 命令/flag 设计、输出与 exit-code 契约、生命周期行为、分发 |
| `sota-shell-scripting` | Bash 安全基线、健壮性、脚本安全、CI/entrypoint/Makefile 脚本 |
| `sota-docs-workflow` | 文档架构、API 文档与变更日志、代码审查/PR 工作流、提交与发布 |
| `sota-rust` | 所有权/API 设计、错误与 panic、unsafe 规范、tokio、供应链、性能、CI |
| `sota-golang` | 错误处理、包设计、goroutine 安全、net/http 加固、安全性、pprof、CI |
| `sota-python` | uv/ruff/typing、惯用法、asyncio、安全性、性能、FastAPI/Django/pytest |
| `sota-javascript-typescript` | 严格 TS、惯用法、异步、Node 加固、安全性、打包/React 性能、测试 |
## 安装
**最简单的方式 —— 作为 Claude Code 插件**(安装所有技能,通过
`/plugin` 更新):
```
/plugin marketplace add martinholovsky/SOTA-skills
/plugin install sota-skills@sota-skills
```
**或者 clone + link**(如果你想在本地检出代码以便阅读、修改或固定版本,这是最佳选择)。
技能会从 `.claude/skills/`(特定项目)或 `~/.claude/skills/`
(个人,所有项目)中被发现。Clone 该仓库,然后运行安装程序——它会为
每个技能(以及你的 profile,如果有的话)建立软链接:
```
git clone https://github.com/martinholovsky/SOTA-skills && cd SOTA-skills
./scripts/install.sh # personal: ~/.claude/skills (all projects)
./scripts/install.sh --project DIR # one project: DIR/.claude/skills
./scripts/install.sh --copy # copy instead of symlink (pin a snapshot)
```
不想用脚本?个人安装仅需:
```
mkdir -p ~/.claude/skills
for d in skills/*/; do ln -sfn "$(pwd)/$d" ~/.claude/skills/"$(basename "$d")"; done
```
### 更新
**插件安装:** 版本更新时会发布新版 —— `/plugin update
sota-skills@sota-skills`(或 `/plugin marketplace update sota-skills`)。Git 托管的
marketplaces 也会在会话开始时进行检查。
**Clone 安装:** 因为链接是基于 symlink 的,**现有技能在你 pull 后就会立即更新**
—— symlinks 已经指向了活跃文件,无需重新安装:
```
git -C /path/to/SOTA-skills pull
```
想要同时获取**新增的**技能(仅靠 pull 无法链接到一个全新的
技能目录)并清理已移除技能的链接,请重新运行安装程序——或者一步到位:
```
./scripts/install.sh --update # git pull --ff-only, then re-link
```
它是幂等的:重新运行只会链接新内容并清理已移除的内容,
绝不会触碰它未创建的 symlinks。(使用 `--copy` 完成的快照安装
无法自动更新——重新运行安装程序即可刷新它们。)
### 常驻路由(推荐)
技能描述会根据每个 prompt 进行匹配,因此路由是按需启用的,并且取决于
你如何表述请求。要使技能应用于**每一个**会话,
无论措辞如何,请在 Claude Code 总能看到的地方固定路由指令。分为三个层级,最后一种最强:
**1. 技术栈 profile。** 复制模板,填写你的技术栈,并将其 symlink 到
`~/.claude/`,这样路由器在每个项目中都能找到它(不仅仅是这个仓库):
```
cp profiles/example.md.template profiles/.md # edit it — profiles/*.md is git-ignored
mkdir -p ~/.claude/profiles
ln -sfn "$(pwd)/profiles/.md" ~/.claude/profiles/.md
```
**2. 全局指令。** `~/.claude/CLAUDE.md` 会被加载到每一个
会话、每一个项目中。添加一个路由强制规则,这样无需触发词就能应用技能:
```
# Global engineering 指令
For any task that builds, designs, refactors, debugs, reviews, or audits code —
in any language or repo — consult the `sota` router skill first, load the
matching `sota-*` skills, and apply their rules before acting. This holds even
when I never say "SOTA" or "audit". Treat `~/.claude/profiles/.md` as the
BUILD default and AUDIT baseline. Validate claims against primary sources and
stop-and-ask on security-relevant choices.
```
**3.(可选)每次 prompt 的提醒。** 在长会话中,很多轮之前读取的指令可能会从
context 中消退。在
`~/.claude/settings.json` 中设置一个 `UserPromptSubmit` hook,即可在每次 prompt 时重新注入它:
```
{
"hooks": {
"UserPromptSubmit": [
{ "hooks": [ { "type": "command",
"command": "echo 'Route code tasks through the sota router and apply the matching sota-* skills; the profile is the stack baseline.'" } ] }
]
}
}
```
没有任何机制能*强迫*模型运行技能——这三个层级都只是向其提供指令,由它
自行选择是否遵循。但结合起来,它们能让路由变得可靠,
而不再依赖于措辞。
### 强制执行关卡
路由让模型去*应用*规则;为了无论谁(或什么)提交代码都能让规则生效,请将它们配置为 git hooks。`scripts/init-gates.sh` 会根据在目标仓库中找到的任何语言,生成一个符合 SOTA 标准的 `.pre-commit-config.yaml`:
```
cd /path/to/your/project
/path/to/SOTA-skills/scripts/init-gates.sh # add --dry-run to preview first
```
它会根据 manifest 和扩展名检测 Python / Go / Rust / JS-TS / shell,然后
写入每个技能所规定的精确工具 —— ruff·mypy·pytest·pip-audit,
gofumpt·golangci-lint·govulncheck,clippy·cargo-audit,eslint·tsc·` audit`,
shellcheck·shfmt,外加无处不在的 gitleaks。快速检查(lint、格式化、密钥扫描)
在 **commit** 时运行;繁重的检查(类型检查、测试、漏洞扫描)在 **push** 时运行 ——
这正是 `sota-python` 的 rules/01 §6 和 `sota-devsecops` 的 rules/05 所要求的,从而保持提交的
快速。
它是**幂等的**:在添加新语言后重新运行它,它只会重写
其 `# >>> sota-gates >>>` 标记之间的代码块,保留你自己添加的任何 hooks 不变。这些 hooks 会调用你项目自带的工具链,因此请安装
它在退出时列出的各语言特定工具(如果脚本无法运行,则执行 `pre-commit install`)。
## 工作原理
Claude Code 会将你的 prompt 与每个技能的 frontmatter 描述进行匹配,
并自动加载相关内容——你不必指定技能名称。
显式指定(或使用 `sota` 路由器)只会让路由更明确。接下来:
1. 技能的 `SKILL.md` 会优先加载(工作流、严重程度约定,
及其 `rules/` 文件的索引)。只会读取与你任务匹配的 rules 文件——
绝不会加载整个库。
2. **BUILD 模式** 会在编写代码时应用规则,并在展示之前根据每个已加载 rules 文件的 Audit checklist 对
diff 进行自我检查。
3. **AUDIT 模式** 会搜寻违规行为,并将发现结果报告为
`file:line | 规则 | 严重程度 | 工作量 | 修复建议`。全量审计遵循
`sota/rules/01-audit-methodology.md`(范围界定 → 资产盘点 → 工具配置 →
逐个领域扫描 → 生成包含优先级路线图的报告)。
4. 如果 `profiles/.md` 存在,其技术栈选择即为 BUILD 的默认设置和
AUDIT 的基线(任何偏差都会被标记)。
## Prompt 示例
**构建:**
**审计:**
**限定范围与跨领域:**
**维护该库:**
## 使用技巧
- **如果模棱两可,请说明模式** —— “audit”、“review”、“harden” 还是 “build”、
“add”、“design”。技能会根据这些动词进行触发。
- **明确界定审计范围**:针对哪个 commit/branch,仅静态检查还是
可以运行工具,时间预算(“仅限核心资产”)。否则,方法学文件会停下来向你询问。
- **提出你想要的报告格式** —— 默认情况下,全量审计会生成
执行摘要 → 按严重程度出的发现 → 按单位努力的降低风险程度排序的路线图 →
正面观察。
- **自由组合技术栈技能**:语言 + 领域(“sota-rust + sota-api-design
用于这个 axum 服务”)。当你只描述任务时,路由器会自动执行此操作。
- **重新验证任何对版本敏感的内容**:库中固定的数据截止于
上述最后更新日期;新鲜度优先原则要求
模型在固定版本之前进行网络核对——请坚持这一点。
## 约定
- 每个 rules 文件都以一个 **Audit checklist**(是/否问题结束,通常
附带用于搜寻违规行为的 grep/lint 模式)。
- 随处可见的严重程度划分:**Critical**(可利用/数据丢失)· **High**
(本迭代修复)· **Medium**(有限影响)· **Low**(日常规范)·
**Info**(观察结果,无直接风险)。每项发现还附带一份**工作量**预估(trivial/small/medium/large),以便按单位努力的降低风险程度来安排修复顺序。
- 每个 SKILL.md 都包含一个 **top-10 不可妥协项** 列表 —— 无条件应用这些项;仅根据任务需要加载详细的 rules 文件。
- 处于边界的严重程度会说明判定时的假设;未确认的发现结果
被标记为“需要验证”,绝不作断定。
## 贡献
请参阅 [CONTRIBUTING.md](CONTRIBUTING.md)。简短版本是:保持技能的通用性,
对照原始来源验证快速变动的声明,确保每个文件 ≤ 500 行,
并在每个 rules 文件末尾附上审计 checklist。这些由
`scripts/check-invariants.sh`(pre-commit + CI)以及 gitleaks 强制执行。安全问题和行为准则:
[SECURITY.md](SECURITY.md),[CODE_OF_CONDUCT.md](CODE_OF_CONDUCT.md)。
## 许可证
© 2026 Martin Holovsky。采用 [CC BY 4.0](LICENSE) —— 知识共享
署名 4.0 国际许可协议授权。可自由使用、改编和分享(包括
商业用途);只需注明出处:*“SOTA Engineering Skills by Martin
Holovsky, CC BY 4.0.”*
`profiles/` 存放个人技术栈配置,除了
`profiles/example.md.template` 外均被 git-ignored —— 将其复制到 `profiles/.md` 并进行编辑;
你的真实 profile 会保留在本地,永远不会被提交。
标签:AI编程助手, Claude Code, CLI应用, Cutter, SOC Prime, 云安全监控, 开发工具, 开发规范, 数据管道, 网络安全研究, 软件工程, 防御加固, 静态分析