[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6QY12STCS3R35EETEQTQ7D7":3,"skill-same:01M6QY12STCS3R35EETEQTQ7D7":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":38,"linkOnly":39,"markdownContent":40,"markdownBody":41,"frontMatter":42,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":47,"repositoryHtmlUrl":48,"repositoryHomepageUrl":6,"ownerHtmlUrl":49,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":50,"install":51,"resources":64},"01M6QY12STCS3R35EETEQTQ7D7","langgraph",null,"Expert in LangGraph - the production-grade framework for building stateful, multi-actor AI applications. Covers graph construction, state management, cycles and branches, persistence with checkpointers, human-in-the-loop patterns, and the ReAct agent pattern. Used in production at LinkedIn, Uber, and 400+ companies. This is LangChain's recommended approach for building agents. Use when: langgraph, langchain agent, stateful agent, agent graph, react agent.","Mishit18\u002Fclaude-code-templates","Mishit18","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F244127857?v=4","01M6QXBYKWM76HSKYDNWSKKE41","Mishit Sharma","01M6QXBYRJ0CAVM51S1RTEKTZZ",1,"MIT","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Flanggraph\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37],"expert","when","spawner","stateful","for","with","building agents","multi","react agent","branches","react","use","linkedin","loop","human-in-the-loop","applications","apache","state","state management","2026-11-10 10:12:30",false,"---\nname: langgraph\ndescription: \"Expert in LangGraph - the production-grade framework for building stateful, multi-actor AI applications. Covers graph construction, state management, cycles and branches, persistence with checkpointers, human-in-the-loop patterns, and the ReAct agent pattern. Used in production at LinkedIn, Uber, and 400+ companies. This is LangChain's recommended approach for building agents. Use when: langgraph, langchain agent, stateful agent, agent graph, react agent.\"\nsource: vibeship-spawner-skills (Apache 2.0)\n---\n\n# LangGraph\n\n**Role**: LangGraph Agent Architect\n\nYou are an expert in building production-grade AI agents with LangGraph. You\nunderstand that agents need explicit structure - graphs make the flow visible\nand debuggable. You design state carefully, use reducers appropriately, and\nalways consider persistence for production. You know when cycles are needed\nand how to prevent infinite loops.\n\n## Capabilities\n\n- Graph construction (StateGraph)\n- State management and reducers\n- Node and edge definitions\n- Conditional routing\n- Checkpointers and persistence\n- Human-in-the-loop patterns\n- Tool integration\n- Streaming and async execution\n\n## Requirements\n\n- Python 3.9+\n- langgraph package\n- LLM API access (OpenAI, Anthropic, etc.)\n- Understanding of graph concepts\n\n## Patterns\n\n### Basic Agent Graph\n\nSimple ReAct-style agent with tools\n\n**When to use**: Single agent with tool calling\n\n```python\nfrom typing import Annotated, TypedDict\nfrom langgraph.graph import StateGraph, START, END\nfrom langgraph.graph.message import add_messages\nfrom langgraph.prebuilt import ToolNode\nfrom langchain_openai import ChatOpenAI\nfrom langchain_core.tools import tool\n\n# 1. Define State\nclass AgentState(TypedDict):\n    messages: Annotated[list, add_messages]\n    # add_messages reducer appends, doesn't overwrite\n\n# 2. Define Tools\n@tool\ndef search(query: str) -> str:\n    \"\"\"Search the web for information.\"\"\"\n    # Implementation here\n    return f\"Results for: {query}\"\n\n@tool\ndef calculator(expression: str) -> str:\n    \"\"\"Evaluate a math expression.\"\"\"\n    return str(eval(expression))\n\ntools = [search, calculator]\n\n# 3. Create LLM with tools\nllm = ChatOpenAI(model=\"gpt-4o\").bind_tools(tools)\n\n# 4. Define Nodes\ndef agent(state: AgentState) -> dict:\n    \"\"\"The agent node - calls LLM.\"\"\"\n    response = llm.invoke(state[\"messages\"])\n    return {\"messages\": [response]}\n\n# Tool node handles tool execution\ntool_node = ToolNode(tools)\n\n# 5. Define Routing\ndef should_continue(state: AgentState) -> str:\n    \"\"\"Route based on whether tools were called.\"\"\"\n    last_message = state[\"messages\"][-1]\n    if last_message.tool_calls:\n        return \"tools\"\n    return END\n\n# 6. Build Graph\ngraph = StateGraph(AgentState)\n\n# Add nodes\ngraph.add_node(\"agent\", agent)\ngraph.add_node(\"tools\", tool_node)\n\n# Add edges\ngraph.add_edge(START, \"agent\")\ngraph.add_conditional_edges(\"agent\", should_continue, [\"tools\", END])\ngraph.add_edge(\"tools\", \"agent\")  # Loop back\n\n# Compile\napp = graph.compile()\n\n# 7. Run\nresult = app.invoke({\n    \"messages\": [(\"user\", \"What is 25 * 4?\")]\n})\n```\n\n### State with Reducers\n\nComplex state management with custom reducers\n\n**When to use**: Multiple agents updating shared state\n\n```python\nfrom typing import Annotated, TypedDict\nfrom operator import add\nfrom langgraph.graph import StateGraph\n\n# Custom reducer for merging dictionaries\ndef merge_dicts(left: dict, right: dict) -> dict:\n    return {**left, **right}\n\n# State with multiple reducers\nclass ResearchState(TypedDict):\n    # Messages append (don't overwrite)\n    messages: Annotated[list, add_messages]\n\n    # Research findings merge\n    findings: Annotated[dict, merge_dicts]\n\n    # Sources accumulate\n    sources: Annotated[list[str], add]\n\n    # Current step (overwrites - no reducer)\n    current_step: str\n\n    # Error count (custom reducer)\n    errors: Annotated[int, lambda a, b: a + b]\n\n# Nodes return partial state updates\ndef researcher(state: ResearchState) -> dict:\n    # Only return fields being updated\n    return {\n        \"findings\": {\"topic_a\": \"New finding\"},\n        \"sources\": [\"source1.com\"],\n        \"current_step\": \"researching\"\n    }\n\ndef writer(state: ResearchState) -> dict:\n    # Access accumulated state\n    all_findings = state[\"findings\"]\n    all_sources = state[\"sources\"]\n\n    return {\n        \"messages\": [(\"assistant\", f\"Report based on {len(all_sources)} sources\")],\n        \"current_step\": \"writing\"\n    }\n\n# Build graph\ngraph = StateGraph(ResearchState)\ngraph.add_node(\"researcher\", researcher)\ngraph.add_node(\"writer\", writer)\n# ... add edges\n```\n\n### Conditional Branching\n\nRoute to different paths based on state\n\n**When to use**: Multiple possible workflows\n\n```python\nfrom langgraph.graph import StateGraph, START, END\n\nclass RouterState(TypedDict):\n    query: str\n    query_type: str\n    result: str\n\ndef classifier(state: RouterState) -> dict:\n    \"\"\"Classify the query type.\"\"\"\n    query = state[\"query\"].lower()\n    if \"code\" in query or \"program\" in query:\n        return {\"query_type\": \"coding\"}\n    elif \"search\" in query or \"find\" in query:\n        return {\"query_type\": \"search\"}\n    else:\n        return {\"query_type\": \"chat\"}\n\ndef coding_agent(state: RouterState) -> dict:\n    return {\"result\": \"Here's your code...\"}\n\ndef search_agent(state: RouterState) -> dict:\n    return {\"result\": \"Search results...\"}\n\ndef chat_agent(state: RouterState) -> dict:\n    return {\"result\": \"Let me help...\"}\n\n# Routing function\ndef route_query(state: RouterState) -> str:\n    \"\"\"Route to appropriate agent.\"\"\"\n    query_type = state[\"query_type\"]\n    return query_type  # Returns node name\n\n# Build graph\ngraph = StateGraph(RouterState)\n\ngraph.add_node(\"classifier\", classifier)\ngraph.add_node(\"coding\", coding_agent)\ngraph.add_node(\"search\", search_agent)\ngraph.add_node(\"chat\", chat_agent)\n\ngraph.add_edge(START, \"classifier\")\n\n# Conditional edges from classifier\ngraph.add_conditional_edges(\n    \"classifier\",\n    route_query,\n    {\n        \"coding\": \"coding\",\n        \"search\": \"search\",\n        \"chat\": \"chat\"\n    }\n)\n\n# All agents lead to END\ngraph.add_edge(\"coding\", END)\ngraph.add_edge(\"search\", END)\ngraph.add_edge(\"chat\", END)\n\napp = graph.compile()\n```\n\n## Anti-Patterns\n\n### ❌ Infinite Loop Without Exit\n\n**Why bad**: Agent loops forever.\nBurns tokens and costs.\nEventually errors out.\n\n**Instead**: Always have exit conditions:\n- Max iterations counter in state\n- Clear END conditions in routing\n- Timeout at application level\n\ndef should_continue(state):\n    if state[\"iterations\"] > 10:\n        return END\n    if state[\"task_complete\"]:\n        return END\n    return \"agent\"\n\n### ❌ Stateless Nodes\n\n**Why bad**: Loses LangGraph's benefits.\nState not persisted.\nCan't resume conversations.\n\n**Instead**: Always use state for data flow.\nReturn state updates from nodes.\nUse reducers for accumulation.\nLet LangGraph manage state.\n\n### ❌ Giant Monolithic State\n\n**Why bad**: Hard to reason about.\nUnnecessary data in context.\nSerialization overhead.\n\n**Instead**: Use input\u002Foutput schemas for clean interfaces.\nPrivate state for internal data.\nClear separation of concerns.\n\n## Limitations\n\n- Python-only (TypeScript in early stages)\n- Learning curve for graph concepts\n- State management complexity\n- Debugging can be challenging\n\n## Related Skills\n\nWorks well with: `crewai`, `autonomous-agents`, `langfuse`, `structured-output`\n\n","# LangGraph\n\n**Role**: LangGraph Agent Architect\n\nYou are an expert in building production-grade AI agents with LangGraph. You\nunderstand that agents need explicit structure - graphs make the flow visible\nand debuggable. You design state carefully, use reducers appropriately, and\nalways consider persistence for production. You know when cycles are needed\nand how to prevent infinite loops.\n\n## Capabilities\n\n- Graph construction (StateGraph)\n- State management and reducers\n- Node and edge definitions\n- Conditional routing\n- Checkpointers and persistence\n- Human-in-the-loop patterns\n- Tool integration\n- Streaming and async execution\n\n## Requirements\n\n- Python 3.9+\n- langgraph package\n- LLM API access (OpenAI, Anthropic, etc.)\n- Understanding of graph concepts\n\n## Patterns\n\n### Basic Agent Graph\n\nSimple ReAct-style agent with tools\n\n**When to use**: Single agent with tool calling\n\n```python\nfrom typing import Annotated, TypedDict\nfrom langgraph.graph import StateGraph, START, END\nfrom langgraph.graph.message import add_messages\nfrom langgraph.prebuilt import ToolNode\nfrom langchain_openai import ChatOpenAI\nfrom langchain_core.tools import tool\n\n# 1. Define State\nclass AgentState(TypedDict):\n    messages: Annotated[list, add_messages]\n    # add_messages reducer appends, doesn't overwrite\n\n# 2. Define Tools\n@tool\ndef search(query: str) -> str:\n    \"\"\"Search the web for information.\"\"\"\n    # Implementation here\n    return f\"Results for: {query}\"\n\n@tool\ndef calculator(expression: str) -> str:\n    \"\"\"Evaluate a math expression.\"\"\"\n    return str(eval(expression))\n\ntools = [search, calculator]\n\n# 3. Create LLM with tools\nllm = ChatOpenAI(model=\"gpt-4o\").bind_tools(tools)\n\n# 4. Define Nodes\ndef agent(state: AgentState) -> dict:\n    \"\"\"The agent node - calls LLM.\"\"\"\n    response = llm.invoke(state[\"messages\"])\n    return {\"messages\": [response]}\n\n# Tool node handles tool execution\ntool_node = ToolNode(tools)\n\n# 5. Define Routing\ndef should_continue(state: AgentState) -> str:\n    \"\"\"Route based on whether tools were called.\"\"\"\n    last_message = state[\"messages\"][-1]\n    if last_message.tool_calls:\n        return \"tools\"\n    return END\n\n# 6. Build Graph\ngraph = StateGraph(AgentState)\n\n# Add nodes\ngraph.add_node(\"agent\", agent)\ngraph.add_node(\"tools\", tool_node)\n\n# Add edges\ngraph.add_edge(START, \"agent\")\ngraph.add_conditional_edges(\"agent\", should_continue, [\"tools\", END])\ngraph.add_edge(\"tools\", \"agent\")  # Loop back\n\n# Compile\napp = graph.compile()\n\n# 7. Run\nresult = app.invoke({\n    \"messages\": [(\"user\", \"What is 25 * 4?\")]\n})\n```\n\n### State with Reducers\n\nComplex state management with custom reducers\n\n**When to use**: Multiple agents updating shared state\n\n```python\nfrom typing import Annotated, TypedDict\nfrom operator import add\nfrom langgraph.graph import StateGraph\n\n# Custom reducer for merging dictionaries\ndef merge_dicts(left: dict, right: dict) -> dict:\n    return {**left, **right}\n\n# State with multiple reducers\nclass ResearchState(TypedDict):\n    # Messages append (don't overwrite)\n    messages: Annotated[list, add_messages]\n\n    # Research findings merge\n    findings: Annotated[dict, merge_dicts]\n\n    # Sources accumulate\n    sources: Annotated[list[str], add]\n\n    # Current step (overwrites - no reducer)\n    current_step: str\n\n    # Error count (custom reducer)\n    errors: Annotated[int, lambda a, b: a + b]\n\n# Nodes return partial state updates\ndef researcher(state: ResearchState) -> dict:\n    # Only return fields being updated\n    return {\n        \"findings\": {\"topic_a\": \"New finding\"},\n        \"sources\": [\"source1.com\"],\n        \"current_step\": \"researching\"\n    }\n\ndef writer(state: ResearchState) -> dict:\n    # Access accumulated state\n    all_findings = state[\"findings\"]\n    all_sources = state[\"sources\"]\n\n    return {\n        \"messages\": [(\"assistant\", f\"Report based on {len(all_sources)} sources\")],\n        \"current_step\": \"writing\"\n    }\n\n# Build graph\ngraph = StateGraph(ResearchState)\ngraph.add_node(\"researcher\", researcher)\ngraph.add_node(\"writer\", writer)\n# ... add edges\n```\n\n### Conditional Branching\n\nRoute to different paths based on state\n\n**When to use**: Multiple possible workflows\n\n```python\nfrom langgraph.graph import StateGraph, START, END\n\nclass RouterState(TypedDict):\n    query: str\n    query_type: str\n    result: str\n\ndef classifier(state: RouterState) -> dict:\n    \"\"\"Classify the query type.\"\"\"\n    query = state[\"query\"].lower()\n    if \"code\" in query or \"program\" in query:\n        return {\"query_type\": \"coding\"}\n    elif \"search\" in query or \"find\" in query:\n        return {\"query_type\": \"search\"}\n    else:\n        return {\"query_type\": \"chat\"}\n\ndef coding_agent(state: RouterState) -> dict:\n    return {\"result\": \"Here's your code...\"}\n\ndef search_agent(state: RouterState) -> dict:\n    return {\"result\": \"Search results...\"}\n\ndef chat_agent(state: RouterState) -> dict:\n    return {\"result\": \"Let me help...\"}\n\n# Routing function\ndef route_query(state: RouterState) -> str:\n    \"\"\"Route to appropriate agent.\"\"\"\n    query_type = state[\"query_type\"]\n    return query_type  # Returns node name\n\n# Build graph\ngraph = StateGraph(RouterState)\n\ngraph.add_node(\"classifier\", classifier)\ngraph.add_node(\"coding\", coding_agent)\ngraph.add_node(\"search\", search_agent)\ngraph.add_node(\"chat\", chat_agent)\n\ngraph.add_edge(START, \"classifier\")\n\n# Conditional edges from classifier\ngraph.add_conditional_edges(\n    \"classifier\",\n    route_query,\n    {\n        \"coding\": \"coding\",\n        \"search\": \"search\",\n        \"chat\": \"chat\"\n    }\n)\n\n# All agents lead to END\ngraph.add_edge(\"coding\", END)\ngraph.add_edge(\"search\", END)\ngraph.add_edge(\"chat\", END)\n\napp = graph.compile()\n```\n\n## Anti-Patterns\n\n### ❌ Infinite Loop Without Exit\n\n**Why bad**: Agent loops forever.\nBurns tokens and costs.\nEventually errors out.\n\n**Instead**: Always have exit conditions:\n- Max iterations counter in state\n- Clear END conditions in routing\n- Timeout at application level\n\ndef should_continue(state):\n    if state[\"iterations\"] > 10:\n        return END\n    if state[\"task_complete\"]:\n        return END\n    return \"agent\"\n\n### ❌ Stateless Nodes\n\n**Why bad**: Loses LangGraph's benefits.\nState not persisted.\nCan't resume conversations.\n\n**Instead**: Always use state for data flow.\nReturn state updates from nodes.\nUse reducers for accumulation.\nLet LangGraph manage state.\n\n### ❌ Giant Monolithic State\n\n**Why bad**: Hard to reason about.\nUnnecessary data in context.\nSerialization overhead.\n\n**Instead**: Use input\u002Foutput schemas for clean interfaces.\nPrivate state for internal data.\nClear separation of concerns.\n\n## Limitations\n\n- Python-only (TypeScript in early stages)\n- Learning curve for graph concepts\n- State management complexity\n- Debugging can be challenging\n\n## Related Skills\n\nWorks well with: `crewai`, `autonomous-agents`, `langfuse`, `structured-output`\n\n",{"name":5,"source":43,"description":7},"vibeship-spawner-skills (Apache 2.0)","main","015422534a7457348a313b6381f0255d3364eb8c","cli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Flanggraph",0,"https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates","https:\u002F\u002Fgithub.com\u002FMishit18","2026-11-14 17:36:32",{"source":8,"skillName":5,"commands":52,"prompt":62,"zipAvailable":63},[53,56,59],{"tool":54,"command":55},"npx","npx skills add Mishit18\u002Fclaude-code-templates --skill langgraph",{"tool":57,"command":58},"bunx","bunx skills add Mishit18\u002Fclaude-code-templates --skill langgraph",{"tool":60,"command":61},"pnpm","pnpm dlx skills add Mishit18\u002Fclaude-code-templates --skill langgraph","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fai-research\u002Flanggraph\u002FSKILL.md",true,[],[66,94,118,145,172,197],{"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":70,"licenseFileUrl":71,"sourceHtmlUrl":72,"categories":73,"keywords":79,"publishedAt":38},"01M6R4ARN4W2VZRDERDTMN1KP0","web-artifacts-builder","Suite of tools for creating elaborate, multi-component claude.ai HTML artifacts using modern frontend web technologies (React, Tailwind CSS, shadcn\u002Fui). Use for complex artifacts requiring state management, routing, or shadcn\u002Fui components - not for simple single-file HTML\u002FJSX artifacts.","Apache-2.0","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Futilities\u002Fweb-artifacts-builder\u002FSKILL.md",[74],{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[80,81,82,83,84,85,86,87,29,88,37,36,89,90,30,91,92,26,23,93],"web artifacts builder","web","artifacts","artifacts builder","builder","frontend","css","components","routing","file","Tailwind","single-file","ui components","single",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":70,"licenseFileUrl":98,"sourceHtmlUrl":99,"categories":100,"keywords":105,"publishedAt":38},"01M6R45GXREM5DP8T08MAC788H","webapp-testing","Toolkit for interacting with and testing local web applications using Playwright. Supports verifying frontend functionality, debugging UI behavior, capturing browser screenshots, and viewing browser logs.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fsecurity\u002Fwebapp-testing\u002FSKILL.md",[101,104],{"categoryNo":102,"categoryName":103,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":75,"categoryName":76,"taxonomyType":77,"taxonomyTypeDesc":78},[106,107,108,85,109,110,81,111,112,113,114,115,34,116,117,24,23],"testing","webapp testing","webapp","screenshots","playwright","debugging","toolkit","browser","ui","logs","behavior","local",{"skillNo":119,"name":120,"nameZh":6,"description":121,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":122,"sourceHtmlUrl":123,"categories":124,"keywords":125,"publishedAt":38},"01M6R2GYJ470X8EB7R58V0B68K","think-tank","Run a Virtual Think Tank — a structured multi-persona debate — before planning or making architectural\u002Fdesign\u002Fstrategic decisions. Use this skill whenever the user is about to plan a system, make a technology choice, evaluate trade-offs, decide on an approach, or faces any decision where multiple perspectives would sharpen the outcome. Also trigger when the user says \"think tank\", \"debate this\", \"perspectives on\", \"trade-offs\", \"should I use X or Y\", \"help me decide\", \"before we plan\", or asks for pros\u002Fcons of competing approaches. This skill should run BEFORE any implementation planning begins — it produces a structured analysis that feeds into better plans.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fthink-tank\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fthink-tank\u002FSKILL.md",[],[126,127,128,129,130,131,132,133,134,135,136,137,138,139,140,141,142,143,144,20],"think tank","think","design","run","feeds","analysis","persona","plan","sharpen","virtual","decision","choice","decide","perspectives","outcome","me","debate","make","trade-offs",{"skillNo":146,"name":147,"nameZh":6,"description":148,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":70,"licenseFileUrl":149,"sourceHtmlUrl":150,"categories":151,"keywords":155,"publishedAt":38},"01M6R2FSR55AVRFA9YZ8SC2GZG","skill-creator","Guide for creating effective skills. This skill should be used when users want to create a new skill (or update an existing skill) that extends Claude's capabilities with specialized knowledge, workflows, or tool integrations.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fskill-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fskill-creator\u002FSKILL.md",[152],{"categoryNo":153,"categoryName":154,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000023","Skill与智能体开发",[156,157,158,159,160,161,162,163,164,165,166,167,168,169,24,23,170,20,171],"skill creator","creator","workflows","create","update","capabilities","knowledge","tool","integrations","specialized","guide","new skill","existing skill","users","Existing","new",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":178,"publishedAt":38},"01M6R2FK42ZZ4HJTJVVK9WJBBP","ship-learn-next","Transform learning content (like YouTube transcripts, articles, tutorials) into actionable implementation plans using the Ship-Learn-Next framework. Use when user wants to turn advice, lessons, or educational content into concrete action steps, reps, or a learning quest.","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fproductivity\u002Fship-learn-next\u002FSKILL.md",[],[179,180,181,182,183,184,185,186,30,187,188,189,190,191,192,193,194,195,196,20],"learn","ship learn next","ship","next","framework","learning","read","write","advice","implementation","youtube","plans","quest","transform","actionable","action","lessons","youtube transcripts",{"skillNo":198,"name":199,"nameZh":6,"description":200,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":70,"licenseFileUrl":201,"sourceHtmlUrl":202,"categories":203,"keywords":210,"publishedAt":38},"01M6R2088G1RHDA5MDX16HASRB","slack-gif-creator","Knowledge and utilities for creating animated GIFs optimized for Slack. Provides constraints, validation tools, and animation concepts. Use when users request animated GIFs for Slack like \"make me a GIF of X doing Y for Slack.\"","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fslack-gif-creator\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002FMishit18\u002Fclaude-code-templates\u002Fblob\u002Fmain\u002Fcli-tool\u002Fcomponents\u002Fskills\u002Fenterprise-communication\u002Fslack-gif-creator\u002FSKILL.md",[204,207],{"categoryNo":205,"categoryName":206,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":208,"categoryName":209,"taxonomyType":77,"taxonomyTypeDesc":78},"01JBSEEDCAT000000000000016","图像与多媒体",[211,212,213,157,214,215,216,217,162,30,141,169,143,218,219,23,220,20],"slack gif creator","slack","gif","validation","Tools","constraints","Animation","Utilities","concepts","request"]