[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71HAFPFZ2XMH6D1PRV5V7HX":3,"skill-same:01M71HAFPFZ2XMH6D1PRV5V7HX":64},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":18,"publishedAt":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M71HAFPFZ2XMH6D1PRV5V7HX","quality-check-javascript",null,"Smart Collection JavaScript quality workflow. Use when the user asks to run JavaScript QA, validate esbuild\u002Fjsbundling-rails, check npm dependencies, verify Stimulus\u002FTurbo controllers, or when files under app\u002Fjavascript, package.json, package-lock.json, or JavaScript-related Rails layout\u002Fbuild configuration change.","ZeroIsOnFire\u002Fsmart-collection","ZeroIsOnFire","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F1202472?v=4","01M71HA5N01RTYGNY2NJT0GYX4","Eli Fachin Junior","01M71HA5NPBDGJYY84WSQ20YCP",0,"AGPL-3.0","https:\u002F\u002Fgithub.com\u002FZeroIsOnFire\u002Fsmart-collection\u002Fblob\u002Fmain\u002F.skills\u002Fquality-check-javascript\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"javascript","quality check javascript","quality check","check","quality","collection","verify","rails","package","qa","use","files","build","change","layout","app","turbo","lock","when","workflow","2026-11-10 10:12:30",false,"---\nname: quality-check-javascript\ndescription: Smart Collection JavaScript quality workflow. Use when the user asks to run JavaScript QA, validate esbuild\u002Fjsbundling-rails, check npm dependencies, verify Stimulus\u002FTurbo controllers, or when files under app\u002Fjavascript, package.json, package-lock.json, or JavaScript-related Rails layout\u002Fbuild configuration change.\n---\n\n# Quality Check JavaScript\n\nAssume the Smart Collection JavaScript QA role. Keep the esbuild bundle valid, Stimulus controllers registered, dependency locks consistent, and browser-facing text integrated with the Rails i18n pipeline.\n\n## Scope Detection\n\n- For focused JavaScript changes, run the smallest relevant import\u002Fbuild\u002Flint\u002Fbrowser check before the full workflow.\n- If `package.json` or `package-lock.json` changed, verify dependencies with npm inside the `web` container.\n- If files under `app\u002Fjavascript\u002F` changed, verify imports, Stimulus registration, and the esbuild bundle.\n- If Rails layouts or asset\u002Fbuild configuration changed, verify the generated `application.js` asset is resolvable by Propshaft.\n- If the user asks for full JavaScript QA, run the full workflow below.\n\n## Core Workflow\n\n1. Install or verify JavaScript dependencies from the project root:\n\n```bash\ndocker compose exec web npm ci\n```\n\nUse `npm install` only when intentionally updating `package-lock.json`.\n\n2. Build the JavaScript bundle:\n\n```bash\ndocker compose exec web npm run build\n```\n\n3. Verify Rails can resolve the generated bundle:\n\n```bash\ndocker compose exec web bundle exec rails runner \"puts Rails.application.assets.load_path.find('application.js').logical_path\"\n```\n\n4. Check for dependency vulnerabilities:\n\n```bash\ndocker compose exec web npm audit\n```\n\n5. Run the JavaScript linter:\n\n```bash\ndocker compose exec web npm run lint\n```\n\nDo not add ESLint, Prettier, TypeScript, or other JavaScript tools unless the user explicitly authorizes the new dependency.\n\n## Browser And Playwright Checks\n\n- For visible frontend behavior, first validate the smallest affected route, component, selector, console error, HTTP status, or asset request that can confirm the bug.\n- Prefer short temporary checks for assets, fonts, icons, Stimulus registration, Turbo events, or console errors before capturing large HTML or broad screenshots.\n- Run focused Playwright specs inside the `web` container when browser behavior changes:\n\n```bash\ndocker compose exec web npm run test:e2e -- path\u002Fto\u002Ftest.spec.js --browser=chromium\n```\n\n- Use `http:\u002F\u002F127.0.0.1:3000` when the test runs from inside the `web` container.\n- Remove or ignore temporary diagnostic artifacts after verification.\n\n## Fixing Issues\n\n- Keep JavaScript dependencies managed by npm and locked in `package-lock.json`.\n- Keep generated bundles out of git; only `app\u002Fassets\u002Fbuilds\u002F.keep` should be versioned.\n- Register new Stimulus controllers in `app\u002Fjavascript\u002Fcontrollers\u002Findex.js`.\n- Use relative imports for local modules, such as `..\u002Fi18n`, instead of importmap aliases.\n- Keep JavaScript UI text in `config\u002Flocales\u002Fjavascript.*.yml` and access it through `app\u002Fjavascript\u002Fi18n.js`.\n- Preserve Turbo behavior and existing `data-controller` \u002F `data-action` names when refactoring controllers.\n- Do not hardcode secrets, API keys, passwords, or tokens in JavaScript.\n\n## Final Report\n\nReport:\n- Which JavaScript files or package files were checked.\n- Which npm\u002Fbuild\u002Faudit commands were run.\n- Issues found and fixes applied.\n- Final JavaScript QA status, including whether the bundle is Rails-resolvable.\n","# Quality Check JavaScript\n\nAssume the Smart Collection JavaScript QA role. Keep the esbuild bundle valid, Stimulus controllers registered, dependency locks consistent, and browser-facing text integrated with the Rails i18n pipeline.\n\n## Scope Detection\n\n- For focused JavaScript changes, run the smallest relevant import\u002Fbuild\u002Flint\u002Fbrowser check before the full workflow.\n- If `package.json` or `package-lock.json` changed, verify dependencies with npm inside the `web` container.\n- If files under `app\u002Fjavascript\u002F` changed, verify imports, Stimulus registration, and the esbuild bundle.\n- If Rails layouts or asset\u002Fbuild configuration changed, verify the generated `application.js` asset is resolvable by Propshaft.\n- If the user asks for full JavaScript QA, run the full workflow below.\n\n## Core Workflow\n\n1. Install or verify JavaScript dependencies from the project root:\n\n```bash\ndocker compose exec web npm ci\n```\n\nUse `npm install` only when intentionally updating `package-lock.json`.\n\n2. Build the JavaScript bundle:\n\n```bash\ndocker compose exec web npm run build\n```\n\n3. Verify Rails can resolve the generated bundle:\n\n```bash\ndocker compose exec web bundle exec rails runner \"puts Rails.application.assets.load_path.find('application.js').logical_path\"\n```\n\n4. Check for dependency vulnerabilities:\n\n```bash\ndocker compose exec web npm audit\n```\n\n5. Run the JavaScript linter:\n\n```bash\ndocker compose exec web npm run lint\n```\n\nDo not add ESLint, Prettier, TypeScript, or other JavaScript tools unless the user explicitly authorizes the new dependency.\n\n## Browser And Playwright Checks\n\n- For visible frontend behavior, first validate the smallest affected route, component, selector, console error, HTTP status, or asset request that can confirm the bug.\n- Prefer short temporary checks for assets, fonts, icons, Stimulus registration, Turbo events, or console errors before capturing large HTML or broad screenshots.\n- Run focused Playwright specs inside the `web` container when browser behavior changes:\n\n```bash\ndocker compose exec web npm run test:e2e -- path\u002Fto\u002Ftest.spec.js --browser=chromium\n```\n\n- Use `http:\u002F\u002F127.0.0.1:3000` when the test runs from inside the `web` container.\n- Remove or ignore temporary diagnostic artifacts after verification.\n\n## Fixing Issues\n\n- Keep JavaScript dependencies managed by npm and locked in `package-lock.json`.\n- Keep generated bundles out of git; only `app\u002Fassets\u002Fbuilds\u002F.keep` should be versioned.\n- Register new Stimulus controllers in `app\u002Fjavascript\u002Fcontrollers\u002Findex.js`.\n- Use relative imports for local modules, such as `..\u002Fi18n`, instead of importmap aliases.\n- Keep JavaScript UI text in `config\u002Flocales\u002Fjavascript.*.yml` and access it through `app\u002Fjavascript\u002Fi18n.js`.\n- Preserve Turbo behavior and existing `data-controller` \u002F `data-action` names when refactoring controllers.\n- Do not hardcode secrets, API keys, passwords, or tokens in JavaScript.\n\n## Final Report\n\nReport:\n- Which JavaScript files or package files were checked.\n- Which npm\u002Fbuild\u002Faudit commands were run.\n- Issues found and fixes applied.\n- Final JavaScript QA status, including whether the bundle is Rails-resolvable.\n",{"name":5,"description":7},"main","f7cc6be75df2db15c57ea513592ccf6680ba5b7f",".skills\u002Fquality-check-javascript","https:\u002F\u002Fgithub.com\u002FZeroIsOnFire\u002Fsmart-collection","https:\u002F\u002Fgithub.com\u002FZeroIsOnFire","2026-10-22 06:59:18",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add ZeroIsOnFire\u002Fsmart-collection --skill quality-check-javascript",{"tool":56,"command":57},"bunx","bunx skills add ZeroIsOnFire\u002Fsmart-collection --skill quality-check-javascript",{"tool":59,"command":60},"pnpm","pnpm dlx skills add ZeroIsOnFire\u002Fsmart-collection --skill quality-check-javascript","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FZeroIsOnFire\u002Fsmart-collection\u002Fblob\u002Fmain\u002F.skills\u002Fquality-check-javascript\u002FSKILL.md",true,[],[65,85,103,119,124,129],{"skillNo":66,"name":67,"nameZh":6,"description":68,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":69,"categories":70,"keywords":71,"publishedAt":39},"01M71HAN0DPNYWXS8DNW9J5NTP","security-check","Smart Collection security audit workflow. Use when the user asks to run security checks, audit Ruby gems, audit JavaScript or Python dependencies, verify bundler-audit, run OWASP ZAP against the Rails app, investigate vulnerable dependencies, fix security issues, or improve project security posture in this Rails\u002FMongoid\u002FPython\u002FDocker project.","https:\u002F\u002Fgithub.com\u002FZeroIsOnFire\u002Fsmart-collection\u002Fblob\u002Fmain\u002F.skills\u002Fsecurity-check\u002FSKILL.md",[],[72,73,22,19,34,74,75,76,77,78,79,80,81,82,29,37,38,24,83,84],"security","security check","owasp zap","security audit","project","docker","fix","issues","python","improve","ruby","project security","audit workflow",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":96,"publishedAt":39},"01M71HAKB5K11SGMC6Z9CMCBJR","quality-check-rails","Smart Collection Rails quality assurance workflow. Use when the user asks to run Rails QA, verify project quality, check RuboCop\u002FRSpec, validate Rails CI readiness, or fix quality issues in the Rails\u002FMongoid\u002FDocker application.","https:\u002F\u002Fgithub.com\u002FZeroIsOnFire\u002Fsmart-collection\u002Fblob\u002Fmain\u002F.skills\u002Fquality-check-rails\u002FSKILL.md",[91],{"categoryNo":92,"categoryName":93,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000011","运维与部署","SCENARIO","使用场景",[23,26,22,97,21,25,98,99,24,38,37,100,76,77,101,78,102,79,28,29],"quality check rails","run","readiness","quality assurance","rspec","ci",{"skillNo":104,"name":105,"nameZh":6,"description":106,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":107,"categories":108,"keywords":109,"publishedAt":39},"01M71HAHPNJ2P9KQCCHRRJA99P","quality-check-python","Smart Collection Python microservice quality workflow. Use when the user asks to run Python QA, lint Python code, test Python microservices, validate yolo\u002Fupscale changes, or when files under yolo\u002F or upscale\u002F change.","https:\u002F\u002Fgithub.com\u002FZeroIsOnFire\u002Fsmart-collection\u002Fblob\u002Fmain\u002F.skills\u002Fquality-check-python\u002FSKILL.md",[],[23,22,110,80,21,111,112,113,30,28,29,37,38,24,114,115,116,117,32,118],"quality check python","test","yolo","microservice","code","lint","python code","lint python","test python",{"skillNo":120,"name":67,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":121,"categories":122,"keywords":123,"publishedAt":39},"01M71HAF09H16G82Z4SY5V9TG7","https:\u002F\u002Fgithub.com\u002FZeroIsOnFire\u002Fsmart-collection\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fsecurity-check\u002FSKILL.md",[],[22,73,72],{"skillNo":125,"name":87,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":39},"01M71HAE8XDNTWWXP66S13JTTS","https:\u002F\u002Fgithub.com\u002FZeroIsOnFire\u002Fsmart-collection\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fquality-check-rails\u002FSKILL.md",[],[23,97,21,26,22],{"skillNo":130,"name":105,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":39},"01M71HADJG1CRZMNDQ7SPF77XB","https:\u002F\u002Fgithub.com\u002FZeroIsOnFire\u002Fsmart-collection\u002Fblob\u002Fmain\u002F.gemini\u002Fskills\u002Fquality-check-python\u002FSKILL.md",[],[23,80,21,110,22]]