[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6N9GDPXKS8N431G8KYRG3VT":3,"skill-same:01M6N9GDPXKS8N431G8KYRG3VT":63},{"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":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":48,"install":49,"resources":62},"01M6N9GDPXKS8N431G8KYRG3VT","bubbles-bug-template",null,"Use the canonical Bubbles bug artifact template when filing or working a bug under specs\u002F\u003Cfeature>\u002Fbugs\u002FBUG-NNN-description\u002F. Use when reporting a regression, picking up a bug, writing the reproduction evidence, designing the fix, or auditing whether the bug folder has all required artifacts before work begins.","pkirsanov\u002Fsmackerel","pkirsanov","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F138962?v=4","01M6N8NAPD2KXMVC17X6GJ0WZ5","01M6N8NATQ9SAZ00H9D61R0TPV",1,"MIT","https:\u002F\u002Fgithub.com\u002Fpkirsanov\u002Fsmackerel\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fbubbles-bug-template\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"bubbles bug template","template","bug","up","bugs","nnn","canonical","folder","filing","feature","artifact","writing","evidence","use","fix","work","regression","reporting","artifacts","2026-11-10 10:12:30",false,"---\nname: bubbles-bug-template\ndescription: Use the canonical Bubbles bug artifact template when filing or working a bug under specs\u002F\u003Cfeature>\u002Fbugs\u002FBUG-NNN-description\u002F. Use when reporting a regression, picking up a bug, writing the reproduction evidence, designing the fix, or auditing whether the bug folder has all required artifacts before work begins.\n---\n\n# Bubbles Bug Template\n\n## Goal\nEvery bug folder has all 6 required artifacts before fix work begins, includes a reproducible repro, and produces an adversarial regression test that would fail if the bug were reintroduced.\n\n## When to use\n- Filing a new bug under `specs\u002F\u003Cfeature>\u002Fbugs\u002FBUG-NNN-description\u002F` (or `specs\u002Fbugs\u002FBUG-NNN-...` for cross-feature bugs)\n- Picking up an open bug; verifying it has all 6 artifacts\n- Writing reproduction evidence (BEFORE the fix) and verification evidence (AFTER the fix)\n- Designing the regression test for the bug\n\n## Required artifacts (every bug)\n| File | Notes |\n|------|-------|\n| `bug.md` | description, reproduction steps, observed vs expected, severity |\n| `spec.md` | expected behavior specification (what the code SHOULD do) |\n| `design.md` | root cause analysis + fix design |\n| `scopes.md` | fix scope(s) with DoD checklist + Test Plan |\n| `report.md` | execution evidence: bug reproduced BEFORE fix, fix verified AFTER fix, regression test execution |\n| `state.json` | bug lifecycle state |\n\nIf any file is missing, `bubbles.bug` (or whichever agent is handling the bug) MUST create it before proceeding.\n\n## Bug-reproduction gate (Gate 0)\n1. Reproduce the bug FIRST — capture raw terminal output in `report.md` under a `Before Fix` section.\n2. Apply the fix.\n3. Re-execute the same reproduction sequence — capture output in `report.md` under `After Fix`.\n4. Both captures MUST be in the same session and ≥10 lines each.\n\n## Adversarial regression test (NON-NEGOTIABLE)\nEvery bug-fix regression test MUST include at least one adversarial test case — an input that would FAIL if the bug were reintroduced. Tautological regressions (all fixtures already satisfy the broken code path) do not count. Enforced by `regression-quality-guard.sh --bugfix`.\n\n## Anti-patterns\n- ❌ Filing a bug with only `bug.md` and skipping spec.md\u002Fdesign.md\u002Fscopes.md\u002Freport.md\u002Fstate.json\n- ❌ Writing a regression test where every fixture would also fail if you reintroduced the bug differently (tautology)\n- ❌ Calling the bug closed without an AFTER-fix reproduction capture\n- ❌ Adding a bypass like `if (page.url().includes('\u002Flogin')) return` in the regression test\n\n## Authoritative modules\n- `agents\u002Fbubbles_shared\u002Fbug-templates.md` — full template text\n- `agents\u002Fbubbles_shared\u002Fartifact-lifecycle.md` — lifecycle rules\n- `agents\u002Fbubbles_shared\u002Fquality-gates.md` — adversarial regression requirement\n- `agents\u002Fbubbles_shared\u002Fe2e-regression.md` — regression expectations\n- `bubbles\u002Fscripts\u002Fregression-quality-guard.sh` — bugfix mode enforcement\n- `bubbles\u002Fscripts\u002Fregression-baseline-guard.sh` — baseline expectations\n","# Bubbles Bug Template\n\n## Goal\nEvery bug folder has all 6 required artifacts before fix work begins, includes a reproducible repro, and produces an adversarial regression test that would fail if the bug were reintroduced.\n\n## When to use\n- Filing a new bug under `specs\u002F\u003Cfeature>\u002Fbugs\u002FBUG-NNN-description\u002F` (or `specs\u002Fbugs\u002FBUG-NNN-...` for cross-feature bugs)\n- Picking up an open bug; verifying it has all 6 artifacts\n- Writing reproduction evidence (BEFORE the fix) and verification evidence (AFTER the fix)\n- Designing the regression test for the bug\n\n## Required artifacts (every bug)\n| File | Notes |\n|------|-------|\n| `bug.md` | description, reproduction steps, observed vs expected, severity |\n| `spec.md` | expected behavior specification (what the code SHOULD do) |\n| `design.md` | root cause analysis + fix design |\n| `scopes.md` | fix scope(s) with DoD checklist + Test Plan |\n| `report.md` | execution evidence: bug reproduced BEFORE fix, fix verified AFTER fix, regression test execution |\n| `state.json` | bug lifecycle state |\n\nIf any file is missing, `bubbles.bug` (or whichever agent is handling the bug) MUST create it before proceeding.\n\n## Bug-reproduction gate (Gate 0)\n1. Reproduce the bug FIRST — capture raw terminal output in `report.md` under a `Before Fix` section.\n2. Apply the fix.\n3. Re-execute the same reproduction sequence — capture output in `report.md` under `After Fix`.\n4. Both captures MUST be in the same session and ≥10 lines each.\n\n## Adversarial regression test (NON-NEGOTIABLE)\nEvery bug-fix regression test MUST include at least one adversarial test case — an input that would FAIL if the bug were reintroduced. Tautological regressions (all fixtures already satisfy the broken code path) do not count. Enforced by `regression-quality-guard.sh --bugfix`.\n\n## Anti-patterns\n- ❌ Filing a bug with only `bug.md` and skipping spec.md\u002Fdesign.md\u002Fscopes.md\u002Freport.md\u002Fstate.json\n- ❌ Writing a regression test where every fixture would also fail if you reintroduced the bug differently (tautology)\n- ❌ Calling the bug closed without an AFTER-fix reproduction capture\n- ❌ Adding a bypass like `if (page.url().includes('\u002Flogin')) return` in the regression test\n\n## Authoritative modules\n- `agents\u002Fbubbles_shared\u002Fbug-templates.md` — full template text\n- `agents\u002Fbubbles_shared\u002Fartifact-lifecycle.md` — lifecycle rules\n- `agents\u002Fbubbles_shared\u002Fquality-gates.md` — adversarial regression requirement\n- `agents\u002Fbubbles_shared\u002Fe2e-regression.md` — regression expectations\n- `bubbles\u002Fscripts\u002Fregression-quality-guard.sh` — bugfix mode enforcement\n- `bubbles\u002Fscripts\u002Fregression-baseline-guard.sh` — baseline expectations\n",{"name":5,"description":7},"main","ed893cc338281a0bb9bb9ecf3415716cb242bb3f",".github\u002Fskills\u002Fbubbles-bug-template",0,"https:\u002F\u002Fgithub.com\u002Fpkirsanov\u002Fsmackerel","https:\u002F\u002Fgithub.com\u002Fpkirsanov","2026-11-07 02:54:37",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add pkirsanov\u002Fsmackerel --skill bubbles-bug-template",{"tool":55,"command":56},"bunx","bunx skills add pkirsanov\u002Fsmackerel --skill bubbles-bug-template",{"tool":58,"command":59},"pnpm","pnpm dlx skills add pkirsanov\u002Fsmackerel --skill bubbles-bug-template","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fpkirsanov\u002Fsmackerel\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fbubbles-bug-template\u002FSKILL.md",true,[],[64,93,121,148,169,196],{"skillNo":65,"name":66,"nameZh":6,"description":67,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":68,"categories":69,"keywords":75,"publishedAt":37},"01M6N9V5TBHQT20V5SCCJ1VRBC","smackerel-trace-capture","Wire Smackerel's concrete validate-plane stack into the framework trace-driven defect-discovery method. Use when running live-category tests (integration\u002Fe2e\u002Fe2e-ui\u002Fstress) against the ephemeral test stack; capturing SLO or trace evidence; hunting latency\u002Ferror\u002Fperf bugs from spans; querying the test-stack Jaeger or Prometheus; or touching `.specify\u002Fruntime\u002Fobservability`. Concrete smackerel endpoints + the exact `capture-slo.sh` command; do NOT duplicate `bubbles-observability-adapter` — this only adds the wiring.","https:\u002F\u002Fgithub.com\u002Fpkirsanov\u002Fsmackerel\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsmackerel-trace-capture\u002FSKILL.md",[70],{"categoryNo":71,"categoryName":72,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[76,77,78,79,80,81,82,83,84,31,85,86,30,87,88,89,90,91,92,22],"trace","capture","smackerel trace capture","perf","observability","prometheus","specify","e2e","discovery","slo","only","do","latency","runtime","tests","adapter","error",{"skillNo":94,"name":95,"nameZh":6,"description":96,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":102,"publishedAt":37},"01M6N9TZDEV26RZ7W34HEFPQE9","smackerel-no-defaults","Enforce Smackerel's NO-DEFAULTS \u002F fail-loud SST policy. Use when editing config, Docker Compose, deploy adapters, docs, instructions, skills, env handling, host bind addresses, or any runtime value that could be hidden by fallback syntax.","https:\u002F\u002Fgithub.com\u002Fpkirsanov\u002Fsmackerel\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fsmackerel-no-defaults\u002FSKILL.md",[99],{"categoryNo":100,"categoryName":101,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000011","运维与部署",[103,104,105,106,107,108,109,110,111,31,112,113,89,114,115,116,117,118,119,120],"smackerel no defaults","docker","policy","config","deploy","docker compose","syntax","editing","instructions","compose","enforce","bind","env","host","Adapters","sst","addresses","value",{"skillNo":122,"name":123,"nameZh":6,"description":124,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":125,"categories":126,"keywords":130,"publishedAt":37},"01M6N9TJRS5PF83JH2W4614D4W","bubbles-workflow-mode-resolution","Resolve a Bubbles workflow mode against `bubbles\u002Fworkflows.yaml`, including template inheritance, status ceilings, gate wiring, and decision policy. Use when picking a mode for a request, when a guard reports a mode-related failure, or when extending workflows.yaml with a new mode or template. Covers natural-language intent routing and the workflow registry consistency rules.","https:\u002F\u002Fgithub.com\u002Fpkirsanov\u002Fsmackerel\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fbubbles-workflow-mode-resolution\u002FSKILL.md",[127],{"categoryNo":128,"categoryName":129,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000023","Skill与智能体开发",[131,132,133,134,105,135,136,137,19,138,139,31,140,141,142,143,144,145,146,147],"workflow","resolution","mode","bubbles workflow mode resolution","workflows","routing","guard","decision","Rules","reports","intent","inheritance","with","consistency","natural-language","for","wiring",{"skillNo":149,"name":150,"nameZh":6,"description":151,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":152,"categories":153,"keywords":155,"publishedAt":37},"01M6N9TC98D6DJR0D64SSN0SN3","bubbles-workflow-execution-loops","Run per-round synchronous workflow execution loops correctly. Use when orchestrating a multi-round workflow, dispatching specialist subagents, handling round-based remediation, or interpreting a workflow mode's execution policy. Covers authorized direct execution, dispatch-and-wait, batch-then-summarize prohibition, and mapped-mode execution.","https:\u002F\u002Fgithub.com\u002Fpkirsanov\u002Fsmackerel\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fbubbles-workflow-execution-loops\u002FSKILL.md",[154],{"categoryNo":128,"categoryName":129,"taxonomyType":73,"taxonomyTypeDesc":74},[131,156,157,158,159,105,160,161,162,163,164,31,165,166,167,168,133],"execution","loops","bubbles workflow execution loops","summarize","run","batch","remediation","direct","subagents","dispatch","wait","multi","multi-round",{"skillNo":170,"name":171,"nameZh":6,"description":172,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":173,"categories":174,"keywords":179,"publishedAt":37},"01M6N9SYXQNJDQ1T1YT81JH2BG","bubbles-vscode-agent-constraints","Design agents that fit the VS Code Copilot Chat runtime instead of fighting it. Use when authoring or editing any `*.agent.md`; when adding `tools:`, `agents:`, `handoffs:`, `model:`, `user-invocable:`, or `disable-model-invocation:` frontmatter; when designing an orchestrator that dispatches specialists; when a design implies agent-calls-agent-calls-agent chaining; when a subagent dispatch silently no-ops or an agent cannot be selected in the dropdown; or when writing a governance rule about delegation that the runtime cannot actually enforce. Prevents multi-level-subagent designs, prose-only dispatch laws, and frontmatter\u002Fbody contradictions.","https:\u002F\u002Fgithub.com\u002Fpkirsanov\u002Fsmackerel\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fbubbles-vscode-agent-constraints\u002FSKILL.md",[175,178],{"categoryNo":176,"categoryName":177,"taxonomyType":73,"taxonomyTypeDesc":74},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":128,"categoryName":129,"taxonomyType":73,"taxonomyTypeDesc":74},[180,181,182,183,29,184,185,186,187,188,189,190,110,191,86,89,192,193,194,195],"vscode","constraints","bubbles vscode agent constraints","design","copilot","code","delegation","Tools","subagent","model","chaining","orchestrator","authoring","fit","subagent dispatch","frontmatter",{"skillNo":197,"name":198,"nameZh":6,"description":199,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":200,"categories":201,"keywords":202,"publishedAt":37},"01M6N9SD78SK12PRT9KBRZ6TB3","bubbles-upkeep-cadence","How to schedule, dispatch, and record recurring operational upkeep tasks (backup, restore-drill, BCDR-drill, patch-cycle, secret-rotation, flag-cleanup, compliance-sweep). Use when authoring or modifying `config\u002Fupkeep-calendar.yaml`, when investigating a missed task, when reading the upkeep ledger, or when adding a new task type.","https:\u002F\u002Fgithub.com\u002Fpkirsanov\u002Fsmackerel\u002Fblob\u002Fmain\u002F.github\u002Fskills\u002Fbubbles-upkeep-cadence\u002FSKILL.md",[],[203,204,205,206,207,208,209,210,31,211,212,213,214,215,216,217,218,219,220,221],"cadence","bubbles upkeep cadence","tasks","cleanup","backup","sweep","schedule","recurring","patch","restore","task","cycle","record","missed","type","drill","how to","new task","rotation"]