[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"extension-skill-iamzhihuix-trends-bulletin-zh-CN":3,"guides-for-iamzhihuix-trends-bulletin":279,"similar-k178p33da6e9qjar14t92sd7sh867v2p":280},{"_creationTime":4,"_id":5,"children":6,"community":7,"display":9,"evaluation":21,"identity":188,"isFallback":193,"parentExtension":194,"providers":256,"relations":260,"repo":261,"workflow":278},1778053197391.3782,"k178p33da6e9qjar14t92sd7sh867v2p",[],{"reviewCount":8},0,{"description":10,"installMethods":11,"name":12,"sourceUrl":13,"tags":14},"多平台热词速报，采集 HuggingFace、GitHub、Hacker News、Product Hunt、Reddit、YouTube 6 个平台的热门趋势并推送到 Telegram。当用户提到热词速报、趋势推送、多平台趋势、trends bulletin 时使用此 skill。",{},"多平台热词速报","https://github.com/iamzhihuix/happy-claude-skills/tree/HEAD/skills/trends-bulletin",[15,16,17,18,19,20],"trends","telegram","scraping","api","typescript","bun",{"_creationTime":22,"_id":23,"extensionId":5,"locale":24,"result":25,"trustSignals":177,"workflow":186},1778053284450.2944,"kn76egzzd5wn9xsm2dss2w3jx58672kq","en",{"checks":26,"evaluatedAt":167,"extensionSummary":168,"promptVersionExtension":169,"promptVersionScoring":170,"rationale":171,"score":172,"summary":173,"tags":174,"targetMarket":175,"tier":176},[27,32,35,38,42,45,50,54,57,60,64,68,71,75,78,81,84,87,90,93,96,100,104,108,113,116,119,122,126,129,132,135,138,141,145,148,151,154,157,160,164],{"category":28,"check":29,"severity":30,"summary":31},"Practical Utility","Problem relevance","pass","The displayed description clearly states the problem: fetching trending topics from multiple platforms and pushing them to Telegram, with specific trigger phrases provided.",{"category":28,"check":33,"severity":30,"summary":34},"Unique selling proposition","The skill aggregates data from six distinct platforms, performs AI analysis for key trends, and formats the output for Telegram, offering significant value beyond a simple prompt.",{"category":28,"check":36,"severity":30,"summary":37},"Production readiness","The skill is production-ready, with clear dependencies, environment variable configurations, and execution instructions provided. It handles data fetching, AI analysis, and output formatting.",{"category":39,"check":40,"severity":30,"summary":41},"Scope","Single responsibility principle","The skill focuses on a single responsibility: gathering trending topics from multiple platforms and delivering them via Telegram, with optional AI trend analysis.",{"category":39,"check":43,"severity":30,"summary":44},"Description quality","The displayed description is concise, accurate, and clearly outlines the skill's functionality and use cases in Chinese, matching the provided source code.",{"category":46,"check":47,"severity":48,"summary":49},"Invocation","Scoped tools","not_applicable","This skill does not expose tools in the traditional sense; it's a single script execution. There are no narrow verb-noun specialist tools to evaluate.",{"category":51,"check":52,"severity":30,"summary":53},"Documentation","Configuration & parameter reference","All required and optional environment variables are clearly documented with their purpose, and default values are provided where applicable.",{"category":39,"check":55,"severity":48,"summary":56},"Tool naming","This skill does not expose user-facing tools with specific names; it is invoked as a single script.",{"category":39,"check":58,"severity":30,"summary":59},"Minimal I/O surface","The script takes configuration via environment variables and command-line flags. The output is a formatted message for Telegram, with no extraneous data.",{"category":61,"check":62,"severity":30,"summary":63},"License","License usability","The extension includes a standard MIT License file, which is a permissive open-source license.",{"category":65,"check":66,"severity":48,"summary":67},"Maintenance","Commit recency","The trust signals indicate 'n/a' for 'Last commit on default branch (pushedAt)' and 'n/a' for other repository metadata, suggesting this check cannot be performed.",{"category":65,"check":69,"severity":48,"summary":70},"Dependency Management","The skill uses Bun's built-in fetch and has no external npm/package dependencies beyond the Bun runtime itself, which is assumed to be installed.",{"category":72,"check":73,"severity":30,"summary":74},"Security","Secret Management","Secrets (API keys, tokens) are handled via environment variables and are not hardcoded or echoed into output. The script explicitly avoids logging secrets.",{"category":72,"check":76,"severity":30,"summary":77},"Injection","The script fetches data from external APIs and processes it. There are no explicit clauses or markers regarding untrusted content, but the script's deterministic nature of API calls suggests a low risk of injection.",{"category":72,"check":79,"severity":30,"summary":80},"Transitive Supply-Chain Grenades","The script relies on fetched data from APIs and uses the Bun runtime. It does not appear to download or execute arbitrary code from remote sources, nor does it use remote-pipe-to-shell patterns.",{"category":72,"check":82,"severity":30,"summary":83},"Sandbox Isolation","The script's operations are confined to API calls and sending messages to Telegram. It does not interact with or modify files outside its intended scope.",{"category":72,"check":85,"severity":30,"summary":86},"Sandbox escape primitives","The script does not employ any sandbox escape primitives such as detached processes or retry loops around denied tool calls.",{"category":72,"check":88,"severity":30,"summary":89},"Data Exfiltration","The script only sends collected trending data to Telegram. API keys are used for fetching data and are not exfiltrated or logged. Outbound calls are to documented API endpoints.",{"category":72,"check":91,"severity":30,"summary":92},"Hidden Text Tricks","The bundled files (TypeScript, Markdown, JSON, .gitignore, LICENSE) do not contain any hidden text tricks, invisible Unicode characters, or other obfuscation methods.",{"category":72,"check":94,"severity":30,"summary":95},"Opaque code execution","The TypeScript code is plain and readable. There is no obfuscation, base64-decoded payloads, or runtime code fetching.",{"category":97,"check":98,"severity":30,"summary":99},"Portability","Structural Assumption","The script makes no assumptions about the user's project structure beyond needing access to environment variables and the script's own location via `{baseDir}`.",{"category":101,"check":102,"severity":48,"summary":103},"Trust","Issues Attention","Trust signals indicate 'n/a' for 'Issues Opened' and 'Issues Closed', making it impossible to evaluate maintainer engagement.",{"category":105,"check":106,"severity":30,"summary":107},"Versioning","Release Management","The `SKILL.md` frontmatter declares a `version: \"1.0.0\"`, fulfilling the requirement for a detectable version.",{"category":109,"check":110,"severity":111,"summary":112},"Code Execution","Validation","warning","While environment variables are checked for presence, the script does not use a schema library for validation or sanitization of input parameters (like API keys or substrings for processing).",{"category":72,"check":114,"severity":48,"summary":115},"Unguarded Destructive Operations","The skill is read-only; it fetches data and sends messages. It does not perform any destructive operations.",{"category":109,"check":117,"severity":111,"summary":118},"Error Handling","The script includes basic error handling for API calls (e.g., `throw new Error`) and checks for essential environment variables, but it relies on `console.log` for errors and exits with `process.exit(1)` on critical failures. More structured error reporting would improve agent interaction.",{"category":109,"check":120,"severity":111,"summary":121},"Logging","The script logs progress and errors to the console using `console.log`. However, it does not append to a local audit file for review of actions taken.",{"category":123,"check":124,"severity":48,"summary":125},"Compliance","GDPR","The skill primarily collects public trending data and does not appear to operate on personal data. API keys are configured by the user and not inherently personal data.",{"category":123,"check":127,"severity":30,"summary":128},"Target market","The skill is global in scope, collecting public data from international platforms and delivering it via Telegram, with no discernible regional limitations.",{"category":97,"check":130,"severity":30,"summary":131},"Runtime stability","The script is written in TypeScript and utilizes Bun, which is designed for cross-platform compatibility. It explicitly states its dependency on Bun and provides installation instructions.",{"category":46,"check":133,"severity":30,"summary":134},"Precise Purpose","The `SKILL.md` clearly defines the skill's purpose (collecting and pushing trends to Telegram) and provides specific trigger phrases for invocation.",{"category":46,"check":136,"severity":30,"summary":137},"Concise Frontmatter","The frontmatter is concise, self-contained, and accurately summarizes the core capability and trigger phrases within the character limit.",{"category":51,"check":139,"severity":30,"summary":140},"Concise Body","The skill body is well-structured and under 500 lines, delegating external API details and dependencies appropriately.",{"category":142,"check":143,"severity":48,"summary":144},"Context","Progressive Disclosure","The skill is straightforward and does not involve long procedures or complex workflows that would require progressive disclosure to separate files.",{"category":142,"check":146,"severity":48,"summary":147},"Forked exploration","This skill is not an exploration-heavy skill; it performs data collection and message sending, not deep code review or research. Therefore, `context: fork` is not applicable.",{"category":28,"check":149,"severity":30,"summary":150},"Usage examples","The `SKILL.md` provides a clear example of user input and the expected execution flow, demonstrating its functionality.",{"category":28,"check":152,"severity":111,"summary":153},"Edge cases","While the script handles missing environment variables and API call errors, it doesn't explicitly document other potential failure modes (e.g., API rate limits, malformed data from sources) or provide specific recovery steps for them.",{"category":109,"check":155,"severity":48,"summary":156},"Tool Fallback","The skill does not rely on external tools like an MCP server; it uses Bun's built-in fetch and standard Node.js process environment variables.",{"category":97,"check":158,"severity":30,"summary":159},"Stack assumptions","The skill clearly declares its stack assumption (Bun runtime) and provides installation instructions in both the README and SKILL.md.",{"category":161,"check":162,"severity":111,"summary":163},"Safety","Halt on unexpected state","The script checks for essential environment variables and exits if they are missing. However, it does not list preconditions in a machine-readable format, nor does it explicitly instruct to abort on other unexpected pre-states like API errors beyond basic error logging.",{"category":97,"check":165,"severity":30,"summary":166},"Cross-skill coupling","The skill is self-contained and does not implicitly rely on other skills. Its functionality is independent and clearly defined.",1778053249929,"This skill collects trending data from HuggingFace, GitHub, Hacker News, Product Hunt, Reddit, and YouTube, then formats and sends it to a Telegram chat. It can optionally perform AI analysis to identify key trends using Grok API, and its output can be customized via environment variables for Reddit subreddits and items per platform.","2.0.0","3.4.0","The extension is well-documented, clearly scoped, and includes all necessary configuration and execution instructions. While error handling could be more structured and edge cases more explicitly documented, these are minor points in an otherwise robust and functional skill.",85,"A highly polished and functional skill that aggregates trending topics from multiple popular platforms and delivers them via Telegram, with optional AI-driven trend analysis.",[15,16,17,18,19,20],"global","verified",{"codeQuality":178,"collectedAt":179,"documentation":180,"maintenance":182,"security":183,"testCoverage":185},{},1778053237596,{"descriptionLength":181,"readmeSize":8},142,{},{"hasNpmPackage":184,"smitheryVerified":184},false,{"hasCi":184,"hasTests":184},{"updatedAt":187},1778053284450,{"githubOwner":189,"githubRepo":190,"locale":24,"slug":191,"type":192},"iamzhihuix","happy-claude-skills","trends-bulletin","skill",true,{"_creationTime":195,"_id":196,"community":197,"display":198,"identity":210,"parentExtension":212,"providers":250,"relations":254,"workflow":255},1778053197391.3777,"k17c59n18nf2e3rre9spa6b2pn8663e4",{"reviewCount":8},{"description":199,"installMethods":200,"name":201,"sourceUrl":202,"tags":203},"Multi-platform trending topics bulletin with AI analysis, sends formatted report to Telegram",{},"Trends Bulletin","https://github.com/iamzhihuix/happy-claude-skills",[15,16,204,205,206,207,208,20,209],"huggingface","github","news","reddit","youtube","ai",{"githubOwner":189,"githubRepo":190,"locale":24,"slug":191,"type":211},"plugin",{"_creationTime":213,"_id":214,"community":215,"display":216,"identity":233,"providers":235,"relations":245,"workflow":247},1778053197391.3733,"k179bs7h81fd44w43crascabax866n51",{"reviewCount":8},{"description":217,"installMethods":218,"name":219,"sourceUrl":202,"tags":220},"Practical Claude Code skill plugins for document format replication, video processing, and content creation",{},"Happy Claude Skills",[209,221,222,223,224,225,226,227,228,229,230,231,232],"coding-assistant","developer-tools","document-processing","video-processing","content-creation","image-generation","video-generation","audio-generation","browser-automation","password-management","oss-prep","app-audit",{"githubOwner":189,"githubRepo":190,"locale":24,"slug":190,"type":234},"marketplace",{"extract":236,"llm":242},{"commitSha":237,"license":238,"marketplace":239},"f49e7782a551759c9f9e0a4d4417ff053f0a86fd","MIT",{"name":190,"pluginCount":240,"version":241},12,"1.0.0",{"promptVersionExtension":169,"promptVersionScoring":170,"score":243,"targetMarket":175,"tier":244},78,"evaluated",{"repoId":246},"kd7dbbtdq95nkcs3k7fg9w6fdn864j0b",{"anyEnrichmentAt":248,"extractAt":249,"githubAt":248,"llmAt":187,"updatedAt":187},1778053199195,1778053197391,{"extract":251,"llm":252},{"commitSha":237,"license":238},{"promptVersionExtension":169,"promptVersionScoring":170,"score":253,"targetMarket":175,"tier":244},75,{"parentExtensionId":214,"repoId":246},{"anyEnrichmentAt":248,"extractAt":249,"githubAt":248,"llmAt":187,"updatedAt":187},{"extract":257,"llm":259},{"commitSha":237,"license":258},"MIT-0",{"promptVersionExtension":169,"promptVersionScoring":170,"score":172,"targetMarket":175,"tier":176},{"parentExtensionId":196,"repoId":246},{"_creationTime":262,"_id":246,"identity":263,"providers":264,"workflow":275},1777995558409.8823,{"githubOwner":189,"githubRepo":190,"sourceUrl":202},{"discover":265,"github":268},{"sources":266},[267],"skills-sh",{"closedIssues90d":8,"forks":269,"license":238,"openIssues90d":270,"pushedAt":271,"readmeSize":272,"stars":273,"topics":274},28,1,1776647239000,9879,285,[],{"discoverAt":276,"extractAt":277,"githubAt":277,"updatedAt":277},1777995558409,1778053200076,{"anyEnrichmentAt":248,"extractAt":249,"githubAt":248,"llmAt":187,"updatedAt":187},[],[281,311,340,369,400,428],{"_creationTime":282,"_id":283,"community":284,"display":285,"identity":297,"providers":300,"relations":305,"workflow":307},1778053689272.9238,"k17a5hw81fhwybk1wxavs6mvjs8676ca",{"reviewCount":8},{"description":286,"installMethods":287,"name":288,"sourceUrl":289,"tags":290},"Set up a new Prisma Postgres database and connect it to a local project using the Management API. Use when asked to \"set up a database\", \"create a Prisma Postgres project\", \"get a connection string\", \"connect my app to Prisma Postgres\", or \"provision a database\".",{},"Prisma Postgres Setup","https://github.com/prisma/skills/tree/HEAD/prisma-postgres-setup",[291,292,293,294,295,18,19,296],"prisma","postgres","database","setup","connection","node-js",{"githubOwner":291,"githubRepo":298,"locale":24,"slug":299,"type":192},"skills","prisma-postgres-setup",{"extract":301,"llm":303},{"commitSha":302,"license":238},"741a74fdafc1bf61fa208c2f73878be688cba263",{"promptVersionExtension":169,"promptVersionScoring":170,"score":304,"targetMarket":175,"tier":176},99,{"repoId":306},"kd76h7swxyhk8405svecsqq7gh864y5s",{"anyEnrichmentAt":308,"extractAt":309,"githubAt":308,"llmAt":310,"updatedAt":310},1778053689723,1778053689272,1778053716548,{"_creationTime":312,"_id":313,"community":314,"display":315,"identity":326,"providers":329,"relations":334,"workflow":336},1778054711476.0596,"k17ed9jy1nygmcqva51bkzyyyd866r6h",{"reviewCount":8},{"description":316,"installMethods":317,"name":318,"sourceUrl":319,"tags":320},"Guides development of Fastify Node.js backend servers and REST APIs using TypeScript or JavaScript. Use when building, configuring, or debugging a Fastify application — including defining routes, implementing plugins, setting up JSON Schema validation, handling errors, optimising performance, managing authentication, configuring CORS and security headers, integrating databases, working with WebSockets, and deploying to production. Covers the full Fastify request lifecycle (hooks, serialization, logging with Pino) and TypeScript integration via strip types. Trigger terms: Fastify, Node.js server, REST API, API routes, backend framework, fastify.config, server.ts, app.ts.",{},"Fastify Best Practices","https://github.com/mcollina/skills/tree/HEAD/skills/fastify",[321,322,19,323,18,324,325],"fastify","nodejs","backend","server","http",{"githubOwner":327,"githubRepo":298,"locale":24,"slug":328,"type":192},"mcollina","fastify-best-practices",{"extract":330,"llm":332},{"commitSha":331,"license":238},"5b2a81354b6d10325da0db9decc9ce5ecc714138",{"promptVersionExtension":169,"promptVersionScoring":170,"score":333,"targetMarket":175,"tier":176},98,{"repoId":335},"kd7a9jywzfe3c5g5r1a62htmrn865rt1",{"anyEnrichmentAt":337,"extractAt":338,"githubAt":337,"llmAt":339,"updatedAt":339},1778054711844,1778054711476,1778054745098,{"_creationTime":341,"_id":342,"community":343,"display":344,"identity":355,"providers":359,"relations":363,"workflow":365},1778053622473.6658,"k17bbjjk7fn3ngqhcnvx7d97y9867yk9",{"reviewCount":8},{"description":345,"installMethods":346,"name":347,"sourceUrl":348,"tags":349},"Build and publish npx-executable CLI tools using Bun as the primary toolchain with npm-compatible output. Use when the user wants to create a new CLI tool, set up a command-line package for npx execution, configure argument parsing and terminal output, or publish a CLI to npm. Covers scaffolding, citty arg parsing, sub-commands, terminal UX, strict TypeScript, Biome + ESLint linting, Vitest testing, Bunup bundling, and publishing workflows. Keywords: npx, cli, command-line, binary, bin, tool, bun, citty, commander, terminal, publish, typescript, biome, vitest.",{},"npx CLI Tool Development (Bun-First)","https://github.com/jwynia/agent-skills/tree/HEAD/skills/tech/development/tooling/npx-cli",[350,20,19,351,352,353,354],"cli","npm","scaffolding","tooling","development",{"githubOwner":356,"githubRepo":357,"locale":24,"slug":358,"type":192},"jwynia","agent-skills","npx-cli",{"extract":360,"llm":362},{"commitSha":361,"license":238},"e02ec7e226a6e4f8419fd3b88a1d8e472d421b32",{"promptVersionExtension":169,"promptVersionScoring":170,"score":333,"targetMarket":175,"tier":176},{"repoId":364},"kd7efn3mprpa8rd8vm5hw5ebzx864fph",{"anyEnrichmentAt":366,"extractAt":367,"githubAt":366,"llmAt":368,"updatedAt":368},1778053625386,1778053622473,1778054012696,{"_creationTime":370,"_id":371,"community":372,"display":373,"identity":382,"providers":386,"relations":393,"workflow":395},1777995614337.9844,"k17f0xfg2pkfqd1p5jjzh8sswh8645px",{"reviewCount":8},{"description":374,"installMethods":375,"name":376,"sourceUrl":377,"tags":378},"Scaffold an editable Tandem control panel app",{},"Tandem Panel Scaffold","https://github.com/frumu-ai/tandem/tree/HEAD/packages/create-tandem-panel",[352,350,379,19,380,381],"react","vite","ui",{"githubOwner":383,"githubRepo":384,"locale":24,"slug":385,"type":192},"frumu-ai","tandem","create-tandem-panel",{"extract":387,"llm":390,"smithery":392},{"commitSha":388,"license":389},"25c8ae7c2f8b20d576a2b8d44946ac2e0ff9408d","MIT OR Apache-2.0",{"promptVersionExtension":169,"promptVersionScoring":170,"score":391,"targetMarket":175,"tier":176},100,{"qualityScore":8,"totalActivations":8,"uniqueUsers":8,"useCount":8,"verified":184},{"repoId":394},"kd72pd305er4m7vecv9p6mnd4s865kea",{"anyEnrichmentAt":396,"extractAt":397,"githubAt":398,"llmAt":399,"smitheryAt":396,"updatedAt":399},1777995723550,1777995614338,1777995614791,1777995897177,{"_creationTime":401,"_id":402,"community":403,"display":404,"identity":420,"providers":422,"relations":425,"workflow":427},1778053197391.382,"k170wvt5rx3c1hv9a5sfkyezc1866k0q",{"reviewCount":8},{"description":405,"installMethods":406,"name":407,"sourceUrl":408,"tags":409},"Universal AI voice / text-to-speech skill supporting OpenAI TTS (gpt-4o-mini-tts, tts-1), ElevenLabs multilingual TTS with voice cloning, Bailian Qwen TTS (qwen-tts / qwen3-tts-vd with voice-design custom voices, long-text chunking built in), MiniMax speech-02-hd, SiliconFlow CosyVoice / SenseVoice, and PlayHT 2.0. Use this skill whenever the user asks to read text aloud, synthesize speech, generate narration, create voice-over, dub a script, or turn any text into audio (mp3 / wav / ogg / flac). Typical phrases include \"read this aloud\", \"generate voice for ...\", \"create a narration of ...\", \"tts this\", \"把这段念出来\", \"做个配音\", \"合成语音\", or mentions of voices / TTS model names like Alloy, Ash, Cherry, Rachel, CosyVoice, PlayHT. Always use this skill even if the user does not specify a provider — pick one from EXTEND.md defaults or available env keys.",{},"Happy Audio Gen","https://github.com/iamzhihuix/happy-claude-skills/tree/HEAD/skills/happy-audio-gen",[410,411,412,413,414,415,416,417,418,419,20],"tts","speech","audio","voice-generation","openai","elevenlabs","bailian","minimax","siliconflow","playht",{"githubOwner":189,"githubRepo":190,"locale":24,"slug":421,"type":192},"happy-audio-gen",{"extract":423,"llm":424},{"commitSha":237,"license":238},{"promptVersionExtension":169,"promptVersionScoring":170,"score":391,"targetMarket":175,"tier":176},{"parentExtensionId":426,"repoId":246},"k173ydbbp6c0vdpxv5r0q9yvgd867en5",{"anyEnrichmentAt":248,"extractAt":249,"githubAt":248,"llmAt":187,"updatedAt":187},{"_creationTime":429,"_id":430,"community":431,"display":432,"identity":441,"providers":444,"relations":448,"workflow":450},1778054425877.1958,"k171ck7gyw157xcvkrk6k0r9y1866w01",{"reviewCount":8},{"description":433,"name":434,"sourceUrl":435,"tags":436},"ESLint rules for React Hooks","ESLint Plugin React Hooks","https://github.com/facebook/react/tree/HEAD/packages/eslint-plugin-react-hooks",[379,437,438,439,440,19],"eslint","linting","hooks","javascript",{"githubOwner":442,"githubRepo":379,"locale":24,"slug":443,"type":192},"facebook","eslint-plugin-react-hooks",{"extract":445,"llm":447},{"commitSha":446,"license":238},"9635257c1b557acc81f95b1e974a54c752e703a2",{"promptVersionExtension":169,"promptVersionScoring":170,"score":304,"targetMarket":175,"tier":176},{"repoId":449},"kd73v9dy7vwq94hgzc7eh43b9s865rhq",{"anyEnrichmentAt":451,"extractAt":452,"githubAt":451,"llmAt":453,"updatedAt":453},1778054428301,1778054425877,1778054588390]