0xMiden / 0xMiden/protocol

Fix outdated MASM guidance in agent skills

Abierto
#3,847 0 comentarios 0 reacciones 0 asignados Ver en GitHub
Lenguaje dominante
Rust
Estrellas
132
Forks
167
Merge medio
1 d 23 h
PR fusionados (30 d)
110

Descripción

Several [Protocol-owned agent skills](https://github.com/0xMiden/protocol/tree/07608d5bb9c50bdf27c14126d50c5a61322f4984/.claude/skills) contain incorrect guidance. Following it can produce invalid MASM or misleading Rust.

- [`advice-provider-hygiene`](https://github.com/0xMiden/protocol/blob/07608d5bb9c50bdf27c14126d50c5a61322f4984/.claude/skills/advice-provider-hygiene/SKILL.md#L93-L98) asserts the operand stack after `adv.has_mapkey` and says a missing lookup supplies a default. The flag is on the advice stack and a missing `adv.push_mapval` key errors; add `adv_push` before the assertion and remove the default-value claim.
- [`cheap-masm-equivalents`](https://github.com/0xMiden/protocol/blob/07608d5bb9c50bdf27c14126d50c5a61322f4984/.claude/skills/cheap-masm-equivalents/SKILL.md#L37-L47) reverses `cdrop`'s stack order and selected value. Use `[c, b, a]`, selecting `b` when `c = 1` and `a` when `c = 0`.
- [`decouple-component-from-storage`](https://github.com/0xMiden/protocol/blob/07608d5bb9c50bdf27c14126d50c5a61322f4984/.claude/skills/decouple-component-from-storage/SKILL.md#L10-L19) says every reusable component must receive its slot. Component-owned named slots are deterministic; limit this rule to generic utilities operating on caller-selected slots.
- [`felt-construction`](https://github.com/0xMiden/protocol/blob/07608d5bb9c50bdf27c14126d50c5a61322f4984/.claude/skills/felt-construction/SKILL.md#L10-L17) says `Felt::new` truncates and uses `Felt::MODULUS`. `Felt::new` is checked and returns `Result`; use `Felt::ORDER` when proving the bound for `new_unchecked`.
- [`masm-inline-comments`](https://github.com/0xMiden/protocol/blob/07608d5bb9c50bdf27c14126d50c5a61322f4984/.claude/skills/masm-inline-comments/SKILL.md#L138-L148) treats an `Asset` as one word and shows the wrong remove/add flow. Track its `ASSET_ID` and `ASSET_VALUE` words separately and preserve the original asset before removal.
- [`masm-locals-over-globals`](https://github.com/0xMiden/protocol/blob/07608d5bb9c50bdf27c14126d50c5a61322f4984/.claude/skills/masm-locals-over-globals/SKILL.md#L7-L31) uses removed word-local mnemonics without declaring locals. Use the `_be` or `_le` forms and add `@locals`.
- [`masm-padding`](https://github.com/0xMiden/protocol/blob/07608d5bb9c50bdf27c14126d50c5a61322f4984/.claude/skills/masm-padding/SKILL.md#L124-L149) documents removed `debug.*` instructions and a nonexistent `--debug` mode, while its [note script example](https://github.com/0xMiden/protocol/blob/07608d5bb9c50bdf27c14126d50c5a61322f4984/.claude/skills/masm-padding/SKILL.md#L44-L52) is a `begin` program. Use `miden::core::debug` event procedures, account for their cycles, and represent note scripts as `@note_script` public procedures.
- [`u32-assert-before-u32-ops`](https://github.com/0xMiden/protocol/blob/07608d5bb9c50bdf27c14126d50c5a61322f4984/.claude/skills/u32-assert-before-u32-ops/SKILL.md#L10-L38) uses nonexistent `u32assert4` and `u32add` names and overstates which instructions require valid-u32 inputs. Use `u32assertw` and an explicit add mode such as `u32wrapping_add`; do not require prior assertions for `u32test`, `u32testw`, `u32cast`, or `u32split`.

The fix should update only these eight skill docs. No Protocol runtime behavior needs to change.

Guía de contribución

Abrir la guía de contribución

Evaluación

Este issue todavía no se ha evaluado.

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.