원클릭으로
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