General
share-usecase
Share your OpenClaw use case to clawusecase.com.
---
name: share_usecase
description: "Share your OpenClaw use case to clawusecase.com. Analyzes your recent work and creates a submission for the community."
author: "Rex 🐧"
version: "2.0.1"
---
# Share Use Case Skill
This skill helps you share your OpenClaw use cases to [clawusecase.com](https://clawusecase.com).
## When to Use
Trigger this skill when the user wants to share a use case they've built with OpenClaw. They might say:
- "/share_usecase"
- "I want to share this use case"
- "Let me submit this to clawusecase"
- "Share what I just built"
**Important:** When users choose to get credit via OAuth, automatically poll for their connection completion. Don't make them tell you they've connected - detect it automatically and proceed with submission.
**Implementation requirement:** You MUST actively monitor the polling loop and send an immediate message when connection is detected. Do not run polling silently in the background - check results frequently and respond the moment you see a successful credential. The user should see "✅ Connected as @username!" within seconds of completing OAuth, without having to ask.
## How It Works
### 1. Greet and Explain
When the user triggers `/share_usecase`, start with a friendly greeting:
```
🐧 Share Your Use Case
Hey! clawusecase.com is a community showcase where OpenClaw users share what they've built to inspire others.
Let me look at what you've been working on and draft a use case for you...
```
### 2. Analyze Recent Context
Look back at the conversation history (last 50-100 messages or past few hours) to understand what the user built. Look for:
- What problem they were trying to solve
- What tools/integrations they used (GitHub, Stripe, Resend, etc.)
- How they solved it
- Any requirements or setup needed
### 3. Generate Use Case Structure
Create a well-structured use case with these fields:
**Required:**
- `title` (50-100 chars) - Clear, descriptive title of what was built
- `hook` (100-200 chars) - One-sentence summary that grabs attention
- `problem` (200-500 chars) - What problem this solves
- `solution` (300-800 chars) - How it works, what was built
- `category` - One of: "Productivity", "Development", "Business/SaaS", "Home Automation", "Social/Content", "Data & Analytics", "Fun"
- `skills` (array) - Tools/technologies used (e.g., ["GitHub", "Stripe", "Resend"])
**Optional:**
- `requirements` - What you need to use this (API keys, accounts, etc.)
### 4. Normalize Tools/Skills
Before finalizing, normalize tool names using `normalize-tools.js`:
```bash
node normalize-tools.js "github,stripe api,resend email"
```
This ensures consistent naming (e.g., "github" → "GitHub", "stripe api" → "Stripe").
### 5. Show Preview and Get Approval
Present the generated use case to the user in a clean format:
```
📋 Use Case Draft
Title: Email notifications for Pro subscriptions
Hook: Sends welcome emails automatically when users upgrade
Problem: No email notifications when users subscribe to Pro plan
Solution: Built Resend integration with React Email templates, hooked into Stripe webhooks for subscription events
Category: Business/SaaS
Tools: GitHub, Stripe, Resend
Requirements: Resend account, Stripe webhooks configured
Would you like to:
- Submit as-is
- Edit any fields
- Cancel
```
If they want to edit, iterate until they're happy.
### 6. Ask About Attribution
Once they approve the content, ask about attribution:
```
Would you like to be credited for this submission?
Options:
1. ✅ Yes, credit me (connect Twitter or GitHub)
2. 🎭 No, submit anonymously
If you choose credit, you'll get a link on the live use case and build your profile in the community!
```
**If they choose credit:**
Generate OAuth links and send them:
```
Great! Connect your account to get credit:
🐦 X (Twitter): [init Twitter OAuth and get URL]
😺 GitHub: [init GitHub OAuth and get URL]
Click one of the links above to authenticate. I'll detect when you're connected and submit automatically!
```
**Auto-detect connection:**
**⚠️ CRITICAL: You MUST actively monitor and respond to polling results in real-time. Do NOT run polling in the background and wait for system messages. Check the process output directly and respond immediately.**
Immediately after sending OAuth links, start polling and watch for completion:
**Recommended approach:**
```bash
cd /path/to/skill
for i in {1..24}; do
# Try to get credential
RESULT=$(node get-credential.js --token [oauth_token] 2>&1)
if echo "$RESULT" | grep -q '"username"'; then
# SUCCESS! Parse the credential
USERNAME=$(echo "$RESULT" | grep -o '"username":"[^"]*"' | cut -d'"' -f4)
PLATFORM=$(echo "$RESULT" | grep -o '"platform":"[^"]*"' | cut -d'"' -f4)
# IMMEDIATELY notify user (don't wait for background processes!)
# Send this message RIGHT NOW before continuing
echo "User should see: ✅ Connected as @$USERNAME!"
# Store the full credential for submission
CREDENTIAL="$RESULT"
break
fi
# Not ready yet, wait 5 seconds
if [ $i -lt 24 ]; then
sleep 5
fi
done
# After loop, check if we got a credential
if [ -z "$CREDENTIAL" ]; then
echo "Timeout - credential not received within 2 minutes"
fi
```
**Critical implementation notes:**
1. **DO NOT** use `exec(..., background: true)` for polling - you won't see results in time
2. **DO** run polling synchronously or check process output immediately
3. **IMMEDIATELY** send "✅ Connected as @username!" message when detected
4. **DO NOT** wait for system messages or background process completion
5. Parse the credential JSON directly from the command output
**Example flow:**
1. Send OAuth links to user
2. **Immediately start polling** (synchronous checks every 5 seconds)
3. **Each iteration:** Check if credential exists
4. **The INSTANT it's found:** Send message "✅ Connected as @username! Submitting your use case now..."
5. Extract username/platform from credential JSON
6. Proceed with submission
**If timeout (2 minutes):**
```
⏰ Still waiting for your connection. Take your time - I'll keep checking for another 2 minutes!
```
Then continue polling for another 24 attempts.
**If they choose anonymous:**
Proceed with anonymous submission (no author info).
### 7. Submit to API
Use `submit.js` to POST to the API:
**With attribution:**
```bash
node submit.js \
--title "Email notifications for Pro subscriptions" \
--hook "Sends welcome emails automatically when users upgrade" \
--problem "No email notifications when users subscribe to Pro plan" \
--solution "Built Resend integration with React Email templates..." \
--category "Business/SaaS" \
--skills "GitHub,Stripe,Resend" \
--requirements "Resend account, Stripe webhooks configured" \
--author-username "josephliow" \
--author-handle "josephliow" \
--author-platform "twitter" \
--author-link "https://twitter.com/josephliow"
```
**Anonymous:**
```bash
node submit.js \
--title "Email notifications for Pro subscriptions" \
--hook "Sends welcome emails automatically when users upgrade" \
--problem "No email notifications when users subscribe to Pro plan" \
--solution "Built Resend integration with React Email templates..." \
--category "Business/SaaS" \
--skills "GitHub,Stripe,Resend" \
--requirements "Resend account, Stripe webhooks configured" \
--anonymous
```
### 8. Confirm Submission
If successful, share the link with the user:
```
✅ Use case submitted successfully!
View it here: https://clawusecase.com/cases/email-notifications-for-pro-subscriptions
Thanks for sharing with the community! 🎉
```
## Error Handling
### Rate Limiting
If you get a 429 error:
```
⏰ You've hit the submission limit (10 per day).
Try again tomorrow or contact support if you need to submit more.
```
### Validation Errors
If fields are invalid (title too short, solution too brief):
```
❌ Submission failed: Title must be at least 20 characters
Let's fix that. What would you like the title to be?
```
### API Errors
For other errors, show the error message and offer to retry.
## Tips for Good Use Cases
Help users create high-quality submissions:
**Good Title:**
- ✅ "Email notifications for Pro subscriptions"
- ❌ "Email thing I built"
**Good Hook:**
- ✅ "Sends welcome emails automatically when users upgrade"
- ❌ "Sends emails"
**Good Problem:**
- ✅ "Users who upgraded to Pro weren't getting confirmation emails, causing confusion and support tickets"
- ❌ "No emails"
**Good Solution:**
- ✅ "Built a Resend integration with React Email templates. Set up Stripe webhooks to trigger on subscription.created events. Template includes upgrade details and next steps."
- ❌ "Made it send emails with Stripe"
## Category Guidelines
Help users pick the right category:
- **Productivity** - Task management, scheduling, reminders, automation
- **Development** - CI/CD, code review, deployment, testing
- **Business/SaaS** - Customer management, billing, analytics, marketing
- **Home Automation** - Smart home, IoT, cameras, sensors
- **Social/Content** - Social media, content creation, publishing
- **Data & Analytics** - Reports, dashboards, data processing
- **Fun** - Games, experiments, creative projects, humor
## Rate Limiting
Users can submit up to **10 use cases per day**. The API tracks by `authorUsername` (or IP for anonymous).
If they hit the limit, suggest:
- Wait until tomorrow
- Make sure each submission is unique and valuable
- Contact support if they need a higher limit
## Quality Guidelines
The API has automatic quality filtering. Submissions must:
- Title: 20-200 characters
- Hook: 50-500 characters
- Problem: 100-2000 characters
- Solution: 200-5000 characters
- At least 1 skill/tool
- Valid category
Help users meet these requirements before submitting.
## Example Interaction
```
User: I just built email notifications for when users subscribe
You: 🐧 Share Your Use Case
Hey! clawusecase.com is a community showcase where OpenClaw users sha
... (truncated)
general
By
Comments
Sign in to leave a comment