一键导入
architecture-design
Use when designing module placement, type design, and API surface for new features in rvlibs. Load during the Design phase of SDLC.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when designing module placement, type design, and API surface for new features in rvlibs. Load during the Design phase of SDLC.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Use when refactoring large files (800+ lines) — both source and test code — by splitting into sibling modules or submodules based on scope and concern boundaries.
Use when reviewing code changes for correctness, style, conventions, testing, and security. Load during Implementation phase as a quality gate.
Use when implementing new features in rvlibs following conventions and existing patterns. Load during the Implementation phase of SDLC.
Use when triaging, diagnosing, and registering bugs or issues. Covers classification, reproduction, severity, and registration.
Use when ensuring feature quality through testing, coverage gates, and pre-merge verification. Load during the Testing phase of SDLC.
Use when publishing crates to crates.io, bumping versions, and managing the release pipeline. Load during the Deployment phase of SDLC.
| name | architecture-design |
| description | Use when designing module placement, type design, and API surface for new features in rvlibs. Load during the Design phase of SDLC. |
SDLC Phase: Design
Design the architecture, module placement, type system, and API surface for new features.
pub(crate) or private.rvlibs.| Where | When | Example |
|---|---|---|
New crate (crates/) | Distinct capability, no circular dep risk | Adding a physics engine would be rvphysic |
| New submodule | Related to existing crate, extends its scope | Adding B-spline interpolation to rvmath |
| Existing module | Belongs to an existing concern | Adding a new shape formula to geometry |
Shared contract (rvlibs) | Type/trait needed by 2+ crates | Error types, Result<T>, Version |
Not preemptive — Do not create new crates speculatively. A crate is created only when concrete code demands extraction.
NodeId(usize) in graph module).Debug, Clone, PartialEq where semantically valid.pub fields over getters/setters for simple data structs. Use getters only when the field has invariants.impl blocks rather than on struct definitions.VecN<T, N>, MatN<T, R, C>).dyn trait objects unless dynamic dispatch is explicitly needed.Numeric impls for all standard numeric primitives).///) explaining what they do, with an example where helpful.Result<T, String> or rvlibs::Result<T>. Panics are reserved for programming errors.self and return Self. The terminal method is .build(), .run(), or .finish().prelude module for ergonomic one-line access.A design brief covering: