ln-710-dependency-upgrader

Compare original and translation side by side

🇺🇸

Original

English
🇨🇳

Translation

Chinese

ln-710-dependency-upgrader

ln-710-dependency-upgrader

Type: L2 Domain Coordinator Category: 7XX Project Bootstrap Parent: ln-700-project-bootstrap
Coordinates dependency upgrades by detecting package managers and delegating to appropriate L3 workers.

类型: L2 领域协调器 分类: 7XX 项目引导 父级: ln-700-project-bootstrap
通过检测包管理器并将任务委派给相应的L3工作器,统筹依赖项升级工作。

Overview

概述

AspectDetails
InputDetected stack from ln-700
OutputAll dependencies upgraded to latest compatible versions
Workersln-711 (npm), ln-712 (nuget), ln-713 (pip)

方面详情
输入来自ln-700的已检测技术栈
输出所有依赖项升级至最新兼容版本
工作器ln-711 (npm), ln-712 (nuget), ln-713 (pip)

Workflow

工作流

See diagram.html for visual workflow.
Phases: Pre-flight → Detect → Security Audit → Delegate → Collect → Verify → Report

查看diagram.html获取可视化工作流。
阶段: 预检查 → 检测 → 安全审计 → 委派 → 收集 → 验证 → 报告

Phase 0: Pre-flight Checks

阶段0:预检查

Verify project state before starting upgrade.
CheckMethodBlock if
Uncommitted changes
git status --porcelain
Non-empty output
Create backup branch
git checkout -b upgrade-backup-{timestamp}
Failure
Lock file existsCheck for lock fileMissing (warn only)
Skip upgrade if uncommitted changes exist. User must commit or stash first.

在开始升级前验证项目状态。
检查项方法阻塞条件
未提交的更改
git status --porcelain
输出非空
创建备份分支
git checkout -b upgrade-backup-{timestamp}
执行失败
锁文件存在性检查锁文件缺失(仅警告)
若存在未提交的更改则跳过升级。用户必须先提交或暂存更改。

Phase 1: Detect Package Managers

阶段1:检测包管理器

Detection Rules

检测规则

Package ManagerIndicator FilesWorker
npmpackage.json + package-lock.jsonln-711
yarnpackage.json + yarn.lockln-711
pnpmpackage.json + pnpm-lock.yamlln-711
nuget*.csproj filesln-712
piprequirements.txtln-713
poetrypyproject.toml + poetry.lockln-713
pipenvPipfile + Pipfile.lockln-713

包管理器标识文件工作器
npmpackage.json + package-lock.jsonln-711
yarnpackage.json + yarn.lockln-711
pnpmpackage.json + pnpm-lock.yamlln-711
nuget*.csproj filesln-712
piprequirements.txtln-713
poetrypyproject.toml + poetry.lockln-713
pipenvPipfile + Pipfile.lockln-713

Phase 2: Security Audit (Pre-flight)

阶段2:安全审计(预检查)

Security Checks

安全检查

Package ManagerCommandBlock Upgrade
npm
npm audit --audit-level=high
Critical only
pip
pip-audit --json
Critical only
nuget
dotnet list package --vulnerable
Critical only
包管理器命令阻塞升级条件
npm
npm audit --audit-level=high
仅当存在严重漏洞时
pip
pip-audit --json
仅当存在严重漏洞时
nuget
dotnet list package --vulnerable
仅当存在严重漏洞时

Release Age Check

版本发布时长检查

OptionDefaultDescription
minimumReleaseAge14 daysSkip packages released < 14 days ago
ignoreReleaseAgefalseOverride for urgent security patches
Per Renovate best practices: waiting 14 days gives registries time to pull malicious packages.

选项默认值描述
minimumReleaseAge14 days跳过发布时长不足14天的包
ignoreReleaseAgefalse覆盖默认设置以适配紧急安全补丁
遵循Renovate最佳实践:等待14天可让注册表有时间移除恶意包。

Phase 3: Delegate to Workers

阶段3:委派至工作器

CRITICAL: All delegations use Task tool with
subagent_type: "general-purpose"
for context isolation.
Prompt template:
Task(description: "Upgrade deps via ln-71X",
     prompt: "Execute ln-71X-{worker}. Read skill from ln-71X-{worker}/SKILL.md. Context: {delegationContext}",
     subagent_type: "general-purpose")
Anti-Patterns:
  • ❌ Direct Skill tool invocation without Task wrapper
  • ❌ Any execution bypassing subagent context isolation
重要提示: 所有委派任务均使用Task工具并设置
subagent_type: "general-purpose"
以实现上下文隔离。
提示模板:
Task(description: "Upgrade deps via ln-71X",
     prompt: "Execute ln-71X-{worker}. Read skill from ln-71X-{worker}/SKILL.md. Context: {delegationContext}",
     subagent_type: "general-purpose")
反模式:
  • ❌ 不通过Task包装直接调用Skill工具
  • ❌ 任何绕过子代理上下文隔离的执行操作

Delegation Context

委派上下文

Each worker receives standardized context:
FieldTypeDescription
projectPathstringAbsolute path to project
packageManagerenumnpm, yarn, pnpm, nuget, pip, poetry, pipenv
options.upgradeTypeenummajor, minor, patch
options.allowBreakingboolAllow breaking changes
options.testAfterUpgradeboolRun tests after upgrade
每个工作器都会接收标准化上下文:
字段类型描述
projectPathstring项目的绝对路径
packageManagerenumnpm, yarn, pnpm, nuget, pip, poetry, pipenv
options.upgradeTypeenummajor, minor, patch
options.allowBreakingbool是否允许破坏性变更
options.testAfterUpgradebool升级后是否运行测试

Worker Selection

工作器选择

Package ManagerWorkerNotes
npm, yarn, pnpmln-711-npm-upgraderHandles all Node.js
nugetln-712-nuget-upgraderHandles .NET projects
pip, poetry, pipenvln-713-pip-upgraderHandles all Python

包管理器工作器说明
npm, yarn, pnpmln-711-npm-upgrader处理所有Node.js项目
nugetln-712-nuget-upgrader处理.NET项目
pip, poetry, pipenvln-713-pip-upgrader处理所有Python项目

Phase 4: Collect Results

阶段4:收集结果

Result Schema

结果Schema

FieldTypeDescription
statusenumsuccess, partial, failed
upgrades[]arrayList of upgraded packages
upgrades[].packagestringPackage name
upgrades[].fromstringPrevious version
upgrades[].tostringNew version
upgrades[].breakingboolIs breaking change
warnings[]arrayNon-blocking warnings
errors[]arrayBlocking errors

字段类型描述
statusenumsuccess, partial, failed
upgrades[]array已升级包的列表
upgrades[].packagestring包名称
upgrades[].fromstring旧版本
upgrades[].tostring新版本
upgrades[].breakingbool是否为破坏性变更
warnings[]array非阻塞警告
errors[]array阻塞错误

Phase 5: Verify Build

阶段5:验证构建

Build Commands by Stack

按技术栈划分的构建命令

StackCommand
Node.js
npm run build
or
yarn build
.NET
dotnet build --configuration Release
Python
pytest
or
python -m pytest
技术栈命令
Node.js
npm run build
yarn build
.NET
dotnet build --configuration Release
Python
pytest
python -m pytest

On Build Failure

构建失败时的处理

  1. Identify failing package from error
  2. Search Context7/Ref for migration guide
  3. Apply known fixes
  4. If still fails: rollback package, log warning

  1. 从错误信息中定位失败的包
  2. 在Context7/Ref中搜索迁移指南
  3. 应用已知修复方案
  4. 若仍失败:回滚该包,记录警告

Phase 6: Report Summary

阶段6:生成报告摘要

Report Schema

报告Schema

FieldTypeDescription
totalPackagesintTotal packages analyzed
upgradedintSuccessfully upgraded
skippedintAlready latest
failedintRolled back
breakingChangesintMajor version upgrades
buildVerifiedboolBuild passed after upgrade
durationstringTotal time

字段类型描述
totalPackagesint分析的总包数
upgradedint成功升级的数量
skippedint已是最新版本的数量
failedint已回滚的数量
breakingChangesint大版本升级的数量
buildVerifiedbool升级后构建是否通过
durationstring总耗时

Configuration

配置

yaml
Options:
  # Upgrade scope
  upgradeType: major          # major | minor | patch

  # Breaking changes
  allowBreaking: true
  autoMigrate: true           # Apply known migrations

  # Security
  auditLevel: high            # none | low | moderate | high | critical
  minimumReleaseAge: 14       # days, 0 to disable
  blockOnVulnerability: true

  # Scope
  skipDev: false              # Include devDependencies
  skipOptional: true          # Skip optional deps

  # Verification
  testAfterUpgrade: true
  buildAfterUpgrade: true

  # Rollback
  rollbackOnFailure: true

yaml
Options:
  # 升级范围
  upgradeType: major          # major | minor | patch

  # 破坏性变更
  allowBreaking: true
  autoMigrate: true           # 应用已知迁移方案

  # 安全设置
  auditLevel: high            # none | low | moderate | high | critical
  minimumReleaseAge: 14       # 天数,设为0则禁用
  blockOnVulnerability: true

  # 范围设置
  skipDev: false              # 包含devDependencies
  skipOptional: true          # 跳过可选依赖

  # 验证设置
  testAfterUpgrade: true
  buildAfterUpgrade: true

  # 回滚设置
  rollbackOnFailure: true

Error Handling

错误处理

Recoverable Errors

可恢复错误

ErrorRecovery
Peer dependency conflictTry --legacy-peer-deps
Build failureRollback package, continue
Network timeoutRetry 3 times
错误类型恢复方案
对等依赖冲突尝试使用--legacy-peer-deps
构建失败回滚该包,继续执行
网络超时重试3次

Fatal Errors

致命错误

ErrorAction
No package managers foundSkip this step
All builds failReport to parent, suggest manual review

错误类型处理动作
未检测到任何包管理器跳过此步骤
所有构建均失败上报至父级,建议手动检查

References

参考文档

  • breaking_changes_patterns.md
  • security_audit_guide.md

Version: 1.1.0 Last Updated: 2026-01-10
  • breaking_changes_patterns.md
  • security_audit_guide.md

版本: 1.1.0 最后更新时间: 2026-01-10