[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6BT8CSFB595A662HF02PXNF":3,"skill-same:01M6BT8CSFB595A662HF02PXNF":76},{"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":23,"publishedAt":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":38,"ownerDescription":6,"updatedAt":39,"install":40,"resources":53},"01M6BT8CSFB595A662HF02PXNF","duckdb-json",null,"Process JSON with DuckDB SQL queries","whilp\u002Fworld","whilp","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F189851?v=4","01M6BT84FR1FVM3GDBQ6RB4JSP","Will Maier","01M6BT84MRQ5GDX80FPR2VGRQT",10,"MIT","https:\u002F\u002Fgithub.com\u002Fwhilp\u002Fworld\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fduckdb-json\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000033","数据分析师","PROFESSION","适用职业",[24,25],"duckdb json","sql","2026-11-10 10:12:30",false,"---\ndescription: Process JSON with DuckDB SQL queries\nlocation: user\n---\n\n# duckdb-json\n\nUse DuckDB to process JSON data with SQL queries instead of jq. DuckDB provides a more powerful and familiar SQL interface for JSON manipulation.\n\n## Basic usage\n\n```bash\n# Read JSON from stdin\ncat file.json | duckdb -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Read JSON from file\nduckdb -c \"SELECT * FROM read_json('file.json')\"\n\n# Read JSONL (newline-delimited JSON) - auto-detected\ncat file.jsonl | duckdb -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Read JSONL explicitly\nduckdb -c \"SELECT * FROM read_json('file.jsonl', format='newline_delimited')\"\n\n# Output as JSON\nduckdb -json -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n```\n\n## Common patterns\n\n### Filtering and selecting\n\n```bash\n# Select specific fields\necho '[{\"name\":\"Alice\",\"age\":30}]' | duckdb -c \"SELECT name FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Filter rows\necho '[{\"name\":\"Alice\",\"age\":30},{\"name\":\"Bob\",\"age\":25}]' | \\\n  duckdb -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin') WHERE age > 28\"\n\n# Sort results\nduckdb -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin') ORDER BY age DESC\"\n```\n\n### Aggregations\n\n```bash\n# Count, sum, average\nduckdb -c \"SELECT COUNT(*), AVG(age), MAX(age) FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Group by\nduckdb -c \"SELECT city, COUNT(*) as count FROM read_json('\u002Fdev\u002Fstdin') GROUP BY city\"\n\n# Conditional aggregation with FILTER\nduckdb -c \"\n  SELECT\n    COUNT(*) FILTER (WHERE type = 'assistant') as assistant_count,\n    COUNT(*) FILTER (WHERE type = 'user') as user_count,\n    SUM(tokens) FILTER (WHERE status = 'error') as error_tokens\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n\n# Calculate percentages\nduckdb -c \"\n  SELECT\n    category,\n    count,\n    ROUND(100.0 * count \u002F SUM(count) OVER (), 2) as percentage\n  FROM (SELECT category, COUNT(*) as count FROM read_json('\u002Fdev\u002Fstdin') GROUP BY category)\n\"\n```\n\n### Nested data\n\n```bash\n# Unnest arrays\necho '[{\"name\":\"Alice\",\"scores\":[90,85,92]}]' | \\\n  duckdb -c \"SELECT name, unnest(scores) as score FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Access nested objects with dot notation\nduckdb -c \"SELECT data.field FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Extract nested JSON fields with json_extract_string\nduckdb -c \"\n  SELECT\n    json_extract_string(message, '$.content[0]') as first_content,\n    json_extract_string(message, '$.id') as msg_id\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n\n# Extract and parse nested JSON objects\nduckdb -c \"\n  SELECT\n    json_extract(message, '$.content') as content_array\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n```\n\n### Joins and transformations\n\n```bash\n# Join multiple JSON sources\nduckdb -c \"\n  SELECT a.*, b.value\n  FROM read_json('file1.json') a\n  JOIN read_json('file2.json') b ON a.id = b.id\n\"\n\n# Create computed fields\nduckdb -c \"SELECT name, age, age + 10 as age_plus_10 FROM read_json('\u002Fdev\u002Fstdin')\"\n```\n\n## Output formats\n\n```bash\n# Table format (default)\nduckdb -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# JSON output (array format)\nduckdb -json -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# JSON lines output (newline-delimited JSON\u002FNDJSON)\nduckdb -jsonlines -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# CSV output\nduckdb -csv -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Markdown table\nduckdb -markdown -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n```\n\n## Advantages over jq\n\n- SQL is more familiar to many developers\n- Better for complex transformations and aggregations\n- Easier to join multiple data sources\n- More powerful filtering with WHERE clauses\n- Native support for GROUP BY and window functions\n- Can output to multiple formats (JSON, CSV, markdown, etc.)\n\n## Advanced patterns\n\n### String matching and text analysis\n\n```bash\n# Pattern matching with LIKE\nduckdb -c \"\n  SELECT *\n  FROM read_json('\u002Fdev\u002Fstdin')\n  WHERE json_extract_string(message, '$.content') LIKE '%error%'\n\"\n\n# Multiple pattern matching with OR\nduckdb -c \"\n  SELECT *\n  FROM read_json('\u002Fdev\u002Fstdin')\n  WHERE lower(text) LIKE '%error%'\n     OR lower(text) LIKE '%fail%'\n     OR lower(text) LIKE '%stuck%'\n\"\n\n# String operations\nduckdb -c \"\n  SELECT\n    substr(content, 1, 100) as preview,\n    length(content) as content_length\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n```\n\n### Window functions and analytics\n\n```bash\n# Row numbering and ranking\nduckdb -c \"\n  SELECT\n    sessionId,\n    count,\n    ROW_NUMBER() OVER (ORDER BY count DESC) as rank\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n\n# LAG to compare with previous row\nduckdb -c \"\n  SELECT\n    value,\n    LAG(value) OVER (ORDER BY timestamp) as prev_value,\n    value - LAG(value) OVER (ORDER BY timestamp) as change\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n\n# Moving averages\nduckdb -c \"\n  SELECT\n    timestamp,\n    value,\n    AVG(value) OVER (ORDER BY timestamp ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as moving_avg_3\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n```\n\n### CTEs for complex queries\n\n```bash\n# Common table expressions for readability\nduckdb -c \"\n  WITH error_analysis AS (\n    SELECT\n      CASE\n        WHEN content LIKE '%Exit code%' THEN 'command_failure'\n        WHEN content LIKE '%not found%' THEN 'missing_resource'\n        ELSE 'other'\n      END as error_type\n    FROM read_json('\u002Fdev\u002Fstdin')\n    WHERE is_error = true\n  )\n  SELECT error_type, COUNT(*) as count\n  FROM error_analysis\n  GROUP BY error_type\n  ORDER BY count DESC\n\"\n```\n\n### Working with multiple files\n\n```bash\n# Process multiple JSONL files with glob patterns\nduckdb -c \"\n  SELECT\n    COUNT(DISTINCT sessionId) as total_sessions,\n    COUNT(*) as total_events\n  FROM read_json('~\u002F.claude\u002Fprojects\u002F**\u002F*.jsonl', format='newline_delimited')\n\"\n\n# Analyze across file patterns\ncat ~\u002F.claude\u002Fprojects\u002F-Users-wcm\u002F*.jsonl | duckdb -c \"\n  SELECT type, COUNT(*) as count\n  FROM read_json('\u002Fdev\u002Fstdin', format='newline_delimited')\n  GROUP BY type\n  ORDER BY count DESC\n\"\n```\n\n## Tips\n\n- Use `\u002Fdev\u002Fstdin` to read from stdin in SQL queries\n- Flag order matters: use `-json`, `-jsonlines`, or `-csv` before `-c`\n- Use `-jsonlines` for NDJSON output (one JSON object per line)\n- DuckDB auto-detects JSON and JSONL formats\n- For explicit JSONL input: use `format='newline_delimited'` parameter\n- Use `unnest()` to flatten arrays\n- Use `json_extract_string()` for extracting text values from nested JSON\n- Use `json_extract()` for extracting complex JSON structures\n- Use `FILTER` clause for conditional aggregations instead of CASE WHEN\n- DuckDB supports complex SQL features like CTEs, window functions, and subqueries\n- For percentage calculations, use `ROUND(100.0 * x \u002F y, 2)` to avoid integer division\n- Use `nullif()` to handle division by zero: `x \u002F nullif(y, 0)`\n","# duckdb-json\n\nUse DuckDB to process JSON data with SQL queries instead of jq. DuckDB provides a more powerful and familiar SQL interface for JSON manipulation.\n\n## Basic usage\n\n```bash\n# Read JSON from stdin\ncat file.json | duckdb -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Read JSON from file\nduckdb -c \"SELECT * FROM read_json('file.json')\"\n\n# Read JSONL (newline-delimited JSON) - auto-detected\ncat file.jsonl | duckdb -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Read JSONL explicitly\nduckdb -c \"SELECT * FROM read_json('file.jsonl', format='newline_delimited')\"\n\n# Output as JSON\nduckdb -json -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n```\n\n## Common patterns\n\n### Filtering and selecting\n\n```bash\n# Select specific fields\necho '[{\"name\":\"Alice\",\"age\":30}]' | duckdb -c \"SELECT name FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Filter rows\necho '[{\"name\":\"Alice\",\"age\":30},{\"name\":\"Bob\",\"age\":25}]' | \\\n  duckdb -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin') WHERE age > 28\"\n\n# Sort results\nduckdb -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin') ORDER BY age DESC\"\n```\n\n### Aggregations\n\n```bash\n# Count, sum, average\nduckdb -c \"SELECT COUNT(*), AVG(age), MAX(age) FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Group by\nduckdb -c \"SELECT city, COUNT(*) as count FROM read_json('\u002Fdev\u002Fstdin') GROUP BY city\"\n\n# Conditional aggregation with FILTER\nduckdb -c \"\n  SELECT\n    COUNT(*) FILTER (WHERE type = 'assistant') as assistant_count,\n    COUNT(*) FILTER (WHERE type = 'user') as user_count,\n    SUM(tokens) FILTER (WHERE status = 'error') as error_tokens\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n\n# Calculate percentages\nduckdb -c \"\n  SELECT\n    category,\n    count,\n    ROUND(100.0 * count \u002F SUM(count) OVER (), 2) as percentage\n  FROM (SELECT category, COUNT(*) as count FROM read_json('\u002Fdev\u002Fstdin') GROUP BY category)\n\"\n```\n\n### Nested data\n\n```bash\n# Unnest arrays\necho '[{\"name\":\"Alice\",\"scores\":[90,85,92]}]' | \\\n  duckdb -c \"SELECT name, unnest(scores) as score FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Access nested objects with dot notation\nduckdb -c \"SELECT data.field FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Extract nested JSON fields with json_extract_string\nduckdb -c \"\n  SELECT\n    json_extract_string(message, '$.content[0]') as first_content,\n    json_extract_string(message, '$.id') as msg_id\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n\n# Extract and parse nested JSON objects\nduckdb -c \"\n  SELECT\n    json_extract(message, '$.content') as content_array\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n```\n\n### Joins and transformations\n\n```bash\n# Join multiple JSON sources\nduckdb -c \"\n  SELECT a.*, b.value\n  FROM read_json('file1.json') a\n  JOIN read_json('file2.json') b ON a.id = b.id\n\"\n\n# Create computed fields\nduckdb -c \"SELECT name, age, age + 10 as age_plus_10 FROM read_json('\u002Fdev\u002Fstdin')\"\n```\n\n## Output formats\n\n```bash\n# Table format (default)\nduckdb -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# JSON output (array format)\nduckdb -json -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# JSON lines output (newline-delimited JSON\u002FNDJSON)\nduckdb -jsonlines -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# CSV output\nduckdb -csv -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n\n# Markdown table\nduckdb -markdown -c \"SELECT * FROM read_json('\u002Fdev\u002Fstdin')\"\n```\n\n## Advantages over jq\n\n- SQL is more familiar to many developers\n- Better for complex transformations and aggregations\n- Easier to join multiple data sources\n- More powerful filtering with WHERE clauses\n- Native support for GROUP BY and window functions\n- Can output to multiple formats (JSON, CSV, markdown, etc.)\n\n## Advanced patterns\n\n### String matching and text analysis\n\n```bash\n# Pattern matching with LIKE\nduckdb -c \"\n  SELECT *\n  FROM read_json('\u002Fdev\u002Fstdin')\n  WHERE json_extract_string(message, '$.content') LIKE '%error%'\n\"\n\n# Multiple pattern matching with OR\nduckdb -c \"\n  SELECT *\n  FROM read_json('\u002Fdev\u002Fstdin')\n  WHERE lower(text) LIKE '%error%'\n     OR lower(text) LIKE '%fail%'\n     OR lower(text) LIKE '%stuck%'\n\"\n\n# String operations\nduckdb -c \"\n  SELECT\n    substr(content, 1, 100) as preview,\n    length(content) as content_length\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n```\n\n### Window functions and analytics\n\n```bash\n# Row numbering and ranking\nduckdb -c \"\n  SELECT\n    sessionId,\n    count,\n    ROW_NUMBER() OVER (ORDER BY count DESC) as rank\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n\n# LAG to compare with previous row\nduckdb -c \"\n  SELECT\n    value,\n    LAG(value) OVER (ORDER BY timestamp) as prev_value,\n    value - LAG(value) OVER (ORDER BY timestamp) as change\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n\n# Moving averages\nduckdb -c \"\n  SELECT\n    timestamp,\n    value,\n    AVG(value) OVER (ORDER BY timestamp ROWS BETWEEN 2 PRECEDING AND CURRENT ROW) as moving_avg_3\n  FROM read_json('\u002Fdev\u002Fstdin')\n\"\n```\n\n### CTEs for complex queries\n\n```bash\n# Common table expressions for readability\nduckdb -c \"\n  WITH error_analysis AS (\n    SELECT\n      CASE\n        WHEN content LIKE '%Exit code%' THEN 'command_failure'\n        WHEN content LIKE '%not found%' THEN 'missing_resource'\n        ELSE 'other'\n      END as error_type\n    FROM read_json('\u002Fdev\u002Fstdin')\n    WHERE is_error = true\n  )\n  SELECT error_type, COUNT(*) as count\n  FROM error_analysis\n  GROUP BY error_type\n  ORDER BY count DESC\n\"\n```\n\n### Working with multiple files\n\n```bash\n# Process multiple JSONL files with glob patterns\nduckdb -c \"\n  SELECT\n    COUNT(DISTINCT sessionId) as total_sessions,\n    COUNT(*) as total_events\n  FROM read_json('~\u002F.claude\u002Fprojects\u002F**\u002F*.jsonl', format='newline_delimited')\n\"\n\n# Analyze across file patterns\ncat ~\u002F.claude\u002Fprojects\u002F-Users-wcm\u002F*.jsonl | duckdb -c \"\n  SELECT type, COUNT(*) as count\n  FROM read_json('\u002Fdev\u002Fstdin', format='newline_delimited')\n  GROUP BY type\n  ORDER BY count DESC\n\"\n```\n\n## Tips\n\n- Use `\u002Fdev\u002Fstdin` to read from stdin in SQL queries\n- Flag order matters: use `-json`, `-jsonlines`, or `-csv` before `-c`\n- Use `-jsonlines` for NDJSON output (one JSON object per line)\n- DuckDB auto-detects JSON and JSONL formats\n- For explicit JSONL input: use `format='newline_delimited'` parameter\n- Use `unnest()` to flatten arrays\n- Use `json_extract_string()` for extracting text values from nested JSON\n- Use `json_extract()` for extracting complex JSON structures\n- Use `FILTER` clause for conditional aggregations instead of CASE WHEN\n- DuckDB supports complex SQL features like CTEs, window functions, and subqueries\n- For percentage calculations, use `ROUND(100.0 * x \u002F y, 2)` to avoid integer division\n- Use `nullif()` to handle division by zero: `x \u002F nullif(y, 0)`\n",{"location":31,"description":7},"user","main","e5d89acbf522d779c29cb727c768f326e89ae54c",".claude\u002Fskills\u002Fduckdb-json",3,"https:\u002F\u002Fgithub.com\u002Fwhilp\u002Fworld","https:\u002F\u002Fgithub.com\u002Fwhilp","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fwhilp\u002F","2026-11-11 21:54:17",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add whilp\u002Fworld --skill duckdb-json",{"tool":46,"command":47},"bunx","bunx skills add whilp\u002Fworld --skill duckdb-json",{"tool":49,"command":50},"pnpm","pnpm dlx skills add whilp\u002Fworld --skill duckdb-json","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fwhilp\u002Fworld\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fduckdb-json\u002FSKILL.md",true,[54,60,64,68,72],{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},"references\u002Fevidence-rules.md","REFERENCE","参考文档",2072,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Ftessl__verify\u002Freferences\u002Fevidence-rules.md",{"path":61,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":62,"sourceHtmlUrl":63},"references\u002Fsimplification.md",2929,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Ftessl__verify\u002Freferences\u002Fsimplification.md",{"path":65,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":66,"sourceHtmlUrl":67},"references\u002Fverification.md",9432,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Ftessl__verify\u002Freferences\u002Fverification.md",{"path":69,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":70,"sourceHtmlUrl":71},"tessl-package.json",51,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Ftessl__verify\u002Ftessl-package.json",{"path":73,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":74,"sourceHtmlUrl":75},"tile.json",587,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills_archive\u002F2026-08-27-historical-zero-use\u002Ftessl__verify\u002Ftile.json",[77,89,99,123,131,143],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":26},"01M6BT8VN2MXTN6DX2SRKDSP9R","screenshot","Take screenshots, screen recordings, scrolling captures, and OCR text recognition using CleanShot X. Use when user requests screenshots, captures, screen recording, OCR, text extraction, or image annotation.","https:\u002F\u002Fgithub.com\u002Fwhilp\u002Fworld\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fscreenshot\u002FSKILL.md",[],[79,84,85,86,87,88],"ocr","screen recording","extraction","screenshots","image",{"skillNo":90,"name":91,"nameZh":6,"description":92,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":93,"categories":94,"keywords":95,"publishedAt":26},"01M6BT8SKFXRKMZCW0BZ9NNQ8Q","nvim","Interact with Neovim configuration and build system","https:\u002F\u002Fgithub.com\u002Fwhilp\u002Fworld\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fnvim\u002FSKILL.md",[],[91,96,97,98],"neovim","plugin","plugin management",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":116,"publishedAt":26},"01M6BT8QJZV0CE2XXEKMVDPH0F","meta","Guide for writing and improving Claude Code skills. Use when creating new skills, debugging why skills aren't activating, or improving skill descriptions and structure.","https:\u002F\u002Fgithub.com\u002Fwhilp\u002Fworld\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fmeta\u002FSKILL.md",[105,110,113],{"categoryNo":106,"categoryName":107,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000018","写作与文案","SCENARIO","使用场景",{"categoryNo":111,"categoryName":112,"taxonomyType":108,"taxonomyTypeDesc":109},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":114,"categoryName":115,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000036","内容创作者",[117,118,119,120,121,122],"Meta","debugging","why","code","claude code skills","writing",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":26},"01M6BT8N5PZJ5VJQBNG28654HB","karabiner","Configure and manage Karabiner-Elements key remapping. Use when modifying karabiner.json, adding key remappings, creating complex modifications, managing profiles, setting variables, or troubleshooting keybinding issues.","https:\u002F\u002Fgithub.com\u002Fwhilp\u002Fworld\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fkarabiner\u002FSKILL.md",[],[125,130],"issues",{"skillNo":132,"name":133,"nameZh":6,"description":134,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":135,"categories":136,"keywords":137,"publishedAt":26},"01M6BT8JFG096T7J6A53CYTV5W","hammerspoon","Configure and manage Hammerspoon automation, app launching, and window switching. Use when working with ~\u002F.config\u002Fhammerspoon config files, adding keybindings, modifying the leader modal, or troubleshooting Hammerspoon functionality. Window management is handled by AeroSpace.","https:\u002F\u002Fgithub.com\u002Fwhilp\u002Fworld\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhammerspoon\u002FSKILL.md",[],[133,138,139,140,141,142],"aerospace","modal","window management","config","automation",{"skillNo":144,"name":145,"nameZh":6,"description":146,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":147,"categories":148,"keywords":149,"publishedAt":26},"01M6BT8GJQDPHYJEEGSFGT9ESZ","ghostty","Configure and manage Ghostty terminal emulator settings. Use when modifying ghostty config, validating configuration, checking window settings, themes, fonts, keybindings, or troubleshooting ghostty startup behavior.","https:\u002F\u002Fgithub.com\u002Fwhilp\u002Fworld\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fghostty\u002FSKILL.md",[],[145,150,151,141],"terminal","startup"]