工程纪律
wesgine 的工程纪律规则(ENG-1 ~ ENG-5)与 CI 验证。
ENG-1:先定义验证标准,再写代码
把模糊任务翻译成可验证目标:
- "加校验" → 写 3 个非法输入的失败用例,再让它们通过
- "修 bug" → 写一个复现用例让它失败,再让它通过
- "重构 X" → 重构前后构建/测试/lint 都通过
ENG-2:多层架构先验证链路再验证逻辑
Web → Go handler → cell.Runtime → SSE:先确认每层数据都能到下一层。
ENG-3:修复后必须有可观测确认
修了 SSE 断流 → 必须实际发一条 chat 确认流完整。
不是 go vet 通过。
ENG-4:包装上游时对齐资源参数
消费 wesgine cell.Runtime() 返回的 event channel 时,注意 buffer 对齐。
ENG-5:诊断基础设施是功能的一部分
Handler 中的 slog.Info 不是调试用临时代码,而是运维必需。
CI 强门
make verify
编译、go vet、自定义 analyzer、audit-lock 闸门、design 文档验证、测试。
一个目标跑完,序列只在 Makefile 的 verify 目标里定义一份。
闸门集
闸门目录 scripts/audit-lock/ 即清单:
06-skill-tiere.sh— Tier E 行业词38-host-env-shared.sh— 主机环境共享门39-proc-single-spawn.sh— 子进程原语40-bounded-line-reads.sh— 行式输入42-hypervisor-api-surface.sh— Hypervisor 白名单60-actor-single-judgement.sh— Actor 边界65-degraded-secret-no-writeback.sh— 降级态回写66-quota-single-writepoint.sh— 配额写点
自研分析器
internal/lint/ 包含自研静态分析器,在 CI 中通过 go vet 运行。
包括 hypervisornobusiness 分析器——拒绝 Hypervisor 未分类的导出方法。