[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NWRDQDX9ZNETAWRRMQWV52":3,"skill-same:01M6NWRDQDX9ZNETAWRRMQWV52":74},{"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":26,"publishedAt":47,"linkOnly":48,"markdownContent":49,"markdownBody":50,"frontMatter":51,"refName":52,"commitSha":53,"skillDirectory":54,"forksCount":14,"repositoryHtmlUrl":55,"repositoryHomepageUrl":6,"ownerHtmlUrl":56,"ownerBlogUrl":57,"ownerDescription":58,"updatedAt":59,"install":60,"resources":73},"01M6NWRDQDX9ZNETAWRRMQWV52","visual-verdict",null,"Screenshot comparison QA for frontend development. Takes a screenshot of the current implementation, scores it across multiple visual dimensions, and returns a structured PASS\u002FREVISE\u002FFAIL verdict with concrete fixes. Use when implementing UI from a design reference or verifying visual correctness.","rubicanjr\u002FFinCognis","rubicanjr","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F234912519?v=4","01M6NT156NND8J474G34SB3923","Rubi","01M6NT15B70RWXE1N3YV0BZY8A",0,"MIT","https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-verdict\u002FSKILL.md",[18,23],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46],"visual verdict","verdict","visual","fixes","frontend","for","implementing","correctness","comparison","revise","across","dimensions","frontend development","use","returns","ui","screenshot","qa","development","design","2026-11-10 10:12:30",false,"---\nname: visual-verdict\ndescription: Screenshot comparison QA for frontend development. Takes a screenshot of the current implementation, scores it across multiple visual dimensions, and returns a structured PASS\u002FREVISE\u002FFAIL verdict with concrete fixes. Use when implementing UI from a design reference or verifying visual correctness.\n---\n\n# Visual Verdict — Screenshot QA Skill\n\nPixel-imprecise human eyes miss visual bugs. This skill provides structured, scored visual review using screenshots, returning actionable verdicts rather than vague impressions.\n\n## When to Activate\n\n- After a frontend-dev agent implements a UI component or page\n- When cloning an external website (pairs with clone-website skill)\n- After CSS changes to verify no visual regressions\n- When a designer provides a Figma export or reference screenshot\n- Before marking any UI task as complete\n\n## How It Works\n\n```\n1. Take screenshot of current implementation\n2. Load reference (design mockup, Figma export, or previous version)\n3. Score against 6 dimensions (0-100 each)\n4. Compute weighted total score\n5. Issue verdict: PASS (90+) \u002F REVISE (60-89) \u002F FAIL (\u003C60)\n6. List concrete mismatches with file + line fix hints\n7. Loop: frontend-dev fixes → new screenshot → rescore → repeat until PASS\n```\n\n## Prerequisites\n\n- browser-use MCP installed and active (`~\u002F.mcp.json`)\n- Reference image available (Figma PNG export, screenshot, or URL)\n- Implementation running (local dev server or deployed URL)\n\n## Scoring Dimensions\n\n### Dimension Weights\n\n| Dimension | Weight | Description |\n|-----------|--------|-------------|\n| Layout accuracy | 0.25 | Positioning, spacing, alignment of all elements |\n| Typography | 0.15 | Font family, size, weight, line-height, letter-spacing |\n| Color accuracy | 0.15 | Background, text, border, shadow, gradient colors |\n| Responsive behavior | 0.15 | Breakpoint transitions, mobile\u002Ftablet rendering |\n| Interactive states | 0.15 | Hover, focus, active, disabled, loading states |\n| Content completeness | 0.15 | All text, images, icons, labels present |\n\n### Weighted Score Formula\n\n```\ntotal = (layout * 0.25) + (typography * 0.15) + (color * 0.15)\n      + (responsive * 0.15) + (interactive * 0.15) + (content * 0.15)\n```\n\n### Scoring Each Dimension (0-100)\n\n**Layout accuracy**\n- All elements exactly in position, spacing matches: 90-100\n- Minor spacing deviation (\u003C 4px): 75-89\n- Noticeable misalignment (4-16px): 50-74\n- Layout clearly wrong (columns swapped, elements missing): 0-49\n\n**Typography**\n- Font, size, weight, line-height all match: 90-100\n- One attribute off (wrong weight only): 70-89\n- Two attributes off: 50-69\n- Wrong font family entirely: 0-49\n\n**Color accuracy**\n- All colors within 5% of reference: 90-100\n- One element color clearly off: 65-89\n- Multiple elements wrong color: 40-64\n- Dark\u002Flight mode inverted: 0-39\n\n**Responsive behavior**\n- Tested at 3 breakpoints, all correct: 90-100\n- One breakpoint breaks layout: 65-89\n- Two breakpoints break: 40-64\n- Not responsive at all: 0-39\n\n**Interactive states**\n- All states implemented and visible: 90-100\n- Missing one minor state (loading): 70-89\n- Missing hover or focus: 50-69\n- No interactive states at all: 0-49\n\n**Content completeness**\n- All text, images, icons present: 90-100\n- One non-critical item missing: 75-89\n- One critical item missing (CTA, heading): 50-74\n- Multiple items missing: 0-49\n\n## Verdict Thresholds\n\n| Verdict | Score | Meaning |\n|---------|-------|---------|\n| PASS | 90-100 | Acceptable for production |\n| REVISE | 60-89 | Needs fixes, not shippable |\n| FAIL | 0-59 | Major rework required |\n\n## Verdict Output Format\n\n```markdown\n## Visual Verdict: [Component\u002FPage Name]\n\n**Score: 85\u002F100 — REVISE**\n**Attempt: 2\u002F5**\n**Previous score: 72 (+13 this iteration)**\n\n### Dimension Scores\n| Dimension | Score | Weight | Weighted | Issues |\n|-----------|-------|--------|----------|--------|\n| Layout | 92 | 0.25 | 23.0 | Minor padding on mobile |\n| Typography | 68 | 0.15 | 10.2 | Wrong font-weight on H2 |\n| Color | 96 | 0.15 | 14.4 | - |\n| Responsive | 80 | 0.15 | 12.0 | Card grid breaks at 768px |\n| Interactive | 82 | 0.15 | 12.3 | Missing hover on CTA |\n| Content | 91 | 0.15 | 13.7 | - |\n| **TOTAL** | | | **85.6** | |\n\n### Concrete Mismatches (prioritized by impact)\n\n1. **[Typography \u002F HIGH]** H2 hero heading\n   Expected: `font-weight: 700`\n   Actual: `font-weight: 400` (normal weight)\n   Fix: `src\u002Fcomponents\u002FHero.tsx` → add `font-bold` class to `\u003Ch2>`\n\n2. **[Responsive \u002F MEDIUM]** Card grid layout\n   Expected: 3-column grid collapses at 1024px\n   Actual: Collapses at 768px — causes overflow between 768-1024\n   Fix: `src\u002Fcomponents\u002FCardGrid.tsx` → change `md:grid-cols-3` to `lg:grid-cols-3`\n\n3. **[Interactive \u002F MEDIUM]** Primary CTA button\n   Expected: Darker background on hover (`bg-blue-700`)\n   Actual: No hover state change\n   Fix: `src\u002Fcomponents\u002FHero.tsx` → add `hover:bg-blue-700 transition-colors` to CTA\n\n4. **[Layout \u002F LOW]** Mobile padding\n   Expected: 16px horizontal padding on mobile\n   Actual: 12px\n   Fix: `src\u002Fcomponents\u002FLayout.tsx` → change `px-3` to `px-4`\n\n### Next Steps\nFix issues 1-3 above, then call visual-verdict again.\nEstimated score after fixes: ~94 (PASS)\n```\n\n## Screenshot Workflow with browser-use MCP\n\n### Taking the Current Implementation Screenshot\n\n```\nUse browser-use MCP:\n1. Navigate to implementation URL (e.g., http:\u002F\u002Flocalhost:3000\u002Fdashboard)\n2. Wait for page fully loaded (no spinners)\n3. Take full-page screenshot\n4. Save to \u002Ftmp\u002Fverdict-current-{timestamp}.png\n```\n\n### Loading the Reference\n\nThree reference types accepted:\n\n**Figma PNG export**: Designer exports component\u002Fpage as PNG at 2x\n```\nReference path: ~\u002FDesktop\u002Fdesigns\u002Fdashboard-v2.png\n```\n\n**Previous production screenshot**: Regression check\n```\nReference path: ~\u002F.claude\u002Fbenchmarks\u002Fscreenshots\u002Fdashboard-prod.png\n```\n\n**Live URL comparison**: Compare two running versions\n```\nReference URL A: http:\u002F\u002Flocalhost:3000\u002Fdashboard (current)\nReference URL B: https:\u002F\u002Fstaging.app.com\u002Fdashboard (baseline)\n```\n\n### Responsive Testing Breakpoints\n\nAlways test at these three widths unless told otherwise:\n\n| Name | Width | Target |\n|------|-------|--------|\n| Mobile | 375px | iPhone SE |\n| Tablet | 768px | iPad portrait |\n| Desktop | 1440px | Standard laptop |\n\n## Integration with frontend-dev Agent\n\nThe typical iteration loop:\n\n```\nfrontend-dev implements component\n  → visual-verdict takes screenshot + scores\n  → REVISE: sends concrete fix list to frontend-dev\n  → frontend-dev applies fixes\n  → visual-verdict rescores\n  → Repeat until PASS (max 5 iterations)\n  → PASS: task marked complete\n```\n\n### Iteration Limit\n\nMaximum 5 iterations per component. If PASS is not reached after 5 attempts:\n\n```\nESCALATION: Visual QA failed after 5 iterations\nComponent: [name]\nBest score achieved: [score]\nBlocker: [specific issue that keeps failing]\nRecommendation: [designer clarification needed \u002F fundamentally wrong approach]\n```\n\n## Integration with clone-website Skill\n\nWhen cloning an external site, visual-verdict is the quality gate:\n\n```\n1. clone-website skill produces initial implementation\n2. visual-verdict screenshots both original and clone\n3. Scores similarity across all 6 dimensions\n4. REVISE verdict triggers targeted fixes\n5. PASS verdict confirms clone is production-ready\n```\n\n## Color Comparison Method\n\nColor is compared by extracting computed CSS values and comparing:\n\n```\nReference color:      #1D4ED8  (rgb 29, 78, 216)\nActual color:         #2563EB  (rgb 37, 99, 235)\nDelta E (perceived):  6.2 — noticeable, score -15\n```\n\nDelta E thresholds:\n- Delta E \u003C 2: Imperceptible — full score\n- Delta E 2-5: Barely noticeable — minor deduction\n- Delta E 5-10: Noticeable — moderate deduction\n- Delta E > 10: Clearly wrong — major deduction\n\n## Typography Extraction\n\nTypography is checked by reading computed styles, not pixels:\n\n```javascript\n\u002F\u002F Extract from running implementation\nconst element = document.querySelector('.hero-title')\nconst styles = window.getComputedStyle(element)\n\n{\n  fontFamily: styles.fontFamily,        \u002F\u002F Compare against reference\n  fontSize: styles.fontSize,            \u002F\u002F \"32px\" vs expected \"36px\"\n  fontWeight: styles.fontWeight,        \u002F\u002F \"400\" vs expected \"700\"\n  lineHeight: styles.lineHeight,        \u002F\u002F \"1.5\" vs expected \"1.25\"\n  letterSpacing: styles.letterSpacing   \u002F\u002F \"normal\" vs expected \"-0.02em\"\n}\n```\n\n## Common Visual Bugs Caught\n\n- Font weight 400 instead of 700 (bold not applying)\n- Tailwind class not included in safelist (purged in build)\n- Media query breakpoint uses px when rem expected\n- Hover state not added after copy-paste from design\n- Icon imported but wrong size prop\n- Color defined in CSS variable but variable not set in theme\n- Padding\u002Fmargin using `px-3` when design shows `px-4`\n- Z-index issue hiding interactive element\n- Border-radius value wrong (rounded vs rounded-lg vs rounded-full)\n- Line-clamp not applied, text overflows on mobile\n\n## Saving Screenshots for Regression History\n\nAfter a PASS verdict, save the screenshot as the new baseline:\n\n```bash\ncp \u002Ftmp\u002Fverdict-current-{timestamp}.png \\\n   ~\u002F.claude\u002Fbenchmarks\u002Fscreenshots\u002F{component-name}-{date}.png\n```\n\nOn the next change, this saved screenshot becomes the reference for regression comparison.\n\n---\n\n**Remember**: A visual that looks \"pretty close\" in a quick glance often has 3-5 compounding issues that add up to a broken experience. Score it. Trust the number, not the impression.\n","# Visual Verdict — Screenshot QA Skill\n\nPixel-imprecise human eyes miss visual bugs. This skill provides structured, scored visual review using screenshots, returning actionable verdicts rather than vague impressions.\n\n## When to Activate\n\n- After a frontend-dev agent implements a UI component or page\n- When cloning an external website (pairs with clone-website skill)\n- After CSS changes to verify no visual regressions\n- When a designer provides a Figma export or reference screenshot\n- Before marking any UI task as complete\n\n## How It Works\n\n```\n1. Take screenshot of current implementation\n2. Load reference (design mockup, Figma export, or previous version)\n3. Score against 6 dimensions (0-100 each)\n4. Compute weighted total score\n5. Issue verdict: PASS (90+) \u002F REVISE (60-89) \u002F FAIL (\u003C60)\n6. List concrete mismatches with file + line fix hints\n7. Loop: frontend-dev fixes → new screenshot → rescore → repeat until PASS\n```\n\n## Prerequisites\n\n- browser-use MCP installed and active (`~\u002F.mcp.json`)\n- Reference image available (Figma PNG export, screenshot, or URL)\n- Implementation running (local dev server or deployed URL)\n\n## Scoring Dimensions\n\n### Dimension Weights\n\n| Dimension | Weight | Description |\n|-----------|--------|-------------|\n| Layout accuracy | 0.25 | Positioning, spacing, alignment of all elements |\n| Typography | 0.15 | Font family, size, weight, line-height, letter-spacing |\n| Color accuracy | 0.15 | Background, text, border, shadow, gradient colors |\n| Responsive behavior | 0.15 | Breakpoint transitions, mobile\u002Ftablet rendering |\n| Interactive states | 0.15 | Hover, focus, active, disabled, loading states |\n| Content completeness | 0.15 | All text, images, icons, labels present |\n\n### Weighted Score Formula\n\n```\ntotal = (layout * 0.25) + (typography * 0.15) + (color * 0.15)\n      + (responsive * 0.15) + (interactive * 0.15) + (content * 0.15)\n```\n\n### Scoring Each Dimension (0-100)\n\n**Layout accuracy**\n- All elements exactly in position, spacing matches: 90-100\n- Minor spacing deviation (\u003C 4px): 75-89\n- Noticeable misalignment (4-16px): 50-74\n- Layout clearly wrong (columns swapped, elements missing): 0-49\n\n**Typography**\n- Font, size, weight, line-height all match: 90-100\n- One attribute off (wrong weight only): 70-89\n- Two attributes off: 50-69\n- Wrong font family entirely: 0-49\n\n**Color accuracy**\n- All colors within 5% of reference: 90-100\n- One element color clearly off: 65-89\n- Multiple elements wrong color: 40-64\n- Dark\u002Flight mode inverted: 0-39\n\n**Responsive behavior**\n- Tested at 3 breakpoints, all correct: 90-100\n- One breakpoint breaks layout: 65-89\n- Two breakpoints break: 40-64\n- Not responsive at all: 0-39\n\n**Interactive states**\n- All states implemented and visible: 90-100\n- Missing one minor state (loading): 70-89\n- Missing hover or focus: 50-69\n- No interactive states at all: 0-49\n\n**Content completeness**\n- All text, images, icons present: 90-100\n- One non-critical item missing: 75-89\n- One critical item missing (CTA, heading): 50-74\n- Multiple items missing: 0-49\n\n## Verdict Thresholds\n\n| Verdict | Score | Meaning |\n|---------|-------|---------|\n| PASS | 90-100 | Acceptable for production |\n| REVISE | 60-89 | Needs fixes, not shippable |\n| FAIL | 0-59 | Major rework required |\n\n## Verdict Output Format\n\n```markdown\n## Visual Verdict: [Component\u002FPage Name]\n\n**Score: 85\u002F100 — REVISE**\n**Attempt: 2\u002F5**\n**Previous score: 72 (+13 this iteration)**\n\n### Dimension Scores\n| Dimension | Score | Weight | Weighted | Issues |\n|-----------|-------|--------|----------|--------|\n| Layout | 92 | 0.25 | 23.0 | Minor padding on mobile |\n| Typography | 68 | 0.15 | 10.2 | Wrong font-weight on H2 |\n| Color | 96 | 0.15 | 14.4 | - |\n| Responsive | 80 | 0.15 | 12.0 | Card grid breaks at 768px |\n| Interactive | 82 | 0.15 | 12.3 | Missing hover on CTA |\n| Content | 91 | 0.15 | 13.7 | - |\n| **TOTAL** | | | **85.6** | |\n\n### Concrete Mismatches (prioritized by impact)\n\n1. **[Typography \u002F HIGH]** H2 hero heading\n   Expected: `font-weight: 700`\n   Actual: `font-weight: 400` (normal weight)\n   Fix: `src\u002Fcomponents\u002FHero.tsx` → add `font-bold` class to `\u003Ch2>`\n\n2. **[Responsive \u002F MEDIUM]** Card grid layout\n   Expected: 3-column grid collapses at 1024px\n   Actual: Collapses at 768px — causes overflow between 768-1024\n   Fix: `src\u002Fcomponents\u002FCardGrid.tsx` → change `md:grid-cols-3` to `lg:grid-cols-3`\n\n3. **[Interactive \u002F MEDIUM]** Primary CTA button\n   Expected: Darker background on hover (`bg-blue-700`)\n   Actual: No hover state change\n   Fix: `src\u002Fcomponents\u002FHero.tsx` → add `hover:bg-blue-700 transition-colors` to CTA\n\n4. **[Layout \u002F LOW]** Mobile padding\n   Expected: 16px horizontal padding on mobile\n   Actual: 12px\n   Fix: `src\u002Fcomponents\u002FLayout.tsx` → change `px-3` to `px-4`\n\n### Next Steps\nFix issues 1-3 above, then call visual-verdict again.\nEstimated score after fixes: ~94 (PASS)\n```\n\n## Screenshot Workflow with browser-use MCP\n\n### Taking the Current Implementation Screenshot\n\n```\nUse browser-use MCP:\n1. Navigate to implementation URL (e.g., http:\u002F\u002Flocalhost:3000\u002Fdashboard)\n2. Wait for page fully loaded (no spinners)\n3. Take full-page screenshot\n4. Save to \u002Ftmp\u002Fverdict-current-{timestamp}.png\n```\n\n### Loading the Reference\n\nThree reference types accepted:\n\n**Figma PNG export**: Designer exports component\u002Fpage as PNG at 2x\n```\nReference path: ~\u002FDesktop\u002Fdesigns\u002Fdashboard-v2.png\n```\n\n**Previous production screenshot**: Regression check\n```\nReference path: ~\u002F.claude\u002Fbenchmarks\u002Fscreenshots\u002Fdashboard-prod.png\n```\n\n**Live URL comparison**: Compare two running versions\n```\nReference URL A: http:\u002F\u002Flocalhost:3000\u002Fdashboard (current)\nReference URL B: https:\u002F\u002Fstaging.app.com\u002Fdashboard (baseline)\n```\n\n### Responsive Testing Breakpoints\n\nAlways test at these three widths unless told otherwise:\n\n| Name | Width | Target |\n|------|-------|--------|\n| Mobile | 375px | iPhone SE |\n| Tablet | 768px | iPad portrait |\n| Desktop | 1440px | Standard laptop |\n\n## Integration with frontend-dev Agent\n\nThe typical iteration loop:\n\n```\nfrontend-dev implements component\n  → visual-verdict takes screenshot + scores\n  → REVISE: sends concrete fix list to frontend-dev\n  → frontend-dev applies fixes\n  → visual-verdict rescores\n  → Repeat until PASS (max 5 iterations)\n  → PASS: task marked complete\n```\n\n### Iteration Limit\n\nMaximum 5 iterations per component. If PASS is not reached after 5 attempts:\n\n```\nESCALATION: Visual QA failed after 5 iterations\nComponent: [name]\nBest score achieved: [score]\nBlocker: [specific issue that keeps failing]\nRecommendation: [designer clarification needed \u002F fundamentally wrong approach]\n```\n\n## Integration with clone-website Skill\n\nWhen cloning an external site, visual-verdict is the quality gate:\n\n```\n1. clone-website skill produces initial implementation\n2. visual-verdict screenshots both original and clone\n3. Scores similarity across all 6 dimensions\n4. REVISE verdict triggers targeted fixes\n5. PASS verdict confirms clone is production-ready\n```\n\n## Color Comparison Method\n\nColor is compared by extracting computed CSS values and comparing:\n\n```\nReference color:      #1D4ED8  (rgb 29, 78, 216)\nActual color:         #2563EB  (rgb 37, 99, 235)\nDelta E (perceived):  6.2 — noticeable, score -15\n```\n\nDelta E thresholds:\n- Delta E \u003C 2: Imperceptible — full score\n- Delta E 2-5: Barely noticeable — minor deduction\n- Delta E 5-10: Noticeable — moderate deduction\n- Delta E > 10: Clearly wrong — major deduction\n\n## Typography Extraction\n\nTypography is checked by reading computed styles, not pixels:\n\n```javascript\n\u002F\u002F Extract from running implementation\nconst element = document.querySelector('.hero-title')\nconst styles = window.getComputedStyle(element)\n\n{\n  fontFamily: styles.fontFamily,        \u002F\u002F Compare against reference\n  fontSize: styles.fontSize,            \u002F\u002F \"32px\" vs expected \"36px\"\n  fontWeight: styles.fontWeight,        \u002F\u002F \"400\" vs expected \"700\"\n  lineHeight: styles.lineHeight,        \u002F\u002F \"1.5\" vs expected \"1.25\"\n  letterSpacing: styles.letterSpacing   \u002F\u002F \"normal\" vs expected \"-0.02em\"\n}\n```\n\n## Common Visual Bugs Caught\n\n- Font weight 400 instead of 700 (bold not applying)\n- Tailwind class not included in safelist (purged in build)\n- Media query breakpoint uses px when rem expected\n- Hover state not added after copy-paste from design\n- Icon imported but wrong size prop\n- Color defined in CSS variable but variable not set in theme\n- Padding\u002Fmargin using `px-3` when design shows `px-4`\n- Z-index issue hiding interactive element\n- Border-radius value wrong (rounded vs rounded-lg vs rounded-full)\n- Line-clamp not applied, text overflows on mobile\n\n## Saving Screenshots for Regression History\n\nAfter a PASS verdict, save the screenshot as the new baseline:\n\n```bash\ncp \u002Ftmp\u002Fverdict-current-{timestamp}.png \\\n   ~\u002F.claude\u002Fbenchmarks\u002Fscreenshots\u002F{component-name}-{date}.png\n```\n\nOn the next change, this saved screenshot becomes the reference for regression comparison.\n\n---\n\n**Remember**: A visual that looks \"pretty close\" in a quick glance often has 3-5 compounding issues that add up to a broken experience. Score it. Trust the number, not the impression.\n",{"name":5,"description":7},"main","70e1c350500ee750987420bbae48837afa906b7e","skills\u002Fvisual-verdict","https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis","https:\u002F\u002Fgithub.com\u002Frubicanjr","linktr.ee\u002Ffinanskodu","Industrial Engineer & CIO @FinansKodu. Architecting AI-driven financial agents and autonomous workflows. 🏗️ Building systems, not just prompts.","2026-06-09 13:50:15",{"source":8,"skillName":5,"commands":61,"prompt":71,"zipAvailable":72},[62,65,68],{"tool":63,"command":64},"npx","npx skills add rubicanjr\u002FFinCognis --skill visual-verdict",{"tool":66,"command":67},"bunx","bunx skills add rubicanjr\u002FFinCognis --skill visual-verdict",{"tool":69,"command":70},"pnpm","pnpm dlx skills add rubicanjr\u002FFinCognis --skill visual-verdict","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-verdict\u002FSKILL.md",true,[],[75,92,101,120,139,161],{"skillNo":76,"name":77,"nameZh":6,"description":78,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":79,"categories":80,"keywords":82,"publishedAt":47},"01M6NWS9DAXJTADT4T5MB49X8W","workflow-router","Goal-based workflow orchestration - routes tasks to specialist agents based on user goals","https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Fworkflow-router\u002FSKILL.md",[81],{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},[83,84,85,86,87,88,89,90,91],"workflow router","workflow","router","orchestration","tasks","workflow orchestration","user","goal","goals",{"skillNo":93,"name":94,"nameZh":6,"description":95,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":96,"categories":97,"keywords":98,"publishedAt":47},"01M6NWS3RETSC0SHP16HP66E14","wiring","Wiring Verification","https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Fwiring\u002FSKILL.md",[],[94,99,100],"verification","false",{"skillNo":102,"name":103,"nameZh":6,"description":104,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":105,"categories":106,"keywords":110,"publishedAt":47},"01M6NWS0XW9CVQZBDA1EGW0TWC","websocket-patterns","Connection management, room patterns, reconnection strategies, message buffering, and binary protocol design.","https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Fwebsocket-patterns\u002Fskill.md",[107],{"categoryNo":108,"categoryName":109,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",[111,112,113,46,114,115,116,117,118,119],"websocket","patterns","websocket patterns","protocol","management","message","strategies","binary","connection",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":126,"publishedAt":47},"01M6NWR8HSNRS7MNDK2J02QYMN","verification-loop","Comprehensive verification system covering build, types, lint, tests, security, and diff review before a PR.","https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Fverification-loop\u002FSKILL.md",[],[127,99,128,129,130,131,132,133,134,135,136,137,138],"verification loop","loop","diff review","lint","types","tests","build","diff","system","pr","review","security",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":145,"publishedAt":47},"01M6NWR4HHSFR0VR5EXFRWA747","vector-db-patterns","Embedding strategies, ANN algorithms, hybrid search, RAG chunking strategies, and reranking for semantic search and retrieval.","https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Fvector-db-patterns\u002Fskill.md",[],[112,146,147,148,149,150,151,152,153,154,155,117,156,157,158,159,160,32],"vector","db","vector db","vector db patterns","hybrid","rag","semantic search","search","embedding strategies","algorithms","chunking","semantic","retrieval","embedding","Hybrid Search",{"skillNo":162,"name":163,"nameZh":6,"description":164,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":165,"categories":166,"keywords":167,"publishedAt":47},"01M6NWQFTGW6RQQRPQ4Z2XM2BK","variant-analysis","Find similar vulnerabilities across a codebase after discovering one instance. Uses pattern matching, AST search, Semgrep\u002FCodeQL queries, and manual tracing to propagate findings. Adapted from Trail of Bits. Use after finding a bug to check if the same pattern exists elsewhere.","https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Fvariant-analysis\u002FSKILL.md",[],[168,169,170,171,172,173,174,175,176,177,40,178,179,180,37,181,182,183,184,153],"variant","variant analysis","analysis","codebase","tracing","codeql","semgrep","ast","find","check","bug","queries","pattern","matching","propagate","pattern matching","manual"]