Back to Skills
    šŸ¦ž

    share-usecase

    Share your OpenClaw use case to clawusecase.com.

    By @josephl37
    View on GitHub
    SKILL.md
    ---
    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)