待办积压 (Backlog)
本文档存放 M3 及之后阶段的详细任务。当前阶段(M2)的任务见 todo.md。
M3: Code Scanning 扩展
目标:接入 Code Scanning 告警并引入规则分级处理。
T301 接入 Code Scanning Alerts 拉取
- 优先级:
P1 - 依赖:T102, T004
- 交付物:Code Scanning 告警采集器。
- 任务内容:
- [ ] 拉取 open 状态 Code Scanning 告警。
- [ ] 转换为标准告警模型。
- [ ] 建立 error / warning / note 的统一映射。
- 完成定义:
- [ ] 报告中可展示 Code Scanning 告警。
T302 规则分层与白名单机制
- 优先级:
P1 - 依赖:T301
- 交付物:规则分类策略。
- 任务内容:
- [ ] 定义 A/B/C 三类规则分层。
- [ ] 建立自动修复白名单。
- [ ] 建立仅建议输出的规则列表。
- 完成定义:
- [ ] 系统能区分"自动修复""建议修复""仅报告"。
T303 实现可模板化规则修复器
- 优先级:
P1 - 依赖:T302, T107
- 交付物:首批 Code Scanning 自动修复模板。
- 任务内容:
- [ ] 选择一组低风险规则作为首批支持对象。
- [ ] 实现补丁生成与验证。
- [ ] 失败时回退到建议模式。
- 完成定义:
- [ ] 至少一类 Code Scanning 问题可完成自动修复闭环。
T304 实现建议型输出
- 优先级:
P1 - 依赖:T301, T302, T108
- 交付物:Code Scanning 修复建议报告。
- 任务内容:
- [ ] 输出规则 ID、位置、摘要、建议修复方向。
- [ ] 区分为何未自动修复。
- 完成定义:
- [ ] 无法自动修复的问题不会静默丢失。
M4: 多仓库治理增强
目标:支持多仓库批量执行、限流、策略增强和长期报告归档。
T401 实现 owner 级仓库自动发现
- 优先级:
P2 - 依赖:T102, T202
- 交付物:仓库自动发现器。
- 任务内容:
- [ ] 支持按 owner / org 拉取仓库列表。
- [ ] 支持 topic、archived、默认分支等过滤条件。
- [ ] 支持仅选择 Node.js / pnpm 相关仓库。
- 完成定义:
- [ ] 能在多仓库范围内稳定生成处理清单。
T402 并发控制与失败隔离
- 优先级:
P2 - 依赖:T401, T109
- 交付物:任务调度与隔离策略。
- 任务内容:
- [ ] 设置最大并发数。
- [ ] 仓库级失败不影响其他仓库。
- [ ] 对限流与重试进行统一处理。
- 完成定义:
- [ ] 单仓库失败不会中断整批任务。
T403 仓库白名单 / 黑名单策略
- 优先级:
P2 - 依赖:T401
- 交付物:仓库过滤策略。
- 任务内容:
- [ ] 支持显式包含名单。
- [ ] 支持显式排除名单。
- [ ] 支持按 topic 或 metadata 过滤。
- 完成定义:
- [ ] 自动发现结果可被进一步约束。
T404 报告归档与趋势统计
- 优先级:
P2 - 依赖:T203, T402
- 交付物:历史报告保留机制。
- 任务内容:
- [ ] 对每次运行生成稳定 runId。
- [ ] 支持汇总多次运行结果。
- [ ] 为后续趋势统计保留基础字段。
- 完成定义:
- [ ] 可以追踪一段时间内的修复趋势与失败模式。
M5: AI Breaking Change 研判
目标:引入 AI 能力,对依赖升级后的不兼容问题进行自动研判,生成修复方案并通过 PR 提交。
T501 实现 Changelog / Release Notes 采集
- 优先级:
P1 - 依赖:T105
- 交付物:从依赖包获取 changelog 的能力。
- 任务内容:
- [ ] 从 npm registry / GitHub Release 获取 changelog。
- [ ] 解析 markdown 格式 changelog,提取 breaking changes 条目。
- [ ] 缓存已获取的 changelog 数据。
- 完成定义:
- [ ] 能根据包名和版本号自动获取对应的 changelog 内容。
T502 实现 AI 研判引擎
- 优先级:
P1 - 依赖:T501, T107
- 交付物:基于 LLM 的 breaking change 分析能力。
- 任务内容:
- [ ] 封装多 AI 提供商 API(OpenAI、Anthropic、DeepSeek 等)。
- [ ] 设计 AI 研判的 system prompt(硬编码,不接受用户输入)。
- [ ] 构建研判输入上下文(changelog + CI 失败日志 + 受影响文件 diff)。
- [ ] 定义研判结果结构化输出 schema(问题分类、修复方案、代码 patch、置信度)。
- 完成定义:
- [ ] 给定一组升级失败日志,AI 能输出结构化的研判结果。
T503 实现修复方案生成器
- 优先级:
P1 - 依赖:T502
- 交付物:将 AI 研判转换为可执行修复 PR 的能力。
- 任务内容:
- [ ] 将 AI 生成的代码 patch 应用到工作分支。
- [ ] 若研判结果为"锁定版本",生成版本锁定配置。
- [ ] 若研判结果为"等待上游",生成说明文档。
- [ ] 将所有变更提交为修复 PR,默认不自动合并。
- 完成定义:
- [ ] AI 研判结果能稳定转换为可审查的 PR。
T504 AI 输出安全校验与质量门
- 优先级:
P1 - 依赖:T503
- 交付物:AI 输出安全与质量校验流程。
- 任务内容:
- [ ] 对 AI 生成的代码进行 lint 校验。
- [ ] 对 AI 生成的代码进行 typecheck 校验。
- [ ] 若校验失败,记录原因并回退到建议模式。
- [ ] 限制 AI 单次 patch 影响范围(如最多修改 5 个文件)。
- 完成定义:
- [ ] AI 生成的代码通过质量门才能被提交为 PR。
T505 CLI 解耦重构(平台化前置)
- 优先级:
P1 - 依赖:T109
- 交付物:
packages/cli的编排逻辑与 CLI 入口解耦。 - 任务内容:
- [ ] 将
runCli()中process.env/console.log紧耦合抽离为可注入依赖。 - [ ] 抽象
createPipeline(deps)接口,local 和 platform 模式共用同一编排核心。
- [ ] 将
- 完成定义:
- [ ] 本地 CLI 模式行为不变,platform 模式可通过注入不同的 logger / config resolver 使用同一编排逻辑。
M6: 最小平台 MVP
目标:交付一个可独立部署的集中管理平台的最小可用版本。
T601 平台项目骨架搭建
- 优先级:
P1 - 依赖:T505
- 交付物:Nuxt 4 全栈项目(
apps/platform/)。 - 任务内容:
- [ ] Nuxt 4 项目初始化,配置 TypeScript、PrimeVue、SCSS。
- [ ] better-auth 认证集成(邮箱密码登录)。
- [ ] TypeORM + SQLite 数据库初始化。
- [ ] Docker Compose 开发/部署配置。
- 完成定义:
- [ ]
docker compose up可拉起完整平台。
- [ ]
T602 仓库与凭据管理
- 优先级:
P1 - 依赖:T601
- 交付物:仓库 CRUD + 凭据加密存储。
- 任务内容:
- [ ] Repository 实体与 CRUD API。
- [ ] Credential 实体,AES-256-GCM 加密存储 PAT。
- [ ] Web UI:仓库列表、添加/编辑/删除。
- 完成定义:
- [ ] 可通过 Web UI 管理仓库和关联凭据。
T603 扫描触发与结果存储
- 优先级:
P1 - 依赖:T602, T505
- 交付物:手动触发扫描 + 结果持久化。
- 任务内容:
- [ ] ScanRun / ScanResult 实体设计。
- [ ] Web UI 触发单仓库扫描,复用
packages/cli编排逻辑。 - [ ] 扫描结果写入 SQLite。
- 完成定义:
- [ ] 可从 Web UI 对单个仓库触发扫描并查看结果。
T604 仪表板与告警视图
- 优先级:
P1 - 依赖:T603
- 交付物:仪表板 + 告警筛选视图。
- 任务内容:
- [ ] 仪表板:仓库数、告警数、已修复数。
- [ ] 告警视图:按仓库/严重级别/来源筛选。
- [ ] 扫描历史列表。
- 完成定义:
- [ ] 用户登录后可查看全局告警状态。
T605 MCP Server 骨架(@dependfix/mcp)
- 优先级:
P1 - 依赖:T505, T109
- 交付物:MCP Server 项目骨架 + 2 个只读 tool。
- 任务内容:
- [ ]
packages/mcp初始化,配置 tsdown 构建。 - [ ] 集成
@modelcontextprotocol/sdk。 - [ ] 实现
fetch_alertstool:拉取 Dependabot 告警。 - [ ] 实现
get_last_reporttool:读取最近 JSON 报告。
- [ ]
- 完成定义:
- [ ] 可通过
npx @dependfix/mcp启动并注册 tool。
- [ ] 可通过
- 设计文档:MCP Server 设计
T606 MCP 写入 tool + CLI 互操作
- 优先级:
P2 - 依赖:T605
- 交付物:
run_scan+fix_dependencytool。 - 任务内容:
- [ ] 实现
run_scantool(复用DependfixApp程序化接口)。 - [ ] 实现
fix_dependencytool(复用overrideTransitiveDependency)。 - [ ] 验证 MCP tool 结果与 CLI 输出一致性。
- [ ] 实现
- 完成定义:
- [ ] AI 助手可通过 MCP tool 完成完整扫描修复闭环。
T605 / T606 是 CLI + Skills 自动化路径的基础设施。完成后可通过
security-alert-remediatorskill 直接调用 MCP tool,代替手写 CLI 命令。
M7: 企业级平台增强
目标:补齐多租户、高可用与跨平台能力。
T701 RBAC 权限管理
- 优先级:
P2 - 依赖:M6
- 交付物:角色权限管理系统。
- 任务内容:
- [ ] 实现角色模型:Admin、Org Admin、Repo Admin、Viewer。
- [ ] Admin:全局配置、用户管理。
- [ ] Org Admin:管理组织下仓库。
- [ ] Repo Admin:管理特定仓库修复策略。
- [ ] Viewer:只读查看报告。
- 完成定义:
- [ ] 不同角色只能执行其权限范围内的操作。
T702 任务队列与并发控制
- 优先级:
P2 - 依赖:M6
- 交付物:基于 BullMQ + Redis 的任务调度系统。
- 任务内容:
- [ ] 集成 BullMQ + Redis 实现任务队列。
- [ ] 并发控制:同一仓库同一时间仅一个扫描任务。
- [ ] 优先级队列:手动触发 > webhook > 定时。
- [ ] 任务去重:重复任务在队列中合并。
- [ ] 失败重试策略:指数退避、最大重试可配。
- 完成定义:
- [ ] 多仓库同时请求扫描时,任务按优先级和队列策略正确调度。
T703 跨平台 Git 支持
- 优先级:
P2 - 依赖:M6
- 交付物:支持 GitLab / Bitbucket 仓库连接。
- 任务内容:
- [ ] GitLab PAT 认证与 API 集成。
- [ ] Bitbucket PAT 认证与 API 集成。
- [ ] 仓库级别配置(包管理器、忽略列表、自定义命令)。
- [ ] 仓库连接状态监控。
- 完成定义:
- [ ] 能通过 Web UI 添加 GitLab / Bitbucket 仓库。
T704 定时扫描与批量处理
- 优先级:
P2 - 依赖:T702
- 交付物:定时调度 + 批量执行 + 聚合报告。
- 任务内容:
- [ ] cron 定时扫描配置。
- [ ] 按组织/团队/标签批量选择仓库。
- [ ] 批量扫描任务合并调度。
- [ ] 跨仓库结果聚合统计。
- 完成定义:
- [ ] 能配置定时任务并对多仓库批量执行。
T705 生产级部署
- 优先级:
P2 - 依赖:T702, T703
- 交付物:生产环境部署方案。
- 任务内容:
- [ ] PostgreSQL 数据库迁移与适配。
- [ ] Kubernetes + Helm Chart 部署方案。
- [ ] 监控与告警集成(Sentry)。
- 完成定义:
- [ ] 可通过 Helm Chart 部署到 Kubernetes 集群。
T706 MCP Skill 集成与发布
- 优先级:
P2 - 依赖:T606, M6
- 交付物:MCP Server 正式发布 + Skill 集成。
- 任务内容:
- [ ]
@dependfix/mcp发布到 npm。 - [ ] 更新
security-alert-remediatorskill,对接 MCP tool。 - [ ] 编写 MCP 接入文档与 Skill 编排示例。
- [ ]
- 完成定义:
- [ ] 用户可通过 AI 助手对话式完成安全告警修复闭环。
M2 增强候选(未排期)
2026-08-02 T208-T211 设计评审中确定的"未来评估项",当前不做。
B1 PR 关闭评论与 label 标记
- 状态:🔶 待评估
- 内容:关闭旧 PR 时发 comment 说明取代关系;创建 PR 时加 label
dependfix(两者均需issues: write权限,比当前pull-requests: write权限面宽) - 触发条件:PR 数量增长影响
pulls.list查重性能,或用户需要 PR 列表可过滤/可检索时评估 - 来源:T210 设计评审(2026-08-02),用户确认"未来可以考虑增强,目前不做"
B2 固定分支单线设计
- 状态:🔶 待评估(M6 平台部署时)
- 内容:独立平台部署后修复频率上升,需要一个固定修复分支(如
dependfix/auto-fix)避免频繁向 master 提交 PR;届时需与 T210 指纹方案整合(分支复用/重建策略、force push 语义) - 来源:T210 设计评审(2026-08-02),用户明确"有这个需求但不是现在"
B3 Dependabot 式分支命名(包名入分支名)
- 状态:✅ 已评估,暂不采用
- 结论:Dependabot 为单包单 PR(
dependfix/npm_and_yarn/<pkg>-<from>-<to>),包名可作分支名;dependfix 为聚合 PR(一次修多个依赖),包名列表入分支名会超长(GitHub 分支名限 256 字符)且内容一变名就换,可读性收益有限。包名与版本已在 PR 标题(升级数)与 body(完整表格)中完整呈现,符合用户直觉 - 触发条件:未来出现"单包单 PR"模式需求时重新评估
- 来源:T210 设计评审(2026-08-02)
横切任务(后续阶段)
T904 文档同步
- 优先级:
P0 - 依赖:随功能推进持续进行
- 交付物:README、方案文档、使用说明同步更新。
- 任务内容:
- [ ] 当 CLI 参数稳定后补使用文档。
- [ ] 当 GitHub Action 落地后补 workflow 使用说明。
- [ ] 当平台功能交付后补平台部署与使用文档。
- 完成定义:
- [ ] 文档与实现保持同步,没有明显失真。