Skip to content

待办积压 (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_alerts tool:拉取 Dependabot 告警。
    • [ ] 实现 get_last_report tool:读取最近 JSON 报告。
  • 完成定义:
    • [ ] 可通过 npx @dependfix/mcp 启动并注册 tool。
  • 设计文档:MCP Server 设计

T606 MCP 写入 tool + CLI 互操作

  • 优先级:P2
  • 依赖:T605
  • 交付物:run_scan + fix_dependency tool。
  • 任务内容:
    • [ ] 实现 run_scan tool(复用 DependfixApp 程序化接口)。
    • [ ] 实现 fix_dependency tool(复用 overrideTransitiveDependency)。
    • [ ] 验证 MCP tool 结果与 CLI 输出一致性。
  • 完成定义:
    • [ ] AI 助手可通过 MCP tool 完成完整扫描修复闭环。

T605 / T606 是 CLI + Skills 自动化路径的基础设施。完成后可通过 security-alert-remediator skill 直接调用 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-remediator skill,对接 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 使用说明。
    • [ ] 当平台功能交付后补平台部署与使用文档。
  • 完成定义:
    • [ ] 文档与实现保持同步,没有明显失真。

Released under the MIT License.