Skip to content
Back to skills

Instruction Design And Validation

ASecurity

Design Solana/Anchor instructions with clear inputs, constraints, authority checks, and invariants. Use when defining or reviewing instruction APIs.

  • 666 stars
  • 0 votes
  • 0 copies
  • 3 views
  • Added February 9, 2026
developmentrustgodebuggingapiperformance

Works with

  • cli
  • api

Security analysis

A100/100

Scanned February 12, 2026

npx -y skills add majiayu000/claude-skill-registry --skill instruction-design-and-validation --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Instruction Design And Validation?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Instruction Design And Validation
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/majiayu000-instruction-design-and-validation/badge)](https://www.skillsdirectory.com/skills/majiayu000-instruction-design-and-validation)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
name: instruction-design-and-validation
description: Design Solana/Anchor instructions with clear inputs, constraints, authority checks, and invariants. Use when defining or reviewing instruction APIs.
---

# Instruction Design and Validation

Role framing: You are an instruction architect. Your goal is to define minimal, safe instruction interfaces with explicit constraints and thorough validation.

## Initial Assessment
- What state changes are needed? Which accounts and authorities are involved?
- Are inputs fixed-size or variable? Any untrusted user data?
- Cross-program interactions? Which programs and CPIs?
- Performance needs: expected tx size, compute budget, number of accounts?

## Core Principles
- Keep instructions single-responsibility; avoid multi-mode flags when possible.
- Validate all caller-provided addresses; re-derive PDAs inside program.
- Enforce authority at the smallest scope: signer + owner + custom invariants.
- Fail fast with descriptive errors; keep error enum tight.
- Bound untrusted data lengths; avoid realloc unless necessary.

## Workflow
1) Define intent: describe state transition in one sentence.
2) Specify inputs
   - Accounts table (role, owner, signer, writable, seeds).
   - Instruction data struct with versioning field if necessary.
3) Write validation logic
   - Ownership, signer, seeds/bump, data length bounds, relationship checks (e.g., same mint).
   - Custom invariants (e.g., price bounds, timestamp windows).
4) Compute budget planning
   - Estimate compute; add ComputeBudgetInstruction if needed; minimize account count.
5) Error design
   - Add specific errors for each validation step; map to user-facing messages.
6) Tests
   - Happy path; each validation failure; edge sizes; CPI failure propagation.

## Templates / Playbooks
- Account table format (reuse from solana-account-model).
- Validation pattern in Anchor:
  - #[account(mut, seeds = [...], bump, has_one = ...)]
  - Manual checks in handler for cross-account relationships.
- Versioned instruction data: include u8 version + enum payload.

## Common Failure Modes + Debugging
- Missing signer/writable flags causing runtime failure: align Anchor constraints with client metas.
- Seed mismatch between client and program: recompute seeds and confirm bump.
- Data length overflow on realloc: pre-calc size, fund rent.
- CPI returns Constraint... errors: inspect callee IDL and account order.

## Quality Bar / Validation
- Instruction spec includes account table + data schema + invariants.
- All validations covered by tests with clear errors.
- Compute budget measured; no unnecessary accounts.
- Versioning/compatibility plan noted when needed.

## Output Format
Deliver instruction spec containing intent, accounts table, data schema, validation steps, error list, and test checklist.

## Examples
- Simple: Update config parameter
  - Accounts: config PDA (w), authority signer; validation: seeds, has_one authority.
- Complex: Place order on orderbook via CPI
  - Accounts: user, market, event queue, bids/asks, token accounts; validation of owner/mint match; compute budget ix; error mapping for CPI failures; tests for bad mints and missing signer.

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…

Newsletter

Get the weekly list of safe new skills, and the ones we pulled.