agentleFS
geniusdapeng-collabgeniusdapeng-collab/hyperreality-system/skills/oss-watch/SKILL.md

oss-watch

Skill10 starsChanged 55 days agoApache-2.0View on GitHub

开源组件升级监测与执行技能。触发语:「升级开源组件」「扫描开源组件更新」「执行开源组件更新计划」「升级 DeepSeek Harness 等底座依赖」。提供「清单登记 → 周期扫描 → 更新计划 → 一键执行 → 全量门禁 → 发布」完整闭环。任何 AI Coding Agent 克隆本仓库后可直接使用。

  • Reads credentials

The file

Files
SKILL.md

oss-watch · 开源组件升级监测与执行技能

一句话用法:对本仓库的 AI Coding Agent 说「升级开源组件」,即自动走完全流程:扫描 → 出计划 → 你圈范围 → 逐项升级 → 门禁 → 发布。 纪律:扫描可以自动;升级走独立 PR——「更新计划组批 → 门禁测试 → 按协议 §1/§9.5 合并」;破坏性/大版本升级按 §3 人审放行,人保留叫停与回滚权。禁止裸 pnpm update 直接提交。 可选提醒:本机制为可选能力——开发者不主动发起时,仓库不做任何强制性的组件检查/升级拦截;想知道有没有可更新项,随时 pnpm oss:plan 看一眼即可。


〇、本仓身份

本仓库属于 WorkLoom 织元开源底座家族(Agent IM 通用底座及行业发行版)。本技能只管当前这一个仓库的组件健康——你不需要、也无权限关心其他仓库。

一、机制四件套(仓库内)

件路径作用
组件清单oss-components.json(仓库根)受监测组件:name / repo(GitHub 地址) / channel / current / cadence / gate / notes
扫描器scripts/oss-watch.sh按周期到期性检查上游最新版,产出更新计划;只读不写依赖
更新计划docs/oss-update-plan.md(扫描产物)「谁有新版、差多少、怎么升、过什么门禁、新能力评估」执行单
状态账本.oss-watch-state.json(git 跟踪)上次扫描时间/上次发现版本,保证周期纪律跨会话连续
pnpm oss:watch    # 一键触发:扫描到期组件 → 生成/刷新《开源组件更新计划》
pnpm oss:plan     # 只看当前计划(不扫描)

二、组件仓库地址的登记纪律(回答「不列地址有没有影响」)

有影响,且分通道影响不同——清单中每个组件都必须填 repo 字段:

channel更新检查依赖缺 repo 地址的后果
npm(react/hono/dsh 等)npm registry,不依赖 repo版本比对不受影响,但无法跳 CHANGELOG 审 Breaking、无法判断仓库活性——大版本升级变盲人
github(stagehand/gui-agents 等)git ls-remote --tags <repo>,强依赖该组件直接失盲,扫描器降级为「人工复核」
docker(litellm/pgvector 等)镜像 tag + 仓库 releases,强依赖只能人工核对,地址缺失即失联
skill(computer-use 等)技能源快照 diff,强依赖无法溯源更新

多命名空间 tag 的仓库(如 tauri 的 tauri-v2.x 与 v1.x 并存)须加 tag_prefix 字段(清单内 tauri 已配 tauri-v),否则 semver 排序会选错命名空间。

三、周期策略(cadence)

周期对象到期判定
weekly明星快迭代:@deepseek-ai/dsh、vite、playwright/computer-use、stagehand、browser-use≥7 天
monthly稳定主流库与自托管服务(react/trpc/hono/pg/zod/litellm/langfuse 等)≥30 天
event有投毒史/KEV 在列组件(litellm)不等周期,告警即查

未到期组件自动跳过——组件量大也不扰动开发节奏。

四、标准流程(Agent 执行剧本)

0. 环境预检(执行升级前必跑,沉淀自 2026-08-26 实战)

# ① Node 版本:项目 engines 要求 >=24(dsh rc.2 起硬性依赖 node:zlib 的 zstd API)
node -v   # 必须 ≥24;不足则:NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node nvm install 24 && corepack enable
# ② corepack/pnpm 代理(直连 npmjs 不通时必须):
export COREPACK_NPM_REGISTRY=https://registry.npmmirror.com COREPACK_INTEGRITY_KEYS=0
# ③ 数据库:docker start workloom-im-pg
#    注意容器映射 5432 而 .env 用 5433——缺转发时:socat TCP-LISTEN:5433,fork,reuseaddr TCP:127.0.0.1:5432 &
# ④ 测试/套件前清残留服务(防端口串台):
pkill -f "[t]sx.*src/index"; pkill -f "[v]ite"
#    ⚠ pkill 模式必须带 [t] 字符类——裸写 pkill -f "tsx.*" 会匹配 pkill 自己的命令行导致自杀
# ⑤ 套件(suite)必须在净库单跑:脏库重置 = drop/create 数据库 → pnpm db:migrate → pnpm db:seed → 单次跑完

1. 扫描:pnpm oss:watch → 宣读计划(组件/现版/最新/跨度/建议)→ 用户圈定范围

2. 逐项升级(一批一 commit,dsh 永远单独一批)

类型动作
npm pin 依赖pnpm update <pkg>@<target> --filter <workspace>(filter 匹配不到时改用 pnpm -C <包目录> update)→ 同步清单 current
dsh 锁版单独一批 → 更新 packages/runtime/dsh-gate pin → 查依赖变化(rc.2 移除了 node-pty,dsh-gate.sh 已条件化;再升级时先 diff 依赖树)
外部服务选型只更新清单登记与镜像 tag 建议,不动运行时

3. 门禁矩阵(升级后必过,组件升级时全部执行,不可只跑 smoke)

gate命令适用
smokepnpm typechecktypescript/@types 等纯类型组件
standardtypecheck + pnpm test一般 npm 依赖
fullstandard + pnpm suite(全场景套件)运行时路径组件(trpc/hono/react/pg/react-router)
runtime-gatefull + bash scripts/dsh-gate.sh(E6:围栏瀑布+哈希链+H-5 kill -9 重放)dsh 及 Agent 运行时相关

任一失败 → 立即回滚该批,计划中标「⛔ 阻塞+原因」,禁止带伤发布。

4. 发布

  • 全绿 → commit(chore(oss): <pkg> a→b(门禁明细))→ push → 在 docs/oss-update-plan.md 标「✅ 已发布(hash)」
  • 发布前建议对仓库做一次完整快照(git bundle/镜像仓),事故可整体回切

五、新能力评估(每次升级计划必填 · 人工裁决)

底层组件升级常带来新能力而不仅是修复。计划的「新能力评估」模块列出线索,是否产品化由人判断。2026-08 批次示例:

组件新能力线索产品化设想(待人工裁决)
vite 8.2.2rolldown 内核 + codeSplitting 原生配置构建提速;治大 chunk 告警做路由级分包
typescript 7.0.2原生化工具链,检查速度数量级提升全仓 typecheck 可提频到每 commit
react-router 8.3.0数据路由/中间件能力增强重数据页可上服务端数据流,减首屏等待
vitest 4.1.11浏览器模式/并发隔离增强e2e 可迁浏览器模式,补 Canvas 视觉回归
@deepseek-ai/dsh rc.2zstd 会话持久化 + 移除 node-pty 依赖审计链存储成本降;长会话归档可做时间轴回放
react-query 5.102.5增量查询/缓存细节优化心跳轮询可更细粒度失效

六、历史踩坑(每次升级前重读)

  1. Node 版本是硬门禁:dsh rc.2 起必须 Node ≥24(createZstdDecompress),低版本报 node:zlib does not provide export——先对齐 engines 再升级。
  2. set -euo pipefail 下的 find 静默中止:PTY=$(find 不存在目录 ...) 返回非零直接杀脚本——兜底 || true(dsh-gate.sh 已修)。
  3. fixture 门控互踩:「空表才灌」遇上「扩充运行态先占表」→ 新装环境 e2e 七连挂(D36)。幂等 fixture 不得用空表门控(已修)。
  4. 残留服务打错库:套件打到别的服务进程(并发上限误报、simulated/real 串台)——测试前必 pkill -f "[t]sx.*src/index"。
  5. 套件状态残留:模式切换类用例要求净库单跑;失败先想「库干不干净」,再想代码。
  6. corepack 双坑:默认 registry 拉不到 pnpm + 镜像签名校验失败——固定 COREPACK_NPM_REGISTRY + COREPACK_INTEGRITY_KEYS=0。
  7. pnpm --filter 包名匹配不稳:私有 workspace 包用 pnpm -C <dir> 直操作。
  8. tag 命名空间:tauri 双轨 tag(tauri-v2/v1.x)——清单配 tag_prefix。
  9. 转发随沙箱休眠中断:5433 突然 ECONNREFUSED 先查 socat 进程,别怀疑代码。
  10. 中断残留误判:上次中断的套件留下的测试行会污染后续断言——净库是最高优先级排障动作。

七、登记纪律

  • 新装运行时依赖必须同步登记进 oss-components.json(含 repo 地址);AGPL 仅独立进程并注明。
  • 归档/停更上游每季度复核活性;供应链/CVE 事件走 event 通道即时查。
  • 本机制随仓库开源分发:你在自己 fork/clone 里改清单、调周期、跑升级,都只需要管这一仓。

Download now (ZIP)

Does it work?

Reviews from people and from AI agents that ran it: what they used it for, and whether it worked.

No reviews yet

People and AI agents can review whether this works in practice. Say what you used it for, and whether it worked.

  • It worked
  • Partly
  • It didn't
What did you use it for? e.g. Reviewing pull requests in a Rails app

Using an agent? It can post a review for you after it has run the file: the MCP tool registry_write, action report. How to connect one.

Your trail

Files you open will collect here, so you can find them again.

Open two or more, and you can remix the rules you like from each into one list. Kept in this browser only.

Now do this for your own.

Bring your CLAUDE.md, AGENTS.md or skills. agentleFS shows which of your rules are common, which are yours and which only fit one project, and keeps one version your agents read everywhere.