审计结果
项目 /opt/data/.stdd/ 版本 v2.9.2,核心流程(6 阶段 Skills + 3 道 Gate + AGENTS.md enforce)正常,但 stdd init 的 FILES_TO_COPY 列表遗漏了 V2.9 新增的配套文件,导致 guard/hook/YAML-First 等能力所需文件在项目中不存在。
已补充文件
| 缺失项 | 数量 | 文件 | 作用 |
|---|---|---|---|
_shared/ | 3 | confirm-gate.md · long-range-auth.md · mode-selection.md | DRY 共享片段,guard/hook 流程依赖 |
canonical/ | 5 | proposal.yaml · spec.yaml · agent_spec.yaml · design-adjustments.yaml · pending-adjustments.yaml | V2.9 YAML-First 双轨制模板 |
rules/ | 5 | common/3 + python/1 + go/1 | 编码规则,Phase 4 BUILD 加载 |
experiences/ | 6 | EXP-0001~0006 + .experience-index.yaml | 经验库种子数据 |
lite.yaml | 1 | config.d/lite.yaml | 复杂度评分阈值 + 三档模式缩放 |
phase-context.md | 1 | templates/phase-context.md | 阶段摘要模板 |
修复方式
因 stdd upgrade 只做版本号比较(源和项目均为 2.9.2,认为已最新),直接手动从源目录 ~/.stdd/ 复制缺失文件到项目 .stdd/。
根因
~/.stdd/stdd/cli/commands/init.py 中 FILES_TO_COPY 列表未包含以上文件。需更新上游列表,使后续 stdd upgrade 可自动补齐。
修复后验证
- 项目
.stdd/文件数: 45(修复前 37) python3 ~/.stdd/bin/stddCLI 正常: 27 指令可用,含 hooks/guard/upgrade/batch/fix 等 V2.9 新命令- 6 阶段技能文件与源内容一致
仍存在的不足(本次修复未覆盖)
1. FILES_TO_COPY 疏漏是系统性设计缺陷
FILES_TO_COPY缺失文件不是版本升级导致的,而是 init 脚本从设计上就未包含它们- 这意味任意新项目
stdd init都产出残缺结构。对比源目录~/.stdd/.stdd/,完整文件集应在 80+,而 init 只装了 30+ - 已安装的文件(6 技能 + 8 模板 + 5 配置)内容完全正确,但「覆盖集」不对
- 如果用户按 AGENTS.md 写法以为 init 产出就是完整版,会一直缺失核心能力而不知
2. stdd upgrade 版本号门控不可靠
- 当源版本 == 项目版本时直接跳过——但版本相同不意味文件一致
- 缺少内容级完整性校验(manifest 或 checksum 对比)
- 本次修复无法通过
stdd upgrade自动完成,必须手动复制——这是工具本身的盲区
3. enforce_stdd 依赖 AI 自觉性,非程序性强制
- AGENTS.md 声明
enforce_stdd: true+ 大段约束规则,但全是自然语言指令 - 当前 Hermes Agent 无程序级 guard:没有 pre-commit hook、没有 git hook、没有文件系统层的写保护
- 如果 AI 忽略/忘记读 AGENTS.md,enforce 形同虚设
- V2.9 虽然 CLI 有
stdd guard命令,但 guard 依赖于项目内.stdd/结构存在且有 active change - 对比 Claude Code 生态(有 pre-commit hook + claude.md 强制加载)—— Hermes 平台的 guard 是靠 skill 加载时机保障的,可靠性更低
4. platform adapters 全部为空,且无 hermes-agent 适配
.stdd/platforms/有 claude-code / trae / workbuddy 三个目录,但 skills/ 子目录全部为空- 没有 hermes-agent 平台适配:
stdd install hermes-agent不可用 - 当前通过 Hermes skill 加载工作,绕过了
stdd install体系——意味着 skill 内容更新不会自动同步到平台适配文件 - cli.md 多平台 Skills 同步检查(checklist command)需要手动 diff,缺乏自动化
5. CLI 路径 vs 项目 CLI 缺失
- 项目
bin/stdd不存在,CLI 入口在~/.stdd/bin/stdd(源目录) - 项目中无
stdd/目录(CLI 模块源) - Hermes skill 中的 CLI 命令引用
python3 ~/.stdd/bin/stdd <command>可以工作,但不是原生集成的项目级入口 - 如果不同项目安装在不同位置,CLI 入口路径必须手动调整
6. 项目 STDD 无开发历史——从零起步的骨架
changes/和specs/目录已存在但为空archive/为空——无已归档变更- 唯一的 proposal 是历史遗留(share-css-code-block),且未走完 STDD 生命周期
- 对比源仓库
~/.stdd/有完整的 changes/archive/specs 历史——项目级 STDD 的实际开发轨迹尚未开始 - 意味着当前
enforce_stdd: true在下一次实际开发请求时才第一次被真正考验