analyze-dependabot

A security-analysis command for Dependabot alerts, which report known vulnerabilities in project dependencies such as npm, Maven, or Python packages.

In plain words
What is it for?
Use it to inspect a specific Dependabot alert, create a repair task when needed, and write a security analysis document.
Why use it?
It collects the affected package, vulnerable versions, severity, and first patched version so the dependency issue can be assessed and tracked.

Command for Claude Code

Install

Getting it into your agent

One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.

agentmods
npx agentmods add commands/modelengine-group/fit-framework/analyze-dependabot
Clone the repo
git clone --depth 1 https://github.com/ModelEngine-Group/fit-framework

Made for: Claude Code.

Per session 19 Only the description is in the session, so the agent can decide to use it. The body loads when it is invoked.
When invoked 2,153 The whole file, excluding the scripts and references it only reads on demand.
Security scan A 0 findings. Scan, not verified.
Origin original No closer match found in the catalogue.
Token cost

What it costs to keep this loaded

Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.

ModelPer sessionOnce invoked
Fable 5 $0.00019 $0.02153
Opus 5 $0.00010 $0.01077
Sonnet 5 $0.00004 $0.00431
Haiku 4.5 $0.00002 $0.00215

Measured 2d ago against content hash c5c7abcd3cf8, method: parsed. Prices are Anthropic first-party input rates as of 2026-08-30, from the pricing page.

Security

Grade A, and why

analyze-dependabot scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 2d ago.

A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.

Nothing flagged

None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.

.claude/commands/analyze-dependabot.md · 249 lines

How it starts

The opening of the file, as written. The whole thing — 249 lines — stays where its author put it; the contents beside it link to each section on GitHub.

Analyze Dependabot Command

功能说明

分析指定的 Dependabot 安全告警,评估安全风险并创建修复任务,输出安全分析文档。

执行流程

1. 获取安全告警信息

gh api repos/{owner}/{repo}/dependabot/alerts/<alert-number>

提取关键信息:

  • number: 告警编号
  • state: 状态(open/dismissed/fixed)
  • security_advisory: 安全公告详情
    • ghsa_id: GHSA ID
    • cve_id: CVE ID(如果有)
    • severity: 严重程度(critical/high/medium/low)
    • summary: 漏洞摘要
    • description: 详细描述
    • vulnerabilities: 受影响的版本范围
  • dependency: 受影响的依赖
    • package.name: 包名
    • package.ecosystem: 生态系统(maven/pip/npm等)
    • manifest_path: 依赖文件路径
  • security_vulnerability.first_patched_version: 首个修复版本
  • security_vulnerability.vulnerable_version_range: 受影响版本范围

2. 创建任务目录和文件

检查是否已存在该安全告警的任务:

  • .ai-workspace/active/ 中搜索相关任务
  • 如果找到,询问是否重新分析
  • 如果没有,创建新任务

任务目录结构

.ai-workspace/active/TASK-{yyyyMMdd-HHmmss}/
├── task.md          ← 使用 .agents/templates/task.md 模板创建
└── analysis.md      ← 本命令将创建此文件

⚠️ 重要

  • 任务目录命名:TASK-{yyyyMMdd-HHmmss}必须包含 TASK- 前缀)
  • 示例:TASK-20260205-202013
  • 任务ID({task-id})即为目录名:TASK-{yyyyMMdd-HHmmss}

任务元数据(在 task.md 的 YAML front matter 中)需包含:

id: TASK-{yyyyMMdd-HHmmss}
security_alert_number: <alert-number>
severity: <critical/high/medium/low>
cve_id: <CVE-ID>  # 如果有
ghsa_id: <GHSA-ID>

3. 分析受影响范围

必须完成的分析

  • 识别受影响的依赖包和版本
  • 搜索项目中使用该依赖的所有位置(使用 Grep 工具)
  • 检查依赖文件(pom.xml, requirements.txt, package.json 等)
  • 分析是否直接使用了漏洞代码路径
  • 识别依赖关系(直接依赖 vs 传递依赖)
  • 定位受影响的代码模块和文件

4. 评估安全风险

必须完成的风险评估

  • 评估漏洞的实际影响(是否可被利用)
  • 分析漏洞触发条件和场景
  • 评估对系统安全性的影响程度
  • 识别潜在的安全威胁
  • 确定修复的紧急程度
  • 查找是否有已知的攻击案例

5. 输出分析文档

创建 .ai-workspace/active/{task-id}/analysis.md,必须包含以下章节:

注意:{task-id} 格式为 TASK-{yyyyMMdd-HHmmss},例如 TASK-20260205-202013

# 安全告警分析报告

## 告警基本信息

- **告警编号**: #{alert-number}
- **严重程度**: {critical/high/medium/low} 🔴/🟠/🟡/🟢
- **GHSA ID**: {ghsa-id}
- **CVE ID**: {cve-id}
- **告警状态**: {open/dismissed/fixed}
- **漏洞描述**: {描述}

## 漏洞详情

### 受影响的依赖
- **包名**: {package-name}
- **生态系统**: {maven/pip/npm/...}
- **当前版本**: {current-version}
- **受影响版本范围**: {vulnerable-range}
- **首个修复版本**: {patched-version}

### 依赖使用情况
- **依赖文件位置**: `{manifest-path}` - {说明}
- **依赖类型**: {直接依赖/传递依赖}
- **使用模块列表**: 
  - `{module-1}` - {说明}
  - `{module-2}` - {说明}

## 影响范围评估

### 直接影响的代码
- `{file-path}:{line-number}` - {说明}

### 间接影响的功能
- {受影响的功能模块}

## 安全风险评估

### 漏洞可利用性
- [ ] 是否直接使用了漏洞代码路径?
- [ ] 是否有外部输入触发漏洞?
- [ ] 当前配置是否暴露了漏洞?

**结论**: {高/中/低风险 - 说明理由}

### 触发条件
{详细说明漏洞触发的条件和场景}

### 影响程度
{评估对系统安全性、数据完整性、可用性的影响}

### 紧急程度
{根据严重程度和可利用性确定修复的紧急程度}

## 技术依赖和约束

{列出修复时需要考虑的技术依赖和约束条件}

## 参考链接

- GHSA Advisory: https://github.com/advisories/{ghsa-id}
- CVE Details: https://cve.mitre.org/cgi-bin/cvename.cgi?name={cve-id}
- {其他相关文档}

Read the full file on GitHub · 249 lines

Changes

What this file has done since we first saw it

Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.

  1. 2d ago First seen · 249 lines · 19 tokens per session scan A c5c7abcd3cf8

Subscribe to this mod's changes

analyze-dependabot is a command published in the GitHub repository ModelEngine-Group/fit-framework (2,117 stars, last pushed 5mo ago), licensed MIT. It adds 19 tokens to every session and 2,153 once invoked, about $0.0001 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.