一键导入
masm-error-constants
Use when adding or editing MASM `assert*` / `panic` instructions — give every assertion a descriptive named error code.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
菜单
Use when adding or editing MASM `assert*` / `panic` instructions — give every assertion a descriptive named error code.
用 Codex 或 Claude 帮你安装 复制这段 Prompt,粘贴到 Codex、Claude 或其他助手里,让它检查 Skill 页面并帮你完成安装。
基于 SOC 职业分类
Enforce type-signature conventions for public Miden Assembly (.masm) procedures. Use when adding, editing, or reviewing a `pub proc` signature — parameter and return types, semantic type aliases, struct/array/tuple types, and how the signature maps onto the operand stack and the doc-comment Inputs/Outputs.
Enforce inline commenting conventions for Miden Assembly (.masm) files. Use when editing, reviewing, or creating .masm files.
Enforce doc comment conventions for Miden Assembly (.masm) procedures. Use when editing, reviewing, or creating .masm procedures, especially when documenting inputs, outputs, panic conditions, or invocation types.
Use when writing kernel, account, or note MASM code that reads from or writes to the advice provider (advice stack / advice map) — validate advice data.
Use when writing a Rust test that exercises a failure path or a MASM test that expects a `panic` / `assert` — assert on the specific expected error variant or error code.
Use when writing or reviewing MASM hot paths — prefer the cheaper equivalent instruction: `neq.0` over `gt.0` for non-zero checks, `cdrop` over an `if/else` selecting between two values, `dup.N` over `loc_load` for a value still on the stack, `eqw` over element-wise word comparison, `u32gt`/`u32lt` over generic `gt`/`lt` on known-u32 operands.
| name | masm-error-constants |
| description | Use when adding or editing MASM `assert*` / `panic` instructions — give every assertion a descriptive named error code. |
Every MASM assertion must carry a descriptive error code:
assert.err=ERR_NOTE_NOT_FOUND
assert_eqw.err=ERR_COMMITMENT_MISMATCH
The error constant must:
ERR_ prefix.masm-constants skill).const ERR_NOTE_NOT_FOUND = "note not found".ERR_ across two unrelated asserts.A bare assert traps with a generic message that tells the debugger nothing about which check failed; a descriptive ERR_ constant ties each trap site to a specific failure mode. Distinct constants per condition also let tests pin the expected error (see assert-specific-error-in-tests).
# Good
const ERR_NOTE_NOT_FOUND = "note not found"
const ERR_COMMITMENT_MISMATCH = "stored commitment does not match recomputed value"
proc verify_note
# ...
assert.err=ERR_NOTE_NOT_FOUND
# ...
assert_eqw.err=ERR_COMMITMENT_MISMATCH
end
# Bad: bare assertion
proc verify_note
assert
end
# Bad: shared generic constant for unrelated cases
const ERR_INVALID = "invalid"
assert.err=ERR_INVALID # used in 6 places, each meaning something different