Community编程与开发github.com

diodesign/diosix-agent-skills

用于Diosix项目的提交前与合并前代码及文档审查方法论。在提交、合并或签署任何特性、重构、缺陷修复或文档更新前,或当用户请求代码/安全/架构审查时,激活此技能。

diosix-agent-skills 是什么?

这是一个专为Diosix项目设计的高标准代码与文档审查技能,确保所有变更在提交或合并前必须通过严格的多视角审计。该技能强制实施一套四步验证工作流,包括构建与测试门禁、四角色深度审查(怀疑型资深工程师、偏执安全专家、Diosix维护者、新手与专家用户)、Rust风格借用检查与指针生命周期审计,以及文档与拼写风格检查。它支持通过Zig编译器、自定义构建脚本和参考清单进行自动化与手动审查,特别关注文件模块化(如将超过500行文件拆分为子文件夹)、内存安全、ABI兼容性和无魔法数字编码。当遇到架构权衡或缺少原语时,该技能要求停止并咨询首席维护者,从而防止错误假设。

兼容平台~Claude Code~Codex CLI~Cursor
npx skills add https://github.com/diodesign/diosix-agent-skills/tree/HEAD/reviewing-diosix

Installed? Explore more 编程与开发 skills: steipete/bluebubbles, steipete/eightctl, steipete/blucli · View all 6 →

在你喜欢的 AI 中提问

打开一个已预加载此 Agent Skill 的新对话。

文档

审查Diosix

Diosix中的每一处代码和文档变更在提交或合并前都必须通过严格的多视角审计。绝不要草率通过变更,也绝不要签署损坏、不完整或未经验证的代码。以下审查标准与developing-diosix和documenting-diosix严格一一对应,以便应用创作技能能够消除提交前和合并前的返工。

强制性四步验证工作流

  1. 构建、完整性及测试门禁(基本要求):
    • 验证功能是否按照设计100%实现,不存在TODO存根、死代码或模拟的生产路径。
    • 当重构超过500行限制的文件时,绝不截断功能或单元测试;始终将过大的文件组件化为内聚的子文件夹(如vm/run.zig、panes/modal.zig、tests/gui.zig),而不是使用扁平的prefix_subname.zig文件,并验证每个子模块是否在其父级的test块中被引用(如_ = @import("vm/run.zig");),以便zig build test能够执行其单元测试。
    • 验证单元测试是否与其测试的.zig源文件位于同一位置,集成测试是否位于独立的tests/目录中。
    • 将文件格式和行/列检查的范围限定为受跟踪的源目录(build.zig、hypervisor、tools、scripts),而不是在.zig-cache/或zig-out/上运行无范围限制的递归glob。
    • 运行./scripts/build.sh test --summary all和./scripts/build.sh,直到所有编译和测试步骤100%通过且零警告或泄漏。
  2. 四角色深度审查:
    • 通过四种不同的视角审计每个修改过的文件及其周围上下文:
      1. 怀疑型资深工程师(完整性、惯用法、子文件夹层级而非扁平的prefix_subname.zig文件、小写十六进制字面量0xfff、命名常量/辅助函数如PAGE_OFFSET_MASK和crossesPageBoundary而非魔法位掩码、无Spinlock/对齐/路径验证器的复制粘贴重复、无用于内部路径的历史候选列表回退数组如DEFAULT_GUEST_CANDIDATES、显式固定宽度u64 ABI类型而非usize、在含有字面量的@min/@max上添加显式usize类型注解、对超过500行的文件进行组件化而不截断、不超过80列的限制、动态与静态缓冲区、将策略外部化到构建/运行时配置、不在Zig中动态合成二进制/ELF/映像、不在tools/overlay-common/内生成文件)
      2. 偏执安全专家(虚拟机监视器熔断半径隔离、对客户内存的单次复制双重获取/TOCTOU预防、通过atomic.Spinlock实现IRQ安全锁定、加密/页面零化、带检查的算术边界)
      3. Diosix维护者(模块化、可读性、defer/errdefer、ABI comptime大小/偏移断言、外部契约向后兼容性与原子化树内迁移、子模块测试覆盖)
      4. 新手与专家用户(零负担用户体验、清晰英文错误信息、配置灵活性、性能)
  3. Rust风格借用检查与指针生命周期审计:
    • 手动追踪所有控制流路径上的每个指针、切片和分配,以保证零释放后使用(UAF)、双重释放、调整大小/重新映射时的指针无效化或悬挂的栈引用。
  4. 文档、拼写及风格门禁:
    • 验证docs/与所有代码变更一致(包括SBI FID、C结构体类型、CLI标志和模块化文件路径),使用清晰、语法正确的美式英语编写并通过拼写验证,且符合docs/style-guide.md和docs/development.md。
    • 在任何审查修复后,重新运行zig fmt --check build.zig hypervisor tools scripts和./scripts/build.sh test --summary all。
  5. 不确定时,停止并询问首席维护者:如果审查发现了架构权衡或缺少的原语,在做出假设之前停止并询问首席维护者以获取指示。

重点参考指南

在每次审查期间查阅以下参考清单:

  • 四审查角色清单:针对怀疑型资深工程师、偏执安全专家、Diosix维护者以及新手/专家用户的详细检查标准。
  • 借用检查审计:在Zig中追踪指针来源、生命周期、别名可变性以及跨特权级内存安全的分步方法。
  • 提交前门禁:在提交或合并到devel或stable分支之前所需的具体验证命令和签署标准。

Individual skills in this repo

This repo contains 2 individual skills — each has its own dedicated page.

相关技能