96a3d15efc
门禁解释器解耦
44 条 language: system 钩子此前把解释器写成仓库检出的绝对路径,换机、
换克隆目录都要重写。改为 entry 只写 scripts/gate_python.py + 脚本名,
由启动器按候选链解析:$DTU_GATE_PYTHON > <仓库>/.venv >
<仓库>/.gate/python > PATH。启动器用 execve 替换自身,并把选中的
解释器经 DTU_GATE_PYTHON 传给子进程,保证脚本内再调 Python 时一致。
实测 pre-commit 4.6.2 不展开 ${VAR};language: script 的 shebang 只做
纯 PATH 改写,会把决定权交给 PATH 首个 python,故不采用。
ci_local.py 预检识别启动器并报出解析结果。
并行工作树统一
task-worktree 新增 bench-gate(强制台架验收)与 merge(编排式合并),
删除 new/abort,done 标 DEPRECATED;台架通过记录改存
.agents/worktrees/.bench-pass-log。keil_build.py 的 plugin_tree_owner
识别 .agents/worktrees/<name> 并返回 pw:<name>。
check_doc_links / gen_refgraph / check_layer_deps 的扫描排除面补上
.agents;并行任务工作树方案重写为单一模型(7 节),取消工作树数量上限,
删历史实测记录节,两处 §7.3 悬空引用改为按语义引用。
文档与约定
本地工具路径环境变量方案 §5 重写为四节:谁跑在哪个 Python 上、写新钩子、
预检对号入座、动环境五步。文档规范的变更记录例外名单由 5 篇减为 4 篇
(本篇实际没有该节)。AGENTS.md 补委派验收口径三条。
验证:pre_commit run --all-files 48 钩子全 Passed;ci_local.py
--preflight-only 报 44 条经启动器 -> 仓库 .venv;keil-build 0 errors
0 warnings;check_doc_links --sections-strict 全通过。
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