agents/skills/aptos/move-safety-core-directives/SKILL.md
Lightweight core directives for Aptos Move always-required skills — injected into every breadth agent. Full methodology lives in the dedicated Move-Safety Agent.
npx skillsauth add plamentsv/plamen move-safety-core-directivesInstall this skill globally with one command. Works with Claude Code, Cursor, and Windsurf.
3 of 9 scanners reported clean
Some scanners were skipped, did not run, or reported a non-clean status. Review each row below.
Purpose: These are the INVENTORY + FLAG directives extracted from the 4 always-required Aptos skills (ABILITY_ANALYSIS, BIT_SHIFT_SAFETY, TYPE_SAFETY, REF_LIFECYCLE). Every breadth agent receives these to flag Move-specific patterns for depth review. The full trace methodology lives in the dedicated Move-Safety Agent (spawned separately). Total: ~130 lines (vs ~950 lines for 4 full skills)
Enumerate ALL structs. For each:
| Struct | Module | Abilities | Value-Bearing? | Obligation? | Excess Abilities? | |--------|--------|-----------|---------------|-------------|------------------|
Flag for depth review:
copy that represents economic value (Coin, LP token, shares) → [FLAG:ABILITY-COPY-VALUE]drop that represents an obligation (receipt, lock, flash loan) → [FLAG:ABILITY-DROP-OBLIGATION]key + store that should be non-transferable → [FLAG:ABILITY-EXCESS-STORE]drop that has no explicit consumption path → [FLAG:ABILITY-STUCK-VALUE]GREP: Search all .move files for << and >>.
For each shift operation:
| Location | Operand Type | Bit Width | Shift Amount Source | User-Controllable? | Bounded? | |----------|-------------|-----------|--------------------|--------------------|----------|
Flag for depth review:
GREP: Search all .move files for fun .*< to find every generic function.
For each generic function:
| Function | Module | Type Params | Constraints | Entry? | Creates/Destroys T? | |----------|--------|-------------|-------------|--------|---------------------|
Flag for depth review:
Coin<T> or FungibleAsset without verifying T matches expected type → [FLAG:TYPE-COIN-CONFUSION]store constraint where key or specific type is needed → [FLAG:TYPE-WEAK-CONSTRAINT]GREP: Search for ConstructorRef|TransferRef|MintRef|BurnRef|DeleteRef|ExtendRef|generate_mint_ref|generate_burn_ref|generate_transfer_ref.
For each Ref:
| Ref Type | Created In | Stored Where | Access Control | Public Access? | |----------|-----------|-------------|---------------|----------------|
Flag for depth review:
Before completing analysis, verify you produced inventories for ALL 4 sections above. Missing inventories = missing coverage for Move-specific vulnerability classes.
data-ai
Trigger Pattern Always (run during recon TASK 0, not breadth) - Inject Into Recon agent only (meta_buffer.md enrichment)
data-ai
Trigger Pattern Always (run during recon TASK 0, not breadth) - Inject Into Recon agent only (meta_buffer.md enrichment)
data-ai
Trigger Pattern Always (run during recon TASK 0, not breadth) - Inject Into Recon agent only (meta_buffer.md enrichment)
data-ai
Trigger STABLESWAP_FORK flag (fork-ancestry detects Curve/StableSwap parent via get_d/get_y/ramp_a/StableSwap patterns) - Agent Type general-purpose (standalone niche agent, 1 budget slot)