/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.
$ npx -y skills add pivyme/suiperpower --skill retention-loop --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
/retention-loop
Context preview
The summary Claude sees to decide when to auto-load this skill.
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.
SKILL.md
retention-loop.SKILL.mdname: 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
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
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

