[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M714EZT6S1R8S0AMSA7X2SE0":3,"skill-same:01M714EZT6S1R8S0AMSA7X2SE0":65},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":45,"commitSha":46,"skillDirectory":47,"forksCount":14,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M714EZT6S1R8S0AMSA7X2SE0","saas-mvp-launcher",null,"Use when planning or building a SaaS MVP from scratch. Provides a structured roadmap covering tech stack, architecture, auth, payments, and launch checklist.","sapsapshen\u002Fai-memory-router","sapsapshen","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F20347959?v=4","01M6XDQEF1DP50DKF37H81J3J5","shenmian","01M6XDQEJPE41Y3DT2763X8ZJN",0,"MIT","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fsaas-mvp-launcher\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"mvp","saas","saas mvp launcher","launcher","checklist","launch","From Scratch","use","scratch","planning","tech","safe","2026","stack","architecture","when","roadmap","payments","auth","community","2026-11-10 10:12:30",false,"---\nname: saas-mvp-launcher\ndescription: \"Use when planning or building a SaaS MVP from scratch. Provides a structured roadmap covering tech stack, architecture, auth, payments, and launch checklist.\"\nrisk: safe\nsource: community\ndate_added: \"2026-03-04\"\n---\n\n# SaaS MVP Launcher\n\n## Overview\n\nThis skill guides you through building a production-ready SaaS MVP in the shortest time possible. It covers everything from idea validation and tech stack selection to authentication, payments, database design, deployment, and launch — using modern, battle-tested tools.\n\n## When to Use This Skill\n\n- Use when starting a new SaaS product from scratch\n- Use when you need to choose a tech stack for a web application\n- Use when setting up authentication, billing, or database for a SaaS\n- Use when you want a structured launch checklist before going live\n- Use when designing the architecture of a multi-tenant application\n- Use when doing a technical review of an existing early-stage SaaS\n\n## Step-by-Step Guide\n\n### 1. Validate Before You Build\n\nBefore writing any code, validate the idea:\n\n```\nValidation checklist:\n- [ ] Can you describe the problem in one sentence?\n- [ ] Who is the exact customer? (not \"everyone\")\n- [ ] What do they pay for today to solve this?\n- [ ] Have you talked to 5+ potential customers?\n- [ ] Will they pay $X\u002Fmonth for your solution?\n```\n\n**Rule:** If you can't get 3 people to pre-pay or sign a letter of intent, don't build yet.\n\n### 2. Choose Your Tech Stack\n\nRecommended modern SaaS stack (2026):\n\n| Layer | Choice | Why |\n|-------|--------|-----|\n| Frontend | Next.js 15 + TypeScript | Full-stack, great DX, Vercel deploy |\n| Styling | Tailwind CSS + shadcn\u002Fui | Fast, accessible, customizable |\n| Backend | Next.js API Routes or tRPC | Type-safe, co-located |\n| Database | PostgreSQL via Supabase | Reliable, scalable, free tier |\n| ORM | Prisma or Drizzle | Type-safe queries, migrations |\n| Auth | Clerk or NextAuth.js | Social login, session management |\n| Payments | Stripe | Industry standard, great docs |\n| Email | Resend + React Email | Modern, developer-friendly |\n| Deployment | Vercel (frontend) + Railway (backend) | Zero-config, fast CI\u002FCD |\n| Monitoring | Sentry + PostHog | Error tracking + analytics |\n\n### 3. Project Structure\n\n```\nmy-saas\u002F\n├── app\u002F                    # Next.js App Router\n│   ├── (auth)\u002F             # Auth routes (login, signup)\n│   ├── (dashboard)\u002F        # Protected app routes\n│   ├── (marketing)\u002F        # Public landing pages\n│   └── api\u002F                # API routes\n├── components\u002F\n│   ├── ui\u002F                 # shadcn\u002Fui components\n│   └── [feature]\u002F          # Feature-specific components\n├── lib\u002F\n│   ├── db.ts               # Database client (Prisma\u002FDrizzle)\n│   ├── stripe.ts           # Stripe client\n│   └── email.ts            # Email client (Resend)\n├── prisma\u002F\n│   └── schema.prisma       # Database schema\n├── .env.local              # Environment variables\n└── middleware.ts           # Auth middleware\n```\n\n### 4. Core Database Schema (Multi-tenant SaaS)\n\n```prisma\nmodel User {\n  id            String    @id @default(cuid())\n  email         String    @unique\n  name          String?\n  createdAt     DateTime  @default(now())\n  subscription  Subscription?\n  workspaces    WorkspaceMember[]\n}\n\nmodel Workspace {\n  id        String    @id @default(cuid())\n  name      String\n  slug      String    @unique\n  plan      Plan      @default(FREE)\n  members   WorkspaceMember[]\n  createdAt DateTime  @default(now())\n}\n\nmodel Subscription {\n  id                 String   @id @default(cuid())\n  userId             String   @unique\n  user               User     @relation(fields: [userId], references: [id])\n  stripeCustomerId   String   @unique\n  stripePriceId      String\n  stripeSubId        String   @unique\n  status             String   # active, canceled, past_due\n  currentPeriodEnd   DateTime\n}\n\nenum Plan {\n  FREE\n  PRO\n  ENTERPRISE\n}\n```\n\n### 5. Authentication Setup (Clerk)\n\n```typescript\n\u002F\u002F middleware.ts\nimport { clerkMiddleware, createRouteMatcher } from '@clerk\u002Fnextjs\u002Fserver';\n\nconst isPublicRoute = createRouteMatcher([\n  '\u002F',\n  '\u002Fpricing',\n  '\u002Fblog(.*)',\n  '\u002Fsign-in(.*)',\n  '\u002Fsign-up(.*)',\n  '\u002Fapi\u002Fwebhooks(.*)',\n]);\n\nexport default clerkMiddleware((auth, req) => {\n  if (!isPublicRoute(req)) {\n    auth().protect();\n  }\n});\n\nexport const config = {\n  matcher: ['\u002F((?!.*\\\\..*|_next).*)', '\u002F', '\u002F(api|trpc)(.*)'],\n};\n```\n\n### 6. Stripe Integration (Subscriptions)\n\n```typescript\n\u002F\u002F lib\u002Fstripe.ts\nimport Stripe from 'stripe';\nexport const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {\n  apiVersion: '2025-01-27.acacia',\n});\n\n\u002F\u002F Create checkout session\nexport async function createCheckoutSession(userId: string, priceId: string) {\n  return stripe.checkout.sessions.create({\n    mode: 'subscription',\n    payment_method_types: ['card'],\n    line_items: [{ price: priceId, quantity: 1 }],\n    success_url: `${process.env.NEXT_PUBLIC_URL}\u002Fdashboard?success=true`,\n    cancel_url: `${process.env.NEXT_PUBLIC_URL}\u002Fpricing`,\n    metadata: { userId },\n  });\n}\n```\n\n### 7. Pre-Launch Checklist\n\n**Technical:**\n- [ ] Authentication works (signup, login, logout, password reset)\n- [ ] Payments work end-to-end (subscribe, cancel, upgrade)\n- [ ] Error monitoring configured (Sentry)\n- [ ] Environment variables documented\n- [ ] Database backups configured\n- [ ] Rate limiting on API routes\n- [ ] Input validation with Zod on all forms\n- [ ] HTTPS enforced, security headers set\n\n**Product:**\n- [ ] Landing page with clear value proposition\n- [ ] Pricing page with 2-3 tiers\n- [ ] Onboarding flow (first value in \u003C 5 minutes)\n- [ ] Email sequences (welcome, trial ending, payment failed)\n- [ ] Terms of Service and Privacy Policy pages\n- [ ] Support channel (email \u002F chat)\n\n**Marketing:**\n- [ ] Domain purchased and configured\n- [ ] SEO meta tags on all pages\n- [ ] Google Analytics or PostHog installed\n- [ ] Social media accounts created\n- [ ] Product Hunt draft ready\n\n## Best Practices\n\n- ✅ **Do:** Ship a working MVP in 4-6 weeks maximum, then iterate based on feedback\n- ✅ **Do:** Charge from day 1 — free users don't validate product-market fit\n- ✅ **Do:** Build the \"happy path\" first, handle edge cases later\n- ✅ **Do:** Use feature flags for gradual rollouts (e.g., Vercel Edge Config)\n- ✅ **Do:** Monitor user behavior from launch day — not after problems arise\n- ❌ **Don't:** Build every feature before talking to customers\n- ❌ **Don't:** Optimize for scale before reaching $10k MRR\n- ❌ **Don't:** Build a custom auth system — use Clerk, Auth.js, or Supabase Auth\n- ❌ **Don't:** Skip the onboarding flow — it's where most SaaS lose users\n\n## Troubleshooting\n\n**Problem:** Users sign up but don't activate (don't use core feature)\n**Solution:** Reduce steps to first value. Track with PostHog where users drop off in onboarding.\n\n**Problem:** High churn after trial\n**Solution:** Add an exit survey. Most churn is due to lack of perceived value, not price.\n\n**Problem:** Stripe webhook events not received locally\n**Solution:** Use Stripe CLI: `stripe listen --forward-to localhost:3000\u002Fapi\u002Fwebhooks\u002Fstripe`\n\n**Problem:** Database migrations failing in production\n**Solution:** Always run `prisma migrate deploy` (not `prisma migrate dev`) in production environments.\n","# SaaS MVP Launcher\n\n## Overview\n\nThis skill guides you through building a production-ready SaaS MVP in the shortest time possible. It covers everything from idea validation and tech stack selection to authentication, payments, database design, deployment, and launch — using modern, battle-tested tools.\n\n## When to Use This Skill\n\n- Use when starting a new SaaS product from scratch\n- Use when you need to choose a tech stack for a web application\n- Use when setting up authentication, billing, or database for a SaaS\n- Use when you want a structured launch checklist before going live\n- Use when designing the architecture of a multi-tenant application\n- Use when doing a technical review of an existing early-stage SaaS\n\n## Step-by-Step Guide\n\n### 1. Validate Before You Build\n\nBefore writing any code, validate the idea:\n\n```\nValidation checklist:\n- [ ] Can you describe the problem in one sentence?\n- [ ] Who is the exact customer? (not \"everyone\")\n- [ ] What do they pay for today to solve this?\n- [ ] Have you talked to 5+ potential customers?\n- [ ] Will they pay $X\u002Fmonth for your solution?\n```\n\n**Rule:** If you can't get 3 people to pre-pay or sign a letter of intent, don't build yet.\n\n### 2. Choose Your Tech Stack\n\nRecommended modern SaaS stack (2026):\n\n| Layer | Choice | Why |\n|-------|--------|-----|\n| Frontend | Next.js 15 + TypeScript | Full-stack, great DX, Vercel deploy |\n| Styling | Tailwind CSS + shadcn\u002Fui | Fast, accessible, customizable |\n| Backend | Next.js API Routes or tRPC | Type-safe, co-located |\n| Database | PostgreSQL via Supabase | Reliable, scalable, free tier |\n| ORM | Prisma or Drizzle | Type-safe queries, migrations |\n| Auth | Clerk or NextAuth.js | Social login, session management |\n| Payments | Stripe | Industry standard, great docs |\n| Email | Resend + React Email | Modern, developer-friendly |\n| Deployment | Vercel (frontend) + Railway (backend) | Zero-config, fast CI\u002FCD |\n| Monitoring | Sentry + PostHog | Error tracking + analytics |\n\n### 3. Project Structure\n\n```\nmy-saas\u002F\n├── app\u002F                    # Next.js App Router\n│   ├── (auth)\u002F             # Auth routes (login, signup)\n│   ├── (dashboard)\u002F        # Protected app routes\n│   ├── (marketing)\u002F        # Public landing pages\n│   └── api\u002F                # API routes\n├── components\u002F\n│   ├── ui\u002F                 # shadcn\u002Fui components\n│   └── [feature]\u002F          # Feature-specific components\n├── lib\u002F\n│   ├── db.ts               # Database client (Prisma\u002FDrizzle)\n│   ├── stripe.ts           # Stripe client\n│   └── email.ts            # Email client (Resend)\n├── prisma\u002F\n│   └── schema.prisma       # Database schema\n├── .env.local              # Environment variables\n└── middleware.ts           # Auth middleware\n```\n\n### 4. Core Database Schema (Multi-tenant SaaS)\n\n```prisma\nmodel User {\n  id            String    @id @default(cuid())\n  email         String    @unique\n  name          String?\n  createdAt     DateTime  @default(now())\n  subscription  Subscription?\n  workspaces    WorkspaceMember[]\n}\n\nmodel Workspace {\n  id        String    @id @default(cuid())\n  name      String\n  slug      String    @unique\n  plan      Plan      @default(FREE)\n  members   WorkspaceMember[]\n  createdAt DateTime  @default(now())\n}\n\nmodel Subscription {\n  id                 String   @id @default(cuid())\n  userId             String   @unique\n  user               User     @relation(fields: [userId], references: [id])\n  stripeCustomerId   String   @unique\n  stripePriceId      String\n  stripeSubId        String   @unique\n  status             String   # active, canceled, past_due\n  currentPeriodEnd   DateTime\n}\n\nenum Plan {\n  FREE\n  PRO\n  ENTERPRISE\n}\n```\n\n### 5. Authentication Setup (Clerk)\n\n```typescript\n\u002F\u002F middleware.ts\nimport { clerkMiddleware, createRouteMatcher } from '@clerk\u002Fnextjs\u002Fserver';\n\nconst isPublicRoute = createRouteMatcher([\n  '\u002F',\n  '\u002Fpricing',\n  '\u002Fblog(.*)',\n  '\u002Fsign-in(.*)',\n  '\u002Fsign-up(.*)',\n  '\u002Fapi\u002Fwebhooks(.*)',\n]);\n\nexport default clerkMiddleware((auth, req) => {\n  if (!isPublicRoute(req)) {\n    auth().protect();\n  }\n});\n\nexport const config = {\n  matcher: ['\u002F((?!.*\\\\..*|_next).*)', '\u002F', '\u002F(api|trpc)(.*)'],\n};\n```\n\n### 6. Stripe Integration (Subscriptions)\n\n```typescript\n\u002F\u002F lib\u002Fstripe.ts\nimport Stripe from 'stripe';\nexport const stripe = new Stripe(process.env.STRIPE_SECRET_KEY!, {\n  apiVersion: '2025-01-27.acacia',\n});\n\n\u002F\u002F Create checkout session\nexport async function createCheckoutSession(userId: string, priceId: string) {\n  return stripe.checkout.sessions.create({\n    mode: 'subscription',\n    payment_method_types: ['card'],\n    line_items: [{ price: priceId, quantity: 1 }],\n    success_url: `${process.env.NEXT_PUBLIC_URL}\u002Fdashboard?success=true`,\n    cancel_url: `${process.env.NEXT_PUBLIC_URL}\u002Fpricing`,\n    metadata: { userId },\n  });\n}\n```\n\n### 7. Pre-Launch Checklist\n\n**Technical:**\n- [ ] Authentication works (signup, login, logout, password reset)\n- [ ] Payments work end-to-end (subscribe, cancel, upgrade)\n- [ ] Error monitoring configured (Sentry)\n- [ ] Environment variables documented\n- [ ] Database backups configured\n- [ ] Rate limiting on API routes\n- [ ] Input validation with Zod on all forms\n- [ ] HTTPS enforced, security headers set\n\n**Product:**\n- [ ] Landing page with clear value proposition\n- [ ] Pricing page with 2-3 tiers\n- [ ] Onboarding flow (first value in \u003C 5 minutes)\n- [ ] Email sequences (welcome, trial ending, payment failed)\n- [ ] Terms of Service and Privacy Policy pages\n- [ ] Support channel (email \u002F chat)\n\n**Marketing:**\n- [ ] Domain purchased and configured\n- [ ] SEO meta tags on all pages\n- [ ] Google Analytics or PostHog installed\n- [ ] Social media accounts created\n- [ ] Product Hunt draft ready\n\n## Best Practices\n\n- ✅ **Do:** Ship a working MVP in 4-6 weeks maximum, then iterate based on feedback\n- ✅ **Do:** Charge from day 1 — free users don't validate product-market fit\n- ✅ **Do:** Build the \"happy path\" first, handle edge cases later\n- ✅ **Do:** Use feature flags for gradual rollouts (e.g., Vercel Edge Config)\n- ✅ **Do:** Monitor user behavior from launch day — not after problems arise\n- ❌ **Don't:** Build every feature before talking to customers\n- ❌ **Don't:** Optimize for scale before reaching $10k MRR\n- ❌ **Don't:** Build a custom auth system — use Clerk, Auth.js, or Supabase Auth\n- ❌ **Don't:** Skip the onboarding flow — it's where most SaaS lose users\n\n## Troubleshooting\n\n**Problem:** Users sign up but don't activate (don't use core feature)\n**Solution:** Reduce steps to first value. Track with PostHog where users drop off in onboarding.\n\n**Problem:** High churn after trial\n**Solution:** Add an exit survey. Most churn is due to lack of perceived value, not price.\n\n**Problem:** Stripe webhook events not received locally\n**Solution:** Use Stripe CLI: `stripe listen --forward-to localhost:3000\u002Fapi\u002Fwebhooks\u002Fstripe`\n\n**Problem:** Database migrations failing in production\n**Solution:** Always run `prisma migrate deploy` (not `prisma migrate dev`) in production environments.\n",{"name":5,"risk":30,"source":38,"date_added":44,"description":7},"2026-03-04","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcopilot\u002Fsaas-mvp-launcher","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill saas-mvp-launcher",{"tool":57,"command":58},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill saas-mvp-launcher",{"tool":60,"command":61},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill saas-mvp-launcher","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fsaas-mvp-launcher\u002FSKILL.md",true,[],[66,90,115,125,137,156],{"skillNo":67,"name":68,"nameZh":6,"description":69,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":70,"categories":71,"keywords":77,"publishedAt":39},"01M71ATQRKG48SH06FQ697T5G9","wechat-search","Search WeChat Official Account articles using OpenClaw's web search and fetch capabilities with compliance-focused design.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fwechat-search-release\u002FSKILL.md",[72],{"categoryNo":73,"categoryName":74,"taxonomyType":75,"taxonomyTypeDesc":76},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[78,79,80,81,82,83,84,85,86,87,88,89],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch","with",{"skillNo":91,"name":92,"nameZh":6,"description":93,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":94,"categories":95,"keywords":96,"publishedAt":39},"01M71ATNAVGZB35PFYM2GC5N00","trend-tap","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend tap', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-tap\u002FSKILL.md",[],[97,98,99,100,101,102,80,103,104,105,106,34,107,108,109,110,111,112,113,114],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","brew","live","data","google","install","read","across","api",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":39},"01M71ATJ9AM5KM15AA8PS302EB","trend-radar","Real-time trending topics aggregator across 7 platforms (X\u002FTwitter, Reddit, Google Trends, Hacker News, Zhihu, Bilibili, Weibo). Trigger: when user says 'trend', 'trends', 'trend pulse', '热点', '热搜', or asks what is trending\u002Fhot. Do NOT use web_search — this skill already fetches live data from all platforms with zero API keys.","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftrend-radar\u002FSKILL.md",[],[122,123,97,107,108,109,110,101,80,112,124,113,114,34,105,104,103,111,102,100],"trend radar","radar","pulse",{"skillNo":126,"name":127,"nameZh":6,"description":128,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":129,"categories":130,"keywords":131,"publishedAt":39},"01M71ATGF095N3EJM9G8SD0BB5","tech-news-daily","每日科技新闻汇——从全球多个 RSS 源抓取最新科技新闻，翻译（英→中）、去重、排版成每日简报。当用户询问科技新闻、科技新鲜事、每日科技、技术动态、Daily Tech News 或类似表达时触发此技能。","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Ftech-news-daily\u002FSKILL.md",[],[132,29,133,134,135,136],"news","tech news daily","daily","rss","翻译",{"skillNo":138,"name":139,"nameZh":6,"description":140,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":141,"categories":142,"keywords":148,"publishedAt":39},"01M71ATFAEAMQ17M70NQNY7SR8","summarize","Summarize URLs or files with the summarize CLI (web, PDFs, images, audio, YouTube).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsummarize\u002FSKILL.md",[143],{"categoryNo":144,"categoryName":145,"taxonomyType":146,"taxonomyTypeDesc":147},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[139,86,149,150,151,89,107,152,153,154,99,155,111],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":162,"publishedAt":39},"01M71ATDNS3R0M4H936PACQAWZ","sonoscli","Control Sonos speakers (discover\u002Fstatus\u002Fplay\u002Fvolume\u002Fgroup).","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fopenclaw\u002Fsonoscli\u002FSKILL.md",[],[158,163,164,165,111,166,153,167,168,169,170,171],"status","play","go","latest","github","discover","control","cmd","volume"]