JakubKontra/skills

GitHub: JakubKontra/skills

一组可一键安装的 Claude Code 技能插件,提供代码安全漏洞扫描、自主浏览器测试和 macOS 后台项目健康监控能力。

Stars: 3 | Forks: 0

# Agent 技能 一组技能集合,用于扩展跨规划、开发和工具链的能力。 ## 安装 使用 [`skills`](https://skills.sh) CLI 从此仓库安装任何技能: ``` # 安装 BrowserHawk npx skills add JakubKontra/skills --skill browserhawk # 列出所有可用 skills npx skills add JakubKontra/skills --list # 安装所有 skills npx skills add JakubKontra/skills --skill '*' ``` ## 技能 ### [Vulniq](docs/vulniq.md) 面向代码库的自主安全漏洞扫描器,**符合 [OWASP APTS](https://github.com/OWASP/APTS)(Autonomous Penetration Testing Standard)基础层级**。检测密钥泄露、XSS、缺失安全请求头、权限验证问题、OWASP Top 10 模式、依赖项漏洞等。输出 SARIF JSON、Markdown 报告以及 APTS 一致性声明 —— 所有这些都由防篡改的哈希链审计日志和**代码强制的扫描钩子门禁**提供支撑,拒绝任何乱序的步骤流转。 ``` flowchart LR A["/vulniq"] --> P["APTS Pre-flight
(RoE + HALT)"] P --> HK["scan-hook gate
(13 phases)"] HK --> B["Load Config"] B --> C["Detect Project"] C --> D["Scan & Analyze"] D --> E["Score & Grade"] E --> K["Conformance Claim"] K --> F["SARIF + Report"] F --> V["audit-verify
(chain integrity)"] style A fill:#7c3aed,color:#fff style P fill:#2563eb,color:#fff style HK fill:#2563eb,color:#fff style K fill:#059669,color:#fff style F fill:#dc2626,color:#fff style V fill:#059669,color:#fff ``` **功能:** - 无需配置 —— 在任何 JS/TS 项目上开箱即用 - 11 个安全类别:密钥、XSS、请求头、PII、权限验证、依赖项、OWASP、CORS、错误、供应链、**抗篡改** - 混合引擎:Claude 代码分析 + npm audit + git 历史记录扫描 - 上下文感知验证 —— 读取周边代码以减少误报 - SARIF 2.1.0 输出,包含针对单个发现结果的 `confidenceScore`、`validationStatus` 和 `evidenceHash` (SHA-256) - **扫描钩子强制执行** —— 13 个有序阶段;CLI 拒绝跳过/乱序调用,将 6 项 APTS 要求从依赖 agent 转变为代码强制执行 - **防篡改审计日志**,带有 SHA-256 哈希链;`audit-verify` 可检测任何修改 - **紧急停止 + 暂停**,并带有完整的状态快照导出(APTS-HO-006、HO-008) - 支持接入外部安全审计,并跨扫描跟踪修复状态 - 支持抑制规则、扫描历史记录和自定义检测模式 **符合 APTS 的治理(基础层级,涵盖全部 8 个领域 —— 71 项基础要求中:52 项满足 / 7 项部分满足 / 12 项不适用):** | 领域 | 覆盖率 | 我们的工作 | |---|---|---| | **SE — Scope Enforcement** | 满足 6/8,不适用 2 | 机器可解析的 `vulniq.roe.json`,包含允许/禁止的路径、扫描窗口、资产关键性分级;按文件执行动作前进行范围检查;具有毫秒级精度的时间边界 | | **SC — Safety Controls** | 满足 4/6,部分满足 1,不适用 1 | 三个独立的紧急停止开关(≤5秒停止)、CIA-LOW 只读姿态、逐步超时、扫描后 `git status` 完整性检查、外部强制动作允许列表 | | **HO — Human Oversight** | 满足 11/13,部分满足 2 | 权限委托矩阵、带有完整状态快照的暂停(HO-006)、一键停止 + 状态导出(HO-008)、扫描中途重定向范围(HO-007)、针对低置信度/范围漂移/违规行为的升级触发机制 | | **AL — Graduated Autonomy** | 满足 6/11,部分满足 1,不适用 4 | 声明 **Level L3**;正式边界文档,每 30 次操作重新生成哈希;≤5秒终止;12 个必需的审计日志字段 | | **AR — Auditability** | 满足 6/7,部分满足 1 | 哈希链 NDJSON 审计日志 (SHA-256)、毫秒时间戳的 schema 验证事件、`audit-verify` 命令、4 级证据分类 | | **MR — Manipulation Resistance** | 满足 8/13,部分满足 2,不适用 3 | 架构信任分离、权限声明检测、次级通道预防、加密的范围完整性监控 | | **TP — Third-Party & Supply Chain** | 满足 8/10,不适用 2 | Foundation Model 披露、服务商审查文档、事件响应程序、SBOM(仅限 Node 标准库)、自动化凭据/PII 发现、基于项目的租户隔离 | | **RP — Reporting** | 满足 3/3 | FP-rate 评估方法、漏洞类别覆盖矩阵、面向非技术利益相关者的执行摘要 | **开发者工具与集成:** | 界面 | 您将获得的内容 | 链接 | |---|---|---| | **CLI binary** | 执行 `npm link`(或 `npx`)后,简写形式 `vulniq ` 即可在 PATH 中使用;`vulniq --help` 列出全部 20 个命令 | `vulniq/bin/vulniq` | | **JSON Schemas** | 用于 `vulniq.roe.json`、`vulniq.config.json`、审计日志条目、SARIF 扩展以及 APTS 需求目录的 Draft-2020-12 schema —— 可使用 `ajv` 或 VS Code `json.schemas` 进行验证 | [`vulniq/schemas/`](vulniq/schemas/) | | **GitHub Action** | 复合 Action 运行治理门禁(验证 RoE → audit-verify → 一致性验证 → 将 SARIF 上传至 Code Scanning) | [`vulniq/actions/vulniq/`](vulniq/actions/vulniq/) | | **CI workflows** | 每次 push 时并行执行测试 + 治理门禁任务;由 tag 触发的发布工作流 | [`.github/workflows/vulniq-example.yml`](.github/workflows/vulniq-example.yml) | | **Test suite** | 69 个测试(`node --test`,零依赖),涵盖哈希链、RoE 验证、一致性验证、CLI 集成、扫描钩子强制执行 | [`vulniq/test/`](vulniq/test/) | | **Worked example** | 端到端的 `/vulniq` 会话演示 | [`vulniq/docs/worked-example.md`](vulniq/docs/worked-example.md) | **快速开始:** ``` # 安装 skill npx skills add JakubKontra/skills --skill vulniq # 在 Claude Code 中运行完整扫描 /vulniq # 可选:创建 config + Rules of Engagement cp .claude/skills/vulniq/assets/config.example.json vulniq.config.json cp .claude/skills/vulniq/assets/vulniq.roe.example.json vulniq.roe.json # 可选:将简短的 `vulniq` binary 放入 PATH (cd .claude/skills/vulniq && npm link) # 随时检查 APTS 覆盖范围、验证审计链或生成声明 vulniq apts-checklist vulniq audit-verify vulniq conformance vulniq --help # full command reference ``` [完整文档](docs/vulniq.md) · [实例演示](vulniq/docs/worked-example.md) · [CHANGELOG](vulniq/CHANGELOG.md) · [从 1.1 迁移至 1.2/1.3](vulniq/MIGRATION.md) ### [BrowserHawk](docs/browserhawk.md) 适用于任何 Web 应用的自主浏览器测试 agent。能够发现路由、测试页面、填写表单、查找 Bug,并通过基于 journey 的记忆系统从每次会话中学习。 ``` flowchart LR A["/browserhawk"] --> B["Authenticate"] B --> C["Discover Routes"] C --> D["Test & Explore"] D --> E["Save Journeys"] E --> F["Report Bugs"] style A fill:#7c3aed,color:#fff style F fill:#dc2626,color:#fff ``` **功能:** - 通过单个配置文件 (`browserhawk.config.json`) 适配任何 Web 应用 - 使用 [agent-browser](https://github.com/nichochar/agent-browser)(基于 Rust 的高速 daemon)进行浏览器自动化 - 将成功的交互模式学习为 **journey** —— 每次运行都会变得更加智能 - 支持基于基准截图的视觉回归测试 - 支持表单登录、OAuth/MSAL、2FA 或无认证模式 - 支持将 Bug 报告发送至对话、GitHub issues 或 Asana **快速开始:** ``` # 安装 skill npx skills add JakubKontra/skills --skill browserhawk # 安装 agent-browser npm install -g agent-browser && agent-browser install # 在你的项目根目录中创建 config cp .claude/skills/browserhawk/assets/config.example.json browserhawk.config.json # 使用你应用的详细信息编辑 browserhawk.config.json # 在 Claude Code 中运行 /browserhawk ``` [完整文档](docs/browserhawk.md) ### [Vigil](docs/vigil.md) 针对您的项目的 macOS 原生自我监督 watchdog。启动一次,它便会在后台持续监控 —— 即使关闭终端、进入睡眠或重启也能存活 —— 运行只读健康探测(测试、构建、依赖审计、localhost 健康状况 URL、git 漂移、磁盘空间),并在状态发生改变或中断时触发 macOS 原生通知及可选的语音摘要。**由 launchd 接管循环,而不是您的 Claude 会话 —— 并且其中不运行任何 LLM**,因此监控过程是免费、离线且即时的。另一个**任务完成模式**则将此过程反转:给出一段自然语言任务,Vigil 会定期使用只读 AI 裁决器检查任务是否*已完成*,随后通知您并自行卸载(一次性)。 ``` flowchart LR A["/vigil install"] --> B["Detect Project"] B --> C["Define Probes"] C --> D["Install launchd"] D --> E["Watching Loop
(tick every N min)"] E --> F["Notify on Change"] E -.->|"survives sleep / restart"| E style A fill:#7c3aed,color:#fff style D fill:#2563eb,color:#fff style F fill:#dc2626,color:#fff ``` **工作原理:** | 阶段 | 执行者 | 发生的操作 | |-------|-----|--------------| | **检测与设计** | Claude(仅一次) | 检查您的项目,并针对您的技术栈提出只读探测方案。经过批准的 `shell` 命令将成为锁定的允许列表 —— 绝不会运行其他任何命令 | | **安装** | Claude(仅一次) | 写入 `vigil.config.json` 并加载一个用户级的 launchd LaunchAgent (`~/Library/LaunchAgents/com.vigil..plist`) | | **监控** | launchd(自主运行) | 每隔 N 分钟运行一次 **纯 Node 的 `tick`,不涉及 LLM**:通过 `caffeinate` 保持唤醒 → 运行探测 → 与上一次快照进行对比 → **仅在状态发生改变时**发出通知 → 记录。在关闭终端、睡眠或重启后依然存活 | | **签到与分诊** | 您 + Claude(按需) | 随时使用 `status` / `history`;`/vigil triage` 会重新运行失败的探测,追踪到相关代码,并提出修复建议 —— 绝不会执行提交操作 | **功能:** - macOS 原生:用户级的 launchd agent 会在您关闭终端、睡眠或重启后持续监控 —— 循环过程完全不依赖于活跃的 Claude 会话 - 循环中不包含 LLM —— launchd 运行的是确定性的、纯 Node 的 `tick`;Claude 仅协助设置和分诊,因此监控过程零成本且可离线工作 - 4 种健康探测类型 —— `shell`(测试/构建/审计)、`http`(localhost 健康 URL)、`git`(漂移)、`disk`(剩余空间) - macOS 原生通知 + 可选的语音摘要(`say`);反垃圾通知 —— 仅在探测状态**发生变化**时通知,而不是每次时间间隔都通知 - 默认只读,**代码强制执行**:精确匹配的命令允许列表 + 破坏性操作拒绝列表;不执行提交、部署或 sudo;仅在 `.vigil/` 和单一的 launchd plist 中写入内容 - 在探测期间通过 `caffeinate` 保持唤醒;对于 `pmset`/sudo 的通宵唤醒机制保持诚实透明 - 按需分诊 —— 让 Claude 调查最新的失败探测并追踪到对应代码 - **任务完成模式** —— `vigil task ""`:只读的 `claude -p` 裁决器会在每次 tick 时检查您的任务是否完成,随后发出通知并自动卸载(一次性)。每次检查会消耗 token(循环中包含 LLM);这是唯一会产生此消耗的模式 - **支持 Claude 订阅 _或_ API key** —— 任务模式默认使用您现有的 Claude Code 登录凭证(无需 API key);在订阅模式下,每次检查都会计入您的正常使用额度(不会单独收费)。同时也支持通过来自 `claude setup-token` 的 `ANTHROPIC_API_KEY` 或 `CLAUDE_CODE_OAUTH_TOKEN` 进行无头模式运行 - 单一配置文件 (`vigil.config.json`);通过 `status` / `history` 签到,通过 `halt` 暂停,通过 `stop` 停止 **快速开始:** ``` # 安装 skill npx skills add JakubKontra/skills --skill vigil # 在 Claude Code 中运行 — 它会检测你的项目,提出 probes 建议,并安装 watcher /vigil install # …或者监听一个任务并在完成时获得通知(然后它会自行停止) /vigil task "add TypeScript types to every component in src/components/forms/" # 随时检查(无需打开终端即可工作) node .claude/skills/vigil/scripts/cli.mjs status # 询问 Claude 哪里出了问题,然后停止监听 /vigil triage /vigil stop # 可选:从 template config 开始 cp .claude/skills/vigil/assets/config.example.json vigil.config.json ``` [完整文档](docs/vigil.md) ### [RankPulse](docs/rankpulse.md) 技术 SEO 诊断工具,结合了来自 **Google Search Console** 和 **Ahrefs**(通过 MCP)的实时数据与深度的代码库分析。查找缺陷,追踪导致问题的代码,并准确告诉您如何修复。 ``` flowchart LR A["/rankpulse"] --> B["Load Config"] B --> C["Detect Project"] C --> D["GSC + Ahrefs Data"] D --> E["Codebase Audit"] E --> F["Cross-Reference"] F --> G["Score & Report"] style A fill:#7c3aed,color:#fff style G fill:#059669,color:#fff ``` **工作原理:** RankPulse 从三个来源提取数据并进行交叉比对: | 来源 | 检查内容 | |--------|---------------| | **Google Search Console** (MCP) | 抓取错误、索引问题、搜索表现,32 种 GSC 错误类型已映射至修复方案 | | **Ahrefs** (MCP) | 域名评级、反向链接、关键词排名、流量趋势、竞争对手对比 | | **Codebase** (Grep/Read/Glob) | Meta 标签、robots.txt、sitemap、canonical 链接、结构化数据、标题、图片、链接 | 其真正的价值在于交叉比对:GSC 报告“Soft 404” → RankPulse 发现页面模板返回了 HTTP 200 但内容为空 → 告诉您在 `getServerSideProps` 中返回 404。支持数据来源的任意组合 —— 全部三个、仅使用一个 MCP,或仅使用代码。 **功能:** - 32 种 GSC 错误类型,包含根因分析、诊断步骤和代码级修复 - 12 个代码检查类别:meta、robots、、canonical、schema、标题、图片、链接、i18n、性能 - 框架感知:Next.js、Nuxt、Gatsby、Astro、SvelteKit、Remix - 通过 Ahrefs 进行竞争对手比较,利用基准快照进行趋势跟踪,A-F 等级评分 - 输出带有修复路线图的评分 Markdown 报告至 `./reports/` **快速开始:** ``` # 安装 skill npx skills add JakubKontra/skills --skill rankpulse # 在 Claude Code 中运行 — 仅代码审计无需 config /rankpulse # 可选:为完整功能(domain、competitors、检查开关)创建 config cp .claude/skills/rankpulse/assets/config.example.json rankpulse.config.json ``` [完整文档](docs/rankpulse.md) ### [Temp Email](docs/temp-email.md) 通过 tempmail.lol API 按需获取临时邮箱。为 E2E 测试、账号注册、邮箱验证和 OTP 确认创建一次性邮箱地址。无需依赖,无需 API key —— 只需 `curl`。 ``` flowchart LR A["/create-temporary-mail"] --> B["Create Inbox"] B --> C["Share Address"] C --> D["Poll for Email"] D --> E["Extract Link/OTP"] style A fill:#7c3aed,color:#fff style E fill:#059669,color:#fff ``` **功能:** - 零配置 —— 无需 API key 即可立即使用 - 域名轮换 —— 降低被列入黑名单的风险 - 智能提取 —— 解析 HTML 邮件以获取验证 URL、OTP 验证码、magic link - 多收件箱支持 —— 为复杂流程标记并管理多个收件箱 - 本地持久化 —— 收件箱存储在 `.temp-email/` 中,确保会话连续性 **快速开始:** ``` # 安装 skill npx skills add JakubKontra/skills --skill temp-email # 在 Claude Code 中运行 — 无需 config /create-temporary-mail # 可选:为自定义 poll timing 创建 config cp .claude/skills/temp-email/assets/config.example.json temp-email.config.json ``` [完整文档](docs/temp-email.md) ### [Domain Check](docs/domain-check.md) 正确的域名可用性查询。查询 **RDAP**(whois 的结构化继任者),并在 RDAP 未覆盖的 TLD 中回退至 **whois** —— 这样 `.io`、`.co`、`.me` 及其他 ccTLD 就能返回值得信赖的结果,而不是轻率地因为“404 = 可注册”而产生误报。零依赖 —— 使用 Node 内置的 `fetch` 以及系统自带的 `whois` 二进制文件(如果存在)。 ``` flowchart LR A["/domain-check"] --> B["RDAP lookup"] B --> C{"redirected?"} C -->|"200"| T["taken"] C -->|"404 + redirect"| AV["available"] C -->|"no redirect"| W["whois fallback"] W --> R["table"] AV --> R T --> R style A fill:#7c3aed,color:#fff style AV fill:#059669,color:#fff style R fill:#059669,color:#fff ``` **功能:** - 正确处理 ccTLD —— 区分注册局的“未找到”与“RDAP 未覆盖此 TLD” - 当 RDAP 无法处理时,通过 `whois` 回退解析 `.io` / `.co` / `.me` / `.sh` - 针对已注册域名显示注册日期、过期日期和注册商 - 三种模式:`check` 精确查询域名,`scan` 在不同 TLD 间扫描基础域名,`suggest` 推荐可注册的品牌化变体 - 有限的并发,零依赖,JSON 输出 **快速开始:** ``` # 安装 skill npx skills add JakubKontra/skills --skill domain-check # 在 Claude Code 中运行 /domain-check # 或者直接调用 CLI node .claude/skills/domain-check/scripts/cli.mjs check acme.com acme.io node .claude/skills/domain-check/scripts/cli.mjs scan acme node .claude/skills/domain-check/scripts/cli.mjs suggest acme ``` [完整文档](docs/domain-check.md) ## 许可证 [MIT](LICENSE)
标签:Claude Code, DevSecOps, MITM代理, SEO诊断, 上游代理, 可视化界面, 安全扫描, 插件系统, 时序注入, 自定义脚本, 错误基检测, 静态代码分析