home / skills / multiversx / mx-ai-skills / multiversx-clarification-expert

multiversx-clarification-expert skill

/skills/multiversx-clarification-expert

This skill identifies ambiguities in MultiversX requests and poses concrete clarifying questions to unblock development and ensure correct requirements.

npx playbooks add skill multiversx/mx-ai-skills --skill multiversx-clarification-expert

Review the files below or copy the command above to add this skill to your agents.

Files (1)
SKILL.md
4.7 KB
---
name: multiversx-clarification-expert
description: Identify ambiguous requirements and ask targeted clarifying questions for MultiversX development. Use when user requests are vague, missing technical constraints, or have conflicting requirements.
---

# Clarification Expert

Identify ambiguity in user requests and ask targeted questions to unblock MultiversX development or auditing tasks. This skill prevents wasted effort from incorrect assumptions.

## When to Use

- User request is vague (e.g., "Make it secure")
- Missing technical constraints (e.g., "Add a token" without specifying standard)
- Conflicting requirements that need resolution
- Multiple valid implementation approaches exist
- Security implications require explicit user decisions

## Questioning Guidelines

### 1. Be Specific

Never ask open-ended questions. Always offer concrete choices.

**Bad:**
> "How should the token work?"

**Good:**
> "Should the token be:
> 1. A standard Fungible ESDT (simple transfers, 18 decimals)
> 2. A Semi-Fungible Token (SFT) with quantity per nonce
> 3. A Meta-ESDT with custom attributes
>
> If unsure, I recommend option 1 for simplicity."

### 2. Batch Related Questions

Group questions by topic to minimize back-and-forth.

**Example:**
> Before implementing the staking module, I need to clarify:
>
> **Token Configuration:**
> 1. Which token can be staked? (specific token ID or any ESDT?)
> 2. Is there a minimum stake amount?
>
> **Reward Mechanism:**
> 3. Fixed APY or dynamic based on total staked?
> 4. Reward distribution: claim-based or auto-compound?
>
> **Access Control:**
> 5. Can anyone stake, or only whitelisted addresses?

### 3. Propose Sensible Defaults

Always offer a recommended option when the user may not have strong preferences.

**Example:**
> "For the admin storage, I recommend using `SingleValueMapper` instead of `MapMapper` to save gas since you only need one admin. Shall I proceed with that approach?"

### 4. Explain Trade-offs

When choices have significant implications, explain the consequences.

**Example:**
> "For storing user balances, there are two approaches:
>
> **Option A: SingleValueMapper with address parameter**
> - More gas efficient for individual lookups
> - Cannot iterate over all users
>
> **Option B: MapMapper**
> - Can iterate over all users (useful for airdrops)
> - Higher gas cost (4N+1 storage slots)
>
> Which user enumeration requirement do you have?"

## Analysis Categories

### 1. Scope & Environment
| Question | Why It Matters |
|----------|----------------|
| Full audit or specific module? | Depth vs breadth |
| New code or upgrade review? | Upgrade reviews need storage migration focus |
| Mainnet, Devnet, or Sovereign Chain? | Different security requirements |
| Integration with other contracts? | Cross-contract interaction risks |

### 2. Risk & Technical Profile
| Question | Why It Matters |
|----------|----------------|
| TVL expectations? | High value = higher attacker incentive |
| User base: public or restricted? | Public = larger attack surface |
| Upgradeable or immutable? | Affects fix deployment strategy |
| Custom modules or `unsafe` blocks? | Needs deeper review |
| External dependencies? | Supply chain risk |

## MultiversX-Specific Clarifications

When user says... ask to clarify:

- **"add a token"**: Fungible ESDT, NFT, SFT, or Meta-ESDT?
- **"store user data"**: Per-user (`SingleValueMapper` + address key), enumerable (`MapMapper`/`SetMapper`), ordered (`VecMapper`/`LinkedListMapper`), or unique (`UnorderedSetMapper`)?
- **"admin only"**: Single owner, stored admin address, multi-sig, role-based, or time-locked?

## Question Templates

### For New Feature Requests
> "To implement [FEATURE], I need to understand:
> 1. [CRITICAL_DECISION_1]
> 2. [CRITICAL_DECISION_2]
>
> My recommendation is [DEFAULT] because [REASON]. Should I proceed with this approach?"

### For Bug Reports
> "To fix this issue, I need to clarify:
> 1. Expected behavior: [WHAT_SHOULD_HAPPEN]
> 2. Current behavior: [WHAT_HAPPENS_NOW]
> 3. Reproduction steps: [HOW_TO_TRIGGER]
>
> Can you confirm these details?"

### For Security Reviews
> "Before auditing [CONTRACT], please confirm:
> 1. Threat model: Who are the trusted parties?
> 2. Invariants: What properties must always hold?
> 3. Known risks: Are there accepted trade-offs?
>
> This helps me focus on relevant attack vectors."

## Anti-Patterns to Avoid

- **Don't assume**: If something could go two ways, ask
- **Don't ask obvious questions**: "Is security important?" - always yes
- **Don't delay indefinitely**: If no response, state assumptions and proceed
- **Don't ask one question at a time**: Batch related questions together
- **Don't use jargon without explanation**: Clarify technical terms for non-experts

Overview

This skill identifies ambiguous or incomplete requirements for MultiversX development and asks targeted, actionable clarifying questions to unblock work. It prevents wasted implementation or audit effort by surfacing missing constraints, conflicting choices, and security trade-offs. Use it whenever requests lack specifics or multiple valid approaches exist.

How this skill works

The skill inspects user requests, feature descriptions, and bug reports to detect vagueness, missing technical constraints, or conflicting requirements. It batches related clarifications, proposes sensible defaults, and explains trade-offs tied to MultiversX primitives (ESDT types, mapper choices, upgradeability, etc.). It then returns a concise list of concrete questions and a recommended path forward.

When to use it

  • Requests like “Make it secure” or “Add a token” without details
  • Feature specs missing storage, token type, or access-control choices
  • Bug reports that lack reproduction steps or expected behavior
  • Security review requests without a threat model or invariants
  • When multiple implementation approaches exist and a decision is required

Best practices

  • Always offer concrete options rather than open-ended questions
  • Group related questions by topic to reduce back-and-forth
  • Provide a recommended default and justify it briefly
  • Explain trade-offs for choices that affect gas, upgradeability, or attack surface
  • If user is unresponsive, list assumed defaults and state risks clearly

Example use cases

  • New token feature: ask whether token is Fungible ESDT, SFT, NFT, or Meta-ESDT and propose a default
  • Staking module: batch token, min-stake, reward model, and access-control questions
  • Storage design: clarify whether per-user, enumerable, ordered, or unique storage is required
  • Security audit request: request threat model, invariants, expected behaviors, and high-value targets
  • Bug triage: request reproduction steps, current vs expected behavior, and environment (Devnet/Mainnet)

FAQ

What if the requester doesn’t know the answers?

I propose sensible defaults and explain the trade-offs. I’ll proceed with the recommended option if you approve or give explicit alternate choices.

How many questions will you ask at once?

I batch related questions by topic to minimize rounds; typically 4–10 concise, concrete items depending on scope.