[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6GGZ9459ASS3504F45PAMGV":3,"skill-same:01M6GGZ9459ASS3504F45PAMGV":82},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":60,"commitSha":61,"skillDirectory":62,"forksCount":63,"repositoryHtmlUrl":64,"repositoryHomepageUrl":6,"ownerHtmlUrl":65,"ownerBlogUrl":6,"ownerDescription":66,"updatedAt":67,"install":68,"resources":81},"01M6GGZ9459ASS3504F45PAMGV","empty-pipeline-root-cause",null,"Root-cause empty results in memory and graph pipelines.","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\u002Ff4\u002Ff432d2c6a5a9c768d6838a198beaa1762b9e90bfa05508eac4c79cdb8d475161\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"empty pipeline root cause","root","pipeline","empty","root-cause","sleep","script","consolidation","semantic-graph","Hakua","systematic","python","results","in memory","sqlite","verification","dev","debugging","memory","obsidian","2026-11-10 10:12:30",false,"---\nname: empty-pipeline-root-cause\ndescription: Root-cause empty results in memory and graph pipelines.\nversion: 0.1.0\nauthor: Hermes\nlicense: MIT\nmetadata:\n  hermes:\n    tags: [Debugging, Memory, Semantic-Graph, SQLite, Root-Cause, Verification]\n    related_skills: [systematic-debugging, hakua-memory-dev, memory-consolidation-sleep-obsidian-sync, python-sqlite-script-safety]\n---\n\n# Empty-Pipeline Root Cause\n\nRoot-causes a pipeline that returns a **structurally empty** result — `[]`, `count: 0`,\n`association_id not found` — and proves the repair on a database copy before touching the\nlive store. It does not run the periodic consolidation cycle itself (that is\n`memory-consolidation-sleep-obsidian-sync`) and it does not teach general debugging method\n(that is `systematic-debugging`). Stdlib Python plus `sqlite3`; no test framework needed.\n\n## When to Use\n\n- A memory\u002Fgraph tool answers successfully but with an empty payload, for cycles in a row.\n- You have a **suspected cause** (\"the provider is wrong\", \"the embedding is broken\") and\n  need it confirmed or killed before acting on it.\n- A repair means flipping a config flag or seeding rows, and you must prove the blast radius\n  on a copy before the live store.\n- A second call to the same tool returns empty while the first returned data.\n\n## Prerequisites\n\n- A readable SQLite DB path and a writable temp dir (`tempfile.gettempdir()`).\n- For Hermes memory subsystems: the runtime interpreter is the repo venv, and the code that\n  actually executes may be an installed package rather than the repo copy (see Pitfalls).\n\n## How to Run\n\nInvoke the probe through the `terminal` tool, always against a **copy**:\n\n```bash\npython scripts\u002Fprobe_seed_sources.py --db \"\u003Clive.db>\" \\\n  --sql \"SELECT COUNT(*) FROM \u003Cfocus_table>\" \\\n  --sql \"SELECT COUNT(*) FROM \u003Cfallback_table> WHERE \u003Cstatus_col>='\u003Cvalue>'\"\n```\n\nOpen the DB read-only when you only need counts; the script copies first by default so the\nlive file is never written. Use `read_file` on the implementation module to enumerate the\nfocus sources by hand, then encode them as `--sql`.\n\n## Quick Reference\n\n| Need | Action |\n|------|--------|\n| Empty result, live tool | Call the tool once; capture the response verbatim |\n| Candidate seed sources | Read the function; count each source table directly |\n| Live counts | `probe_seed_sources.py --db \u003Cdb> --sql \"SELECT COUNT(*) …\"` |\n| Kill a suspect theory | `search_files` the function for its network \u002F LLM call sites |\n| Prove a repair | Same probe against a copy, with the flag flipped |\n| Blast radius | Run the side-effecting cycle on two copies, compare metrics |\n| Commit + verify remote | `git push`, then `git ls-remote` + `gh api …\u002Fcommits\u002F\u003Cbranch>` |\n| Record the finding | Wiki concept page + `ebbinghaus_memory(action=\"remember\")` |\n\n## Procedure\n\n1. **Capture the empty result verbatim.** One call to the real tool. Record whether the\n   response distinguishes *disabled* from *enabled-but-empty* — several tools return both, and\n   an `enabled: true` flag with an empty list is a different bug from `enabled: false`.\n\n2. **Enumerate every source the function can draw from.** Read the implementation and list\n   each query feeding its focus set. Do not accept the first source you find; a focus set with\n   two independent inputs needs both counted.\n\n3. **Count each source in the live DB.** Use the probe with one `--sql` per source. Zero rows\n   in every source means the empty result is **structural, not transient** — there was never\n   anything to assemble. That single measurement usually ends the investigation.\n\n4. **Falsify the leading suspect explicitly.** For a \"the provider\u002FLLM is broken\" theory, read\n   the function under repair and search it for network or model call sites. If there are none,\n   the theory cannot explain the symptom: record that it is a *separate* failure and stop\n   chasing it. Name the correct failure you did find, so the earlier note stops misleading.\n\n5. **Prove the repair on a copy, never on the live store.** Copy the DB into temp, construct\n   the store object against the copy, flip the flag or seed the rows, and drive the full chain\n   end to end (trigger → assemble → propose → validate → promote). Record the promoted id and\n   the before\u002Fafter counts. This also proves the repair is sufficient rather than merely\n   correlated.\n\n6. **Measure blast radius before recommending the flip.** Run the side-effecting cycle on two\n   copies — one with the flag off, one with it on — and diff the metrics. Equal results are the\n   evidence that the change is safe; equal-by-luck is not the same as equal-by-measurement.\n\n7. **Re-run the original tool once.** One call. Never twice (see Pitfalls). Confirm the count\n   moved and report the residual manual step (a restart) as **unverified** until the runtime\n   actually reports the new state.\n\n8. **Record, then commit, then verify the remote.** Write the root cause into the durable\n   concept page, note the unverified step explicitly, commit with a scoped message, push, and\n   confirm with three independent checks: local `rev-parse`, `git ls-remote`, and the forge API.\n   Write the run result back into the memory system **after** the commit, and say so in the\n   record so the exported snapshot is not mistaken for post-write-back state.\n\n## Pitfalls\n\n- **A repeat call can fake a regression.** A `UNIQUE` fingerprint column plus a swallowed\n  `IntegrityError` makes the second identical call return empty while the first row is stored.\n  Verified pattern: preview → 1 result, immediate re-preview → 0, row count still 1. Delete the\n  row before re-testing or the check lies.\n- **Never seed or repair the production DB to make a check pass.** `shutil.copy2` into temp,\n  run the whole chain there, then apply the real change only after the copy passes.\n- **The runtime code may not be the repo code.** Compare file hashes between the repo module and\n  the installed package the interpreter actually imports, and compare version strings. Edit and\n  diagnose the one that runs.\n- **Config flags load at startup.** A flipped flag changes nothing until the process restarts,\n  and the live status call keeps reporting the old value until then. Report that step as\n  pending, never as done.\n- **\"Empty\" is often \"no qualifying input\", by design.** When a threshold must be both rare\n  enough to miss and common enough to be shared, a low hit rate is the mechanism working. Probe\n  many samples, report the rate, and do not treat frequent failure as a bug.\n- **Count parity is not loss-freedom.** Two snapshots with equal item counts can differ by\n  removed-and-added rows. Diff exact keys and classify revisions, additions, and churn.\n- **Byte-size differences across a push are usually line endings.** `core.autocrlf=true` with no\n  `.gitattributes` inflates the checked-out copy. Compare blob hashes, not sizes, before calling\n  a file corrupt.\n- **Windows shell blocks long commands.** `command length exceeds safe limit` also breaks\n  `read_file` and `search_files`; switch to Python inside `execute_code` and read files with\n  `open(..., encoding=\"utf-8\")`.\n- **Python 3.11 inspection scripts reject backslashes in f-string expressions.** Precompute the\n  value into a variable, then format it.\n- **A private-repo snapshot can still carry session excerpts** in label fields even with secret\n  patterns clean. Zero secret-pattern hits is not the same as zero disclosure risk.\n\n## Verification\n\n```bash\npython scripts\u002Fprobe_seed_sources.py --db \"\u003Clive.db>\" --sql \"SELECT COUNT(*) FROM \u003Cfocus_table>\"\n```\n\nPassing means the probe read the DB and reported a count; the investigation is only complete\nwhen **every** enumerated source is non-empty in the live store *or* the empty ones are named\nas the root cause, the suspect theory is recorded as falsified, and the repair is demonstrated\non a copy.\n","# Empty-Pipeline Root Cause\n\nRoot-causes a pipeline that returns a **structurally empty** result — `[]`, `count: 0`,\n`association_id not found` — and proves the repair on a database copy before touching the\nlive store. It does not run the periodic consolidation cycle itself (that is\n`memory-consolidation-sleep-obsidian-sync`) and it does not teach general debugging method\n(that is `systematic-debugging`). Stdlib Python plus `sqlite3`; no test framework needed.\n\n## When to Use\n\n- A memory\u002Fgraph tool answers successfully but with an empty payload, for cycles in a row.\n- You have a **suspected cause** (\"the provider is wrong\", \"the embedding is broken\") and\n  need it confirmed or killed before acting on it.\n- A repair means flipping a config flag or seeding rows, and you must prove the blast radius\n  on a copy before the live store.\n- A second call to the same tool returns empty while the first returned data.\n\n## Prerequisites\n\n- A readable SQLite DB path and a writable temp dir (`tempfile.gettempdir()`).\n- For Hermes memory subsystems: the runtime interpreter is the repo venv, and the code that\n  actually executes may be an installed package rather than the repo copy (see Pitfalls).\n\n## How to Run\n\nInvoke the probe through the `terminal` tool, always against a **copy**:\n\n```bash\npython scripts\u002Fprobe_seed_sources.py --db \"\u003Clive.db>\" \\\n  --sql \"SELECT COUNT(*) FROM \u003Cfocus_table>\" \\\n  --sql \"SELECT COUNT(*) FROM \u003Cfallback_table> WHERE \u003Cstatus_col>='\u003Cvalue>'\"\n```\n\nOpen the DB read-only when you only need counts; the script copies first by default so the\nlive file is never written. Use `read_file` on the implementation module to enumerate the\nfocus sources by hand, then encode them as `--sql`.\n\n## Quick Reference\n\n| Need | Action |\n|------|--------|\n| Empty result, live tool | Call the tool once; capture the response verbatim |\n| Candidate seed sources | Read the function; count each source table directly |\n| Live counts | `probe_seed_sources.py --db \u003Cdb> --sql \"SELECT COUNT(*) …\"` |\n| Kill a suspect theory | `search_files` the function for its network \u002F LLM call sites |\n| Prove a repair | Same probe against a copy, with the flag flipped |\n| Blast radius | Run the side-effecting cycle on two copies, compare metrics |\n| Commit + verify remote | `git push`, then `git ls-remote` + `gh api …\u002Fcommits\u002F\u003Cbranch>` |\n| Record the finding | Wiki concept page + `ebbinghaus_memory(action=\"remember\")` |\n\n## Procedure\n\n1. **Capture the empty result verbatim.** One call to the real tool. Record whether the\n   response distinguishes *disabled* from *enabled-but-empty* — several tools return both, and\n   an `enabled: true` flag with an empty list is a different bug from `enabled: false`.\n\n2. **Enumerate every source the function can draw from.** Read the implementation and list\n   each query feeding its focus set. Do not accept the first source you find; a focus set with\n   two independent inputs needs both counted.\n\n3. **Count each source in the live DB.** Use the probe with one `--sql` per source. Zero rows\n   in every source means the empty result is **structural, not transient** — there was never\n   anything to assemble. That single measurement usually ends the investigation.\n\n4. **Falsify the leading suspect explicitly.** For a \"the provider\u002FLLM is broken\" theory, read\n   the function under repair and search it for network or model call sites. If there are none,\n   the theory cannot explain the symptom: record that it is a *separate* failure and stop\n   chasing it. Name the correct failure you did find, so the earlier note stops misleading.\n\n5. **Prove the repair on a copy, never on the live store.** Copy the DB into temp, construct\n   the store object against the copy, flip the flag or seed the rows, and drive the full chain\n   end to end (trigger → assemble → propose → validate → promote). Record the promoted id and\n   the before\u002Fafter counts. This also proves the repair is sufficient rather than merely\n   correlated.\n\n6. **Measure blast radius before recommending the flip.** Run the side-effecting cycle on two\n   copies — one with the flag off, one with it on — and diff the metrics. Equal results are the\n   evidence that the change is safe; equal-by-luck is not the same as equal-by-measurement.\n\n7. **Re-run the original tool once.** One call. Never twice (see Pitfalls). Confirm the count\n   moved and report the residual manual step (a restart) as **unverified** until the runtime\n   actually reports the new state.\n\n8. **Record, then commit, then verify the remote.** Write the root cause into the durable\n   concept page, note the unverified step explicitly, commit with a scoped message, push, and\n   confirm with three independent checks: local `rev-parse`, `git ls-remote`, and the forge API.\n   Write the run result back into the memory system **after** the commit, and say so in the\n   record so the exported snapshot is not mistaken for post-write-back state.\n\n## Pitfalls\n\n- **A repeat call can fake a regression.** A `UNIQUE` fingerprint column plus a swallowed\n  `IntegrityError` makes the second identical call return empty while the first row is stored.\n  Verified pattern: preview → 1 result, immediate re-preview → 0, row count still 1. Delete the\n  row before re-testing or the check lies.\n- **Never seed or repair the production DB to make a check pass.** `shutil.copy2` into temp,\n  run the whole chain there, then apply the real change only after the copy passes.\n- **The runtime code may not be the repo code.** Compare file hashes between the repo module and\n  the installed package the interpreter actually imports, and compare version strings. Edit and\n  diagnose the one that runs.\n- **Config flags load at startup.** A flipped flag changes nothing until the process restarts,\n  and the live status call keeps reporting the old value until then. Report that step as\n  pending, never as done.\n- **\"Empty\" is often \"no qualifying input\", by design.** When a threshold must be both rare\n  enough to miss and common enough to be shared, a low hit rate is the mechanism working. Probe\n  many samples, report the rate, and do not treat frequent failure as a bug.\n- **Count parity is not loss-freedom.** Two snapshots with equal item counts can differ by\n  removed-and-added rows. Diff exact keys and classify revisions, additions, and churn.\n- **Byte-size differences across a push are usually line endings.** `core.autocrlf=true` with no\n  `.gitattributes` inflates the checked-out copy. Compare blob hashes, not sizes, before calling\n  a file corrupt.\n- **Windows shell blocks long commands.** `command length exceeds safe limit` also breaks\n  `read_file` and `search_files`; switch to Python inside `execute_code` and read files with\n  `open(..., encoding=\"utf-8\")`.\n- **Python 3.11 inspection scripts reject backslashes in f-string expressions.** Precompute the\n  value into a variable, then format it.\n- **A private-repo snapshot can still carry session excerpts** in label fields even with secret\n  patterns clean. Zero secret-pattern hits is not the same as zero disclosure risk.\n\n## Verification\n\n```bash\npython scripts\u002Fprobe_seed_sources.py --db \"\u003Clive.db>\" --sql \"SELECT COUNT(*) FROM \u003Cfocus_table>\"\n```\n\nPassing means the probe read the DB and reported a count; the investigation is only complete\nwhen **every** enumerated source is non-empty in the live store *or* the empty ones are named\nas the root cause, the suspect theory is recorded as falsified, and the repair is demonstrated\non a copy.\n",{"name":5,"author":44,"license":15,"version":45,"metadata":46,"description":7},"Hermes","0.1.0",{"hermes":47},{"tags":48,"related_skills":55},[49,50,51,52,53,54],"Debugging","Memory","Semantic-Graph","SQLite","Root-Cause","Verification",[56,57,58,59],"systematic-debugging","hakua-memory-dev","memory-consolidation-sleep-obsidian-sync","python-sqlite-script-safety","main","0d1434f89f4bc6b07e9d272accd8c1013768820f","archive\u002Fskill-md-reviewed\u002Fsha256\u002Ff4\u002Ff432d2c6a5a9c768d6838a198beaa1762b9e90bfa05508eac4c79cdb8d475161",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":69,"prompt":79,"zipAvailable":80},[70,73,76],{"tool":71,"command":72},"npx","npx skills add zapabob\u002FSkills --skill empty-pipeline-root-cause",{"tool":74,"command":75},"bunx","bunx skills add zapabob\u002FSkills --skill empty-pipeline-root-cause",{"tool":77,"command":78},"pnpm","pnpm dlx skills add zapabob\u002FSkills --skill empty-pipeline-root-cause","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fzapabob\u002FSkills\u002Fblob\u002Fmain\u002Farchive\u002Fskill-md-reviewed\u002Fsha256\u002Ff4\u002Ff432d2c6a5a9c768d6838a198beaa1762b9e90bfa05508eac4c79cdb8d475161\u002FSKILL.md",true,[],[83,121,156,183,210,227],{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":102,"publishedAt":39},"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",[89,94,97],{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",{"categoryNo":95,"categoryName":96,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000023","Skill与智能体开发",{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[85,103,104,105,106,107,108,109,110,111,112,113,114,115,116,117,60,118,119,120],"openclaw","macos","cli","github","linux","windows","official","search","https","social-media","api","Media","hermes","hermes agent","twitter","social","via","post",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":138,"publishedAt":39},"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",[127,130,133,134,135],{"categoryNo":128,"categoryName":129,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":131,"categoryName":132,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":95,"categoryName":96,"taxonomyType":92,"taxonomyTypeDesc":93},{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},{"categoryNo":136,"categoryName":137,"taxonomyType":100,"taxonomyTypeDesc":101},"01JBSEEDCAT000000000000036","内容创作者",[139,140,141,142,104,143,107,144,108,145,146,147,148,149,150,151,152,153,154,155],"writing","writing plans","plans","design","review","workflow","documentation","tasks","development","code","planning","code-review","subagent","write","superpowers","paths","test-driven-development",{"skillNo":157,"name":158,"nameZh":6,"description":159,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":160,"categories":161,"keywords":165,"publishedAt":39},"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",[162],{"categoryNo":163,"categoryName":164,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000016","图像与多媒体",[158,104,107,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,182],"openai","speech","multimodal","Transformers","ASR","Audio","text","model","speech recognition","use","general","multilingual","translation","english","identification","processing","Audio Processing",{"skillNo":184,"name":185,"nameZh":6,"description":186,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":187,"categories":188,"keywords":192,"publishedAt":39},"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",[189],{"categoryNo":190,"categoryName":191,"taxonomyType":92,"taxonomyTypeDesc":93},"01JBSEEDCAT000000000000013","分析与可视化",[193,104,194,195,108,196,197,198,199,200,201,173,202,203,204,205,206,207,208,209],"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":211,"name":212,"nameZh":6,"description":213,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":214,"categories":215,"keywords":217,"publishedAt":39},"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",[216],{"categoryNo":95,"categoryName":96,"taxonomyType":92,"taxonomyTypeDesc":93},[212,104,218,106,107,219,220,221,222,223,224,115,116,225,226],"terminal","automation","http","monitoring","cron","json","rss","devops","with",{"skillNo":228,"name":229,"nameZh":6,"description":230,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":231,"categories":232,"keywords":235,"publishedAt":39},"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",[233,234],{"categoryNo":90,"categoryName":91,"taxonomyType":92,"taxonomyTypeDesc":93},{"categoryNo":98,"categoryName":99,"taxonomyType":100,"taxonomyTypeDesc":101},[236,237,238,107,239,166,240,241,242,169,243,113,244,245,246,247,248,249,250,251],"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"]