[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FK80YXFQXZ7DPTMPVBGVR2":3,"skill-same:01M6FK80YXFQXZ7DPTMPVBGVR2":69},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":36,"linkOnly":37,"markdownContent":38,"markdownBody":39,"frontMatter":40,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":48,"install":49,"resources":62},"01M6FK80YXFQXZ7DPTMPVBGVR2","voice-to-report",null,"Convert voice recordings to structured construction reports. Field workers speak, AI transcribes and formats. Supports daily reports, safety observations, progress updates.","kbarbel640-del\u002Fskills","kbarbel640-del","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F255315490?v=4","01M6CJPPQGCCESXMG3K7BBGQ5J","01M6CJPPX2PB2BCZERFVM2C2B3",1,"MIT","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdatadrivenconstruction\u002Fvoice-to-report\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000034","行政与办公人员","PROFESSION","适用职业",[23,24,25,26,27,28,29,30,31,32,33,34,35],"report","voice","voice to report","Safety","convert","speak","daily","workers","reports","recordings","structured","progress","observations","2026-11-10 10:12:30",false,"---\r\nslug: \"voice-to-report\"\r\ndisplay_name: \"Voice To Report\"\r\ndescription: \"Convert voice recordings to structured construction reports. Field workers speak, AI transcribes and formats. Supports daily reports, safety observations, progress updates.\"\r\n---\r\n\r\n# Voice to Report\r\n\r\n## Overview\r\n\r\nField workers prefer talking over typing. This skill converts voice recordings into structured construction reports using speech-to-text and LLM processing.\r\n\r\n## Why Voice?\r\n\r\n| Typing | Voice |\r\n|--------|-------|\r\n| Slow on mobile | 3x faster |\r\n| Requires attention | Hands-free |\r\n| Limited in cold\u002Frain | Works anywhere |\r\n| Formal language | Natural expression |\r\n| Short messages | Detailed descriptions |\r\n\r\n## Architecture\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────────┐\r\n│                    VOICE TO REPORT PIPELINE                      │\r\n├─────────────────────────────────────────────────────────────────┤\r\n│                                                                  │\r\n│  ? Voice      →    ? Transcribe    →    ? Structure    →    ? Report │\r\n│  Recording         Whisper API           GPT-4o               Formatted  │\r\n│                                                                  │\r\n│  \"We finished      \"We finished         {                    Daily Report │\r\n│   the foundation    the foundation       \"activity\":         ──────────── │\r\n│   pour today,       pour today,          \"foundation\",       Foundation   │\r\n│   about 500         about 500            \"quantity\": 500,    pour: 500m³  │\r\n│   cubic meters\"     cubic meters\"        \"unit\": \"m³\"        Complete ✓   │\r\n│                                          }                               │\r\n└─────────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n## Quick Start\r\n\r\n```python\r\nfrom openai import OpenAI\r\nimport json\r\n\r\nclient = OpenAI()\r\n\r\ndef voice_to_report(audio_path: str, report_type: str = \"daily\") -> dict:\r\n    \"\"\"Convert voice recording to structured report\"\"\"\r\n\r\n    # Step 1: Transcribe audio\r\n    with open(audio_path, \"rb\") as audio_file:\r\n        transcript = client.audio.transcriptions.create(\r\n            model=\"whisper-1\",\r\n            file=audio_file,\r\n            language=\"en\"\r\n        )\r\n\r\n    # Step 2: Structure with LLM\r\n    schema = get_report_schema(report_type)\r\n\r\n    response = client.chat.completions.create(\r\n        model=\"gpt-4o\",\r\n        messages=[\r\n            {\r\n                \"role\": \"system\",\r\n                \"content\": f\"\"\"You are a construction report assistant.\r\n                Convert the voice transcript into a structured report.\r\n                Extract all relevant information and format as JSON.\r\n\r\n                Report type: {report_type}\r\n                Schema: {json.dumps(schema, indent=2)}\r\n\r\n                Rules:\r\n                - Extract quantities with units\r\n                - Identify activities and locations\r\n                - Note any issues or concerns\r\n                - Capture weather if mentioned\r\n                - List workers\u002Ftrades if mentioned\r\n                \"\"\"\r\n            },\r\n            {\r\n                \"role\": \"user\",\r\n                \"content\": f\"Transcript:\\n{transcript.text}\"\r\n            }\r\n        ],\r\n        response_format={\"type\": \"json_object\"}\r\n    )\r\n\r\n    return {\r\n        \"transcript\": transcript.text,\r\n        \"structured_report\": json.loads(response.choices[0].message.content)\r\n    }\r\n```\r\n\r\n## Report Schemas\r\n\r\n### Daily Report Schema\r\n\r\n```python\r\ndaily_report_schema = {\r\n    \"date\": \"YYYY-MM-DD\",\r\n    \"project\": \"string\",\r\n    \"weather\": {\r\n        \"conditions\": \"string\",\r\n        \"temperature\": \"number\",\r\n        \"impact\": \"none|minor|major\"\r\n    },\r\n    \"workforce\": [\r\n        {\r\n            \"trade\": \"string\",\r\n            \"count\": \"number\",\r\n            \"hours\": \"number\"\r\n        }\r\n    ],\r\n    \"activities\": [\r\n        {\r\n            \"description\": \"string\",\r\n            \"location\": \"string\",\r\n            \"quantity\": \"number\",\r\n            \"unit\": \"string\",\r\n            \"status\": \"in_progress|completed|delayed\"\r\n        }\r\n    ],\r\n    \"equipment\": [\r\n        {\r\n            \"type\": \"string\",\r\n            \"hours\": \"number\"\r\n        }\r\n    ],\r\n    \"issues\": [\r\n        {\r\n            \"description\": \"string\",\r\n            \"severity\": \"low|medium|high\",\r\n            \"action_taken\": \"string\"\r\n        }\r\n    ],\r\n    \"notes\": \"string\"\r\n}\r\n```\r\n\r\n### Safety Observation Schema\r\n\r\n```python\r\nsafety_schema = {\r\n    \"date\": \"YYYY-MM-DD\",\r\n    \"time\": \"HH:MM\",\r\n    \"location\": \"string\",\r\n    \"observer\": \"string\",\r\n    \"observation_type\": \"positive|concern|incident\",\r\n    \"description\": \"string\",\r\n    \"people_involved\": [\"list of names\u002Froles\"],\r\n    \"immediate_action\": \"string\",\r\n    \"follow_up_required\": \"boolean\",\r\n    \"photos_attached\": \"boolean\"\r\n}\r\n```\r\n\r\n### Progress Update Schema\r\n\r\n```python\r\nprogress_schema = {\r\n    \"date\": \"YYYY-MM-DD\",\r\n    \"area\": \"string\",\r\n    \"activity\": \"string\",\r\n    \"planned_quantity\": \"number\",\r\n    \"actual_quantity\": \"number\",\r\n    \"unit\": \"string\",\r\n    \"percent_complete\": \"number\",\r\n    \"on_schedule\": \"boolean\",\r\n    \"variance_reason\": \"string or null\",\r\n    \"next_steps\": \"string\"\r\n}\r\n```\r\n\r\n## n8n Workflow\r\n\r\n```json\r\n{\r\n  \"workflow\": \"Voice to Report\",\r\n  \"nodes\": [\r\n    {\r\n      \"name\": \"Telegram Trigger\",\r\n      \"type\": \"Telegram\",\r\n      \"event\": \"voice_message\"\r\n    },\r\n    {\r\n      \"name\": \"Download Voice\",\r\n      \"type\": \"Telegram\",\r\n      \"action\": \"getFile\"\r\n    },\r\n    {\r\n      \"name\": \"Transcribe\",\r\n      \"type\": \"OpenAI\",\r\n      \"operation\": \"transcribe\",\r\n      \"model\": \"whisper-1\"\r\n    },\r\n    {\r\n      \"name\": \"Detect Report Type\",\r\n      \"type\": \"OpenAI\",\r\n      \"prompt\": \"Classify: daily_report, safety, progress, issue\"\r\n    },\r\n    {\r\n      \"name\": \"Structure Report\",\r\n      \"type\": \"OpenAI\",\r\n      \"operation\": \"chat\",\r\n      \"model\": \"gpt-4o\"\r\n    },\r\n    {\r\n      \"name\": \"Save to Database\",\r\n      \"type\": \"PostgreSQL\"\r\n    },\r\n    {\r\n      \"name\": \"Confirm to User\",\r\n      \"type\": \"Telegram\",\r\n      \"action\": \"sendMessage\"\r\n    },\r\n    {\r\n      \"name\": \"Generate PDF\",\r\n      \"type\": \"HTTP Request\",\r\n      \"url\": \"pdf-service\u002Fgenerate\"\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n## Multi-Language Support\r\n\r\n```python\r\ndef transcribe_multilingual(audio_path: str) -> dict:\r\n    \"\"\"Transcribe in any language, output in English\"\"\"\r\n\r\n    with open(audio_path, \"rb\") as audio_file:\r\n        # Detect language automatically\r\n        transcript = client.audio.transcriptions.create(\r\n            model=\"whisper-1\",\r\n            file=audio_file\r\n            # language parameter omitted for auto-detection\r\n        )\r\n\r\n    # Translate to English if needed\r\n    if not is_english(transcript.text):\r\n        translation = client.chat.completions.create(\r\n            model=\"gpt-4o\",\r\n            messages=[\r\n                {\"role\": \"system\", \"content\": \"Translate to English, preserve construction terminology.\"},\r\n                {\"role\": \"user\", \"content\": transcript.text}\r\n            ]\r\n        )\r\n        english_text = translation.choices[0].message.content\r\n    else:\r\n        english_text = transcript.text\r\n\r\n    return {\r\n        \"original\": transcript.text,\r\n        \"english\": english_text\r\n    }\r\n```\r\n\r\n## Mobile App Integration\r\n\r\n```python\r\n# Example: Flutter\u002FReact Native integration\r\n\r\n# Send voice to API\r\nasync def upload_voice_report(audio_bytes, project_id):\r\n    response = await api.post(\r\n        \"\u002Fvoice-report\",\r\n        files={\"audio\": audio_bytes},\r\n        data={\r\n            \"project_id\": project_id,\r\n            \"report_type\": \"daily\"\r\n        }\r\n    )\r\n    return response.json()\r\n\r\n# Response includes:\r\n# - transcript\r\n# - structured_report\r\n# - report_id\r\n# - pdf_url (if generated)\r\n```\r\n\r\n## Cost Optimization\r\n\r\n```python\r\n# Use local Whisper for high volume\r\nimport whisper\r\n\r\nmodel = whisper.load_model(\"base\")  # or \"small\", \"medium\", \"large\"\r\n\r\ndef transcribe_local(audio_path: str) -> str:\r\n    \"\"\"Transcribe locally to save API costs\"\"\"\r\n    result = model.transcribe(audio_path)\r\n    return result[\"text\"]\r\n\r\n# Cost comparison (per hour of audio):\r\n# - OpenAI Whisper API: $0.36\r\n# - Local Whisper (base): $0 (compute only)\r\n# - Local Whisper (large): $0 (compute only, slower)\r\n```\r\n\r\n## Requirements\r\n\r\n```bash\r\npip install openai whisper python-telegram-bot\r\n```\r\n\r\n## Resources\r\n\r\n- OpenAI Whisper: https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fspeech-to-text\r\n- Local Whisper: https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper\r\n- n8n Voice Processing: https:\u002F\u002Fdocs.n8n.io\u002Fintegrations\u002F\r\n","# Voice to Report\r\n\r\n## Overview\r\n\r\nField workers prefer talking over typing. This skill converts voice recordings into structured construction reports using speech-to-text and LLM processing.\r\n\r\n## Why Voice?\r\n\r\n| Typing | Voice |\r\n|--------|-------|\r\n| Slow on mobile | 3x faster |\r\n| Requires attention | Hands-free |\r\n| Limited in cold\u002Frain | Works anywhere |\r\n| Formal language | Natural expression |\r\n| Short messages | Detailed descriptions |\r\n\r\n## Architecture\r\n\r\n```\r\n┌─────────────────────────────────────────────────────────────────┐\r\n│                    VOICE TO REPORT PIPELINE                      │\r\n├─────────────────────────────────────────────────────────────────┤\r\n│                                                                  │\r\n│  ? Voice      →    ? Transcribe    →    ? Structure    →    ? Report │\r\n│  Recording         Whisper API           GPT-4o               Formatted  │\r\n│                                                                  │\r\n│  \"We finished      \"We finished         {                    Daily Report │\r\n│   the foundation    the foundation       \"activity\":         ──────────── │\r\n│   pour today,       pour today,          \"foundation\",       Foundation   │\r\n│   about 500         about 500            \"quantity\": 500,    pour: 500m³  │\r\n│   cubic meters\"     cubic meters\"        \"unit\": \"m³\"        Complete ✓   │\r\n│                                          }                               │\r\n└─────────────────────────────────────────────────────────────────┘\r\n```\r\n\r\n## Quick Start\r\n\r\n```python\r\nfrom openai import OpenAI\r\nimport json\r\n\r\nclient = OpenAI()\r\n\r\ndef voice_to_report(audio_path: str, report_type: str = \"daily\") -> dict:\r\n    \"\"\"Convert voice recording to structured report\"\"\"\r\n\r\n    # Step 1: Transcribe audio\r\n    with open(audio_path, \"rb\") as audio_file:\r\n        transcript = client.audio.transcriptions.create(\r\n            model=\"whisper-1\",\r\n            file=audio_file,\r\n            language=\"en\"\r\n        )\r\n\r\n    # Step 2: Structure with LLM\r\n    schema = get_report_schema(report_type)\r\n\r\n    response = client.chat.completions.create(\r\n        model=\"gpt-4o\",\r\n        messages=[\r\n            {\r\n                \"role\": \"system\",\r\n                \"content\": f\"\"\"You are a construction report assistant.\r\n                Convert the voice transcript into a structured report.\r\n                Extract all relevant information and format as JSON.\r\n\r\n                Report type: {report_type}\r\n                Schema: {json.dumps(schema, indent=2)}\r\n\r\n                Rules:\r\n                - Extract quantities with units\r\n                - Identify activities and locations\r\n                - Note any issues or concerns\r\n                - Capture weather if mentioned\r\n                - List workers\u002Ftrades if mentioned\r\n                \"\"\"\r\n            },\r\n            {\r\n                \"role\": \"user\",\r\n                \"content\": f\"Transcript:\\n{transcript.text}\"\r\n            }\r\n        ],\r\n        response_format={\"type\": \"json_object\"}\r\n    )\r\n\r\n    return {\r\n        \"transcript\": transcript.text,\r\n        \"structured_report\": json.loads(response.choices[0].message.content)\r\n    }\r\n```\r\n\r\n## Report Schemas\r\n\r\n### Daily Report Schema\r\n\r\n```python\r\ndaily_report_schema = {\r\n    \"date\": \"YYYY-MM-DD\",\r\n    \"project\": \"string\",\r\n    \"weather\": {\r\n        \"conditions\": \"string\",\r\n        \"temperature\": \"number\",\r\n        \"impact\": \"none|minor|major\"\r\n    },\r\n    \"workforce\": [\r\n        {\r\n            \"trade\": \"string\",\r\n            \"count\": \"number\",\r\n            \"hours\": \"number\"\r\n        }\r\n    ],\r\n    \"activities\": [\r\n        {\r\n            \"description\": \"string\",\r\n            \"location\": \"string\",\r\n            \"quantity\": \"number\",\r\n            \"unit\": \"string\",\r\n            \"status\": \"in_progress|completed|delayed\"\r\n        }\r\n    ],\r\n    \"equipment\": [\r\n        {\r\n            \"type\": \"string\",\r\n            \"hours\": \"number\"\r\n        }\r\n    ],\r\n    \"issues\": [\r\n        {\r\n            \"description\": \"string\",\r\n            \"severity\": \"low|medium|high\",\r\n            \"action_taken\": \"string\"\r\n        }\r\n    ],\r\n    \"notes\": \"string\"\r\n}\r\n```\r\n\r\n### Safety Observation Schema\r\n\r\n```python\r\nsafety_schema = {\r\n    \"date\": \"YYYY-MM-DD\",\r\n    \"time\": \"HH:MM\",\r\n    \"location\": \"string\",\r\n    \"observer\": \"string\",\r\n    \"observation_type\": \"positive|concern|incident\",\r\n    \"description\": \"string\",\r\n    \"people_involved\": [\"list of names\u002Froles\"],\r\n    \"immediate_action\": \"string\",\r\n    \"follow_up_required\": \"boolean\",\r\n    \"photos_attached\": \"boolean\"\r\n}\r\n```\r\n\r\n### Progress Update Schema\r\n\r\n```python\r\nprogress_schema = {\r\n    \"date\": \"YYYY-MM-DD\",\r\n    \"area\": \"string\",\r\n    \"activity\": \"string\",\r\n    \"planned_quantity\": \"number\",\r\n    \"actual_quantity\": \"number\",\r\n    \"unit\": \"string\",\r\n    \"percent_complete\": \"number\",\r\n    \"on_schedule\": \"boolean\",\r\n    \"variance_reason\": \"string or null\",\r\n    \"next_steps\": \"string\"\r\n}\r\n```\r\n\r\n## n8n Workflow\r\n\r\n```json\r\n{\r\n  \"workflow\": \"Voice to Report\",\r\n  \"nodes\": [\r\n    {\r\n      \"name\": \"Telegram Trigger\",\r\n      \"type\": \"Telegram\",\r\n      \"event\": \"voice_message\"\r\n    },\r\n    {\r\n      \"name\": \"Download Voice\",\r\n      \"type\": \"Telegram\",\r\n      \"action\": \"getFile\"\r\n    },\r\n    {\r\n      \"name\": \"Transcribe\",\r\n      \"type\": \"OpenAI\",\r\n      \"operation\": \"transcribe\",\r\n      \"model\": \"whisper-1\"\r\n    },\r\n    {\r\n      \"name\": \"Detect Report Type\",\r\n      \"type\": \"OpenAI\",\r\n      \"prompt\": \"Classify: daily_report, safety, progress, issue\"\r\n    },\r\n    {\r\n      \"name\": \"Structure Report\",\r\n      \"type\": \"OpenAI\",\r\n      \"operation\": \"chat\",\r\n      \"model\": \"gpt-4o\"\r\n    },\r\n    {\r\n      \"name\": \"Save to Database\",\r\n      \"type\": \"PostgreSQL\"\r\n    },\r\n    {\r\n      \"name\": \"Confirm to User\",\r\n      \"type\": \"Telegram\",\r\n      \"action\": \"sendMessage\"\r\n    },\r\n    {\r\n      \"name\": \"Generate PDF\",\r\n      \"type\": \"HTTP Request\",\r\n      \"url\": \"pdf-service\u002Fgenerate\"\r\n    }\r\n  ]\r\n}\r\n```\r\n\r\n## Multi-Language Support\r\n\r\n```python\r\ndef transcribe_multilingual(audio_path: str) -> dict:\r\n    \"\"\"Transcribe in any language, output in English\"\"\"\r\n\r\n    with open(audio_path, \"rb\") as audio_file:\r\n        # Detect language automatically\r\n        transcript = client.audio.transcriptions.create(\r\n            model=\"whisper-1\",\r\n            file=audio_file\r\n            # language parameter omitted for auto-detection\r\n        )\r\n\r\n    # Translate to English if needed\r\n    if not is_english(transcript.text):\r\n        translation = client.chat.completions.create(\r\n            model=\"gpt-4o\",\r\n            messages=[\r\n                {\"role\": \"system\", \"content\": \"Translate to English, preserve construction terminology.\"},\r\n                {\"role\": \"user\", \"content\": transcript.text}\r\n            ]\r\n        )\r\n        english_text = translation.choices[0].message.content\r\n    else:\r\n        english_text = transcript.text\r\n\r\n    return {\r\n        \"original\": transcript.text,\r\n        \"english\": english_text\r\n    }\r\n```\r\n\r\n## Mobile App Integration\r\n\r\n```python\r\n# Example: Flutter\u002FReact Native integration\r\n\r\n# Send voice to API\r\nasync def upload_voice_report(audio_bytes, project_id):\r\n    response = await api.post(\r\n        \"\u002Fvoice-report\",\r\n        files={\"audio\": audio_bytes},\r\n        data={\r\n            \"project_id\": project_id,\r\n            \"report_type\": \"daily\"\r\n        }\r\n    )\r\n    return response.json()\r\n\r\n# Response includes:\r\n# - transcript\r\n# - structured_report\r\n# - report_id\r\n# - pdf_url (if generated)\r\n```\r\n\r\n## Cost Optimization\r\n\r\n```python\r\n# Use local Whisper for high volume\r\nimport whisper\r\n\r\nmodel = whisper.load_model(\"base\")  # or \"small\", \"medium\", \"large\"\r\n\r\ndef transcribe_local(audio_path: str) -> str:\r\n    \"\"\"Transcribe locally to save API costs\"\"\"\r\n    result = model.transcribe(audio_path)\r\n    return result[\"text\"]\r\n\r\n# Cost comparison (per hour of audio):\r\n# - OpenAI Whisper API: $0.36\r\n# - Local Whisper (base): $0 (compute only)\r\n# - Local Whisper (large): $0 (compute only, slower)\r\n```\r\n\r\n## Requirements\r\n\r\n```bash\r\npip install openai whisper python-telegram-bot\r\n```\r\n\r\n## Resources\r\n\r\n- OpenAI Whisper: https:\u002F\u002Fplatform.openai.com\u002Fdocs\u002Fguides\u002Fspeech-to-text\r\n- Local Whisper: https:\u002F\u002Fgithub.com\u002Fopenai\u002Fwhisper\r\n- n8n Voice Processing: https:\u002F\u002Fdocs.n8n.io\u002Fintegrations\u002F\r\n",{"slug":5,"description":7,"display_name":41},"Voice To Report","main","e7e336ac628c3e3bd771aff1aaa469c93778f94a","skills\u002Fdatadrivenconstruction\u002Fvoice-to-report",0,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del","2026-08-23 22:39:37",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add kbarbel640-del\u002Fskills --skill voice-to-report",{"tool":55,"command":56},"bunx","bunx skills add kbarbel640-del\u002Fskills --skill voice-to-report",{"tool":58,"command":59},"pnpm","pnpm dlx skills add kbarbel640-del\u002Fskills --skill voice-to-report","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdatadrivenconstruction\u002Fvoice-to-report\u002FSKILL.md",true,[63],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"_meta.json","REFERENCE","参考文档",298,"https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fdatadrivenconstruction\u002Fvoice-to-report\u002F_meta.json",[70,99,128,149,155,175],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":79,"publishedAt":36},"01M6G8J55967D6281ACMKAKTEQ","crowd-prompting","A marketplace where AI agents improve prompts, system instructions, tool descriptions, and other text-based content with domain expertise from real-world operations — and earn tokens for valuable contributions.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzzadrian\u002Fcrowd-prompting\u002FSKILL.md",[76],{"categoryNo":77,"categoryName":78,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000036","内容创作者",[80,81,82,83,84,85,86,87,88,89,90,91,92,93,94,95,96,97,98],"crowd prompting","prompting","api","with","tokens","domain","world","prompts","operations","instructions","text","tool","system","improve","productivity","marketplace","https","content","ai agents",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":110,"publishedAt":36},"01M6G8J0PKPAYVET6BWE8W4C26","dilemm-ai","Compete in DilemmAI, the prisoner's dilemma AI arena at dilemm.ai. Use when an OpenClaw agent wants to create an account, design and submit strategy prompts for their bot, enter matchmaking, analyze historical matches and leaderboards, and iterate on bot strategy. Requires headless browser automation (no API available yet).","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzyori\u002Fdilemm-ai\u002FSKILL.md",[105],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[111,82,112,113,114,115,116,117,118,119,120,121,122,123,124,125,126,87,127],"dilemm ai","arena","analyze","browser","openclaw agent","create","automation","browser automation","bot","openclaw","design","strategy","headless","compete","submit","matchmaking","use",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":137,"publishedAt":36},"01M6G8HWAF3K9SW7NP3Z83CPJ6","arxiv-paper-reviews","Interact with arXiv Crawler API to fetch papers, read reviews, and submit comments. Use when working with arXiv papers, fetching paper lists by date\u002Fcategory\u002Finterest, viewing paper details with comments, or submitting paper reviews via API at http:\u002F\u002F150.158.152.82:8000.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Fweak-accept\u002FSKILL.md",[134],{"categoryNo":135,"categoryName":136,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000021","资料检索与研究",[138,139,140,141,142,143,144,83,145,125,127,146,82,147,148],"arxiv paper reviews","reviews","arxiv","paper","crawler","papers","comments","fetch","read","http","via",{"skillNo":150,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":151,"categories":152,"keywords":154,"publishedAt":36},"01M6G8HQJ7N7WMY6YV7D7SSJ16","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzxrys\u002Farxiv-paper-reviews\u002FSKILL.md",[153],{"categoryNo":135,"categoryName":136,"taxonomyType":108,"taxonomyTypeDesc":109},[141,140,139,138,148,143,144,83,142,125,127,145,146,82,147],{"skillNo":156,"name":157,"nameZh":6,"description":158,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":159,"categories":160,"keywords":161,"publishedAt":36},"01M6G8HM95Y64JNVFC2HN4E2BG","git-summary","Get a quick summary of the current Git repository including status, recent commits, branches, and contributors.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fzweack\u002Fgit-summary\u002FSKILL.md",[],[162,163,164,165,166,167,168,169,170,171,172,173,174],"git","summary","git summary","commits","repository","win32","status","linux","contributors","true","quick","get","branches",{"skillNo":176,"name":177,"nameZh":6,"description":178,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":179,"categories":180,"keywords":185,"publishedAt":36},"01M6G8HGEGF05CNEJCGVYFSC4R","agent-constitution","Interact with AgentConstitution governance contracts on Base Sepolia. Check compliance, read rules, log actions, query governance state.","https:\u002F\u002Fgithub.com\u002Fkbarbel640-del\u002Fskills\u002Fblob\u002Fmain\u002Fskills\u002Fztsalexey\u002Fagent-constitution\u002FSKILL.md",[181,182],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},{"categoryNo":183,"categoryName":184,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000037","律师与法务",[186,187,188,189,83,190,191,42,192,146,193,194,195,196,197,96,198,199,200],"agent constitution","constitution","contracts","tree","query","base","log","check","Rules","projects","compliance","actions","state","governance","github"]