21c68521ff
诉求最初是升级 dsh-task-worktree:实测已装 0.4.6 = npm dist-tags.latest,无需升级; 真正的缺口是本仓 skill 看不见插件建的树(.dsh-worktrees/),故按用户追加指令把两套 系统接起来。回收方向刻意不打通:本 skill 永不删插件的树。 脚本 task_worktree.py:新增 plugin 子命令 list/adopt/unadopt,事实源是 git worktree list(不是插件 manifest,免得被绕过);adopt 只补缺失的 .venv 与 simulator/SDL2 联接,已有联接跳过、实体目录绝不碰;锁归属用 pw:<name> 前缀;new 顺带提示另有 N 棵 插件树、不占活跃上限 3。 一并修一处真 bug:lock release --bench-pass 在任务无台账时先 EnvError 退出、锁释放 不掉,导致每个任务的 done 收口连坐失败;现在改为警告后仍然释放。 keil-build:default_lock_task() 增加 .dsh-worktrees/ 反推分支,插件树内的构建归属 pw:<name> 而不是兜底的 build-cli(主树行为未变,本次 @build 实测仍走 build-cli)。 .gitignore 预先忽略 .dsh-worktrees/,让插件的 ensureIgnored() 找到同一字面量、不再 改写这份受控文件。check_doc_links / check_layer_deps / gen_refgraph 三处扫描面同步 排除:仓里再放一份仓会让 doc-links 假红、并让生成的配图字节漂移到 generated-fresh。 文档:并行任务工作树方案新增 §3.4 两套系统边界对照;SKILL.md 加 §F 共存一节,同时把 §B 从 53 行压到 29 行(净 +39,用户此前在飞的改写已 rebase 保留、未被覆盖)。 验证:@build 0 错误 0 警告;scripts/ci_local.py 48 根提交期钩子与 gitlint 全绿; check_doc_links --all --sections-strict 通过(2596 章节引用、无法判定 0);id-check-new 通过;改动文件字节体检无 BOM、CRLF 与 U+FFFD。桥接行为在临时 scratch 仓端到端跑过 (adopt 建两个 reparse、unadopt 只摘联接、pw 锁取放、缺台账也能释放、越界 name 退 2)。
tools/refgraph/ — 文件引用关系图
扫描全仓库
.c/.h的#include关系,生成文件级 + 模块级引用关系图(Graphviz)。
文件一览
| 文件 | 作用 |
|---|---|
gen_refgraph.bat |
一键入口(调用 gen_refgraph.py + Graphviz 渲染) |
gen_refgraph.py |
扫描 #include → 生成 .dot → 渲染 .svg / .json |
使用方式
& 'tools\refgraph\gen_refgraph.bat'
产物(放 docs/images/)
| 产物 | 内容 |
|---|---|
引用关系图.dot |
Graphviz 源 |
引用关系图.svg / .png |
渲染图(.svg 提交,.png 本地预览不提交) |
引用关系图.json |
结构化引用数据 |
⚠️ 注意
- 项目文件变化后重跑更新(新增/删除源文件、改 include 关系)
- 渲染依赖 Graphviz(
winget install graphviz可装) - 脚本与
.dot/.svg/.json一并提交
相关文档
docs/架构设计/引用关系图说明.mddocs/架构设计/项目架构总览.md