[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M755DZDR0YRNBDE7RXEFDAXA":3,"skill-same:01M755DZDR0YRNBDE7RXEFDAXA":50},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":20,"frontMatter":21,"refName":22,"commitSha":23,"skillDirectory":24,"forksCount":25,"repositoryHtmlUrl":26,"repositoryHomepageUrl":27,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":29,"install":30,"resources":43},"01M755DZDR0YRNBDE7RXEFDAXA","auth",null,"auth-02\u002Fhub","auth-02","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F146264364?v=4","01M755DW6DVATA25MM8323VK52","Atharva Shinde","01M755DW7CDZNCA30JT6VP7MQ5",3,"MIT","https:\u002F\u002Fgithub.com\u002Fauth-02\u002Fhub\u002Fblob\u002Fmain\u002Fexample\u002Fweb-dashboard\u002Fapp\u002Fskills\u002Fauth\u002FSKILL.md",[],[],"2026-11-12 13:55:43",false,"# Auth Skill\n\nJWT-based authentication flow with refresh token rotation.\n",{},"main","dc89ede1053a613e8f3cbe025b605a2486ffb8c1","example\u002Fweb-dashboard\u002Fapp\u002Fskills\u002Fauth",0,"https:\u002F\u002Fgithub.com\u002Fauth-02\u002Fhub","https:\u002F\u002Fauth-02.github.io\u002Fhub\u002F","https:\u002F\u002Fgithub.com\u002Fauth-02","2026-08-12 15:23:18",{"source":7,"skillName":5,"commands":31,"prompt":41,"zipAvailable":42},[32,35,38],{"tool":33,"command":34},"npx","npx skills add auth-02\u002Fhub --skill auth",{"tool":36,"command":37},"bunx","bunx skills add auth-02\u002Fhub --skill auth",{"tool":39,"command":40},"pnpm","pnpm dlx skills add auth-02\u002Fhub --skill auth","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fauth-02\u002Fhub\u002Fblob\u002Fmain\u002Fexample\u002Fweb-dashboard\u002Fapp\u002Fskills\u002Fauth\u002FSKILL.md",true,[44],{"path":45,"resourceType":46,"resourceTypeDesc":47,"sizeBytes":48,"sourceHtmlUrl":49},"references\u002Ftoken-lifecycle.md","REFERENCE","参考文档",76,"https:\u002F\u002Fgithub.com\u002Fauth-02\u002Fhub\u002Fblob\u002Fmain\u002Fexample\u002Fweb-dashboard\u002Fapp\u002Fskills\u002Fauth\u002Freferences\u002Ftoken-lifecycle.md",[51,58,65,72,78,85],{"skillNo":52,"name":53,"nameZh":6,"description":54,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":55,"categories":56,"keywords":57,"publishedAt":18},"01M755ES8KW0306XX82VJHMJNJ","stacked","Decompose LARGE, complex, or risky changes into a stack of small, dependent, independently reviewable units. Use only when the change is genuinely big: multiple architectural layers with functionally distinct concerns (models + storage + logic + API + UI), or a diff too large to review as one unit. Trigger on \"stacked\" \u002F \"stacked PRs\" \u002F \"stack this\" \u002F how to break down a large change — or when a \"build X\" \u002F \"refactor W\" request is clearly multi-layer and large. Do NOT use for small or moderate changes: bug fixes, tweaks, config, single-file or single-layer changes belong on ONE branch as ONE change — a stack of tiny branches adds overhead without value.","https:\u002F\u002Fgithub.com\u002Fauth-02\u002Fhub\u002Fblob\u002Fmain\u002Fhubspace\u002Fplugin\u002Fhub-agent\u002Fskills\u002Fstacked\u002FSKILL.md",[],[],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":18},"01M755EKGJEC3AXNZJ1T1C6582","manifest","Use when starting a non-trivial feature, migration, refactor, or multi-step task in ANY repo. Creates and continuously maintains a living markdown manifest at `\u003Crepo-root>\u002Ftasks\u002F\u003Cslug>\u002Fmanifest.md` (inside the repo being worked on — NEVER the skill dir or ~\u002F) capturing the problem, decisions, exploration results, plan, open questions, test + rollout plans, and final review. Trigger on \"build X\", \"add X\", \"migrate X\", \"refactor X\", tasks needing 3+ steps, or whenever a plan-before-code loop would help. NOT for single-line fixes, obvious bugs, or one-shot questions.","https:\u002F\u002Fgithub.com\u002Fauth-02\u002Fhub\u002Fblob\u002Fmain\u002Fhubspace\u002Fplugin\u002Fhub-agent\u002Fskills\u002Fmanifest\u002FSKILL.md",[],[],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":18},"01M755EBMJGHXN2WGF9T0RG755","kagaz","Kagaz (कागज़) — a personal design system for all frontend and document work — editorial-technical-archival, serif display + mono metadata on warm paper tones with a single rust accent. Use for ANY frontend, UI, web page, landing page, dashboard, artifact, component, mockup, poster, slide deck, report, or PDF\u002Fdocument design, for HTML→PDF conversion, and for any \"make this look good\" \u002F \"style this\" \u002F \"make slides\" \u002F \"turn this into a PDF\" request — even when no design preference is mentioned. Overrides generic AI defaults (Inter-on-white, purple gradients, cool grays). Ships an HTML-to-PDF converter with visual QA and on-brand SVG charts.","https:\u002F\u002Fgithub.com\u002Fauth-02\u002Fhub\u002Fblob\u002Fmain\u002Fhubspace\u002Fplugin\u002Fhub-agent\u002Fskills\u002Fkagaz\u002FSKILL.md",[],[],{"skillNo":73,"name":74,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":75,"categories":76,"keywords":77,"publishedAt":18},"01M755E9RR0Q8FNNXS5XKY88AZ","dak","https:\u002F\u002Fgithub.com\u002Fauth-02\u002Fhub\u002Fblob\u002Fmain\u002Fhubspace\u002Fplugin\u002Fhub-agent\u002Fskills\u002Fdak\u002FSKILL.md",[],[],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":84,"publishedAt":18},"01M755E0WG3N8XGTS291CWECCE","change-log","Map a task's changes as an editable draw that renders an interactive change-map on Save — nodes are functional CHANGES (a capability that moved), arrows are dependencies, and clicking a change deep-dives into its file \u002F function \u002F test detail in a side inspector. Use when someone asks \"what changed\", \"map this change\", \"diagram this PR\u002Fbranch\", \"show how the changes connect\", or as the closing step of a task once code has landed. Reads the diff + the task's manifest (the *why*) + Hub's MCP task context, then writes ONE `.excalidraw` into `tasks\u002F\u003Cslug>\u002Fchange-log\u002F`; the user edits it and Saving renders the sibling HTML. The agent does the reading — Hub has no model. `\u002Fchange-log \u003Ctask-slug> [--since \u003Cref>] [--doc]`.","https:\u002F\u002Fgithub.com\u002Fauth-02\u002Fhub\u002Fblob\u002Fmain\u002Fhubspace\u002Fplugin\u002Fhub-agent\u002Fskills\u002Fchange-log\u002FSKILL.md",[],[],{"skillNo":86,"name":87,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":90,"publishedAt":18},"01M755DY7A7MEMV28B9DYWXAJZ","rate_limiting","https:\u002F\u002Fgithub.com\u002Fauth-02\u002Fhub\u002Fblob\u002Fmain\u002Fexample\u002Facme-api\u002Fapp\u002Fskills\u002Frate_limiting\u002FSKILL.md",[],[]]