tomevault-io

masm-error-constants

Use when adding or editing MASM `assert*` / `panic` instructions — give every assertion a descriptive named error code.

tomevault-io 1 Updated 1mo ago
GitHub

Install

npx skillscat add tomevault-io/tomes/masm-error-constants

Install via the SkillsCat registry.

SKILL.md

MASM Error Constants

Rule

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:

  • Use the ERR_ prefix.
  • Live in the file's dedicated errors section (see masm-constants skill).
  • Have a descriptive string value, not a bare numeric code: const ERR_NOTE_NOT_FOUND = "note not found".
  • Be unique per distinct failure condition — do not share one ERR_ across two unrelated asserts.

Why

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).

Examples

# 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

Source: 0xMiden/protocol — distributed by TomeVault.

Categories