[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M733WFK9QMMABA8123SC1ZGS":3,"skill-same:01M733WFK9QMMABA8123SC1ZGS":50},{"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":23,"commitSha":24,"skillDirectory":25,"forksCount":26,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":29,"install":30,"resources":43},"01M733WFK9QMMABA8123SC1ZGS","budge",null,"Use when making single-property CSS or Tailwind visual changes in Next.js App Router projects. Presents a floating control widget on the page so the user can tweak the value before it is persisted. Covers atomic style changes, live preview, and cleanup. Triggers on single CSS value or single Tailwind utility class modifications.","LiamVisionary\u002Fhivemindos","LiamVisionary","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F102138294?v=4","01M73379NZZ99TT4ZS17XR3Q9D","01M73379PX6AKQNWN05VNSYRXW",13,"MIT","https:\u002F\u002Fgithub.com\u002FLiamVisionary\u002Fhivemindos\u002Fblob\u002Fmain\u002Fpackaged-skills\u002Foptional\u002Fdesign\u002Fmillionco\u002Fbudge\u002FSKILL.md",[],[],"2026-11-11 15:11:14",false,"---\nname: budge\ndescription: Use when making single-property CSS or Tailwind visual changes in Next.js App Router projects. Presents a floating control widget on the page so the user can tweak the value before it is persisted. Covers atomic style changes, live preview, and cleanup. Triggers on single CSS value or single Tailwind utility class modifications.\n---\n\n# Budge\n\n**Proactive skill. Next.js App Router only.** If a task results in a single CSS property or Tailwind class change, follow this skill automatically. The user should never need to say \"use budge.\"\n\nYou present a floating bar on the page after making an atomic visual change. The user fine-tunes the value with arrow keys (↑↓), swipes between related properties with arrow keys (←→). **With the current runtime, complete your turn immediately after making the visual change — no browser interaction, no waiting, and no manual config unless the fallback below is needed.**\n\nThe runtime is a self-contained IIFE loaded from `https:\u002F\u002Fwww.budge.design\u002Fbudge.iife.js` via `next\u002Fscript`. On local\u002Fdev hosts it stays on the page, watches HMR-driven `class`\u002F`style` DOM changes, infers the latest numeric visual property change, marks the changed element, and mounts Budge automatically. It also uses React Grab primitives for manual selection: press `Cmd+E`, select an element, and Budge opens. It still supports the explicit `data-budge` config element as a fallback. Everything is handled client-side: live preview on `[data-budge-target]` elements, arrow key stepping, slide navigation, audio feedback, submit (Enter — copies an edit prompt to clipboard), and cancel (Escape — reverts).\n\n**In scope:** Raw CSS property values, inline styles, Tailwind utility class changes, SVG presentation attributes (`fill`, `stroke`, etc.).\n**Out of scope:** Sass\u002FLess variables, CSS custom property definitions (`--spacing`), CSS-in-JS theme tokens. Proceed normally for these.\n\n## Installation\n\nGrep for `budge.iife.js` in `app\u002Flayout.tsx`. If found, make the requested visual change and stop. Otherwise, read `references\u002FINSTALL.md` and follow its instructions.\n\n## Default Flow\n\nFor a single raw CSS value or Tailwind class token change, just make the source edit. The always-on runtime should attach Budge to the resulting DOM change after HMR. Tell the user: \"I've changed X to Y. Use ↑↓ to fine-tune, ←→ to switch properties.\"\n\nUse the manual steps below only if the bar does not appear or the change cannot be inferred from one numeric `class`\u002F`style` DOM mutation.\n\n---\n\n## Troubleshooting — bar does not appear\n\n1. **Script missing:** Confirm `\u003CScript src=\"https:\u002F\u002Fwww.budge.design\u002Fbudge.iife.js\" strategy=\"afterInteractive\" \u002F>` is in `app\u002Flayout.tsx`.\n2. **Auto-detect disabled:** Auto-detect runs by default on local\u002Fdev hosts. Force it with `data-budge-autodetect=\"true\"` on the script tag, or disable it with `\"false\"`.\n3. **No inferable DOM change:** The fallback bar only appears when a `\u003Cdiv data-budge=\"...\" hidden \u002F>` element with a non-empty `slides` array is in the DOM.\n4. **Target not found:** The element with `data-budge-target` must be in the DOM after hydration.\n\n---\n\n## Manual Fallback — Trigger Test\n\nAfter making a change, apply this mechanical test. Do NOT use subjective judgment.\n\n> **The last StrReplace call touched exactly one CSS value literal OR exactly one Tailwind utility class token, in exactly one file. The change is not a variable, mixin, or theme token.**\n\n**Pass:** `padding: 8px` → `padding: 16px` | `className=\"p-2 m-4\"` → `className=\"p-4 m-4\"`\n**Fail:** two values changed, token added\u002Fremoved, Sass variable, multiple StrReplace calls, structural change.\n\nFail → skip budge, proceed normally. Pass → continue to Step 2. The mechanical test is the only gate.\n\n## Step 2 — Build Slides\n\nBuild a `slides` array. The **first slide** is the property you changed. Additional slides are related properties the user might want to tweak.\n\nEach slide has this shape:\n\n```ts\n{\n  label: string;      \u002F\u002F display name shown above bar\n  property: string;   \u002F\u002F CSS property to apply to [data-budge-target]\n  min: number;        \u002F\u002F minimum numeric value\n  max: number;        \u002F\u002F maximum numeric value\n  value: number;      \u002F\u002F current value (the one you set)\n  original: number;   \u002F\u002F value before your change\n  unit: string;       \u002F\u002F \"px\", \"%\", \"em\", etc.\n  type?: \"color\";     \u002F\u002F only set for color properties\n}\n```\n\n### Slide generation rules\n\n1. **Primary slide** (index 0): the property you changed. `value` = new value, `original` = old value.\n2. **Related slides** (index 1+): pick 2–3 related properties from the same element. Read their current computed\u002Fdeclared values. Use sensible min\u002Fmax ranges.\n\n**Example — agent changed `padding-top: 8px` → `padding-top: 16px`:**\n\n```ts\n[\n  { label: \"padding-top\", property: \"padding-top\", min: 0, max: 64, value: 16, original: 8, unit: \"px\" },\n  { label: \"padding-bottom\", property: \"padding-bottom\", min: 0, max: 64, value: 8, original: 8, unit: \"px\" },\n  { label: \"padding-left\", property: \"padding-left\", min: 0, max: 64, value: 12, original: 12, unit: \"px\" },\n  { label: \"padding-right\", property: \"padding-right\", min: 0, max: 64, value: 12, original: 12, unit: \"px\" },\n]\n```\n\n**Example — agent changed `font-size: 14px` → `font-size: 16px`:**\n\n```ts\n[\n  { label: \"font-size\", property: \"font-size\", min: 8, max: 72, value: 16, original: 14, unit: \"px\" },\n  { label: \"line-height\", property: \"line-height\", min: 12, max: 80, value: 24, original: 22, unit: \"px\" },\n  { label: \"letter-spacing\", property: \"letter-spacing\", min: -2, max: 10, value: 0, original: 0, unit: \"px\" },\n]\n```\n\n**Example — agent changed `color: #333` → `color: #1a1a1a`:**\n\nUse the `type: \"color\"` slide with hue degrees:\n\n```ts\n[\n  { label: \"color\", property: \"color\", min: 0, max: 360, value: 0, original: 0, unit: \"°\", type: \"color\" },\n]\n```\n\n### Related property suggestions\n\n| Changed property | Related slides |\n|---|---|\n| `padding-top` | `padding-bottom`, `padding-left`, `padding-right` |\n| `padding` | `padding-top`, `padding-bottom` |\n| `margin-top` | `margin-bottom`, `margin-left`, `margin-right` |\n| `font-size` | `line-height`, `letter-spacing` |\n| `gap` | `padding`, `margin-top` |\n| `width` | `height`, `max-width` |\n| `border-radius` | `padding`, `border-width` |\n| `opacity` | `font-size` |\n\n### Tailwind resolution\n\nResolve Tailwind classes to CSS properties and pixel values (multiply spacing scale × 4):\n\n| Tailwind class | Primary slide property | Value |\n|---|---|---|\n| `p-4` | `padding` | 16px |\n| `px-4` | `padding-left` (also set `padding-right`) | 16px |\n| `py-4` | `padding-top` (also set `padding-bottom`) | 16px |\n| `pt-4` | `padding-top` | 16px |\n| `mt-4` | `margin-top` | 16px |\n| `gap-4` | `gap` | 16px |\n| `text-[14px]` | `font-size` | 14 |\n| `rounded-lg` | `border-radius` | 8px |\n\nFor axis shorthands (`px-*`, `py-*`, `mx-*`, `my-*`), set the primary slide to one axis property but include both as slides.\n\nFor Tailwind classes, also add an inline style override on the target element so the runtime can manipulate the value directly:\n\n```jsx\n\u003Cdiv data-budge-target className=\"py-4\" style={{ paddingTop: '16px', paddingBottom: '16px' }}>\n```\n\n### Design token snapping\n\nIf the project defines design tokens as CSS custom properties on `:root` or `@theme` (Tailwind v4, Shadcn, plain CSS vars), the runtime automatically snaps ↑\u002F↓ stepping through them by matching property to scale:\n\n| Property match | Discovered prefix |\n|---|---|\n| `padding*`, `margin*`, `gap` | `--spacing-*` |\n| `font-size` | `--text-*` |\n| `border-radius*` | `--radius-*` |\n| `color`, `*-color` | `--color-*` (no snap yet — palette cycling is a follow-up) |\n\nWhen a token matches the current value, the widget shows its name (e.g. `16px · md`) and Enter emits `Set \\`padding\\` to \\`var(--spacing-md)\\`` instead of a raw px value. Users can still type digits to escape to arbitrary px.\n\nYou don't need to specify `scale` on slides — it's auto-detected from `property`. Pass `scale: null` to disable snapping for a slide, or `scale: \"spacing\" | \"text\" | \"radius\" | \"color\"` to override. Pass `tokens: [{ name, value, numeric }]` to override discovery entirely. Use `unit: \"px\"` when relying on token snapping (the runtime applies the token's raw value so rem\u002Fem tokens resolve correctly regardless).\n\n## Step 3 — Mark Target Element\n\nAdd `data-budge-target` to the changed element in source:\n\n```jsx\n\u003Cdiv data-budge-target style={{ paddingTop: '16px' }}>\n```\n\n## Step 4 — Activate\n\nUse `StrReplace` to add a config element to `app\u002Flayout.tsx` inside `\u003Cbody>`, passing the slides as JSON:\n\n```tsx\n\u003Cdiv data-budge={JSON.stringify({ slides: [\n  { label: \"padding-top\", property: \"padding-top\", min: 0, max: 64, value: 16, original: 8, unit: \"px\" },\n  { label: \"padding-bottom\", property: \"padding-bottom\", min: 0, max: 64, value: 8, original: 8, unit: \"px\" },\n  { label: \"padding-left\", property: \"padding-left\", min: 0, max: 64, value: 12, original: 12, unit: \"px\" },\n] })} hidden \u002F>\n```\n\n## Step 5 — Complete\n\n**Your turn is done.** Do NOT open a browser, verify the panel, or wait for the user. Next.js HMR delivers the change.\n\nTell the user: \"I've changed X to Y. Use ↑↓ to fine-tune, ←→ to switch properties.\"\n\nWhen the user pastes the submitted prompt, it reads as a normal edit instruction — make the edit and remove the `data-budge` config element.\n","# Budge\n\n**Proactive skill. Next.js App Router only.** If a task results in a single CSS property or Tailwind class change, follow this skill automatically. The user should never need to say \"use budge.\"\n\nYou present a floating bar on the page after making an atomic visual change. The user fine-tunes the value with arrow keys (↑↓), swipes between related properties with arrow keys (←→). **With the current runtime, complete your turn immediately after making the visual change — no browser interaction, no waiting, and no manual config unless the fallback below is needed.**\n\nThe runtime is a self-contained IIFE loaded from `https:\u002F\u002Fwww.budge.design\u002Fbudge.iife.js` via `next\u002Fscript`. On local\u002Fdev hosts it stays on the page, watches HMR-driven `class`\u002F`style` DOM changes, infers the latest numeric visual property change, marks the changed element, and mounts Budge automatically. It also uses React Grab primitives for manual selection: press `Cmd+E`, select an element, and Budge opens. It still supports the explicit `data-budge` config element as a fallback. Everything is handled client-side: live preview on `[data-budge-target]` elements, arrow key stepping, slide navigation, audio feedback, submit (Enter — copies an edit prompt to clipboard), and cancel (Escape — reverts).\n\n**In scope:** Raw CSS property values, inline styles, Tailwind utility class changes, SVG presentation attributes (`fill`, `stroke`, etc.).\n**Out of scope:** Sass\u002FLess variables, CSS custom property definitions (`--spacing`), CSS-in-JS theme tokens. Proceed normally for these.\n\n## Installation\n\nGrep for `budge.iife.js` in `app\u002Flayout.tsx`. If found, make the requested visual change and stop. Otherwise, read `references\u002FINSTALL.md` and follow its instructions.\n\n## Default Flow\n\nFor a single raw CSS value or Tailwind class token change, just make the source edit. The always-on runtime should attach Budge to the resulting DOM change after HMR. Tell the user: \"I've changed X to Y. Use ↑↓ to fine-tune, ←→ to switch properties.\"\n\nUse the manual steps below only if the bar does not appear or the change cannot be inferred from one numeric `class`\u002F`style` DOM mutation.\n\n---\n\n## Troubleshooting — bar does not appear\n\n1. **Script missing:** Confirm `\u003CScript src=\"https:\u002F\u002Fwww.budge.design\u002Fbudge.iife.js\" strategy=\"afterInteractive\" \u002F>` is in `app\u002Flayout.tsx`.\n2. **Auto-detect disabled:** Auto-detect runs by default on local\u002Fdev hosts. Force it with `data-budge-autodetect=\"true\"` on the script tag, or disable it with `\"false\"`.\n3. **No inferable DOM change:** The fallback bar only appears when a `\u003Cdiv data-budge=\"...\" hidden \u002F>` element with a non-empty `slides` array is in the DOM.\n4. **Target not found:** The element with `data-budge-target` must be in the DOM after hydration.\n\n---\n\n## Manual Fallback — Trigger Test\n\nAfter making a change, apply this mechanical test. Do NOT use subjective judgment.\n\n> **The last StrReplace call touched exactly one CSS value literal OR exactly one Tailwind utility class token, in exactly one file. The change is not a variable, mixin, or theme token.**\n\n**Pass:** `padding: 8px` → `padding: 16px` | `className=\"p-2 m-4\"` → `className=\"p-4 m-4\"`\n**Fail:** two values changed, token added\u002Fremoved, Sass variable, multiple StrReplace calls, structural change.\n\nFail → skip budge, proceed normally. Pass → continue to Step 2. The mechanical test is the only gate.\n\n## Step 2 — Build Slides\n\nBuild a `slides` array. The **first slide** is the property you changed. Additional slides are related properties the user might want to tweak.\n\nEach slide has this shape:\n\n```ts\n{\n  label: string;      \u002F\u002F display name shown above bar\n  property: string;   \u002F\u002F CSS property to apply to [data-budge-target]\n  min: number;        \u002F\u002F minimum numeric value\n  max: number;        \u002F\u002F maximum numeric value\n  value: number;      \u002F\u002F current value (the one you set)\n  original: number;   \u002F\u002F value before your change\n  unit: string;       \u002F\u002F \"px\", \"%\", \"em\", etc.\n  type?: \"color\";     \u002F\u002F only set for color properties\n}\n```\n\n### Slide generation rules\n\n1. **Primary slide** (index 0): the property you changed. `value` = new value, `original` = old value.\n2. **Related slides** (index 1+): pick 2–3 related properties from the same element. Read their current computed\u002Fdeclared values. Use sensible min\u002Fmax ranges.\n\n**Example — agent changed `padding-top: 8px` → `padding-top: 16px`:**\n\n```ts\n[\n  { label: \"padding-top\", property: \"padding-top\", min: 0, max: 64, value: 16, original: 8, unit: \"px\" },\n  { label: \"padding-bottom\", property: \"padding-bottom\", min: 0, max: 64, value: 8, original: 8, unit: \"px\" },\n  { label: \"padding-left\", property: \"padding-left\", min: 0, max: 64, value: 12, original: 12, unit: \"px\" },\n  { label: \"padding-right\", property: \"padding-right\", min: 0, max: 64, value: 12, original: 12, unit: \"px\" },\n]\n```\n\n**Example — agent changed `font-size: 14px` → `font-size: 16px`:**\n\n```ts\n[\n  { label: \"font-size\", property: \"font-size\", min: 8, max: 72, value: 16, original: 14, unit: \"px\" },\n  { label: \"line-height\", property: \"line-height\", min: 12, max: 80, value: 24, original: 22, unit: \"px\" },\n  { label: \"letter-spacing\", property: \"letter-spacing\", min: -2, max: 10, value: 0, original: 0, unit: \"px\" },\n]\n```\n\n**Example — agent changed `color: #333` → `color: #1a1a1a`:**\n\nUse the `type: \"color\"` slide with hue degrees:\n\n```ts\n[\n  { label: \"color\", property: \"color\", min: 0, max: 360, value: 0, original: 0, unit: \"°\", type: \"color\" },\n]\n```\n\n### Related property suggestions\n\n| Changed property | Related slides |\n|---|---|\n| `padding-top` | `padding-bottom`, `padding-left`, `padding-right` |\n| `padding` | `padding-top`, `padding-bottom` |\n| `margin-top` | `margin-bottom`, `margin-left`, `margin-right` |\n| `font-size` | `line-height`, `letter-spacing` |\n| `gap` | `padding`, `margin-top` |\n| `width` | `height`, `max-width` |\n| `border-radius` | `padding`, `border-width` |\n| `opacity` | `font-size` |\n\n### Tailwind resolution\n\nResolve Tailwind classes to CSS properties and pixel values (multiply spacing scale × 4):\n\n| Tailwind class | Primary slide property | Value |\n|---|---|---|\n| `p-4` | `padding` | 16px |\n| `px-4` | `padding-left` (also set `padding-right`) | 16px |\n| `py-4` | `padding-top` (also set `padding-bottom`) | 16px |\n| `pt-4` | `padding-top` | 16px |\n| `mt-4` | `margin-top` | 16px |\n| `gap-4` | `gap` | 16px |\n| `text-[14px]` | `font-size` | 14 |\n| `rounded-lg` | `border-radius` | 8px |\n\nFor axis shorthands (`px-*`, `py-*`, `mx-*`, `my-*`), set the primary slide to one axis property but include both as slides.\n\nFor Tailwind classes, also add an inline style override on the target element so the runtime can manipulate the value directly:\n\n```jsx\n\u003Cdiv data-budge-target className=\"py-4\" style={{ paddingTop: '16px', paddingBottom: '16px' }}>\n```\n\n### Design token snapping\n\nIf the project defines design tokens as CSS custom properties on `:root` or `@theme` (Tailwind v4, Shadcn, plain CSS vars), the runtime automatically snaps ↑\u002F↓ stepping through them by matching property to scale:\n\n| Property match | Discovered prefix |\n|---|---|\n| `padding*`, `margin*`, `gap` | `--spacing-*` |\n| `font-size` | `--text-*` |\n| `border-radius*` | `--radius-*` |\n| `color`, `*-color` | `--color-*` (no snap yet — palette cycling is a follow-up) |\n\nWhen a token matches the current value, the widget shows its name (e.g. `16px · md`) and Enter emits `Set \\`padding\\` to \\`var(--spacing-md)\\`` instead of a raw px value. Users can still type digits to escape to arbitrary px.\n\nYou don't need to specify `scale` on slides — it's auto-detected from `property`. Pass `scale: null` to disable snapping for a slide, or `scale: \"spacing\" | \"text\" | \"radius\" | \"color\"` to override. Pass `tokens: [{ name, value, numeric }]` to override discovery entirely. Use `unit: \"px\"` when relying on token snapping (the runtime applies the token's raw value so rem\u002Fem tokens resolve correctly regardless).\n\n## Step 3 — Mark Target Element\n\nAdd `data-budge-target` to the changed element in source:\n\n```jsx\n\u003Cdiv data-budge-target style={{ paddingTop: '16px' }}>\n```\n\n## Step 4 — Activate\n\nUse `StrReplace` to add a config element to `app\u002Flayout.tsx` inside `\u003Cbody>`, passing the slides as JSON:\n\n```tsx\n\u003Cdiv data-budge={JSON.stringify({ slides: [\n  { label: \"padding-top\", property: \"padding-top\", min: 0, max: 64, value: 16, original: 8, unit: \"px\" },\n  { label: \"padding-bottom\", property: \"padding-bottom\", min: 0, max: 64, value: 8, original: 8, unit: \"px\" },\n  { label: \"padding-left\", property: \"padding-left\", min: 0, max: 64, value: 12, original: 12, unit: \"px\" },\n] })} hidden \u002F>\n```\n\n## Step 5 — Complete\n\n**Your turn is done.** Do NOT open a browser, verify the panel, or wait for the user. Next.js HMR delivers the change.\n\nTell the user: \"I've changed X to Y. Use ↑↓ to fine-tune, ←→ to switch properties.\"\n\nWhen the user pastes the submitted prompt, it reads as a normal edit instruction — make the edit and remove the `data-budge` config element.\n",{"name":5,"description":7},"main","f270c4ae4f9d09c4e5da9cfa8adab7e89ae1f53e","packaged-skills\u002Foptional\u002Fdesign\u002Fmillionco\u002Fbudge",4,"https:\u002F\u002Fgithub.com\u002FLiamVisionary\u002Fhivemindos","https:\u002F\u002Fgithub.com\u002FLiamVisionary","2026-11-10 21:48:41",{"source":8,"skillName":5,"commands":31,"prompt":41,"zipAvailable":42},[32,35,38],{"tool":33,"command":34},"npx","npx skills add LiamVisionary\u002Fhivemindos --skill budge",{"tool":36,"command":37},"bunx","bunx skills add LiamVisionary\u002Fhivemindos --skill budge",{"tool":39,"command":40},"pnpm","pnpm dlx skills add LiamVisionary\u002Fhivemindos --skill budge","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FLiamVisionary\u002Fhivemindos\u002Fblob\u002Fmain\u002Fpackaged-skills\u002Foptional\u002Fdesign\u002Fmillionco\u002Fbudge\u002FSKILL.md",true,[44],{"path":45,"resourceType":46,"resourceTypeDesc":47,"sizeBytes":48,"sourceHtmlUrl":49},".hivemind-skill-source.json","REFERENCE","参考文档",996,"https:\u002F\u002Fgithub.com\u002FLiamVisionary\u002Fhivemindos\u002Fblob\u002Fmain\u002Fpackaged-skills\u002Foptional\u002Fdesign\u002Fmillionco\u002Fbudge\u002F.hivemind-skill-source.json",[51,58,65,72,79,86],{"skillNo":52,"name":53,"nameZh":6,"description":54,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":55,"categories":56,"keywords":57,"publishedAt":18},"01M734AA85KQEXDQXQJ3T7769M","tailscale-generation-skill-authoring","This skill should be used when the user asks to \"create a Tailscale generation skill\", \"add a local generation skill\", \"document a generation endpoint\", \"add an image generation provider\", \"add a TTS provider\", \"add video generation\", \"add 3D generation\", or needs guidance on where HivemindOS Tailscale or local generation providers belong in the shared skills shelf.","https:\u002F\u002Fgithub.com\u002FLiamVisionary\u002Fhivemindos\u002Fblob\u002Fmain\u002Fskills\u002Ftailscale-generation-skill-authoring\u002FSKILL.md",[],[],{"skillNo":59,"name":60,"nameZh":6,"description":61,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":64,"publishedAt":18},"01M734A7VD69PRA0C0EV5EFY9T","localtts","This skill should be used when the user asks to \"generate local TTS\", \"use local text to speech\", \"use remote TTS over Tailscale\", \"make speech audio\", \"add a TTS provider\", \"use Qwen3-TTS\", or needs TTS endpoint setup through local or HivemindOS Tailscale routes.","https:\u002F\u002Fgithub.com\u002FLiamVisionary\u002Fhivemindos\u002Fblob\u002Fmain\u002Fskills\u002Flocaltts\u002FSKILL.md",[],[],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":18},"01M734A4K2Z0F74QZP7V7WBFRY","karpathy-guidelines","Behavioral guidelines to reduce common LLM coding mistakes. Use when writing, reviewing, or refactoring code to avoid overcomplication, make surgical changes, surface assumptions, and define verifiable success criteria.","https:\u002F\u002Fgithub.com\u002FLiamVisionary\u002Fhivemindos\u002Fblob\u002Fmain\u002Fskills\u002Fkarpathy-guidelines\u002FSKILL.md",[],[],{"skillNo":73,"name":74,"nameZh":6,"description":75,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":18},"01M734A1HMVYVJX3YJGNQ6KF6C","comfyui-image-generation","This skill should be used when the user asks to \"generate images\", \"generate images with ComfyUI\", \"use local ComfyUI\", \"use remote ComfyUI\", \"use Z-Image\", \"add an image generation provider\", or needs image-generation endpoint setup through local or HivemindOS Tailscale routes.","https:\u002F\u002Fgithub.com\u002FLiamVisionary\u002Fhivemindos\u002Fblob\u002Fmain\u002Fskills\u002Fcomfyui-image-generation\u002FSKILL.md",[],[],{"skillNo":80,"name":81,"nameZh":6,"description":82,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":83,"categories":84,"keywords":85,"publishedAt":18},"01M7349Y684Q676DNNHZPSC8W1","wrangler","Cloudflare Workers CLI for deploying, developing, and managing Workers, KV, R2, D1, Vectorize, Hyperdrive, Workers AI, Containers, Queues, Workflows, Pipelines, and Secrets Store. Load before running wrangler commands to ensure correct syntax and best practices. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002FLiamVisionary\u002Fhivemindos\u002Fblob\u002Fmain\u002Fskills\u002Fcloudflare\u002Fwrangler\u002FSKILL.md",[],[],{"skillNo":87,"name":88,"nameZh":6,"description":89,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":90,"categories":91,"keywords":92,"publishedAt":18},"01M7349V3WCBF835QP74SA9Q8C","workers-best-practices","Reviews and authors Cloudflare Workers code against production best practices. Load when writing new Workers, reviewing Worker code, configuring wrangler.jsonc, or checking for common Workers anti-patterns (streaming, floating promises, global state, secrets, bindings, observability). Biases towards retrieval from Cloudflare docs over pre-trained knowledge.","https:\u002F\u002Fgithub.com\u002FLiamVisionary\u002Fhivemindos\u002Fblob\u002Fmain\u002Fskills\u002Fcloudflare\u002Fworkers-best-practices\u002FSKILL.md",[],[]]