Scaffold project
Build something meaningful, on Sui. A superpower for AI coding agents (Claude Code, Codex, Cursor, Grok Build) to ship real products on Sui.
npx -y skills add pivyme/suiperpower --skill scaffold-projectAssembled from the repository path, not quoted from the project. Check it against their README if it does not work.
One thing to look at
- 12 stars12 stars. Stars are a popularity signal and not a quality one, but at this level it is likely that nobody has read this closely except its author, and you would be relying on your own review.
What its author says it does
Copied from the file, not written here
Scaffold a new Sui project with the right stack and write build-context.md. Use when the user wants to start, init, bootstrap, set up, or create a new Sui project, workspace, or template, in any phrasing.
SKILL.md
6.9 KB, ~1.7k tokens by cl100k_base, as published. Nobody here has run it
Preamble (run first)
# 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 scaffold-project build completed
# Or use "failed" / "aborted" if it ended that way.
command -v suiperpower >/dev/null 2>&1 && suiperpower track scaffold-project build started >/dev/null 2>&1 &
true
If 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.
What this skill does
Bootstraps a fresh Sui project on disk. Picks a template based on the project intent (Move-only package, frontend dapp, full-stack with backend), wires the standard Sui dependencies, generates Move.toml and package.json, and writes the canonical .suiperpower/build-context.md so subsequent skills know where the project lives and what stack it uses.
When to use it
- Starting a new Sui project from scratch.
- Adding a Sui Move package to an existing repo that does not have one yet.
- Migrating an EVM or Solana scaffold to Sui shape.
When NOT to use it
- If the user has not picked an idea yet, use
find-next-sui-ideafirst. - If the user already has a working project and wants to extend it, use
build-with-moveor the relevant build skill. - For deploys, use
deploy-to-testnet.
If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.
Inputs
- A target directory (default: current working directory).
- Optional:
.suiperpower/idea-context.mdfromfind-next-sui-idea. Read it if present to derive project shape. - The intended deployment target (testnet first, then mainnet).
If unclear, interview the user for:
- Move-only, frontend-only, or full-stack?
- TS frontend (Next.js, Vite, plain Node) or Rust client?
- Will Walrus, DeepBook, Scallop, or zkLogin be load-bearing? Default these in if so.
- Which package manager (pnpm preferred)?
Outputs
-
A directory with:
move/<package>/Move.toml,move/<package>/sources/,move/<package>/tests/, optionalweb/, optionalcli/,.suiperpower/build-context.md,.gitignore,README.md. -
Initial
.suiperpower/build-context.mdcontaining:## scaffold-project session, <timestamp> - project name: <name> - stack: <move-only | frontend | full-stack> - frontend: <none | next | vite> - default sponsor integrations: <walrus | deepbook | scallop | none> - Move package name: <name> - target network: testnet - open issues: <list> -
A working
sui move buildand (if frontend)pnpm install + pnpm build.
The skill never deletes files outside the scaffolded directory without explicit user confirmation.
Workflow
-
Context gathering
- Read
.suiperpower/idea-context.mdif present. - Confirm project name, stack shape, sponsor integrations.
- Read
-
Pick the template
- Move-only: a single Move package skeleton.
- Frontend dapp: Next.js + dapp-kit + a Move package.
- Full-stack: as above plus a backend service shell.
-
Generate the directory tree
- Create directories.
- Write
Move.tomlwith pinned framework rev. - Write a placeholder Move module so
sui move buildsucceeds. - Write a starter test for the placeholder module.
-
Frontend setup (if applicable)
- Scaffold Next.js or Vite.
- Install
@mysten/sui,@mysten/dapp-kit-core, and@mysten/dapp-kit-react. The legacy@mysten/dapp-kitpackage is deprecated and does not support gRPC or GraphQL. - Write a starter page that connects to a wallet and reads the user's address.
-
Sponsor defaults (if applicable)
- Add
@mysten/walrus(or HTTP path) for Walrus. - Add
@mysten/deepbook-v3for DeepBook. - Add
@scallop-io/sui-scallop-sdkfor Scallop. - Note: do not add unless the user actually plans to use them. Default off.
- Add
-
Quality verification
- Run
sui move build. Confirm zero errors. - Run
pnpm installand a build for frontend, if applicable.
- Run
-
Write build-context.md
- Capture stack decisions for downstream skills.
-
Hand off
- Recommend
object-model-designnext if the project has non-trivial state. - Recommend
build-with-movefor direct Move authoring.
- Recommend
-
Closing handoff
- If
.suiperpower/intent.mdexists and the scaffold was non-trivial (new sponsor integration wired in, multi-package layout, custom upgrade authority), recommendverify-against-intentas the next step so the generated tree is checked against recorded intent before code lands on top. - If no
intent.mdexists and the scaffold was non-trivial, surface that gap once: offerclarify-intentto backfill, do not force it.
- If
Quality gate (anti-slop)
Before reporting done, the skill asks itself the following and refuses to declare success if any answer is no:
- Does
sui move buildsucceed in the scaffolded directory with zero errors? - Does the frontend (if scaffolded) run
pnpm buildwithout errors? - Is
Move.tomlpinned to a specific framework rev or tag, notmain? - Is
.suiperpower/build-context.mdwritten with the stack decisions? - Does the placeholder Move module include at least one passing test?
- Are sponsor defaults only added when the user explicitly opted in, not "just in case"?
If any answer is no, the skill reports the gap and works through it before declaring the project scaffolded.
References
On-demand references (load when relevant to the user's question):
references/template-shapes.md: Move-only, frontend, full-stack template shapes with file trees.references/move-toml-defaults.md: Pinned Sui framework rev, package name conventions, edition.
Knowledge docs (load when scope expands beyond what is in references):
skills/data/sui-knowledge/04-protocols-and-sdks.md: SDK ecosystem context, which template fits which intent.
Use in your agent
- Claude Code:
claude "/suiper:scaffold-project <your message>" - Codex:
codex "/scaffold-project <your message>" - Grok Build: run
grok, then/scaffold-project <your message>in the session - Cursor: paste a chat message that includes a phrase like "scaffold my Sui project", or load
~/.cursor/rules/scaffold-project.mdcand reference it.
If you activated this and the user actually wants something else, consult skills/SKILL_ROUTER.md and hand off.