[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6XF9A647DZ051M7Z8PPS31R":3,"skill-same:01M6XF9A647DZ051M7Z8PPS31R":66},{"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":29,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":46,"commitSha":47,"skillDirectory":48,"forksCount":14,"repositoryHtmlUrl":49,"repositoryHomepageUrl":6,"ownerHtmlUrl":50,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":51,"install":52,"resources":65},"01M6XF9A647DZ051M7Z8PPS31R","cc-skill-project-guidelines-example",null,"Project Guidelines Skill (Example)","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\u002Fcc-skill-project-guidelines-example\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[30,31,32,33,34,35,36,37,38,39],"guidelines","cc skill project guidelines example","project guidelines example","example","cc","project","Project Guidelines","community","unknown","2026","2026-11-10 10:12:30",false,"---\nname: cc-skill-project-guidelines-example\ndescription: \"Project Guidelines Skill (Example)\"\nrisk: unknown\nsource: community\ndate_added: \"2026-02-27\"\n---\n\n# Project Guidelines Skill (Example)\n\nThis is an example of a project-specific skill. Use this as a template for your own projects.\n\nBased on a real production application: [Zenith](https:\u002F\u002Fzenith.chat) - AI-powered customer discovery platform.\n\n---\n\n## When to Use\nReference this skill when working on the specific project it's designed for. Project skills contain:\n- Architecture overview\n- File structure\n- Code patterns\n- Testing requirements\n- Deployment workflow\n\n---\n\n## Architecture Overview\n\n**Tech Stack:**\n- **Frontend**: Next.js 15 (App Router), TypeScript, React\n- **Backend**: FastAPI (Python), Pydantic models\n- **Database**: Supabase (PostgreSQL)\n- **AI**: Claude API with tool calling and structured output\n- **Deployment**: Google Cloud Run\n- **Testing**: Playwright (E2E), pytest (backend), React Testing Library\n\n**Services:**\n```\n┌─────────────────────────────────────────────────────────────┐\n│                         Frontend                            │\n│  Next.js 15 + TypeScript + TailwindCSS                     │\n│  Deployed: Vercel \u002F Cloud Run                              │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                         Backend                             │\n│  FastAPI + Python 3.11 + Pydantic                          │\n│  Deployed: Cloud Run                                       │\n└─────────────────────────────────────────────────────────────┘\n                              │\n              ┌───────────────┼───────────────┐\n              ▼               ▼               ▼\n        ┌──────────┐   ┌──────────┐   ┌──────────┐\n        │ Supabase │   │  Claude  │   │  Redis   │\n        │ Database │   │   API    │   │  Cache   │\n        └──────────┘   └──────────┘   └──────────┘\n```\n\n---\n\n## File Structure\n\n```\nproject\u002F\n├── frontend\u002F\n│   └── src\u002F\n│       ├── app\u002F              # Next.js app router pages\n│       │   ├── api\u002F          # API routes\n│       │   ├── (auth)\u002F       # Auth-protected routes\n│       │   └── workspace\u002F    # Main app workspace\n│       ├── components\u002F       # React components\n│       │   ├── ui\u002F           # Base UI components\n│       │   ├── forms\u002F        # Form components\n│       │   └── layouts\u002F      # Layout components\n│       ├── hooks\u002F            # Custom React hooks\n│       ├── lib\u002F              # Utilities\n│       ├── types\u002F            # TypeScript definitions\n│       └── config\u002F           # Configuration\n│\n├── backend\u002F\n│   ├── routers\u002F              # FastAPI route handlers\n│   ├── models.py             # Pydantic models\n│   ├── main.py               # FastAPI app entry\n│   ├── auth_system.py        # Authentication\n│   ├── database.py           # Database operations\n│   ├── services\u002F             # Business logic\n│   └── tests\u002F                # pytest tests\n│\n├── deploy\u002F                   # Deployment configs\n├── docs\u002F                     # Documentation\n└── scripts\u002F                  # Utility scripts\n```\n\n---\n\n## Code Patterns\n\n### API Response Format (FastAPI)\n\n```python\nfrom pydantic import BaseModel\nfrom typing import Generic, TypeVar, Optional\n\nT = TypeVar('T')\n\nclass ApiResponse(BaseModel, Generic[T]):\n    success: bool\n    data: Optional[T] = None\n    error: Optional[str] = None\n\n    @classmethod\n    def ok(cls, data: T) -> \"ApiResponse[T]\":\n        return cls(success=True, data=data)\n\n    @classmethod\n    def fail(cls, error: str) -> \"ApiResponse[T]\":\n        return cls(success=False, error=error)\n```\n\n### Frontend API Calls (TypeScript)\n\n```typescript\ninterface ApiResponse\u003CT> {\n  success: boolean\n  data?: T\n  error?: string\n}\n\nasync function fetchApi\u003CT>(\n  endpoint: string,\n  options?: RequestInit\n): Promise\u003CApiResponse\u003CT>> {\n  try {\n    const response = await fetch(`\u002Fapi${endpoint}`, {\n      ...options,\n      headers: {\n        'Content-Type': 'application\u002Fjson',\n        ...options?.headers,\n      },\n    })\n\n    if (!response.ok) {\n      return { success: false, error: `HTTP ${response.status}` }\n    }\n\n    return await response.json()\n  } catch (error) {\n    return { success: false, error: String(error) }\n  }\n}\n```\n\n### Claude AI Integration (Structured Output)\n\n```python\nfrom anthropic import Anthropic\nfrom pydantic import BaseModel\n\nclass AnalysisResult(BaseModel):\n    summary: str\n    key_points: list[str]\n    confidence: float\n\nasync def analyze_with_claude(content: str) -> AnalysisResult:\n    client = Anthropic()\n\n    response = client.messages.create(\n        model=\"claude-sonnet-4-5-20250514\",\n        max_tokens=1024,\n        messages=[{\"role\": \"user\", \"content\": content}],\n        tools=[{\n            \"name\": \"provide_analysis\",\n            \"description\": \"Provide structured analysis\",\n            \"input_schema\": AnalysisResult.model_json_schema()\n        }],\n        tool_choice={\"type\": \"tool\", \"name\": \"provide_analysis\"}\n    )\n\n    # Extract tool use result\n    tool_use = next(\n        block for block in response.content\n        if block.type == \"tool_use\"\n    )\n\n    return AnalysisResult(**tool_use.input)\n```\n\n### Custom Hooks (React)\n\n```typescript\nimport { useState, useCallback } from 'react'\n\ninterface UseApiState\u003CT> {\n  data: T | null\n  loading: boolean\n  error: string | null\n}\n\nexport function useApi\u003CT>(\n  fetchFn: () => Promise\u003CApiResponse\u003CT>>\n) {\n  const [state, setState] = useState\u003CUseApiState\u003CT>>({\n    data: null,\n    loading: false,\n    error: null,\n  })\n\n  const execute = useCallback(async () => {\n    setState(prev => ({ ...prev, loading: true, error: null }))\n\n    const result = await fetchFn()\n\n    if (result.success) {\n      setState({ data: result.data!, loading: false, error: null })\n    } else {\n      setState({ data: null, loading: false, error: result.error! })\n    }\n  }, [fetchFn])\n\n  return { ...state, execute }\n}\n```\n\n---\n\n## Testing Requirements\n\n### Backend (pytest)\n\n```bash\n# Run all tests\npoetry run pytest tests\u002F\n\n# Run with coverage\npoetry run pytest tests\u002F --cov=. --cov-report=html\n\n# Run specific test file\npoetry run pytest tests\u002Ftest_auth.py -v\n```\n\n**Test structure:**\n```python\nimport pytest\nfrom httpx import AsyncClient\nfrom main import app\n\n@pytest.fixture\nasync def client():\n    async with AsyncClient(app=app, base_url=\"http:\u002F\u002Ftest\") as ac:\n        yield ac\n\n@pytest.mark.asyncio\nasync def test_health_check(client: AsyncClient):\n    response = await client.get(\"\u002Fhealth\")\n    assert response.status_code == 200\n    assert response.json()[\"status\"] == \"healthy\"\n```\n\n### Frontend (React Testing Library)\n\n```bash\n# Run tests\nnpm run test\n\n# Run with coverage\nnpm run test -- --coverage\n\n# Run E2E tests\nnpm run test:e2e\n```\n\n**Test structure:**\n```typescript\nimport { render, screen, fireEvent } from '@testing-library\u002Freact'\nimport { WorkspacePanel } from '.\u002FWorkspacePanel'\n\ndescribe('WorkspacePanel', () => {\n  it('renders workspace correctly', () => {\n    render(\u003CWorkspacePanel \u002F>)\n    expect(screen.getByRole('main')).toBeInTheDocument()\n  })\n\n  it('handles session creation', async () => {\n    render(\u003CWorkspacePanel \u002F>)\n    fireEvent.click(screen.getByText('New Session'))\n    expect(await screen.findByText('Session created')).toBeInTheDocument()\n  })\n})\n```\n\n---\n\n## Deployment Workflow\n\n### Pre-Deployment Checklist\n\n- [ ] All tests passing locally\n- [ ] `npm run build` succeeds (frontend)\n- [ ] `poetry run pytest` passes (backend)\n- [ ] No hardcoded secrets\n- [ ] Environment variables documented\n- [ ] Database migrations ready\n\n### Deployment Commands\n\n```bash\n# Build and deploy frontend\ncd frontend && npm run build\ngcloud run deploy frontend --source .\n\n# Build and deploy backend\ncd backend\ngcloud run deploy backend --source .\n```\n\n### Environment Variables\n\n```bash\n# Frontend (.env.local)\nNEXT_PUBLIC_API_URL=https:\u002F\u002Fapi.example.com\nNEXT_PUBLIC_SUPABASE_URL=https:\u002F\u002Fxxx.supabase.co\nNEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...\n\n# Backend (.env)\nDATABASE_URL=postgresql:\u002F\u002F...\nANTHROPIC_API_KEY=sk-ant-...\nSUPABASE_URL=https:\u002F\u002Fxxx.supabase.co\nSUPABASE_KEY=eyJ...\n```\n\n---\n\n## Critical Rules\n\n1. **No emojis** in code, comments, or documentation\n2. **Immutability** - never mutate objects or arrays\n3. **TDD** - write tests before implementation\n4. **80% coverage** minimum\n5. **Many small files** - 200-400 lines typical, 800 max\n6. **No console.log** in production code\n7. **Proper error handling** with try\u002Fcatch\n8. **Input validation** with Pydantic\u002FZod\n\n---\n\n## Related Skills\n\n- `coding-standards.md` - General coding best practices\n- `backend-patterns.md` - API and database patterns\n- `frontend-patterns.md` - React and Next.js patterns\n- `tdd-workflow\u002F` - Test-driven development methodology\n","# Project Guidelines Skill (Example)\n\nThis is an example of a project-specific skill. Use this as a template for your own projects.\n\nBased on a real production application: [Zenith](https:\u002F\u002Fzenith.chat) - AI-powered customer discovery platform.\n\n---\n\n## When to Use\nReference this skill when working on the specific project it's designed for. Project skills contain:\n- Architecture overview\n- File structure\n- Code patterns\n- Testing requirements\n- Deployment workflow\n\n---\n\n## Architecture Overview\n\n**Tech Stack:**\n- **Frontend**: Next.js 15 (App Router), TypeScript, React\n- **Backend**: FastAPI (Python), Pydantic models\n- **Database**: Supabase (PostgreSQL)\n- **AI**: Claude API with tool calling and structured output\n- **Deployment**: Google Cloud Run\n- **Testing**: Playwright (E2E), pytest (backend), React Testing Library\n\n**Services:**\n```\n┌─────────────────────────────────────────────────────────────┐\n│                         Frontend                            │\n│  Next.js 15 + TypeScript + TailwindCSS                     │\n│  Deployed: Vercel \u002F Cloud Run                              │\n└─────────────────────────────────────────────────────────────┘\n                              │\n                              ▼\n┌─────────────────────────────────────────────────────────────┐\n│                         Backend                             │\n│  FastAPI + Python 3.11 + Pydantic                          │\n│  Deployed: Cloud Run                                       │\n└─────────────────────────────────────────────────────────────┘\n                              │\n              ┌───────────────┼───────────────┐\n              ▼               ▼               ▼\n        ┌──────────┐   ┌──────────┐   ┌──────────┐\n        │ Supabase │   │  Claude  │   │  Redis   │\n        │ Database │   │   API    │   │  Cache   │\n        └──────────┘   └──────────┘   └──────────┘\n```\n\n---\n\n## File Structure\n\n```\nproject\u002F\n├── frontend\u002F\n│   └── src\u002F\n│       ├── app\u002F              # Next.js app router pages\n│       │   ├── api\u002F          # API routes\n│       │   ├── (auth)\u002F       # Auth-protected routes\n│       │   └── workspace\u002F    # Main app workspace\n│       ├── components\u002F       # React components\n│       │   ├── ui\u002F           # Base UI components\n│       │   ├── forms\u002F        # Form components\n│       │   └── layouts\u002F      # Layout components\n│       ├── hooks\u002F            # Custom React hooks\n│       ├── lib\u002F              # Utilities\n│       ├── types\u002F            # TypeScript definitions\n│       └── config\u002F           # Configuration\n│\n├── backend\u002F\n│   ├── routers\u002F              # FastAPI route handlers\n│   ├── models.py             # Pydantic models\n│   ├── main.py               # FastAPI app entry\n│   ├── auth_system.py        # Authentication\n│   ├── database.py           # Database operations\n│   ├── services\u002F             # Business logic\n│   └── tests\u002F                # pytest tests\n│\n├── deploy\u002F                   # Deployment configs\n├── docs\u002F                     # Documentation\n└── scripts\u002F                  # Utility scripts\n```\n\n---\n\n## Code Patterns\n\n### API Response Format (FastAPI)\n\n```python\nfrom pydantic import BaseModel\nfrom typing import Generic, TypeVar, Optional\n\nT = TypeVar('T')\n\nclass ApiResponse(BaseModel, Generic[T]):\n    success: bool\n    data: Optional[T] = None\n    error: Optional[str] = None\n\n    @classmethod\n    def ok(cls, data: T) -> \"ApiResponse[T]\":\n        return cls(success=True, data=data)\n\n    @classmethod\n    def fail(cls, error: str) -> \"ApiResponse[T]\":\n        return cls(success=False, error=error)\n```\n\n### Frontend API Calls (TypeScript)\n\n```typescript\ninterface ApiResponse\u003CT> {\n  success: boolean\n  data?: T\n  error?: string\n}\n\nasync function fetchApi\u003CT>(\n  endpoint: string,\n  options?: RequestInit\n): Promise\u003CApiResponse\u003CT>> {\n  try {\n    const response = await fetch(`\u002Fapi${endpoint}`, {\n      ...options,\n      headers: {\n        'Content-Type': 'application\u002Fjson',\n        ...options?.headers,\n      },\n    })\n\n    if (!response.ok) {\n      return { success: false, error: `HTTP ${response.status}` }\n    }\n\n    return await response.json()\n  } catch (error) {\n    return { success: false, error: String(error) }\n  }\n}\n```\n\n### Claude AI Integration (Structured Output)\n\n```python\nfrom anthropic import Anthropic\nfrom pydantic import BaseModel\n\nclass AnalysisResult(BaseModel):\n    summary: str\n    key_points: list[str]\n    confidence: float\n\nasync def analyze_with_claude(content: str) -> AnalysisResult:\n    client = Anthropic()\n\n    response = client.messages.create(\n        model=\"claude-sonnet-4-5-20250514\",\n        max_tokens=1024,\n        messages=[{\"role\": \"user\", \"content\": content}],\n        tools=[{\n            \"name\": \"provide_analysis\",\n            \"description\": \"Provide structured analysis\",\n            \"input_schema\": AnalysisResult.model_json_schema()\n        }],\n        tool_choice={\"type\": \"tool\", \"name\": \"provide_analysis\"}\n    )\n\n    # Extract tool use result\n    tool_use = next(\n        block for block in response.content\n        if block.type == \"tool_use\"\n    )\n\n    return AnalysisResult(**tool_use.input)\n```\n\n### Custom Hooks (React)\n\n```typescript\nimport { useState, useCallback } from 'react'\n\ninterface UseApiState\u003CT> {\n  data: T | null\n  loading: boolean\n  error: string | null\n}\n\nexport function useApi\u003CT>(\n  fetchFn: () => Promise\u003CApiResponse\u003CT>>\n) {\n  const [state, setState] = useState\u003CUseApiState\u003CT>>({\n    data: null,\n    loading: false,\n    error: null,\n  })\n\n  const execute = useCallback(async () => {\n    setState(prev => ({ ...prev, loading: true, error: null }))\n\n    const result = await fetchFn()\n\n    if (result.success) {\n      setState({ data: result.data!, loading: false, error: null })\n    } else {\n      setState({ data: null, loading: false, error: result.error! })\n    }\n  }, [fetchFn])\n\n  return { ...state, execute }\n}\n```\n\n---\n\n## Testing Requirements\n\n### Backend (pytest)\n\n```bash\n# Run all tests\npoetry run pytest tests\u002F\n\n# Run with coverage\npoetry run pytest tests\u002F --cov=. --cov-report=html\n\n# Run specific test file\npoetry run pytest tests\u002Ftest_auth.py -v\n```\n\n**Test structure:**\n```python\nimport pytest\nfrom httpx import AsyncClient\nfrom main import app\n\n@pytest.fixture\nasync def client():\n    async with AsyncClient(app=app, base_url=\"http:\u002F\u002Ftest\") as ac:\n        yield ac\n\n@pytest.mark.asyncio\nasync def test_health_check(client: AsyncClient):\n    response = await client.get(\"\u002Fhealth\")\n    assert response.status_code == 200\n    assert response.json()[\"status\"] == \"healthy\"\n```\n\n### Frontend (React Testing Library)\n\n```bash\n# Run tests\nnpm run test\n\n# Run with coverage\nnpm run test -- --coverage\n\n# Run E2E tests\nnpm run test:e2e\n```\n\n**Test structure:**\n```typescript\nimport { render, screen, fireEvent } from '@testing-library\u002Freact'\nimport { WorkspacePanel } from '.\u002FWorkspacePanel'\n\ndescribe('WorkspacePanel', () => {\n  it('renders workspace correctly', () => {\n    render(\u003CWorkspacePanel \u002F>)\n    expect(screen.getByRole('main')).toBeInTheDocument()\n  })\n\n  it('handles session creation', async () => {\n    render(\u003CWorkspacePanel \u002F>)\n    fireEvent.click(screen.getByText('New Session'))\n    expect(await screen.findByText('Session created')).toBeInTheDocument()\n  })\n})\n```\n\n---\n\n## Deployment Workflow\n\n### Pre-Deployment Checklist\n\n- [ ] All tests passing locally\n- [ ] `npm run build` succeeds (frontend)\n- [ ] `poetry run pytest` passes (backend)\n- [ ] No hardcoded secrets\n- [ ] Environment variables documented\n- [ ] Database migrations ready\n\n### Deployment Commands\n\n```bash\n# Build and deploy frontend\ncd frontend && npm run build\ngcloud run deploy frontend --source .\n\n# Build and deploy backend\ncd backend\ngcloud run deploy backend --source .\n```\n\n### Environment Variables\n\n```bash\n# Frontend (.env.local)\nNEXT_PUBLIC_API_URL=https:\u002F\u002Fapi.example.com\nNEXT_PUBLIC_SUPABASE_URL=https:\u002F\u002Fxxx.supabase.co\nNEXT_PUBLIC_SUPABASE_ANON_KEY=eyJ...\n\n# Backend (.env)\nDATABASE_URL=postgresql:\u002F\u002F...\nANTHROPIC_API_KEY=sk-ant-...\nSUPABASE_URL=https:\u002F\u002Fxxx.supabase.co\nSUPABASE_KEY=eyJ...\n```\n\n---\n\n## Critical Rules\n\n1. **No emojis** in code, comments, or documentation\n2. **Immutability** - never mutate objects or arrays\n3. **TDD** - write tests before implementation\n4. **80% coverage** minimum\n5. **Many small files** - 200-400 lines typical, 800 max\n6. **No console.log** in production code\n7. **Proper error handling** with try\u002Fcatch\n8. **Input validation** with Pydantic\u002FZod\n\n---\n\n## Related Skills\n\n- `coding-standards.md` - General coding best practices\n- `backend-patterns.md` - API and database patterns\n- `frontend-patterns.md` - React and Next.js patterns\n- `tdd-workflow\u002F` - Test-driven development methodology\n",{"name":5,"risk":38,"source":37,"date_added":45,"description":7},"2026-02-27","main","7a38d8e7073e61c16eda85681cb32fb68a8657a5","skills-store\u002Fcopilot\u002Fcc-skill-project-guidelines-example","https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router","https:\u002F\u002Fgithub.com\u002Fsapsapshen","2026-04-14 21:12:12",{"source":8,"skillName":5,"commands":53,"prompt":63,"zipAvailable":64},[54,57,60],{"tool":55,"command":56},"npx","npx skills add sapsapshen\u002Fai-memory-router --skill cc-skill-project-guidelines-example",{"tool":58,"command":59},"bunx","bunx skills add sapsapshen\u002Fai-memory-router --skill cc-skill-project-guidelines-example",{"tool":61,"command":62},"pnpm","pnpm dlx skills add sapsapshen\u002Fai-memory-router --skill cc-skill-project-guidelines-example","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fsapsapshen\u002Fai-memory-router\u002Fblob\u002Fmain\u002Fskills-store\u002Fcopilot\u002Fcc-skill-project-guidelines-example\u002FSKILL.md",true,[],[67,91,117,127,140,157],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":78,"publishedAt":40},"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",[73],{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000037","律师与法务","PROFESSION","适用职业",[79,80,81,82,83,84,85,86,87,88,89,90],"wechat search","wechat","search","capabilities","openclaw","design","web search","compliance","web","official","fetch","with",{"skillNo":92,"name":93,"nameZh":6,"description":94,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":95,"categories":96,"keywords":97,"publishedAt":40},"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",[],[98,99,100,101,102,103,81,104,105,106,107,108,109,110,111,112,113,114,115,116],"trend","trend tap","tap","api keys","Bash","time","trending","hacker","aggregator","do","when","brew","live","data","google","install","read","across","api",{"skillNo":118,"name":119,"nameZh":6,"description":120,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":40},"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",[],[124,125,98,109,110,111,112,102,81,114,126,115,116,108,106,105,104,113,103,101],"trend radar","radar","pulse",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":40},"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",[],[134,135,136,137,138,139],"news","tech","tech news daily","daily","rss","翻译",{"skillNo":141,"name":142,"nameZh":6,"description":143,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":149,"publishedAt":40},"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",[146],{"categoryNo":147,"categoryName":148,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000021","资料检索与研究",[142,87,150,151,152,90,109,153,154,155,100,156,113],"Audio","cli","youtube","images","https","files","pdfs",{"skillNo":158,"name":159,"nameZh":6,"description":160,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":161,"categories":162,"keywords":163,"publishedAt":40},"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",[],[159,164,165,166,113,167,154,168,169,170,171,172],"status","play","go","latest","github","discover","control","cmd","volume"]