plan-before-code — independently scanned and version-tracked by SaferSkills.
SaferSkills independently audited plan-before-code (Agent Skill) and scored it 100/100 (green). The audit ran 55 deterministic rules across Security, Supply Chain, Maintenance, Transparency, and Community; it found 0 high-severity and 0 lower-severity findings. The full rule-by-rule trace and per-finding evidence are below. Free, methodology-open.
Findings & checks · 0 flagged
Every scanned point with the score it earned and what moved between them.
First recorded scan — no prior version to compare against.
The primary manifest — the file an agent reads to learn what this artifact does.
# Suiperpower telemetry. Routes through the CLI so projects.json + Convex stay in sync.
# Silent on failure so the skill never blocks. Opt out: SUIPERPOWER_TELEMETRY=off.
#
# AGENT NOTE: when this skill finishes, run the matching completion command:
# suiperpower track plan-before-code build completed
# Or use "failed" / "aborted" if it ended that way.
command -v suiperpower >/dev/null 2>&1 && suiperpower track plan-before-code build started >/dev/null 2>&1 &
trueIf TEL_PROMPTED is no, before doing real work, ask the user:
Help suiperpower get better. We track which skills get used and how long they take. No code, no file paths, no PII. Change anytime in ~/.suiperpower/config.json.>
A) Sure, anonymous B) No thanks
Write the answer to ~/.suiperpower/config.json telemetryTier field and create ~/.suiperpower/.telemetry-prompted. Then continue.
Turns intent.md into a Sui-shaped, file-level plan the user has approved. Forces the Move decisions that are expensive to reverse: Object abilities, capability holders, PTB entry-point shape, package layout, upgrade authority strategy, and per-sponsor verification commitments. The plan is the contract verify-against-intent later checks against.
clarify-intent answers "what". This skill answers "how, in just enough Sui detail that yes/no is possible before any Move code is written".
clarify-intent just ran and the build is non-trivial.build-with-move directly..suiperpower/intent.md does not exist. Use clarify-intent first.debug-move.review-move or product-review.object-model-design directly.If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.
.suiperpower/intent.md (required, from clarify-intent)..suiperpower/build-context.md from a prior session.If intent.md is missing, stop and hand off to clarify-intent. Do not invent intent.
A single file at .suiperpower/build-plan.md with this Sui-shaped schema:
# Build plan, <timestamp>
## Linked intent
.suiperpower/intent.md, summary: <one sentence from intent>
## Package layout
- Package name: <name>
- Single package or multi-package: <decision + rationale>
- Move.toml dependencies: <Sui framework rev, OZ Sui modules, other pinned deps>
## Object model (per Object, forced ability decisions)
- <ObjectName>:
- Ownership: <owned | shared | immutable>
- Abilities: <key, store, drop?, copy?> with rationale per ability
- Purpose: <one line>
- Created by: <function name>
- Mutated by: <function name(s)>
- Destroyed by: <function name, or "never">
- <next Object>: ...
## Capabilities
- <CapName>:
- Holder at init: <module-internal | published-to-deployer | shared>
- Gates: <which functions require it>
- Transferability: <transferable | bound | burnable>
## Modules
- <module_name>:
- Purpose: <one line>
- Public entry functions: <names>
- Friend modules: <list, or "none">
- Stdlib dependencies: <e.g. sui::transfer, sui::object, sui::coin>
## Public entry points
- `<module>::<fn>(args) -> effect` (caller, gas posture, abort codes)
- ...
## PTB shape
- Composability: <single-call entry | PTB chain across modules | not applicable>
- If chained: the canonical PTB sequence the user or frontend builds
- Gas envelope expected (rough): <e.g. < 0.01 SUI on testnet>
## Tests (one per intent.md success criterion)
- <test_name>: covers <fn>, expected <pass | abort code>, ties to intent criterion #<n>
- ...
- Any success criterion without a test: flag here as a risk.
## Frontend or off-chain pieces (if any)
- Stack: <Next.js + dapp-kit | mobile | indexer | agent>
- Routes / surfaces: <list>
- Auth: <wallet adapter | zkLogin | sponsored>
- Calls to chain: <list of public entry points hit>
## Sponsor integrations (load-bearing, with verification commitment)
- <Walrus | DeepBook | Scallop | OZ Sui | zkLogin | OtterSec>:
- Surface: <which SDK calls, which Move functions touch it>
- Load-bearing test: <how `verify-against-intent` will prove it is not decorative>
- Reference: <docs URL the author or skill grounded this on>
## Network rollout
- Order: devnet -> testnet -> mainnet (or stop earlier)
- Per-network exit criterion: <what must be true before moving up>
## Upgrade authority
- Strategy: <keep with multisig | keep solo | burn at mainnet>
- Where the upgrade cap lives after publish: <address | shared object | burned>
- Package id capture: <where it's recorded for downstream skills>
## Risks and unknowns
- <risk>: severity, how we will resolve (fetch docs, prototype, ask author)
- ...
## Order of build
1. <step that proves the riskiest unknown first>
2. <step>
3. ...
## What "done" looks like for this plan
- <observable outcome tied to intent.md success criterion #N, on which network>The skill stops here. No code. Hand off to the right build skill.
.suiperpower/intent.md. Missing? Stop and hand off to clarify-intent..suiperpower/build-context.md if present.Move.toml deps in one short summary.Move.toml deps (Sui framework rev, OZ Sui modules). Floating versions are slop; refuse them.key, store, and explicitly justify drop or copy if used).Move.toml can be confirmed.intent.md maps to at least one named test.verify-against-intent will prove it is load-bearing (e.g. "a testnet tx hash where the Walrus blob is read into the UI", not "import path exists").deploy-to-testnet, submit-to-sui-overflow) read from one place.skills/SKILL_ROUTER.md.Before reporting done, the skill asks itself:
intent.md map to at least one named test?Move.toml deps pinned (rev or tag), not floating?If any answer is no, the skill keeps working before handing off.
Knowledge docs (load when scope expands):
core/skills/data/sui-knowledge/03-move-and-objects.md: Object model, abilities, capability reference.core/skills/data/guides/deploy-runbook.md: Network rollout and upgrade authority context.claude "/suiper:plan-before-code <your message>"codex "/plan-before-code <your message>"grok, then /plan-before-code <your message> in the session~/.cursor/rules/plan-before-code.mdc.If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.
~30 seconds. Free. No account. Every finding cites a rule and a line of evidence.