Skip to content
Development
Skill

/retention-loop

Articulate a day 1 / day 7 / day 30 retention loop for a Sui product. Use when the user wants to define retention, stickiness, or engagement loop.

From plugin
suiperpower
1360 skills1 MCP

Claude Code

$ npx -y skills add pivyme/suiperpower --skill retention-loop --agent claude-code

SKILL.md

retention-loop.SKILL.md
name: retention-loop
description: Articulate a day 1 / day 7 / day 30 retention loop for a Sui product. Use when the user wants to define retention, stickiness, or engagement loop.

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 retention-loop build completed
# Or use "failed" / "aborted" if it ended that way.
command -v suiperpower >/dev/null 2>&1 && suiperpower track retention-loop 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

Forces the user to say, in one paragraph, what their user does on day 1, day 2, day 7, and day 30, and what specifically pulls the user back at each anchor. If the loop does not exist or is hand-waved, the skill names that and refuses to declare a loop.

`deploy-to-mainnet` reads this skill's output. A product without a retention loop launching to mainnet is a slot-machine bet on novelty alone.

When to use it

  • Pre-mainnet, when the project is about to face real users.
  • During pitch prep when "retention" is being claimed.
  • Before applying for a grant where retention metrics will be expected at the next milestone.

When NOT to use it

  • Pre-MVP, before the product is built.
  • For utility infra where retention is not the right metric (e.g. an indexer, a one-time-use tool). Document instead.
  • For pitch documents only, route to pitch-deck skills.

If you activated this and the user actually wants something else, consult `skills/SKILL_ROUTER.md` and hand off.

Inputs

  • `.suiperpower/idea-context.md` for context.
  • `.suiperpower/business-model.md` if it exists, to align loop with payer.

Outputs

A single paragraph describing the loop, plus the anchor table, written to `.suiperpower/retention-loop.md`:

## Retention loop, <timestamp>

### Loop paragraph
<one paragraph, 4-7 sentences, that describes what brings the user back, in plain language>

### Anchors
- day 1: <user does what, sees what, feels what>
- day 2: <what brings them back the next day, or "none, this is a weekly cadence product">
- day 7: <what is the week-1 anchor>
- day 30: <what is the month-1 anchor>

### Loop type
<habit-driven | event-driven | reward-driven | social-driven | utility-driven>

### Falsifying signal
<what you would observe (or not observe) in the first 100 users that would tell you the loop is broken>

### Verdict
- has loop: <yes | partial | no>
- if partial or no: which anchors are missing

Workflow

1. **Read context**

  • Pull idea, target user, sponsor track if any.

2. **Ask the day-1 question**

  • "What does a user do on their first session, in concrete steps? What value do they get out before closing the tab?"
  • Reject "they explore the dashboard" or similar non-action answers.

3. **Ask the day-2 question**

  • "What pulls them back tomorrow? A notification? A reward? A new piece of content? A check-in?"
  • If the product is weekly or monthly cadence, accept "none" but force the user to pick the right anchor (e.g. weekly digest = day 7).

4. **Ask the day-7 question**

  • "What is the moment in week 1 where the user feels they got real value? Is it a quantifiable outcome?"
  • Reject "they would feel productive". Force a specific outcome.

5. **Ask the day-30 question**

  • "What does the product look like for a user 30 days in? More features unlocked? Compounding history? A community connection?"
  • The answer should compose with day 1 and day 2 (the hooks should ladder).

6. **Identify the loop type**

  • Habit-driven: daily check-in, like email or social feed.
  • Event-driven: triggered by external events (price moves, transactions, partner activity).
  • Reward-driven: explicit rewards for return visits (loyalty, streaks).
  • Social-driven: other users' actions pull this user back (mentions, replies, asks).
  • Utility-driven: a real workflow need (e.g. portfolio rebalancing, billing, monitoring).

7. **Falsifying signal**

  • "What would you see in the first 100 users that would tell you the loop is NOT working?"
  • Force a specific, observable signal.

8. **Verdict**

  • All four anchors articulated specifically = `yes`.
  • 1-2 anchors missing or vague = `partial`.
  • 3+ missing = `no`.

9. **Writeback**

  • Write the file. Single paragraph + anchor table + verdict.

Quality gate (anti-slop)

Before reporting done:

  • Does the paragraph describe a real loop, with cause and effect, or is it a list of features?
  • Are all four anchors specific (verb + object + outcome), not "users engage with the product"?
  • Is the loop type one of the five named types, or is it "all of the above"? "All of the above" is a sign no loop is dominant.
  • Is the falsifying signal specific enough that the user could test it next week?
  • Did the writeback happen?

If any answer is no, the skill keeps working.

References

On-demand references (load when relevant to the user's question):

  • `references/loop-anti-patterns.md`: Common fake loops to reject.
  • `references/anchor-examples.md`: Real-world examples of each anchor type from successful products.

Use in your agent

  • Claude Code: `claude "/suiper:retention-loop <your message>"`
  • Codex: `codex "/retention-loop <your message>"`
  • Grok Build: run `grok`, then `/retention-loop <your message>` in the session
  • Cursor: paste a chat message that includes a phrase like "retention loop", or loa
Read more
@pivyme
Ships withsuiperpower

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.

1360 skills1 MCP
Get the whole plugin

Stars on GitHub

Momentum

stars in total
13
Star history of pivyme/suiperpower on GitHub, a chart by star-history.com

Other skills on suiperpower.

brand-design

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.

@pivyme@pivymeInstall Skill
build-ai-agent

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.

@pivyme@pivymeInstall Skill
build-data-pipeline

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…

@pivyme@pivymeInstall Skill
build-mobile-sui

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.

@pivyme@pivymeInstall Skill
build-with-claude

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.

@pivyme@pivymeInstall Skill
build-with-move

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,…

@pivyme@pivymeInstall Skill

More skills from other plugins.

brainstorming
Auto-invoked

brainstorming

You MUST use this before any creative work - creating features, building components, adding functionality, modifying behavior, or…

@obra@obraInstall Skill
ask-matt

ask-matt

Ask which skill or flow fits your situation. A router over the skills in this repo.

skills2w309k
@mattpocock@mattpocockInstall Skill
accessibility
Auto-invoked

accessibility

Design, implement, and audit accessible UI to WCAG 2.2 Level AA across Web, iOS, and Android — semantic ARIA roles and labels,…

ecc2w293k
@affaan-m@affaan-mInstall Skill
compiler-commit

compiler-commit

Use when you want to verify compiler changes and commit with the correct convention. Runs tests, lint, and format, then commits…

react5d252k
@facebook@facebookInstall Skill

Questions about retention-loop.

Which coding agents can use retention-loop?
retention-loop installs in Claude Code, Codex, Cursor, Gemini CLI, GitHub Copilot, OpenCode and Windsurf with the skills CLI, using each agent's flag shown on this page. Flowy's auto-invocation, which fires a skill when your prompt matches, runs in Claude Code only.