{"_id":"@bubble-buddy/skills","name":"@bubble-buddy/skills","dist-tags":{"latest":"0.1.0"},"versions":{"0.1.0":{"name":"@bubble-buddy/skills","version":"0.1.0","description":"One support skill for Bubble Buddy: install, configure, use and troubleshoot the voice-dictation overlay. Install once to register the whole skill.","keywords":["bubble-buddy","copilot-voice-shell","skill","support","customer-service","voice","dictation"],"license":"MIT","publishConfig":{"access":"public"},"bin":{"bubble-buddy-skill":"bin/install.js"},"scripts":{"prepublishOnly":"node -e \"require('fs').accessSync('bubble-buddy/SKILL.md'); require('fs').accessSync('bubble-buddy/references/config.schema.json'); require('fs').accessSync('bin/install.js')\""},"gitHead":"1f44f8ad8393a0389c5e27b51a50166b7667124d","_id":"@bubble-buddy/skills@0.1.0","_nodeVersion":"24.14.1","_npmVersion":"11.11.0","dist":{"integrity":"sha512-DXV2QtzCwrGUE8x+mTGaZT9DVJFE4lzlHhqKCdleAxHdi/kaaR5LC4da7cSWwwMNLyj8fYoM1fkp2e+Ua3Am3w==","shasum":"ca3d5847d7db0af6d2877056f26992ce067f0307","tarball":"https://registry.npmjs.org/@bubble-buddy/skills/-/skills-0.1.0.tgz","fileCount":18,"unpackedSize":51215,"signatures":[{"keyid":"SHA256:DhQ8wR5APBvFHLF/+Tc+AYvPOdTpcIDqOhxsBHRwC7U","sig":"MEUCIDTk/q8aY0MU+znu56yq+JeSVUw/roRPtRESx05btOGGAiEAmLwWDbFGpDVdGeFiXWmqvVpyJkNCNCqLkaBsHXLxLOY="}]},"_npmUser":{"name":"juliezhuzhirui123","email":"zhuzhirui123@gmail.com"},"directories":{},"maintainers":[{"name":"juliezhuzhirui123","email":"zhuzhirui123@gmail.com"}],"_npmOperationalInternal":{"host":"s3://npm-registry-packages-npm-production","tmp":"tmp/skills_0.1.0_1783494188562_0.5455533018287382"},"_hasShrinkwrap":false}},"time":{"created":"2026-07-08T07:03:08.357Z","0.1.0":"2026-07-08T07:03:08.711Z","modified":"2026-07-08T07:03:08.967Z"},"maintainers":[{"name":"juliezhuzhirui123","email":"zhuzhirui123@gmail.com"}],"description":"One support skill for Bubble Buddy: install, configure, use and troubleshoot the voice-dictation overlay. Install once to register the whole skill.","keywords":["bubble-buddy","copilot-voice-shell","skill","support","customer-service","voice","dictation"],"license":"MIT","readme":"# Bubble Buddy — Support skill\r\n\r\nA single installable **support skill** that helps end users install, configure,\r\nuse and troubleshoot **Bubble Buddy** as if talking to a knowledgeable\r\ncustomer-service agent. It is distributed as one npm package and dropped into a\r\nCopilot/agent runtime.\r\n\r\n> **Design guarantee: no application source code is shipped inside the skill.**\r\n> It carries only *distilled knowledge* — a config schema, a message catalog and\r\n> human-written guides/runbooks — generated from the source at build time. When\r\n> a rare, source-level answer is needed, the skill points the agent at a specific\r\n> file/symbol for on-demand lookup in the repository; it never bundles the code.\r\n\r\n## Layout\r\n\r\nFollowing the [Remotion skill pattern](https://github.com/remotion-dev/skills):\r\none skill with a small `SKILL.md` entry point that loads deeper **reference**\r\nfiles on demand (progressive disclosure).\r\n\r\n```\r\nskills/\r\n  README.md                     ← this file\r\n  package.json                  ← the single npm package (@bubble-buddy/skills)\r\n  bin/\r\n    install.js                  ← `npx @bubble-buddy/skills` self-registers the skill\r\n  bubble-buddy/                 ← THE skill (name: bubble-buddy)\r\n    SKILL.md                    ← entry: triage + product summary + guardrails\r\n    references/                 ← loaded on demand by the entry file\r\n      install.md                (curated)\r\n      install-guide.json        (curated)\r\n      config.md                 (curated)\r\n      config.schema.json        (generated)\r\n      usage.md                  (curated)\r\n      plugins.md                (curated)\r\n      troubleshooting.md        (curated)\r\n      error-catalog.json        (curated)\r\n      messages.json             (generated)\r\n      runbooks/*.md             (curated, step-by-step fixes)\r\n```\r\n\r\nThe `SKILL.md` `name: bubble-buddy` is the identifier the agent runtime uses to\r\n**trigger** the skill; it does not have to match the npm package name.\r\n\r\n## Registering the skill\r\n\r\n- **End users (recommended, no clone):** `npx @bubble-buddy/skills` — downloads\r\n  the whole package (SKILL.md **and** every `references/` file) and runs the\r\n  bundled `bin/install.js`, which registers the materialized skill directory with\r\n  your Copilot CLI. Re-run to update.\r\n- **Local (dev/testing):** `copilot skill add skills\\bubble-buddy` — one add\r\n  registers the whole skill straight from the repo checkout.\r\n\r\n## The no-source mechanism\r\n\r\nTwo layers keep source out of the published package:\r\n\r\n1. **Generation, not copying.** `tools/gen-kb/gen_kb.py` (at the repo root) reads\r\n   `src/copilot_voice_shell/config.py` and `i18n.py` and emits *facts* — key\r\n   names, defaults, enums, message templates — never code. It runs at dev time /\r\n   in CI, not on the user's machine.\r\n2. **`files` whitelist.** `package.json` ships only the `bubble-buddy/` skill\r\n   folder and the `bin/` installer, so `npm publish` includes just `SKILL.md`,\r\n   the generated/curated `references/`, and `bin/install.js`. Nothing above the\r\n   skill folder — and no `src/` — is ever packed.\r\n\r\n## Regenerating the knowledge base\r\n\r\nRun from the repo root after any change to `config.py` or `i18n.py`:\r\n\r\n```powershell\r\n.\\.venv\\Scripts\\python.exe tools\\gen-kb\\gen_kb.py\r\n```\r\n\r\nThis writes directly into the skill's `references/`:\r\n\r\n- `config.schema.json` — every config key with default / type / enum / note, and\r\n  `secret: true` on sensitive keys (e.g. `azure.api_key`). Nested `azure.*` keys\r\n  are flattened to dotted names.\r\n- `messages.json` — `msg.*` / `bubble.*` UI templates (zh + en) so the skill can\r\n  recognise text a user quotes from the app.\r\n\r\nCommit the regenerated JSON alongside the source change so the shipped skill\r\nstays in sync with the app.\r\n\r\n## Publishing\r\n\r\nThe package publishes under the `@bubble-buddy` scope. Scoped packages are\r\nprivate by default, so `--access public` (also set via `publishConfig`) is\r\nrequired:\r\n\r\n```powershell\r\ncd skills\r\nnpm publish --access public   # publishes @bubble-buddy/skills\r\n```\r\n\r\n`npm pack --dry-run` is a good pre-flight to confirm only the `bubble-buddy/`\r\nfolder and `bin/install.js` are included.\r\n\r\n## Curated vs generated\r\n\r\n- **Generated** (do not hand-edit): `config.schema.json`, `messages.json`.\r\n- **Curated** (hand-maintained): `install.md`, `install-guide.json`, `config.md`,\r\n  `usage.md`, `troubleshooting.md`, `error-catalog.json`, all `runbooks/*.md`,\r\n  and the `SKILL.md` entry.\r\n","readmeFilename":"README.md","_rev":"1-22aadca87259db7401b4212722721f64"}