Getting it into your agent
One page per mod, every tool's command on it. A separate URL per tool would split the same page into five that compete with each other.
npx agentmods add skills/mission69b/t2000/move-unit-testingnpx skills add mission69b/t2000 --skill move-unit-testinggit clone --depth 1 https://github.com/mission69b/t2000Wrote this? Show the measurements
A badge with what this costs and how it scanned, read live from this page, so it follows the numbers instead of freezing them. Markdown for a README, HTML for a documentation site or a project page.
[](https://agentmods.dev/skills/mission69b/t2000/move-unit-testing)<a href="https://agentmods.dev/skills/mission69b/t2000/move-unit-testing"><img src="https://agentmods.dev/badge/skills/mission69b/t2000/move-unit-testing.svg" alt="Measured on agentmods" height="20"></a>What it costs to keep this loaded
Counted locally with the o200k_base tokenizer, which is exact for GPT models; Claude uses its own tokenizer and its counts differ. Treat this as one consistent yardstick across the catalogue rather than a bill. Prices are per million input tokens.
| Model | Per session | Once invoked |
|---|---|---|
| Fable 5 | $0.00052 | $0.02416 |
| Opus 5 | $0.00026 | $0.01208 |
| Sonnet 5 | $0.00010 | $0.00483 |
| Haiku 4.5 | $0.00005 | $0.00242 |
Grade A, and why
move-unit-testing scanned grade A with 0 findings against 26 rules in 11 categories — prompt injection, anti-refusal, data exfiltration, privilege escalation, supply chain, agent snooping, system-prompt leakage, SSRF and excessive agency — measured 4d ago.
A static scan of the body, not an audit. Every finding is printed with the line that produced it so you can judge whether it matters here. A mod is markdown that instructs an agent; that is exactly why what it instructs is worth reading.
Nothing flagged
None of the 26 patterns this scan looks for appear in this file: no shell pipes, no recursive deletes, no credential paths, no hidden text, no instruction-override or anti-refusal phrasing, no agent-config snooping. That is not a guarantee, it is the absence of the things that are checkable.
How it starts
The opening of the file, as written. The whole thing — 288 lines — stays where its author put it; the contents beside it link to each section on GitHub.
move-unit-testing
MCP tool: When available in your environment, also query the Sui documentation MCP server (
https://sui.mcp.kapa.ai) for up-to-date answers. Use it for verification and for details not covered by these reference files.
Overview
AI agents consistently use outdated or suboptimal patterns when writing Move unit tests. This skill covers the correct testing conventions from the official Sui Move code quality checklist and testing documentation.
All patterns sourced from https://move-book.com/guides/code-quality-checklist and https://move-book.com/testing/
No test_ Prefix in Test Modules
Test functions inside _tests modules should NOT be prefixed with test_. The module name already indicates these are tests. Use descriptive names that read as statements.
// WRONG — redundant prefix
module my_package::my_module_tests;
#[test]
fun test_create_pool() { /* ... */ }
#[test]
fun test_swap_fails_on_zero() { /* ... */ }
// CORRECT — descriptive statement names
module my_package::my_module_tests;
#[test]
fun create_pool_with_initial_liquidity() { /* ... */ }
#[test]
fun swap_aborts_on_zero_input() { /* ... */ }
Use assert_eq! Instead of assert! for Comparisons
assert_eq! displays both values on failure, making debugging much easier. Never use assert!(x == y) or assert!(x == y, 0) for equality checks.
// WRONG — no diagnostic info on failure
assert!(result == 100);
assert!(result == expected_value, 0);
// CORRECT — shows both values on failure
use std::unit_test::assert_eq;
assert_eq!(result, 100);
assert_eq!(result, expected_value);
Use plain assert! only for boolean conditions where there's nothing to compare:
// assert! is fine for boolean checks
assert!(is_valid);
assert!(vec.length() > 0);
No Abort Codes in Test assert!
Do not pass numeric abort codes to assert! in tests. They can accidentally match application error codes and confuse debugging.
// WRONG — numeric code may collide with app errors
assert!(is_success, 0);
assert!(balance > 0, 1);
// CORRECT — no abort code
assert!(is_success);
assert!(balance > 0);
What this file has done since we first saw it
Hashed on every crawl. A supply-chain change to an agent config is a question of when, not whether, so the history is kept rather than the latest state alone.
- 4d ago First seen · 288 lines · 52 tokens per session scan A 053749f2ea36
move-unit-testing is a skill published in the GitHub repository mission69b/t2000 (23 stars, last pushed yesterday), licensed MIT. It adds 52 tokens to every session and 2,416 once invoked, about $0.0003 per session on Opus 5. A static security scan graded it A with 0 findings. No closer match exists in the catalogue, so it is treated as the original; first seen 2026-08-30.
Other skills, from other repositories
swarmwage-publish
Publish your agent's capabilities to the Swarmwage registry and earn USDC for each call. Lets your agent advertise services (image generation, audio transcription, charting, custom domain workflows…) on the open agent hire protocol — other AI agents discover you, hire you with one function call, and pay you in USDC on…
agentservices
Access paid data APIs for AI agents including crypto prices, technical indicators, DeFi yields, on-chain analytics (whale tracking, exchange flows, stablecoin flows), market intelligence (sentiment, trends, competitor analysis, content gaps, ad copy), portfolio intelligence, DeFi strategy optimization, web search and…
aisa-skill
Skill "aisa-skill" from vbkotecha/agentservices-api, covering agentservices — paid apis for ai agents, quick start, install the x402 client, make a paid api call (agent wallet required) and what agents can do.
swarmwage-hire
Discover, inspect, dry-run, hire, and pay AI capabilities through Swarmwage. Start with wallet-free capability search and x402 reliability checks; use a dedicated USDC wallet only for real hires or paid external x402 calls.
calibrate-claim-confidence
When the agent's epistemic state (GCCRF) indicates low empowerment and falling certainty, hedges out confident absolutes ("definitely", "always", "100%") in outgoing messages.
ai-ml-governance
Governs models and AI systems in production — intended use, evaluation, monitoring, human oversight, documentation, and the decision to deploy or retire. Use this before deploying a model or AI feature, when defining evaluation criteria, when a model's behavior has drifted, when assessing AI risk or regulatory…