[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M76QXVGEXAVVRRNZMXHFHT6G":3,"skill-same:01M76QXVGEXAVVRRNZMXHFHT6G":183},{"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":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":21,"frontMatter":22,"refName":39,"commitSha":40,"skillDirectory":41,"forksCount":13,"repositoryHtmlUrl":42,"repositoryHomepageUrl":6,"ownerHtmlUrl":43,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":44,"install":45,"resources":58},"01M76QXVGEXAVVRRNZMXHFHT6G","research-library",null,"Local-first multimedia research library for hardware projects. Capture code, CAD, PDFs, images. Search with material-type weighting. Project isolation with cross-references. Async extraction. Backup + restore.","meghal86\u002Fstacksignal","meghal86","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F37388715?v=4","01M6CS2EW8SK89GH52R2ZEN8QQ","01M728J5CGY456EETEFG6HJBTM",0,"MIT","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"---\nname: research-library\ndescription: Local-first multimedia research library for hardware projects. Capture code, CAD, PDFs, images. Search with material-type weighting. Project isolation with cross-references. Async extraction. Backup + restore.\nversion: 0.1.0\nauthor: Sage (for Jon Buckles)\nlicense: MIT\ntags:\n  - knowledge-management\n  - research\n  - hardware\n  - documentation\n  - sqlite\n  - fts5\nrepository: https:\u002F\u002Fgithub.com\u002F[user]\u002Fresearch-library\nkeywords:\n  - library\n  - search\n  - extraction\n  - project-management\n  - knowledge-base\n---\n\n# Research Library Skill\n\nA local-first multimedia research library for capturing, organizing, and searching hardware project knowledge.\n\n## What It Does\n\n- **Store documents** — Code, PDFs, CAD files, images, schematics\n- **Extract automatically** — Text from PDFs, EXIF from images, functions from code\n- **Search intelligently** — Full-text with material-type weighting (your work ranks higher than external research)\n- **Project isolation** — Arduino separate from CNC; no contamination\n- **Cross-reference** — Link knowledge: \"this servo tuning applies to that project\"\n- **Async extraction** — Searches never block while OCR runs\n- **Backup daily** — 30-day rolling snapshots\n\n## Installation\n\n```bash\nclawhub install research-library\n# OR\npip install \u002Fpath\u002Fto\u002Fresearch-library\n```\n\n## Quick Start\n\n```bash\n# Initialize database\nreslib status\n\n# Add a project\nreslib add ~\u002Fprojects\u002Farduino\u002Fservo.py --project arduino --material-type reference\n\n# Search\nreslib search \"servo tuning\"\n\n# Link knowledge\nreslib link 5 12 --type applies_to\n```\n\n## Features\n\n### CLI Commands\n- `reslib add` — Import documents (auto-detect + extract)\n- `reslib search` — Full-text search with filters\n- `reslib get` — View document details\n- `reslib archive` \u002F `reslib unarchive` — Manage documents\n- `reslib export` — Export as JSON\u002FMarkdown\n- `reslib link` — Create document relationships\n- `reslib projects` — Manage projects\n- `reslib tags` — Manage tags\n- `reslib status` — System overview\n- `reslib backup` \u002F `reslib restore` — Snapshots\n- `reslib smoke_test.sh` — Quick validation\n\n### Technical\n- **Storage:** SQLite 3.45+ with FTS5 virtual table\n- **Extraction:** PDF (pdfplumber + OCR), images (EXIF + OCR), code (AST + regex)\n- **Confidence Scoring:** 0.0-1.0 based on quality + source\n- **Material Weighting:** Reference (1.0) vs Research (0.5)\n- **Project Isolation:** Scoped searches, no contamination\n- **Async Workers:** 2-4 configurable extraction workers\n- **Catalog Separation:** real_world vs openclaw projects\n- **Backup:** Daily snapshots, 30-day retention\n\n## Configuration\n\nCopy `reslib\u002Fconfig.json` and customize:\n\n```json\n{\n  \"db_path\": \"~\u002F.openclaw\u002Fresearch\u002Flibrary.db\",\n  \"num_workers\": 2,\n  \"worker_timeout_sec\": 300,\n  \"max_retries\": 3,\n  \"backup_retention_days\": 30,\n  \"backup_dir\": \"~\u002F.openclaw\u002Fresearch\u002Fbackups\",\n  \"file_size_limit_mb\": 200,\n  \"project_size_limit_gb\": 2\n}\n```\n\n## Integration with War Room\n\nUse RL1 protocol in war room DNA:\n\n```python\nfrom reslib import ResearchDatabase, ResearchSearch\n\ndb = ResearchDatabase()\nsearch = ResearchSearch(db)\n\n# Before researching, check existing knowledge\nprior = search.search(\"servo tuning\", project=\"rc-quadcopter\")\nif prior:\n    print(f\"Found {len(prior)} prior items\")\nelse:\n    # New research needed...\n    db.add_research(title=\"...\", content=\"...\", ...)\n```\n\n## Performance\n\nAll targets exceeded:\n\n| Operation | Target | Actual |\n|-----------|--------|--------|\n| PDF extraction | \u003C100ms | 20.6ms |\n| Search (50 docs) | \u003C100ms | 0.33ms |\n| Worker throughput | >6\u002Fsec | 414.69\u002Fsec |\n\n## Testing\n\n```bash\n# Run all tests\npytest tests\u002F\n\n# Quick smoke test\nbash reslib\u002Fsmoke_test.sh\n\n# Performance tests\npytest tests\u002Ftest_integration.py -v -k stress\n```\n\n## Known Limitations (Phase 2)\n\n- OCR quality varies on hand-drawn sketches\n- FTS5 designed for \u003C10K documents (PostgreSQL path for scale)\n- No automatic web research gathering (manual only)\n- Vector embeddings ready but inactive\n- CAD file parsing is metadata-only\n\n## Documentation\n\nSee `\u002Fdocs\u002F`:\n- `CLI-REFERENCE.md` — All commands + examples\n- `EXTRACTION-GUIDE.md` — How extraction works\n- `SEARCH-GUIDE.md` — Ranking + weighting\n- `WORKER-GUIDE.md` — Async queue details\n- `INTEGRATION.md` — War room RL1 protocol\n\n## Phase 2 Roadmap\n\n- Real-world PDF calibration\n- FTS5 scaling tests (10K docs)\n- Auto-detection (reference vs research)\n- Web research enrichment\n- Vector embeddings (semantic search)\n- PostgreSQL upgrade path\n\n## Building From Source\n\n```bash\ncd research-library\npip install -e .\npytest tests\u002F\npython -m reslib status\n```\n\n## Support\n\nIssues? See TECHNICAL-NOTES.md for troubleshooting.\n\n---\n\n*Production-ready MVP. 214 tests passing. 15K lines. Ready to use.*\n","# Research Library Skill\n\nA local-first multimedia research library for capturing, organizing, and searching hardware project knowledge.\n\n## What It Does\n\n- **Store documents** — Code, PDFs, CAD files, images, schematics\n- **Extract automatically** — Text from PDFs, EXIF from images, functions from code\n- **Search intelligently** — Full-text with material-type weighting (your work ranks higher than external research)\n- **Project isolation** — Arduino separate from CNC; no contamination\n- **Cross-reference** — Link knowledge: \"this servo tuning applies to that project\"\n- **Async extraction** — Searches never block while OCR runs\n- **Backup daily** — 30-day rolling snapshots\n\n## Installation\n\n```bash\nclawhub install research-library\n# OR\npip install \u002Fpath\u002Fto\u002Fresearch-library\n```\n\n## Quick Start\n\n```bash\n# Initialize database\nreslib status\n\n# Add a project\nreslib add ~\u002Fprojects\u002Farduino\u002Fservo.py --project arduino --material-type reference\n\n# Search\nreslib search \"servo tuning\"\n\n# Link knowledge\nreslib link 5 12 --type applies_to\n```\n\n## Features\n\n### CLI Commands\n- `reslib add` — Import documents (auto-detect + extract)\n- `reslib search` — Full-text search with filters\n- `reslib get` — View document details\n- `reslib archive` \u002F `reslib unarchive` — Manage documents\n- `reslib export` — Export as JSON\u002FMarkdown\n- `reslib link` — Create document relationships\n- `reslib projects` — Manage projects\n- `reslib tags` — Manage tags\n- `reslib status` — System overview\n- `reslib backup` \u002F `reslib restore` — Snapshots\n- `reslib smoke_test.sh` — Quick validation\n\n### Technical\n- **Storage:** SQLite 3.45+ with FTS5 virtual table\n- **Extraction:** PDF (pdfplumber + OCR), images (EXIF + OCR), code (AST + regex)\n- **Confidence Scoring:** 0.0-1.0 based on quality + source\n- **Material Weighting:** Reference (1.0) vs Research (0.5)\n- **Project Isolation:** Scoped searches, no contamination\n- **Async Workers:** 2-4 configurable extraction workers\n- **Catalog Separation:** real_world vs openclaw projects\n- **Backup:** Daily snapshots, 30-day retention\n\n## Configuration\n\nCopy `reslib\u002Fconfig.json` and customize:\n\n```json\n{\n  \"db_path\": \"~\u002F.openclaw\u002Fresearch\u002Flibrary.db\",\n  \"num_workers\": 2,\n  \"worker_timeout_sec\": 300,\n  \"max_retries\": 3,\n  \"backup_retention_days\": 30,\n  \"backup_dir\": \"~\u002F.openclaw\u002Fresearch\u002Fbackups\",\n  \"file_size_limit_mb\": 200,\n  \"project_size_limit_gb\": 2\n}\n```\n\n## Integration with War Room\n\nUse RL1 protocol in war room DNA:\n\n```python\nfrom reslib import ResearchDatabase, ResearchSearch\n\ndb = ResearchDatabase()\nsearch = ResearchSearch(db)\n\n# Before researching, check existing knowledge\nprior = search.search(\"servo tuning\", project=\"rc-quadcopter\")\nif prior:\n    print(f\"Found {len(prior)} prior items\")\nelse:\n    # New research needed...\n    db.add_research(title=\"...\", content=\"...\", ...)\n```\n\n## Performance\n\nAll targets exceeded:\n\n| Operation | Target | Actual |\n|-----------|--------|--------|\n| PDF extraction | \u003C100ms | 20.6ms |\n| Search (50 docs) | \u003C100ms | 0.33ms |\n| Worker throughput | >6\u002Fsec | 414.69\u002Fsec |\n\n## Testing\n\n```bash\n# Run all tests\npytest tests\u002F\n\n# Quick smoke test\nbash reslib\u002Fsmoke_test.sh\n\n# Performance tests\npytest tests\u002Ftest_integration.py -v -k stress\n```\n\n## Known Limitations (Phase 2)\n\n- OCR quality varies on hand-drawn sketches\n- FTS5 designed for \u003C10K documents (PostgreSQL path for scale)\n- No automatic web research gathering (manual only)\n- Vector embeddings ready but inactive\n- CAD file parsing is metadata-only\n\n## Documentation\n\nSee `\u002Fdocs\u002F`:\n- `CLI-REFERENCE.md` — All commands + examples\n- `EXTRACTION-GUIDE.md` — How extraction works\n- `SEARCH-GUIDE.md` — Ranking + weighting\n- `WORKER-GUIDE.md` — Async queue details\n- `INTEGRATION.md` — War room RL1 protocol\n\n## Phase 2 Roadmap\n\n- Real-world PDF calibration\n- FTS5 scaling tests (10K docs)\n- Auto-detection (reference vs research)\n- Web research enrichment\n- Vector embeddings (semantic search)\n- PostgreSQL upgrade path\n\n## Building From Source\n\n```bash\ncd research-library\npip install -e .\npytest tests\u002F\npython -m reslib status\n```\n\n## Support\n\nIssues? See TECHNICAL-NOTES.md for troubleshooting.\n\n---\n\n*Production-ready MVP. 214 tests passing. 15K lines. Ready to use.*\n",{"name":5,"tags":23,"author":30,"license":14,"version":31,"keywords":32,"repository":38,"description":7},[24,25,26,27,28,29],"knowledge-management","research","hardware","documentation","sqlite","fts5","Sage (for Jon Buckles)","0.1.0",[33,34,35,36,37],"library","search","extraction","project-management","knowledge-base","https:\u002F\u002Fgithub.com\u002F[user]\u002Fresearch-library","main","54afe4b75ed2eb8f0feabb2f5b57dfa4bcbb3c44",".agents\u002Fskills\u002Fresearch-library","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal","https:\u002F\u002Fgithub.com\u002Fmeghal86","2026-05-17 14:11:28",{"source":8,"skillName":5,"commands":46,"prompt":56,"zipAvailable":57},[47,50,53],{"tool":48,"command":49},"npx","npx skills add meghal86\u002Fstacksignal --skill research-library",{"tool":51,"command":52},"bunx","bunx skills add meghal86\u002Fstacksignal --skill research-library",{"tool":54,"command":55},"pnpm","pnpm dlx skills add meghal86\u002Fstacksignal --skill research-library","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002FSKILL.md",true,[59,65,69,73,77,81,85,89,93,99,103,107,111,115,119,123,127,131,135,139,143,147,151,155,159,163,167,171,175,179],{"path":60,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":63,"sourceHtmlUrl":64},"_meta.json","REFERENCE","参考文档",288,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002F_meta.json",{"path":66,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":67,"sourceHtmlUrl":68},"BUILD_LOG.md",3606,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002FBUILD_LOG.md",{"path":70,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":71,"sourceHtmlUrl":72},"docs\u002FCLI-REFERENCE.md",12399,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Fdocs\u002FCLI-REFERENCE.md",{"path":74,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":75,"sourceHtmlUrl":76},"docs\u002FEXTRACTION-GUIDE.md",9094,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Fdocs\u002FEXTRACTION-GUIDE.md",{"path":78,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":79,"sourceHtmlUrl":80},"docs\u002FSEARCH-GUIDE.md",10610,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Fdocs\u002FSEARCH-GUIDE.md",{"path":82,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":83,"sourceHtmlUrl":84},"docs\u002FWORKER-GUIDE.md",12091,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Fdocs\u002FWORKER-GUIDE.md",{"path":86,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":87,"sourceHtmlUrl":88},"PHASE1-FINAL-METRICS.md",5157,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002FPHASE1-FINAL-METRICS.md",{"path":90,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":91,"sourceHtmlUrl":92},"RESEARCH-LIBRARY-SKILL.md",10616,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002FRESEARCH-LIBRARY-SKILL.md",{"path":94,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":97,"sourceHtmlUrl":98},"reslib\u002F__init__.py","SCRIPT","脚本",2116,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002F__init__.py",{"path":100,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":101,"sourceHtmlUrl":102},"reslib\u002F__main__.py",190,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002F__main__.py",{"path":104,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":105,"sourceHtmlUrl":106},"reslib\u002Fcli.py",56117,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002Fcli.py",{"path":108,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":109,"sourceHtmlUrl":110},"reslib\u002Fdatabase.py",13284,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002Fdatabase.py",{"path":112,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":113,"sourceHtmlUrl":114},"reslib\u002Fextractor.py",54975,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002Fextractor.py",{"path":116,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":117,"sourceHtmlUrl":118},"reslib\u002Fmodels.py",5005,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002Fmodels.py",{"path":120,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":121,"sourceHtmlUrl":122},"reslib\u002Fqueue.py",23234,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002Fqueue.py",{"path":124,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":125,"sourceHtmlUrl":126},"reslib\u002Franking.py",24956,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002Franking.py",{"path":128,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":129,"sourceHtmlUrl":130},"reslib\u002Fschema.py",21338,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002Fschema.py",{"path":132,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":133,"sourceHtmlUrl":134},"reslib\u002Fsearch.py",56734,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002Fsearch.py",{"path":136,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":137,"sourceHtmlUrl":138},"reslib\u002Fsmoke_test.sh",9717,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002Fsmoke_test.sh",{"path":140,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":141,"sourceHtmlUrl":142},"reslib\u002Fworker.py",39021,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Freslib\u002Fworker.py",{"path":144,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":145,"sourceHtmlUrl":146},"TECHNICAL-NOTES.md",6625,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002FTECHNICAL-NOTES.md",{"path":148,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":149,"sourceHtmlUrl":150},"tests\u002F__init__.py",34,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Ftests\u002F__init__.py",{"path":152,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":153,"sourceHtmlUrl":154},"tests\u002Ftest_cli.py",28890,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Ftests\u002Ftest_cli.py",{"path":156,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":157,"sourceHtmlUrl":158},"tests\u002Ftest_extractor.py",33440,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Ftests\u002Ftest_extractor.py",{"path":160,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":161,"sourceHtmlUrl":162},"tests\u002Ftest_integration.py",68859,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Ftests\u002Ftest_integration.py",{"path":164,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":165,"sourceHtmlUrl":166},"tests\u002Ftest_schema.py",19328,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Ftests\u002Ftest_schema.py",{"path":168,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":169,"sourceHtmlUrl":170},"tests\u002Ftest_search.py",33792,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Ftests\u002Ftest_search.py",{"path":172,"resourceType":95,"resourceTypeDesc":96,"sizeBytes":173,"sourceHtmlUrl":174},"tests\u002Ftest_worker.py",26248,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Ftests\u002Ftest_worker.py",{"path":176,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":177,"sourceHtmlUrl":178},"war-room\u002FBUILD_LOG.md",5904,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Fwar-room\u002FBUILD_LOG.md",{"path":180,"resourceType":61,"resourceTypeDesc":62,"sizeBytes":181,"sourceHtmlUrl":182},"war-room\u002FDECISIONS.md",2466,"https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fresearch-library\u002Fwar-room\u002FDECISIONS.md",[184,193,201,209,217,224],{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":188,"sourceHtmlUrl":189,"categories":190,"keywords":191,"publishedAt":192},"01M78XH0FRP65NYEDHF2BT7NB1","zvukogram","Text-to-Speech via Zvukogram API with SSML support. Use when you need to generate speech from text, create podcasts, voice notifications, or work with audio. Supports speed control, stress marks, English word transcription, and audio fragment merging.","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzvukogram\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzvukogram\u002FSKILL.md",[],[],"2026-11-15 14:19:17",{"skillNo":194,"name":195,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":197,"sourceHtmlUrl":198,"categories":199,"keywords":200,"publishedAt":192},"01M78XEND5ASXYB6MN8AQQGJAF","zohomail","Zoho Mail API integration with managed OAuth. Send, receive, and manage emails, folders, and labels.\nUse this skill when users want to send emails, read messages, manage folders, or work with email labels in Zoho Mail.\nFor other third party apps, use the api-gateway skill (https:\u002F\u002Fclawhub.ai\u002Fbyungkyu\u002Fapi-gateway).\nRequires network access and valid Maton API key.","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzohomail\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzohomail\u002FSKILL.md",[],[],{"skillNo":202,"name":203,"nameZh":6,"description":204,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":205,"sourceHtmlUrl":206,"categories":207,"keywords":208,"publishedAt":192},"01M78XEBBV3C6DRZFAJXP6RDKS","zoho-recruit","Zoho Recruit API integration with managed OAuth. Manage candidates, job openings, interviews, and recruitment workflows.\nUse this skill when users want to read, create, update, or search recruitment data like candidates, job openings, interviews, and applications in Zoho Recruit.\nFor other third party apps, use the api-gateway skill (https:\u002F\u002Fclawhub.ai\u002Fbyungkyu\u002Fapi-gateway).\nRequires network access and valid Maton API key.","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzoho-recruit\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzoho-recruit\u002FSKILL.md",[],[],{"skillNo":210,"name":211,"nameZh":6,"description":212,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":213,"sourceHtmlUrl":214,"categories":215,"keywords":216,"publishedAt":192},"01M78XE5CQG75DZWYSKGXFR99T","zoho-people","Zoho People API integration with managed OAuth. Manage employees, departments, designations, attendance, and leave.\nUse this skill when users want to read, create, update, or query HR data like employees, departments, designations, and forms in Zoho People.\nFor other third party apps, use the api-gateway skill (https:\u002F\u002Fclawhub.ai\u002Fbyungkyu\u002Fapi-gateway).\nRequires network access and valid Maton API key.","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzoho-people\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzoho-people\u002FSKILL.md",[],[],{"skillNo":218,"name":219,"nameZh":6,"description":196,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":220,"sourceHtmlUrl":221,"categories":222,"keywords":223,"publishedAt":192},"01M78XDZKMZAJYFJJFT7MR5ZN2","zoho-mail","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzoho-mail\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzoho-mail\u002FSKILL.md",[],[],{"skillNo":225,"name":226,"nameZh":6,"description":227,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":228,"sourceHtmlUrl":229,"categories":230,"keywords":231,"publishedAt":192},"01M78XDST8JK0WVDA1F3VPNWXD","zoho-inventory","Zoho Inventory API integration with managed OAuth. Manage items, sales orders, invoices, purchase orders, bills, contacts, and shipments.\nUse this skill when users want to read, create, update, or delete inventory items, sales orders, invoices, purchase orders, bills, or other inventory records in Zoho Inventory.\nFor other third party apps, use the api-gateway skill (https:\u002F\u002Fclawhub.ai\u002Fbyungkyu\u002Fapi-gateway).\nRequires network access and valid Maton API key.","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzoho-inventory\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fmeghal86\u002Fstacksignal\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fzoho-inventory\u002FSKILL.md",[],[]]