[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DFNMEPDQE2RQ2MGZ67C7DR":3,"skill-same:01M6DFNMEPDQE2RQ2MGZ67C7DR":188},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":69,"commitSha":70,"skillDirectory":71,"forksCount":72,"repositoryHtmlUrl":73,"repositoryHomepageUrl":6,"ownerHtmlUrl":74,"ownerBlogUrl":6,"ownerDescription":75,"updatedAt":76,"install":77,"resources":89},"01M6DFNMEPDQE2RQ2MGZ67C7DR","twitter-relay-pain-analysis",null,"Twitter\u002FX Web App API relay (fa0311\u002Ftwitter_api_safe_relay) を用いた、都内在住推定アカウントの「困りごと・悩み」投稿収集・ペイン深さ分類・静的ダッシュボード生成の一連パイプライン。","zapabob\u002FSkills","zapabob","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F130830376?v=4","01M6DBMYZAGRTFQDSQYW3W764P","峯岸 亮","01M6DBMZ3GKDSJ01NZ9XTZD7JD",2,"MIT","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F4f\u002F4ffa505759615d9fd2d3418e823254989b8483580b431eee043fff8f53e86634\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"analysis","twitter relay pain analysis","twitter","生成","github","web app","app","linux","node","hermes agent","hermes","python3","dashboard","safe","data","server","https","http","windows","web","2026-11-10 10:12:30",false,"---\r\nname: twitter-relay-pain-analysis\r\ndescription: \"Twitter\u002FX Web App API relay (fa0311\u002Ftwitter_api_safe_relay) を用いた、都内在住推定アカウントの「困りごと・悩み」投稿収集・ペイン深さ分類・静的ダッシュボード生成の一連パイプライン。\"\r\nversion: 1.0.0\r\nauthor: Hermes Agent\r\nlicense: MIT\r\nplatforms: [linux, macos, windows]\r\nprerequisites:\r\n  commands: [node, pnpm, python3]\r\n  env:\r\n    TWITTER_RELAY_BASE_URL: \"http:\u002F\u002F127.0.0.1:6900 (relay server)\"\r\nmetadata:\r\n  hermes:\r\n    tags: [twitter, x, relay, data-collection, pain-analysis, dashboard, tokyo]\r\n    upstream_repos:\r\n      - https:\u002F\u002Fgithub.com\u002Ffa0311\u002Ftwitter_api_safe_relay\r\n      - https:\u002F\u002Fgithub.com\u002Ffa0311\u002Ftwitter_api_safe_relay_skills\r\n---\r\n\r\n# twitter-relay-pain-analysis\r\n\r\n`fa0311\u002Ftwitter_api_safe_relay` (Playwright経由でログイン済みブラウザから X Web App API を叩く HTTP relay) を使い、**公式 API 制限なし・Cookie\u002FCSRF 自動付与**で検索収集し、ペイン深さ (L1–L4) 分類 → HTML ダッシュボード + 原文詳細ページを生成するクラスレベルスキル。\r\n\r\n## アーキテクチャ\r\n\r\n```\r\ntwitter_api_safe_relay (port 6900)\r\n  └─ Playwright Chromium → x.com login → inject bridge → \u002Fi\u002Fapi\u002Fgraphql\u002F* relay\r\n        │\r\n        ▼\r\ncollect_pain_posts.py  (SearchTimeline, cursor paging, Tokyo score filter)\r\n        │\r\n        ▼\r\ndata\u002Fraw_posts.jsonl  (NDJSON, 10k+ target)\r\n        │\r\n        ▼\r\nclassify_pain.py  (rule-based L1–L4 + 7 categories)\r\n        │\r\n        ▼\r\ndata\u002Fclassified_posts.json  (summary + posts[])\r\n        │\r\n        ▼\r\nbuild_dashboard.py  (static HTML: index.html + posts\u002F\u003Cid>.html)\r\n        │\r\n        ▼\r\nout\u002F  (deployable static site)\r\n```\r\n\r\n## セットアップ\r\n\r\n```bash\r\n# 1. relay repo\r\ngit clone https:\u002F\u002Fgithub.com\u002Ffa0311\u002Ftwitter_api_safe_relay.git\r\ncd twitter_api_safe_relay\r\npnpm install\r\npnpm build:relay\r\n\r\n# 2. settings.json を 6900 \u002F headless:false \u002F user_data_dir 指定で編集\r\n#    (user_data_dir で永続プロファイル → 再ログイン不要)\r\n\r\n# 3. 起動 → ブラウザで X ログイン\r\npnpm start:relay\r\n# http:\u002F\u002F127.0.0.1:6900\u002Fhealth で {\"status\":\"ok\"} 確認\r\n\r\n# 4. 収集側\r\nexport TWITTER_RELAY_BASE_URL=http:\u002F\u002F127.0.0.1:6900\r\npython scripts\u002Fcollect_pain_posts.py --probe-only\r\npython scripts\u002Fcollect_pain_posts.py --target 10000\r\npython scripts\u002Fclassify_pain.py\r\npython scripts\u002Fbuild_dashboard.py\r\n# → out\u002Findex.html\r\n```\r\n\r\n## 収集クエリ設計\r\n\r\n- **geocode\u002Fnear: は GraphQL SearchTimeline で空になりがち** → 代替: `placeキーワード in query` + `profile location\u002Fpost-filter`\r\n- `PLACE_HINT = '(都内 OR 東京 OR 渋谷 OR 新宿 ...)'` を OR で付与\r\n- コアキーワード 14 群 × (plain \u002F +PLACE_HINT) + 完全一致フレーズ = 30+ クエリ\r\n- `-is:retweet` 固定、`lang:ja` 固定\r\n- `product: \"Latest\"` (逆時系列) で最新から掘る\r\n\r\n## Tokyo 推定スコアリング (0–1)\r\n\r\n| 信号 | 重み | 条件 |\r\n|------|------|------|\r\n| profile.location | +0.8 | 正規表現で区・市・地名マッチ |\r\n| tweet.place | +0.9 | X の place object |\r\n| user.description (bio) | +0.35 | 同正規表現 |\r\n| tweet.text | +0.45 | 本文に地名 |\r\n| place-scoped query + 既存信号 | +0.15 | 弱い prior |\r\n\r\n閾値既定 `0.35` (調整可)。**明示信号なしなら除外** (noise 排除)。\r\n\r\n## ペイン深さ分類 (L1–L4)\r\n\r\n| Level | Label | Color | キーパターン例 |\r\n|-------|-------|-------|----------------|\r\n| L1 | 軽度・表面 | #2563eb | めんどい, ちょっと困った, 迷う |\r\n| L2 | 中程度 | #ca8a04 | 悩み, 相談, つらい, しんどい, 不安 |\r\n| L3 | 深刻 | #ea580c | 限界, うつ, 借金, 失業, DV, 助けて |\r\n| L4 | 危機・緊急 | #b91c1c | 死にたい, 消えたい, 自殺, 生きられない |\r\n\r\n- ルールベース・説明可能・日本語特化\r\n- 深い方が勝ち、同レベルなら weight×hit数で決着\r\n- 長文(≥120)かつ「本当に\u002Fずっと\u002F何年\u002F毎日\u002Fもう」で +1 level (上限 L3)\r\n\r\n## カテゴリ (7)\r\n\r\n仕事・キャリア \u002F 人間関係 \u002F お金・生活 \u002F 健康・メンタル \u002F 育児・介護 \u002F 住まい・都内生活 \u002F 学業 \u002F その他\r\n\r\n## レート制限・回復\r\n\r\n- X 側 429 (Too Many Requests) → relay ログに `HTTP-429 codes:[1003]`\r\n- 対処: relay 再起動 (ブラウザ再起動でセッションリフレッシュ) → 10–30 分待機 → 低速再開 (`--sleep 2.0 --page-size 20`)\r\n- 同一 query で 500 連発なら query 単位でスキップ\r\n\r\n## トラブルシュート\r\n\r\n| 現象 | 原因 | 対処 |\r\n|------|------|------|\r\n| relay \u002Fhealth ok だが 500 | ブラウザセッション切れ\u002Frate limit | relay 再起動 → ブラウザで再ログイン |\r\n| geocode 0件 | GraphQL 側未対応 | place keyword query + post-filter へ |\r\n| 収集が伸びない | cursor ループで同一ページ | `cursor == next_cursor` で break |\r\n| 重複除外効かない | `seen` set が raw_posts.jsonl から再構築 | `load_seen()` で ID 抽出済み |\r\n\r\n## 参照ファイル\r\n\r\n- `references\u002Fcollect_pain_posts.py` — 収集スクリプト (SearchTimeline, paging, Tokyo score)\r\n- `references\u002Fclassify_pain.py` — 分類ルール (L1–L4, 7 categories)\r\n- `references\u002Fbuild_dashboard.py` — 静的 HTML 生成 (paginated table + detail pages)\r\n- `references\u002Fsearch_timeline_template.json` — relay 用リクエストテンプレ (features 固定)\r\n- `references\u002Fquery_design.md` — クエリ設計の詳細\r\n\r\n## テンプレート\r\n\r\n- `templates\u002Fcollect_pain_posts.py` — 収集スクリプト雛形\r\n- `templates\u002Fclassify_pain.py` — 分類スクリプト雛形\r\n- `templates\u002Fbuild_dashboard.py` — ダッシュボード雛形\r\n- `templates\u002Fsearch_timeline_template.json` — リクエストテンプレ雛形\r\n\r\n## スクリプト\r\n\r\n- `scripts\u002Fverify_relay.py` — relay ヘルスチェック + SearchTimeline プローブ\r\n- `scripts\u002Frebuild_views.py` — 分類→ダッシュボード一括再生成","# twitter-relay-pain-analysis\r\n\r\n`fa0311\u002Ftwitter_api_safe_relay` (Playwright経由でログイン済みブラウザから X Web App API を叩く HTTP relay) を使い、**公式 API 制限なし・Cookie\u002FCSRF 自動付与**で検索収集し、ペイン深さ (L1–L4) 分類 → HTML ダッシュボード + 原文詳細ページを生成するクラスレベルスキル。\r\n\r\n## アーキテクチャ\r\n\r\n```\r\ntwitter_api_safe_relay (port 6900)\r\n  └─ Playwright Chromium → x.com login → inject bridge → \u002Fi\u002Fapi\u002Fgraphql\u002F* relay\r\n        │\r\n        ▼\r\ncollect_pain_posts.py  (SearchTimeline, cursor paging, Tokyo score filter)\r\n        │\r\n        ▼\r\ndata\u002Fraw_posts.jsonl  (NDJSON, 10k+ target)\r\n        │\r\n        ▼\r\nclassify_pain.py  (rule-based L1–L4 + 7 categories)\r\n        │\r\n        ▼\r\ndata\u002Fclassified_posts.json  (summary + posts[])\r\n        │\r\n        ▼\r\nbuild_dashboard.py  (static HTML: index.html + posts\u002F\u003Cid>.html)\r\n        │\r\n        ▼\r\nout\u002F  (deployable static site)\r\n```\r\n\r\n## セットアップ\r\n\r\n```bash\r\n# 1. relay repo\r\ngit clone https:\u002F\u002Fgithub.com\u002Ffa0311\u002Ftwitter_api_safe_relay.git\r\ncd twitter_api_safe_relay\r\npnpm install\r\npnpm build:relay\r\n\r\n# 2. settings.json を 6900 \u002F headless:false \u002F user_data_dir 指定で編集\r\n#    (user_data_dir で永続プロファイル → 再ログイン不要)\r\n\r\n# 3. 起動 → ブラウザで X ログイン\r\npnpm start:relay\r\n# http:\u002F\u002F127.0.0.1:6900\u002Fhealth で {\"status\":\"ok\"} 確認\r\n\r\n# 4. 収集側\r\nexport TWITTER_RELAY_BASE_URL=http:\u002F\u002F127.0.0.1:6900\r\npython scripts\u002Fcollect_pain_posts.py --probe-only\r\npython scripts\u002Fcollect_pain_posts.py --target 10000\r\npython scripts\u002Fclassify_pain.py\r\npython scripts\u002Fbuild_dashboard.py\r\n# → out\u002Findex.html\r\n```\r\n\r\n## 収集クエリ設計\r\n\r\n- **geocode\u002Fnear: は GraphQL SearchTimeline で空になりがち** → 代替: `placeキーワード in query` + `profile location\u002Fpost-filter`\r\n- `PLACE_HINT = '(都内 OR 東京 OR 渋谷 OR 新宿 ...)'` を OR で付与\r\n- コアキーワード 14 群 × (plain \u002F +PLACE_HINT) + 完全一致フレーズ = 30+ クエリ\r\n- `-is:retweet` 固定、`lang:ja` 固定\r\n- `product: \"Latest\"` (逆時系列) で最新から掘る\r\n\r\n## Tokyo 推定スコアリング (0–1)\r\n\r\n| 信号 | 重み | 条件 |\r\n|------|------|------|\r\n| profile.location | +0.8 | 正規表現で区・市・地名マッチ |\r\n| tweet.place | +0.9 | X の place object |\r\n| user.description (bio) | +0.35 | 同正規表現 |\r\n| tweet.text | +0.45 | 本文に地名 |\r\n| place-scoped query + 既存信号 | +0.15 | 弱い prior |\r\n\r\n閾値既定 `0.35` (調整可)。**明示信号なしなら除外** (noise 排除)。\r\n\r\n## ペイン深さ分類 (L1–L4)\r\n\r\n| Level | Label | Color | キーパターン例 |\r\n|-------|-------|-------|----------------|\r\n| L1 | 軽度・表面 | #2563eb | めんどい, ちょっと困った, 迷う |\r\n| L2 | 中程度 | #ca8a04 | 悩み, 相談, つらい, しんどい, 不安 |\r\n| L3 | 深刻 | #ea580c | 限界, うつ, 借金, 失業, DV, 助けて |\r\n| L4 | 危機・緊急 | #b91c1c | 死にたい, 消えたい, 自殺, 生きられない |\r\n\r\n- ルールベース・説明可能・日本語特化\r\n- 深い方が勝ち、同レベルなら weight×hit数で決着\r\n- 長文(≥120)かつ「本当に\u002Fずっと\u002F何年\u002F毎日\u002Fもう」で +1 level (上限 L3)\r\n\r\n## カテゴリ (7)\r\n\r\n仕事・キャリア \u002F 人間関係 \u002F お金・生活 \u002F 健康・メンタル \u002F 育児・介護 \u002F 住まい・都内生活 \u002F 学業 \u002F その他\r\n\r\n## レート制限・回復\r\n\r\n- X 側 429 (Too Many Requests) → relay ログに `HTTP-429 codes:[1003]`\r\n- 対処: relay 再起動 (ブラウザ再起動でセッションリフレッシュ) → 10–30 分待機 → 低速再開 (`--sleep 2.0 --page-size 20`)\r\n- 同一 query で 500 連発なら query 単位でスキップ\r\n\r\n## トラブルシュート\r\n\r\n| 現象 | 原因 | 対処 |\r\n|------|------|------|\r\n| relay \u002Fhealth ok だが 500 | ブラウザセッション切れ\u002Frate limit | relay 再起動 → ブラウザで再ログイン |\r\n| geocode 0件 | GraphQL 側未対応 | place keyword query + post-filter へ |\r\n| 収集が伸びない | cursor ループで同一ページ | `cursor == next_cursor` で break |\r\n| 重複除外効かない | `seen` set が raw_posts.jsonl から再構築 | `load_seen()` で ID 抽出済み |\r\n\r\n## 参照ファイル\r\n\r\n- `references\u002Fcollect_pain_posts.py` — 収集スクリプト (SearchTimeline, paging, Tokyo score)\r\n- `references\u002Fclassify_pain.py` — 分類ルール (L1–L4, 7 categories)\r\n- `references\u002Fbuild_dashboard.py` — 静的 HTML 生成 (paginated table + detail pages)\r\n- `references\u002Fsearch_timeline_template.json` — relay 用リクエストテンプレ (features 固定)\r\n- `references\u002Fquery_design.md` — クエリ設計の詳細\r\n\r\n## テンプレート\r\n\r\n- `templates\u002Fcollect_pain_posts.py` — 収集スクリプト雛形\r\n- `templates\u002Fclassify_pain.py` — 分類スクリプト雛形\r\n- `templates\u002Fbuild_dashboard.py` — ダッシュボード雛形\r\n- `templates\u002Fsearch_timeline_template.json` — リクエストテンプレ雛形\r\n\r\n## スクリプト\r\n\r\n- `scripts\u002Fverify_relay.py` — relay ヘルスチェック + SearchTimeline プローブ\r\n- `scripts\u002Frebuild_views.py` — 分類→ダッシュボード一括再生成",{"name":5,"author":49,"license":15,"version":50,"metadata":51,"platforms":62,"description":7,"prerequisites":64},"Hermes Agent","1.0.0",{"hermes":52},{"tags":53,"upstream_repos":59},[26,54,55,56,57,36,58],"x","relay","data-collection","pain-analysis","tokyo",[60,61],"https:\u002F\u002Fgithub.com\u002Ffa0311\u002Ftwitter_api_safe_relay","https:\u002F\u002Fgithub.com\u002Ffa0311\u002Ftwitter_api_safe_relay_skills",[31,63,42],"macos",{"env":65,"commands":67},{"TWITTER_RELAY_BASE_URL":66},"http:\u002F\u002F127.0.0.1:6900 (relay server)",[32,68,35],"pnpm","main","0d1434f89f4bc6b07e9d272accd8c1013768820f","archive\u002Fskill-md-reviewed\u002Fsha256\u002F4f\u002F4ffa505759615d9fd2d3418e823254989b8483580b431eee043fff8f53e86634",0,"https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills","https:\u002F\u002Fgithub.com\u002Fzapabob","The Open University of JAPAN　2019-now\r\n\r\nTokyo University of Science　2007-2010","2026-10-26 16:29:01",{"source":8,"skillName":5,"commands":78,"prompt":87,"zipAvailable":88},[79,82,85],{"tool":80,"command":81},"npx","npx skills add zapabob\u002FSkills --skill twitter-relay-pain-analysis",{"tool":83,"command":84},"bunx","bunx skills add zapabob\u002FSkills --skill twitter-relay-pain-analysis",{"tool":68,"command":86},"pnpm dlx skills add zapabob\u002FSkills --skill twitter-relay-pain-analysis","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002F4f\u002F4ffa505759615d9fd2d3418e823254989b8483580b431eee043fff8f53e86634\u002FSKILL.md",true,[90,96,100,104,108,112,116,120,124,128,132,136,140,144,148,152,156,160,164,168,172,176,180,184],{"path":91,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":94,"sourceHtmlUrl":95},"bmad-skill-manifest.yaml","REFERENCE","参考文档",12,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fbmad-skill-manifest.yaml",{"path":97,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":98,"sourceHtmlUrl":99},"data\u002Fdesign-system-guide.md",8888,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fdata\u002Fdesign-system-guide.md",{"path":101,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":102,"sourceHtmlUrl":103},"steps-c\u002Fstep-01-scan-existing.md",4448,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-01-scan-existing.md",{"path":105,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":106,"sourceHtmlUrl":107},"steps-c\u002Fstep-02-compare-attributes.md",8508,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-02-compare-attributes.md",{"path":109,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":110,"sourceHtmlUrl":111},"steps-c\u002Fstep-03-calculate-similarity.md",9675,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-03-calculate-similarity.md",{"path":113,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":114,"sourceHtmlUrl":115},"steps-c\u002Fstep-04-identify-opportunities.md",10615,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-04-identify-opportunities.md",{"path":117,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":118,"sourceHtmlUrl":119},"steps-c\u002Fstep-05-identify-risks.md",10821,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-05-identify-risks.md",{"path":121,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":122,"sourceHtmlUrl":123},"steps-c\u002Fstep-06-present-decision.md",12779,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-06-present-decision.md",{"path":125,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":126,"sourceHtmlUrl":127},"steps-c\u002Fstep-07-execute-decision.md",12083,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-07-execute-decision.md",{"path":129,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":130,"sourceHtmlUrl":131},"steps-c\u002Fstep-08a-initialize-design-system.md",10983,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-08a-initialize-design-system.md",{"path":133,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":134,"sourceHtmlUrl":135},"steps-c\u002Fstep-08b-create-new-component.md",14560,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-08b-create-new-component.md",{"path":137,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":138,"sourceHtmlUrl":139},"steps-c\u002Fstep-08c-update-component.md",12626,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-08c-update-component.md",{"path":141,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":142,"sourceHtmlUrl":143},"steps-c\u002Fstep-08d-add-variant.md",11405,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-08d-add-variant.md",{"path":145,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":146,"sourceHtmlUrl":147},"steps-c\u002Fstep-08e-generate-catalog.md",16473,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fsteps-c\u002Fstep-08e-generate-catalog.md",{"path":149,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":150,"sourceHtmlUrl":151},"templates\u002Fcatalog.template.html",12973,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Ftemplates\u002Fcatalog.template.html",{"path":153,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":154,"sourceHtmlUrl":155},"templates\u002Fcomponent-library-config.template.md",875,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Ftemplates\u002Fcomponent-library-config.template.md",{"path":157,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":158,"sourceHtmlUrl":159},"templates\u002Fcomponent.template.md",1480,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Ftemplates\u002Fcomponent.template.md",{"path":161,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":162,"sourceHtmlUrl":163},"templates\u002Fdesign-tokens.template.md",2112,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Ftemplates\u002Fdesign-tokens.template.md",{"path":165,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":166,"sourceHtmlUrl":167},"workflow-browse.md",2630,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fworkflow-browse.md",{"path":169,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":170,"sourceHtmlUrl":171},"workflow-create.md",2205,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fworkflow-create.md",{"path":173,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":174,"sourceHtmlUrl":175},"workflow-edit.md",1860,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fworkflow-edit.md",{"path":177,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":178,"sourceHtmlUrl":179},"workflow-import.md",2185,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fworkflow-import.md",{"path":181,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":182,"sourceHtmlUrl":183},"workflow-view.md",1708,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fworkflow-view.md",{"path":185,"resourceType":92,"resourceTypeDesc":93,"sizeBytes":186,"sourceHtmlUrl":187},"workflow.md",3838,"https:\u002F\u002Fgithub.com\u002Fdanielmtt9\u002Fbloomcornerkiddies\u002Fblob\u002Fmain\u002F.cursor\u002Fskills\u002Fwds-7-design-system\u002Fworkflow.md",[189,215,250,277,304,320],{"skillNo":190,"name":191,"nameZh":6,"description":192,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":193,"categories":194,"keywords":204,"publishedAt":44},"01M6GJTE1GESGGF9K028Y7753E","xurl","X\u002FTwitter via xurl CLI: post, search, DM, media, v2 API.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fxurl\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[195,196,199],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":197,"categoryName":198,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":200,"categoryName":201,"taxonomyType":202,"taxonomyTypeDesc":203},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[191,205,63,206,28,31,42,207,208,40,209,210,211,34,33,26,69,212,213,214],"openclaw","cli","official","search","social-media","api","Media","social","via","post",{"skillNo":216,"name":217,"nameZh":6,"description":218,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":219,"categories":220,"keywords":232,"publishedAt":44},"01M6GJT8S1PXQ8WPXT1HSNBWH2","writing-plans","Write implementation plans: bite-sized tasks, paths, code.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwriting-plans\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[221,224,227,228,229],{"categoryNo":222,"categoryName":223,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":225,"categoryName":226,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":197,"categoryName":198,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":200,"categoryName":201,"taxonomyType":202,"taxonomyTypeDesc":203},{"categoryNo":230,"categoryName":231,"taxonomyType":202,"taxonomyTypeDesc":203},"01JBSEEDCAT000000000000036","内容创作者",[233,234,235,236,63,237,31,238,42,239,240,241,242,243,244,245,246,247,248,249],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":251,"name":252,"nameZh":6,"description":253,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":254,"categories":255,"keywords":259,"publishedAt":44},"01M6GJST0H5X7WHBJ3BZK0DVKH","whisper","OpenAI's general-purpose speech recognition model. Supports 99 languages, transcription, translation to English, and language identification. Six model sizes from tiny (39M params) to large (1550M params). Use for speech-to-text, podcast transcription, or multilingual audio processing. Best for robust, multilingual ASR.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwhisper\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[256],{"categoryNo":257,"categoryName":258,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000016","图像与多媒体",[252,63,31,260,261,262,263,264,265,266,267,268,269,270,271,272,273,274,275,276],"openai","speech","multimodal","Transformers","ASR","Audio","text","model","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":278,"name":279,"nameZh":6,"description":280,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":281,"categories":282,"keywords":286,"publishedAt":44},"01M6GJSMRQ8EETZTYMG72P70EA","weights-and-biases","W&B: log ML experiments, sweeps, model registry, dashboards.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fweights-and-biases\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[283],{"categoryNo":284,"categoryName":285,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000013","分析与可视化",[287,63,288,289,42,290,291,292,293,294,295,267,296,297,298,299,300,301,302,303],"weights and biases","tensorflow","experiments","pytorch","visualization","registry","real-time","tuning","dashboards","experiment","log","time","Experiment Tracking","Model Registry","Hyperparameter Tuning","WandB","Real-Time Visualization",{"skillNo":305,"name":306,"nameZh":6,"description":307,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":308,"categories":309,"keywords":311,"publishedAt":44},"01M6GJS19KDPRY112JTR326S06","watchers","Poll RSS, JSON APIs, and GitHub with watermark dedup.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fwatchers\u002Fvariants\u002Fhermes-agent-optional\u002FSKILL.md",[310],{"categoryNo":197,"categoryName":198,"taxonomyType":21,"taxonomyTypeDesc":22},[306,63,312,28,31,313,41,314,315,316,317,34,33,318,319],"terminal","automation","monitoring","cron","json","rss","devops","with",{"skillNo":321,"name":322,"nameZh":6,"description":323,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":324,"categories":325,"keywords":328,"publishedAt":44},"01M6GJRHJD2A6Q830SWF9W48BC","serving-llms-vllm","vLLM: high-throughput LLM serving, OpenAI API, quantization.","https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Fregistry\u002Fskills\u002Fvllm\u002Fvariants\u002Fhermes-agent\u002FSKILL.md",[326,327],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":200,"categoryName":201,"taxonomyType":202,"taxonomyTypeDesc":203},[329,330,331,31,332,260,333,334,335,263,336,210,337,338,339,340,341,342,343,344],"llms","vLLM","serving llms vllm","research","openai api","tensor","Inference Serving","Production","llm serving","High Throughput","PagedAttention","Continuous Batching","Quantization","Tensor Parallelism","high-throughput","throughput"]