/cso
Run a CSO-style customer signal review on a Sui product. Use when the user wants a CSO or customer signal review.
$ npx -y skills add pivyme/suiperpower --skill cso --agent claude-codeHow it fires
How this skill gets triggered: by you, by Claude, or both.
- Fires itselfAuto-invocation. Claude auto-loads it when your prompt matches the work.
- You can call itInvoke it directly when you want it.
- Slash command
/cso
Context preview
The summary Claude sees to decide when to auto-load this skill.
Run a CSO-style customer signal review on a Sui product. Use when the user wants a CSO or customer signal review.
SKILL.md
cso.SKILL.mdname: cso
description: Run a CSO-style customer signal review on a Sui product. Use when the user wants a CSO or customer signal review.
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 cso build completed
# Or use "failed" / "aborted" if it ended that way.
command -v suiperpower >/dev/null 2>&1 && suiperpower track cso 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
Runs a structured infrastructure security audit on a Sui project. Walks through STRIDE threat modeling, OWASP-mapped checks, dependency supply chain verification, RPC/API hardening, key management, and frontend security. Produces a findings report with severity ratings and a remediation plan. Every P0 finding must have a fix or an accepted-risk decision before the audit is declared complete.
When to use it
- The user wants a security review of their full Sui application (Move + frontend + infra).
- The user is preparing for a security audit or OtterSec engagement.
- The user says "threat model", "STRIDE", "OWASP", or "security audit".
- The user wants to harden their app before mainnet deployment.
- The user wants a supply chain or dependency audit.
When NOT to use it
- If the user only wants a Move code review, use `review-move` instead.
- If the user wants OtterSec-specific audit prep, use `ottersec-prep` instead.
- If the user has not scaffolded a project yet, use `scaffold-project` first.
- If the user wants to fix a specific Move bug, use `debug-move`.
- If the user wants to deploy, use `deploy-to-testnet` or `deploy-to-mainnet`.
If you activated this and the user actually wants something else, consult `skills/SKILL_ROUTER.md` and hand off.
Inputs
- A Sui project with at least one of: Move package, TypeScript frontend, backend API, or deployment config.
- Optional: `.suiperpower/build-context.md` from prior skills. Read it if present.
- Optional: deployment target (testnet, mainnet) and RPC endpoint in use.
If the project scope is unclear, interview the user for:
- What components exist? (Move contracts, TS frontend, backend API, off-chain workers)
- What auth mechanism is in use? (zkLogin, wallet-only, API keys)
- Are there admin capabilities or privileged operations?
- What third-party services does the app call? (RPC, Walrus, DeepBook, external APIs)
- Is this pre-deploy or already live?
Outputs
- A structured findings report appended to `.suiperpower/build-context.md` with severity levels (P0 critical, P1 high, P2 medium, P3 low).
- A remediation plan with concrete fix instructions for each P0 and P1 finding.
- Append to `.suiperpower/build-context.md`:
## cso session, <timestamp>
- scope: <components audited>
- findings: P0=<n> P1=<n> P2=<n> P3=<n>
- P0 findings resolved: <yes | no, list remaining>
- threat model: STRIDE completed for <components>
- supply chain: <clean | issues found>
- open issues: <list>
Workflow
1. Context gathering
- Read `.suiperpower/build-context.md` if it exists.
- Inventory the project: list Move packages, TS/JS source directories, backend code, config files, deployment manifests.
- Identify the attack surface: public entry points, admin functions, external integrations, user-facing APIs.
2. STRIDE threat model
For each component, walk through the six STRIDE categories. See `references/security-checklist.md` for the Sui-specific STRIDE table.
| Category | Question | |---|---| | **S**poofing | Can an attacker impersonate a user or admin? | | **T**ampering | Can an attacker modify on-chain state, PTBs, or API requests? | | **R**epudiation | Can actions be denied without audit trail? | | **I**nformation disclosure | Can sensitive data leak from Move objects, RPC responses, or frontend state? | | **D**enial of service | Can an attacker exhaust shared object contention, rate limits, or gas? | | **E**levation of privilege | Can a user escalate to admin via capability leaks or missing auth checks? |
Document findings per component. Assign severity.
3. Authentication and session audit
- Check auth mechanism: zkLogin session handling, wallet signature verification, API key validation.
- Verify session expiry and refresh logic. zkLogin ephemeral keys must have bounded TTL.
- Check for user enumeration in error messages.
- Verify rate limiting on auth endpoints.
4. Authorization audit
- List all privileged operations (admin functions, treasury access, config changes).
- Verify each has a capability check or ownership assertion in Move.
- Check for missing authorization on PTB composition (can a user compose a PTB that bypasses intended access control?).
- Verify shared object access patterns do not allow unauthorized mutation.
5. Input validation
- Check Move entry functions: are all parameters validated (bounds, types, sizes)?
- Check frontend inputs: is server-side validation present, not just client-side?
- Check for injection vectors in any backend APIs (SQL, command, path traversal).
- Verify PTB composition safety: can a user inject unexpected calls into a sponsored PTB?
6. Dependency supply chain audit
- Run `npm audit` (or equivalent) on the TS/JS project. Flag high and critical findings.
- Check Move dependencies in `Move.toml`: are they pinned to a specific `rev` or `tag`, not floating?
- Verify package IDs: for a
Read more
name: cso description: Run a CSO-style customer signal review on a Sui product. Use when the user wants a CSO or customer signal review.
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 cso build completed # Or use "failed" / "aborted" if it ended that way. command -v suiperpower >/dev/null 2>&1 && suiperpower track cso 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
Runs a structured infrastructure security audit on a Sui project. Walks through STRIDE threat modeling, OWASP-mapped checks, dependency supply chain verification, RPC/API hardening, key management, and frontend security. Produces a findings report with severity ratings and a remediation plan. Every P0 finding must have a fix or an accepted-risk decision before the audit is declared complete.
When to use it
- The user wants a security review of their full Sui application (Move + frontend + infra).
- The user is preparing for a security audit or OtterSec engagement.
- The user says "threat model", "STRIDE", "OWASP", or "security audit".
- The user wants to harden their app before mainnet deployment.
- The user wants a supply chain or dependency audit.
When NOT to use it
- If the user only wants a Move code review, use `review-move` instead.
- If the user wants OtterSec-specific audit prep, use `ottersec-prep` instead.
- If the user has not scaffolded a project yet, use `scaffold-project` first.
- If the user wants to fix a specific Move bug, use `debug-move`.
- If the user wants to deploy, use `deploy-to-testnet` or `deploy-to-mainnet`.
If you activated this and the user actually wants something else, consult `skills/SKILL_ROUTER.md` and hand off.
Inputs
- A Sui project with at least one of: Move package, TypeScript frontend, backend API, or deployment config.
- Optional: `.suiperpower/build-context.md` from prior skills. Read it if present.
- Optional: deployment target (testnet, mainnet) and RPC endpoint in use.
If the project scope is unclear, interview the user for:
- What components exist? (Move contracts, TS frontend, backend API, off-chain workers)
- What auth mechanism is in use? (zkLogin, wallet-only, API keys)
- Are there admin capabilities or privileged operations?
- What third-party services does the app call? (RPC, Walrus, DeepBook, external APIs)
- Is this pre-deploy or already live?
Outputs
- A structured findings report appended to `.suiperpower/build-context.md` with severity levels (P0 critical, P1 high, P2 medium, P3 low).
- A remediation plan with concrete fix instructions for each P0 and P1 finding.
- Append to `.suiperpower/build-context.md`:
## cso session, <timestamp> - scope: <components audited> - findings: P0=<n> P1=<n> P2=<n> P3=<n> - P0 findings resolved: <yes | no, list remaining> - threat model: STRIDE completed for <components> - supply chain: <clean | issues found> - open issues: <list>
Workflow
1. Context gathering
- Read `.suiperpower/build-context.md` if it exists.
- Inventory the project: list Move packages, TS/JS source directories, backend code, config files, deployment manifests.
- Identify the attack surface: public entry points, admin functions, external integrations, user-facing APIs.
2. STRIDE threat model
For each component, walk through the six STRIDE categories. See `references/security-checklist.md` for the Sui-specific STRIDE table.
| Category | Question | |---|---| | **S**poofing | Can an attacker impersonate a user or admin? | | **T**ampering | Can an attacker modify on-chain state, PTBs, or API requests? | | **R**epudiation | Can actions be denied without audit trail? | | **I**nformation disclosure | Can sensitive data leak from Move objects, RPC responses, or frontend state? | | **D**enial of service | Can an attacker exhaust shared object contention, rate limits, or gas? | | **E**levation of privilege | Can a user escalate to admin via capability leaks or missing auth checks? |
Document findings per component. Assign severity.
3. Authentication and session audit
- Check auth mechanism: zkLogin session handling, wallet signature verification, API key validation.
- Verify session expiry and refresh logic. zkLogin ephemeral keys must have bounded TTL.
- Check for user enumeration in error messages.
- Verify rate limiting on auth endpoints.
4. Authorization audit
- List all privileged operations (admin functions, treasury access, config changes).
- Verify each has a capability check or ownership assertion in Move.
- Check for missing authorization on PTB composition (can a user compose a PTB that bypasses intended access control?).
- Verify shared object access patterns do not allow unauthorized mutation.
5. Input validation
- Check Move entry functions: are all parameters validated (bounds, types, sizes)?
- Check frontend inputs: is server-side validation present, not just client-side?
- Check for injection vectors in any backend APIs (SQL, command, path traversal).
- Verify PTB composition safety: can a user inject unexpected calls into a sponsored PTB?
6. Dependency supply chain audit
- Run `npm audit` (or equivalent) on the TS/JS project. Flag high and critical findings.
- Check Move dependencies in `Move.toml`: are they pinned to a specific `rev` or `tag`, not floating?
- Verify package IDs: for a
Showing the first part of this file.
Build something meaningful, on Sui. A superpower for AI coding agents to ship real products on Sui. Your AI coding agent has never written Move before. Suiperpower fixes that.
Repo: pivyme/suiperpower
Other skills on suiperpower.
- /brand-design
Pick a brand name, color palette, or typography for a Sui product. Use when the user wants to name or brand a Sui project.
Open skill - /build-ai-agent
Build an AI agent that signs Sui transactions or runs onchain actions. Use when the user wants an AI agent on Sui.
Open skill - /build-data-pipeline
Build a Sui data indexer or analytics pipeline. Use when the user wants to index Sui events, build a pipeline, or query Sui RPC data.
Open skill - /build-mobile-sui
Build a mobile Sui app with React Native or the Sui Mobile SDK. Use when the user wants iOS, Android, or mobile Sui flows.
Open skill - /build-with-claude
Pair with a coding agent to build a Sui MVP step by step. Use when the user wants to build the MVP iteratively with an agent.
Open skill - /build-with-move
Author Sui Move modules and packages with a senior Move dev as your pair. Use when the user wants to write, build, author, add, or scaffold Move code, smart contracts, or Sui programs at the module or function level, in any phrasing.
Open skill

