[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M783HTJXKG3PHSMZC34QQVTJ":3,"skill-same:01M783HTJXKG3PHSMZC34QQVTJ":45},{"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":25,"commitSha":26,"skillDirectory":27,"forksCount":13,"repositoryHtmlUrl":28,"repositoryHomepageUrl":6,"ownerHtmlUrl":29,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M783HTJXKG3PHSMZC34QQVTJ","bun-test-coverage",null,"Use for test coverage with Bun, --coverage flag, lcov reports, thresholds, and CI integration.","aibizmod\u002Faibizmod-service-web","aibizmod","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F295315630?v=4","01M7836CB8EQY701YQ7N88M591","01M7836CBVPZGNSJ8BRP2BT398",0,"MIT","https:\u002F\u002Fgithub.com\u002Faibizmod\u002Faibizmod-service-web\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fclaude-skills\u002Fplugins\u002Fbun\u002Fskills\u002Fbun-test-coverage\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: bun-test-coverage\ndescription: Use for test coverage with Bun, --coverage flag, lcov reports, thresholds, and CI integration.\nmetadata:\n  version: \"1.0.0\"\nlicense: MIT\n---\n\n# Bun Test Coverage\n\nBun has built-in code coverage reporting without additional dependencies.\n\n## Enabling Coverage\n\n```bash\n# Enable coverage\nbun test --coverage\n\n# With threshold (fail if below)\nbun test --coverage --coverage-threshold 80\n```\n\n## Configuration in bunfig.toml\n\n```toml\n[test]\ncoverage = true\ncoverageThreshold = 0.8  # 80% minimum\ncoverageDir = \".\u002Fcoverage\"\n\n# Patterns to ignore\ncoverageSkipTestFiles = true\n```\n\n## Coverage Output\n\n```\n------------------|---------|---------|-------------------\nFile              | % Funcs | % Lines | Uncovered Line #s\n------------------|---------|---------|-------------------\nAll files         |   85.71 |   89.23 |\n src\u002Findex.ts     |  100.00 |  100.00 |\n src\u002Futils.ts     |   75.00 |   82.35 | 23-25, 41-43\n src\u002Fapi.ts       |   80.00 |   85.00 | 67, 89-92\n------------------|---------|---------|-------------------\n```\n\n## Coverage Reporters\n\n```bash\n# Default console output\nbun test --coverage\n\n# Generate lcov report\nbun test --coverage --coverage-reporter=lcov\n\n# Multiple reporters\nbun test --coverage --coverage-reporter=text --coverage-reporter=lcov\n```\n\n### Available Reporters\n\n| Reporter | Output |\n|----------|--------|\n| `text` | Console table (default) |\n| `lcov` | `coverage\u002Flcov.info` for CI tools |\n| `json` | `coverage\u002Fcoverage.json` |\n\n## Coverage Thresholds\n\nSet minimum coverage requirements:\n\n```bash\n# Fail if coverage \u003C 80%\nbun test --coverage --coverage-threshold 80\n\n# Per-metric thresholds in bunfig.toml\n```\n\n```toml\n[test]\ncoverage = true\ncoverageThreshold = {\n  lines = 80,\n  functions = 75,\n  branches = 70\n}\n```\n\n## Excluding Files\n\n```toml\n[test]\ncoverage = true\n\n# Skip test files from coverage\ncoverageSkipTestFiles = true\n\n# Patterns to exclude\ncoverageIgnore = [\n  \"**\u002F*.test.ts\",\n  \"**\u002Ffixtures\u002F**\",\n  \"**\u002Fmocks\u002F**\"\n]\n```\n\n## CI Integration\n\n### GitHub Actions\n\n```yaml\n- name: Run tests with coverage\n  run: bun test --coverage --coverage-reporter=lcov\n\n- name: Upload coverage to Codecov\n  uses: codecov\u002Fcodecov-action@v5\n  with:\n    files: .\u002Fcoverage\u002Flcov.info\n```\n\n### Output Directory\n\n```bash\n# Custom output directory\nbun test --coverage --coverage-dir=.\u002Freports\u002Fcoverage\n```\n\n## Programmatic Coverage\n\n```typescript\nimport { test, expect } from \"bun:test\";\n\n\u002F\u002F Get coverage data programmatically\nconst coverage = Bun.coverage;\n\n\u002F\u002F Access after tests complete\nprocess.on(\"exit\", () => {\n  console.log(coverage.getCoverageData());\n});\n```\n\n## Common Errors\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| `Coverage threshold not met` | Coverage below threshold | Increase test coverage |\n| `No coverage data` | Files not executed | Check test includes file |\n| `lcov not found` | Missing reporter | Add `--coverage-reporter=lcov` |\n\n## Best Practices\n\n1. **Set realistic thresholds** - Start at 60%, increase gradually\n2. **Exclude generated files** - Mock files, type definitions\n3. **Focus on critical paths** - Business logic over boilerplate\n4. **Run in CI** - Prevent coverage regression\n\n## When to Load References\n\nLoad `references\u002Freporters.md` when:\n- Custom reporter configuration\n- CI\u002FCD integration details\n- Codecov\u002FCoveralls setup\n","# Bun Test Coverage\n\nBun has built-in code coverage reporting without additional dependencies.\n\n## Enabling Coverage\n\n```bash\n# Enable coverage\nbun test --coverage\n\n# With threshold (fail if below)\nbun test --coverage --coverage-threshold 80\n```\n\n## Configuration in bunfig.toml\n\n```toml\n[test]\ncoverage = true\ncoverageThreshold = 0.8  # 80% minimum\ncoverageDir = \".\u002Fcoverage\"\n\n# Patterns to ignore\ncoverageSkipTestFiles = true\n```\n\n## Coverage Output\n\n```\n------------------|---------|---------|-------------------\nFile              | % Funcs | % Lines | Uncovered Line #s\n------------------|---------|---------|-------------------\nAll files         |   85.71 |   89.23 |\n src\u002Findex.ts     |  100.00 |  100.00 |\n src\u002Futils.ts     |   75.00 |   82.35 | 23-25, 41-43\n src\u002Fapi.ts       |   80.00 |   85.00 | 67, 89-92\n------------------|---------|---------|-------------------\n```\n\n## Coverage Reporters\n\n```bash\n# Default console output\nbun test --coverage\n\n# Generate lcov report\nbun test --coverage --coverage-reporter=lcov\n\n# Multiple reporters\nbun test --coverage --coverage-reporter=text --coverage-reporter=lcov\n```\n\n### Available Reporters\n\n| Reporter | Output |\n|----------|--------|\n| `text` | Console table (default) |\n| `lcov` | `coverage\u002Flcov.info` for CI tools |\n| `json` | `coverage\u002Fcoverage.json` |\n\n## Coverage Thresholds\n\nSet minimum coverage requirements:\n\n```bash\n# Fail if coverage \u003C 80%\nbun test --coverage --coverage-threshold 80\n\n# Per-metric thresholds in bunfig.toml\n```\n\n```toml\n[test]\ncoverage = true\ncoverageThreshold = {\n  lines = 80,\n  functions = 75,\n  branches = 70\n}\n```\n\n## Excluding Files\n\n```toml\n[test]\ncoverage = true\n\n# Skip test files from coverage\ncoverageSkipTestFiles = true\n\n# Patterns to exclude\ncoverageIgnore = [\n  \"**\u002F*.test.ts\",\n  \"**\u002Ffixtures\u002F**\",\n  \"**\u002Fmocks\u002F**\"\n]\n```\n\n## CI Integration\n\n### GitHub Actions\n\n```yaml\n- name: Run tests with coverage\n  run: bun test --coverage --coverage-reporter=lcov\n\n- name: Upload coverage to Codecov\n  uses: codecov\u002Fcodecov-action@v5\n  with:\n    files: .\u002Fcoverage\u002Flcov.info\n```\n\n### Output Directory\n\n```bash\n# Custom output directory\nbun test --coverage --coverage-dir=.\u002Freports\u002Fcoverage\n```\n\n## Programmatic Coverage\n\n```typescript\nimport { test, expect } from \"bun:test\";\n\n\u002F\u002F Get coverage data programmatically\nconst coverage = Bun.coverage;\n\n\u002F\u002F Access after tests complete\nprocess.on(\"exit\", () => {\n  console.log(coverage.getCoverageData());\n});\n```\n\n## Common Errors\n\n| Error | Cause | Fix |\n|-------|-------|-----|\n| `Coverage threshold not met` | Coverage below threshold | Increase test coverage |\n| `No coverage data` | Files not executed | Check test includes file |\n| `lcov not found` | Missing reporter | Add `--coverage-reporter=lcov` |\n\n## Best Practices\n\n1. **Set realistic thresholds** - Start at 60%, increase gradually\n2. **Exclude generated files** - Mock files, type definitions\n3. **Focus on critical paths** - Business logic over boilerplate\n4. **Run in CI** - Prevent coverage regression\n\n## When to Load References\n\nLoad `references\u002Freporters.md` when:\n- Custom reporter configuration\n- CI\u002FCD integration details\n- Codecov\u002FCoveralls setup\n",{"name":5,"license":14,"metadata":23,"description":7},{"version":24},"1.0.0","main","9f54582c8b485462d402d7e70feaef34801746b9",".opencode\u002Fskill\u002Fclaude-skills\u002Fplugins\u002Fbun\u002Fskills\u002Fbun-test-coverage","https:\u002F\u002Fgithub.com\u002Faibizmod\u002Faibizmod-service-web","https:\u002F\u002Fgithub.com\u002Faibizmod","2026-09-24 00:48:11",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add aibizmod\u002Faibizmod-service-web --skill bun-test-coverage",{"tool":37,"command":38},"bunx","bunx skills add aibizmod\u002Faibizmod-service-web --skill bun-test-coverage",{"tool":40,"command":41},"pnpm","pnpm dlx skills add aibizmod\u002Faibizmod-service-web --skill bun-test-coverage","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Faibizmod\u002Faibizmod-service-web\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fclaude-skills\u002Fplugins\u002Fbun\u002Fskills\u002Fbun-test-coverage\u002FSKILL.md",true,[],[46,53,60,67,74,81],{"skillNo":47,"name":48,"nameZh":6,"description":49,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":50,"categories":51,"keywords":52,"publishedAt":18},"01M7846EAPZWCQ8C6G3AAMMR57","{TODO=lowercase-hyphen-case-name}","[TODO: Write comprehensive description in third-person. Start with \"This skill provides...\" or \"This skill should be used when...\"]\n\n[TODO: Add \"Use when\" scenarios - specific situations where Claude should use this skill]\n\n[TODO: Add keywords - technologies, use cases, error messages that should trigger this skill]","https:\u002F\u002Fgithub.com\u002Faibizmod\u002Faibizmod-service-web\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fclaude-skills\u002Ftemplates\u002Fskill-skeleton\u002Fskills\u002Fskill-name\u002FSKILL.md",[],[],{"skillNo":54,"name":55,"nameZh":6,"description":56,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":57,"categories":58,"keywords":59,"publishedAt":18},"01M7846A0WGDKJTDPD5QMHQVFV","zustand-state-management","Zustand state management for React with TypeScript. Use for global state, Redux\u002FContext API migration, localStorage persistence, slices pattern, devtools, Next.js SSR, or encountering hydration errors, TypeScript inference issues, persist middleware problems, infinite render loops.","https:\u002F\u002Fgithub.com\u002Faibizmod\u002Faibizmod-service-web\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fclaude-skills\u002Fplugins\u002Fzustand-state-management\u002Fskills\u002Fzustand-state-management\u002FSKILL.md",[],[],{"skillNo":61,"name":62,"nameZh":6,"description":63,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":18},"01M78463GGSP9B3JSF146B2MG0","zod","TypeScript-first schema validation and type inference. Use for validating API requests\u002Fresponses, form data, env vars, configs, defining type-safe schemas with runtime validation, transforming data, generating JSON Schema for OpenAPI\u002FAI, or encountering missing validation errors, type inference issues, validation error handling problems. Zero dependencies (2kb gzipped).","https:\u002F\u002Fgithub.com\u002Faibizmod\u002Faibizmod-service-web\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fclaude-skills\u002Fplugins\u002Fzod\u002Fskills\u002Fzod\u002FSKILL.md",[],[],{"skillNo":68,"name":69,"nameZh":6,"description":70,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":71,"categories":72,"keywords":73,"publishedAt":18},"01M7845ZX17SVNNY7EDGPJHSBT","xss-prevention","XSS attack prevention with input sanitization, output encoding, Content Security Policy. Use for user-generated content, rich text editors, web application security, or encountering stored XSS, reflected XSS, DOM manipulation, script injection errors.","https:\u002F\u002Fgithub.com\u002Faibizmod\u002Faibizmod-service-web\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fclaude-skills\u002Fplugins\u002Fxss-prevention\u002Fskills\u002Fxss-prevention\u002FSKILL.md",[],[],{"skillNo":75,"name":76,"nameZh":6,"description":77,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":18},"01M7845ST1H37YHSXWWQ9N0V0S","wordpress-plugin-core","WordPress plugin development with hooks, security, REST API, custom post types. Use for plugin creation, $wpdb queries, Settings API, or encountering SQL injection, XSS, CSRF, nonce errors.","https:\u002F\u002Fgithub.com\u002Faibizmod\u002Faibizmod-service-web\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fclaude-skills\u002Fplugins\u002Fwordpress-plugin-core\u002Fskills\u002Fwordpress-plugin-core\u002FSKILL.md",[],[],{"skillNo":82,"name":83,"nameZh":6,"description":84,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":18},"01M7845PTWD5HWSTGP35Q8TFNY","woocommerce-dev-cycle","Run tests, linting, and quality checks for WooCommerce development. Use when running tests, fixing code style, or following the development workflow in WooCommerce projects.","https:\u002F\u002Fgithub.com\u002Faibizmod\u002Faibizmod-service-web\u002Fblob\u002Fmain\u002F.opencode\u002Fskill\u002Fclaude-skills\u002Fplugins\u002Fwoocommerce-dev-cycle\u002Fskills\u002Fwoocommerce-dev-cycle\u002FSKILL.md",[],[]]