[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6NWM3Q45CTDGQ04FDHKYJ3M":3,"skill-same:01M6NWM3Q45CTDGQ04FDHKYJ3M":77},{"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":29,"publishedAt":49,"linkOnly":50,"markdownContent":51,"markdownBody":52,"frontMatter":53,"refName":55,"commitSha":56,"skillDirectory":57,"forksCount":14,"repositoryHtmlUrl":58,"repositoryHomepageUrl":6,"ownerHtmlUrl":59,"ownerBlogUrl":60,"ownerDescription":61,"updatedAt":62,"install":63,"resources":76},"01M6NWM3Q45CTDGQ04FDHKYJ3M","tdd",null,"Test-driven development workflow with philosophy guide - plan → write tests → implement → validate","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\u002Ftdd\u002FSKILL.md",[18,23,26],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":24,"categoryName":25,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000023","Skill与智能体开发",[5,30,31,32,33,34,35,36,37,38,39,40,41,42,43,44,45,46,47,48],"test-first","implement","test-driven","with","red","tests","green","philosophy","development workflow","red-green-refactor","write","plan","first","refactor","development","write tests","validate","test","workflow","2026-11-10 10:12:30",false,"---\nname: tdd\ndescription: Test-driven development workflow with philosophy guide - plan → write tests → implement → validate\nkeywords: [tdd, test-driven, test-first, red-green-refactor]\n---\n\n# \u002Ftdd - Test-Driven Development Workflow\n\nStrict TDD workflow: tests first, then implementation.\n\n## When to Use\n\n- \"Implement X using TDD\"\n- \"Build this feature test-first\"\n- \"Write tests for X then implement\"\n- Any feature where test coverage is critical\n- Bug fixes that need regression tests\n\n---\n\n# TDD Philosophy\n\n## Overview\n\nWrite the test first. Watch it fail. Write minimal code to pass.\n\n**Core principle:** If you didn't watch the test fail, you don't know if it tests the right thing.\n\n**Violating the letter of the rules is violating the spirit of the rules.**\n\n## The Iron Law\n\n```\nNO PRODUCTION CODE WITHOUT A FAILING TEST FIRST\n```\n\nWrite code before the test? Delete it. Start over.\n\n**No exceptions:**\n- Don't keep it as \"reference\"\n- Don't \"adapt\" it while writing tests\n- Don't look at it\n- Delete means delete\n\nImplement fresh from tests. Period.\n\n## Red-Green-Refactor\n\n### RED - Write Failing Test\n\nWrite one minimal test showing what should happen.\n\n**Good:**\n```typescript\ntest('retries failed operations 3 times', async () => {\n  let attempts = 0;\n  const operation = () => {\n    attempts++;\n    if (attempts \u003C 3) throw new Error('fail');\n    return 'success';\n  };\n\n  const result = await retryOperation(operation);\n\n  expect(result).toBe('success');\n  expect(attempts).toBe(3);\n});\n```\nClear name, tests real behavior, one thing.\n\n**Bad:**\n```typescript\ntest('retry works', async () => {\n  const mock = jest.fn()\n    .mockRejectedValueOnce(new Error())\n    .mockResolvedValueOnce('success');\n  await retryOperation(mock);\n  expect(mock).toHaveBeenCalledTimes(3);\n});\n```\nVague name, tests mock not code.\n\n**Requirements:**\n- One behavior\n- Clear name\n- Real code (no mocks unless unavoidable)\n\n### Verify RED - Watch It Fail\n\n**MANDATORY. Never skip.**\n\n```bash\nnpm test path\u002Fto\u002Ftest.test.ts\n# or\npytest path\u002Fto\u002Ftest_file.py\n```\n\nConfirm:\n- Test fails (not errors)\n- Failure message is expected\n- Fails because feature missing (not typos)\n\n**Test passes?** You're testing existing behavior. Fix test.\n**Test errors?** Fix error, re-run until it fails correctly.\n\n### GREEN - Minimal Code\n\nWrite simplest code to pass the test.\n\n**Good:**\n```typescript\nasync function retryOperation\u003CT>(fn: () => Promise\u003CT>): Promise\u003CT> {\n  for (let i = 0; i \u003C 3; i++) {\n    try {\n      return await fn();\n    } catch (e) {\n      if (i === 2) throw e;\n    }\n  }\n  throw new Error('unreachable');\n}\n```\nJust enough to pass.\n\n**Bad:**\n```typescript\nasync function retryOperation\u003CT>(\n  fn: () => Promise\u003CT>,\n  options?: {\n    maxRetries?: number;\n    backoff?: 'linear' | 'exponential';\n    onRetry?: (attempt: number) => void;\n  }\n): Promise\u003CT> {\n  \u002F\u002F YAGNI - over-engineered\n}\n```\n\nDon't add features, refactor other code, or \"improve\" beyond the test.\n\n### Verify GREEN - Watch It Pass\n\n**MANDATORY.**\n\n```bash\nnpm test path\u002Fto\u002Ftest.test.ts\n```\n\nConfirm:\n- Test passes\n- Other tests still pass\n- Output pristine (no errors, warnings)\n\n**Test fails?** Fix code, not test.\n**Other tests fail?** Fix now.\n\n### REFACTOR - Clean Up\n\nAfter green only:\n- Remove duplication\n- Improve names\n- Extract helpers\n\nKeep tests green. Don't add behavior.\n\n## Common Rationalizations\n\n| Excuse | Reality |\n|--------|---------|\n| \"Too simple to test\" | Simple code breaks. Test takes 30 seconds. |\n| \"I'll test after\" | Tests passing immediately prove nothing. |\n| \"Tests after achieve same goals\" | Tests-after = \"what does this do?\" Tests-first = \"what should this do?\" |\n| \"Already manually tested\" | Ad-hoc ≠ systematic. No record, can't re-run. |\n| \"Deleting X hours is wasteful\" | Sunk cost fallacy. Keeping unverified code is technical debt. |\n| \"Keep as reference, write tests first\" | You'll adapt it. That's testing after. Delete means delete. |\n| \"Need to explore first\" | Fine. Throw away exploration, start with TDD. |\n| \"Test hard = design unclear\" | Listen to test. Hard to test = hard to use. |\n| \"TDD will slow me down\" | TDD faster than debugging. Pragmatic = test-first. |\n| \"Manual test faster\" | Manual doesn't prove edge cases. You'll re-test every change. |\n\n## Red Flags - STOP and Start Over\n\n- Code before test\n- Test after implementation\n- Test passes immediately\n- Can't explain why test failed\n- Tests added \"later\"\n- Rationalizing \"just this once\"\n- \"I already manually tested it\"\n- \"Tests after achieve the same purpose\"\n- \"Keep as reference\" or \"adapt existing code\"\n\n**All of these mean: Delete code. Start over with TDD.**\n\n## Verification Checklist\n\nBefore marking work complete:\n\n- [ ] Every new function\u002Fmethod has a test\n- [ ] Watched each test fail before implementing\n- [ ] Each test failed for expected reason (feature missing, not typo)\n- [ ] Wrote minimal code to pass each test\n- [ ] All tests pass\n- [ ] Output pristine (no errors, warnings)\n- [ ] Tests use real code (mocks only if unavoidable)\n- [ ] Edge cases and errors covered\n\nCan't check all boxes? You skipped TDD. Start over.\n\n## When Stuck\n\n| Problem | Solution |\n|---------|----------|\n| Don't know how to test | Write wished-for API. Write assertion first. Ask your human partner. |\n| Test too complicated | Design too complicated. Simplify interface. |\n| Must mock everything | Code too coupled. Use dependency injection. |\n| Test setup huge | Extract helpers. Still complex? Simplify design. |\n\n---\n\n# Workflow Execution\n\n## Workflow Overview\n\n```\n┌────────────┐    ┌──────────┐    ┌──────────┐    ┌───────────┐\n│   plan-    │───▶│ arbiter  │───▶│  kraken  │───▶│ arbiter  │\n│   agent    │    │          │    │          │    │           │\n└────────────┘    └──────────┘    └──────────┘    └───────────┘\n   Design          Write           Implement        Verify\n   approach        failing         minimal          all tests\n                   tests           code             pass\n```\n\n## Agent Sequence\n\n| # | Agent | Role | Output |\n|---|-------|------|--------|\n| 1 | **plan-agent** | Design test cases and implementation approach | Test plan |\n| 2 | **arbiter** | Write failing tests (RED phase) | Test files |\n| 3 | **kraken** | Implement minimal code to pass (GREEN phase) | Implementation |\n| 4 | **arbiter** | Run all tests, verify nothing broken | Test report |\n\n## Core Principle\n\n```\nNO PRODUCTION CODE WITHOUT A FAILING TEST FIRST\n```\n\nEach agent follows the TDD contract:\n- arbiter writes tests that MUST fail initially\n- kraken writes MINIMAL code to make tests pass\n- arbiter confirms the full suite passes\n\n## Execution\n\n### Phase 1: Plan Test Cases\n\n```\nTask(\n  subagent_type=\"plan-agent\",\n  prompt=\"\"\"\n  Design TDD approach for: [FEATURE_NAME]\n\n  Define:\n  1. What behaviors need to be tested\n  2. Edge cases to cover\n  3. Expected test structure\n\n  DO NOT write any implementation code.\n  Output: Test plan document\n  \"\"\"\n)\n```\n\n### Phase 2: Write Failing Tests (RED)\n\n```\nTask(\n  subagent_type=\"arbiter\",\n  prompt=\"\"\"\n  Write failing tests for: [FEATURE_NAME]\n\n  Test plan: [from phase 1]\n\n  Requirements:\n  - Write tests FIRST\n  - Run tests to confirm they FAIL\n  - Tests must fail because feature is missing (not syntax errors)\n  - Create clear test names describing expected behavior\n\n  DO NOT write any implementation code.\n  \"\"\"\n)\n```\n\n### Phase 3: Implement (GREEN)\n\n```\nTask(\n  subagent_type=\"kraken\",\n  prompt=\"\"\"\n  Implement MINIMAL code to pass tests: [FEATURE_NAME]\n\n  Tests location: [test file path]\n\n  Requirements:\n  - Write ONLY enough code to make tests pass\n  - No additional features beyond what tests require\n  - No \"improvements\" or \"enhancements\"\n  - Run tests after each change\n\n  Follow Red-Green-Refactor strictly.\n  \"\"\"\n)\n```\n\n### Phase 4: Validate\n\n```\nTask(\n  subagent_type=\"arbiter\",\n  prompt=\"\"\"\n  Validate TDD implementation: [FEATURE_NAME]\n\n  - Run full test suite\n  - Verify all new tests pass\n  - Verify no existing tests broke\n  - Check test coverage if available\n  \"\"\"\n)\n```\n\n## TDD Rules Enforced\n\n1. **arbiter** cannot write implementation code\n2. **kraken** cannot add untested features\n3. Tests must fail before implementation\n4. Tests must pass after implementation\n\n## Example\n\n```\nUser: \u002Ftdd Add email validation to the signup form\n\nClaude: Starting \u002Ftdd workflow for email validation...\n\nPhase 1: Planning test cases...\n[Spawns plan-agent]\nTest plan:\n- Valid email formats\n- Invalid email formats\n- Empty email rejection\n- Edge cases (unicode, long emails)\n\nPhase 2: Writing failing tests (RED)...\n[Spawns arbiter]\n✅ 8 tests written, all failing as expected\n\nPhase 3: Implementing minimal code (GREEN)...\n[Spawns kraken]\n✅ All 8 tests now passing\n\nPhase 4: Validating...\n[Spawns arbiter]\n✅ 247 tests passing (8 new), 0 failing\n\nTDD workflow complete!\n```\n\n## Refactor Phase (Optional)\n\nAfter GREEN, you can add a refactor phase:\n\n```\nTask(\n  subagent_type=\"kraken\",\n  prompt=\"\"\"\n  Refactor: [FEATURE_NAME]\n\n  - Clean up code while keeping tests green\n  - Remove duplication\n  - Improve naming\n  - Extract helpers if needed\n\n  DO NOT add new behavior. Keep all tests passing.\n  \"\"\"\n)\n```\n","# \u002Ftdd - Test-Driven Development Workflow\n\nStrict TDD workflow: tests first, then implementation.\n\n## When to Use\n\n- \"Implement X using TDD\"\n- \"Build this feature test-first\"\n- \"Write tests for X then implement\"\n- Any feature where test coverage is critical\n- Bug fixes that need regression tests\n\n---\n\n# TDD Philosophy\n\n## Overview\n\nWrite the test first. Watch it fail. Write minimal code to pass.\n\n**Core principle:** If you didn't watch the test fail, you don't know if it tests the right thing.\n\n**Violating the letter of the rules is violating the spirit of the rules.**\n\n## The Iron Law\n\n```\nNO PRODUCTION CODE WITHOUT A FAILING TEST FIRST\n```\n\nWrite code before the test? Delete it. Start over.\n\n**No exceptions:**\n- Don't keep it as \"reference\"\n- Don't \"adapt\" it while writing tests\n- Don't look at it\n- Delete means delete\n\nImplement fresh from tests. Period.\n\n## Red-Green-Refactor\n\n### RED - Write Failing Test\n\nWrite one minimal test showing what should happen.\n\n**Good:**\n```typescript\ntest('retries failed operations 3 times', async () => {\n  let attempts = 0;\n  const operation = () => {\n    attempts++;\n    if (attempts \u003C 3) throw new Error('fail');\n    return 'success';\n  };\n\n  const result = await retryOperation(operation);\n\n  expect(result).toBe('success');\n  expect(attempts).toBe(3);\n});\n```\nClear name, tests real behavior, one thing.\n\n**Bad:**\n```typescript\ntest('retry works', async () => {\n  const mock = jest.fn()\n    .mockRejectedValueOnce(new Error())\n    .mockResolvedValueOnce('success');\n  await retryOperation(mock);\n  expect(mock).toHaveBeenCalledTimes(3);\n});\n```\nVague name, tests mock not code.\n\n**Requirements:**\n- One behavior\n- Clear name\n- Real code (no mocks unless unavoidable)\n\n### Verify RED - Watch It Fail\n\n**MANDATORY. Never skip.**\n\n```bash\nnpm test path\u002Fto\u002Ftest.test.ts\n# or\npytest path\u002Fto\u002Ftest_file.py\n```\n\nConfirm:\n- Test fails (not errors)\n- Failure message is expected\n- Fails because feature missing (not typos)\n\n**Test passes?** You're testing existing behavior. Fix test.\n**Test errors?** Fix error, re-run until it fails correctly.\n\n### GREEN - Minimal Code\n\nWrite simplest code to pass the test.\n\n**Good:**\n```typescript\nasync function retryOperation\u003CT>(fn: () => Promise\u003CT>): Promise\u003CT> {\n  for (let i = 0; i \u003C 3; i++) {\n    try {\n      return await fn();\n    } catch (e) {\n      if (i === 2) throw e;\n    }\n  }\n  throw new Error('unreachable');\n}\n```\nJust enough to pass.\n\n**Bad:**\n```typescript\nasync function retryOperation\u003CT>(\n  fn: () => Promise\u003CT>,\n  options?: {\n    maxRetries?: number;\n    backoff?: 'linear' | 'exponential';\n    onRetry?: (attempt: number) => void;\n  }\n): Promise\u003CT> {\n  \u002F\u002F YAGNI - over-engineered\n}\n```\n\nDon't add features, refactor other code, or \"improve\" beyond the test.\n\n### Verify GREEN - Watch It Pass\n\n**MANDATORY.**\n\n```bash\nnpm test path\u002Fto\u002Ftest.test.ts\n```\n\nConfirm:\n- Test passes\n- Other tests still pass\n- Output pristine (no errors, warnings)\n\n**Test fails?** Fix code, not test.\n**Other tests fail?** Fix now.\n\n### REFACTOR - Clean Up\n\nAfter green only:\n- Remove duplication\n- Improve names\n- Extract helpers\n\nKeep tests green. Don't add behavior.\n\n## Common Rationalizations\n\n| Excuse | Reality |\n|--------|---------|\n| \"Too simple to test\" | Simple code breaks. Test takes 30 seconds. |\n| \"I'll test after\" | Tests passing immediately prove nothing. |\n| \"Tests after achieve same goals\" | Tests-after = \"what does this do?\" Tests-first = \"what should this do?\" |\n| \"Already manually tested\" | Ad-hoc ≠ systematic. No record, can't re-run. |\n| \"Deleting X hours is wasteful\" | Sunk cost fallacy. Keeping unverified code is technical debt. |\n| \"Keep as reference, write tests first\" | You'll adapt it. That's testing after. Delete means delete. |\n| \"Need to explore first\" | Fine. Throw away exploration, start with TDD. |\n| \"Test hard = design unclear\" | Listen to test. Hard to test = hard to use. |\n| \"TDD will slow me down\" | TDD faster than debugging. Pragmatic = test-first. |\n| \"Manual test faster\" | Manual doesn't prove edge cases. You'll re-test every change. |\n\n## Red Flags - STOP and Start Over\n\n- Code before test\n- Test after implementation\n- Test passes immediately\n- Can't explain why test failed\n- Tests added \"later\"\n- Rationalizing \"just this once\"\n- \"I already manually tested it\"\n- \"Tests after achieve the same purpose\"\n- \"Keep as reference\" or \"adapt existing code\"\n\n**All of these mean: Delete code. Start over with TDD.**\n\n## Verification Checklist\n\nBefore marking work complete:\n\n- [ ] Every new function\u002Fmethod has a test\n- [ ] Watched each test fail before implementing\n- [ ] Each test failed for expected reason (feature missing, not typo)\n- [ ] Wrote minimal code to pass each test\n- [ ] All tests pass\n- [ ] Output pristine (no errors, warnings)\n- [ ] Tests use real code (mocks only if unavoidable)\n- [ ] Edge cases and errors covered\n\nCan't check all boxes? You skipped TDD. Start over.\n\n## When Stuck\n\n| Problem | Solution |\n|---------|----------|\n| Don't know how to test | Write wished-for API. Write assertion first. Ask your human partner. |\n| Test too complicated | Design too complicated. Simplify interface. |\n| Must mock everything | Code too coupled. Use dependency injection. |\n| Test setup huge | Extract helpers. Still complex? Simplify design. |\n\n---\n\n# Workflow Execution\n\n## Workflow Overview\n\n```\n┌────────────┐    ┌──────────┐    ┌──────────┐    ┌───────────┐\n│   plan-    │───▶│ arbiter  │───▶│  kraken  │───▶│ arbiter  │\n│   agent    │    │          │    │          │    │           │\n└────────────┘    └──────────┘    └──────────┘    └───────────┘\n   Design          Write           Implement        Verify\n   approach        failing         minimal          all tests\n                   tests           code             pass\n```\n\n## Agent Sequence\n\n| # | Agent | Role | Output |\n|---|-------|------|--------|\n| 1 | **plan-agent** | Design test cases and implementation approach | Test plan |\n| 2 | **arbiter** | Write failing tests (RED phase) | Test files |\n| 3 | **kraken** | Implement minimal code to pass (GREEN phase) | Implementation |\n| 4 | **arbiter** | Run all tests, verify nothing broken | Test report |\n\n## Core Principle\n\n```\nNO PRODUCTION CODE WITHOUT A FAILING TEST FIRST\n```\n\nEach agent follows the TDD contract:\n- arbiter writes tests that MUST fail initially\n- kraken writes MINIMAL code to make tests pass\n- arbiter confirms the full suite passes\n\n## Execution\n\n### Phase 1: Plan Test Cases\n\n```\nTask(\n  subagent_type=\"plan-agent\",\n  prompt=\"\"\"\n  Design TDD approach for: [FEATURE_NAME]\n\n  Define:\n  1. What behaviors need to be tested\n  2. Edge cases to cover\n  3. Expected test structure\n\n  DO NOT write any implementation code.\n  Output: Test plan document\n  \"\"\"\n)\n```\n\n### Phase 2: Write Failing Tests (RED)\n\n```\nTask(\n  subagent_type=\"arbiter\",\n  prompt=\"\"\"\n  Write failing tests for: [FEATURE_NAME]\n\n  Test plan: [from phase 1]\n\n  Requirements:\n  - Write tests FIRST\n  - Run tests to confirm they FAIL\n  - Tests must fail because feature is missing (not syntax errors)\n  - Create clear test names describing expected behavior\n\n  DO NOT write any implementation code.\n  \"\"\"\n)\n```\n\n### Phase 3: Implement (GREEN)\n\n```\nTask(\n  subagent_type=\"kraken\",\n  prompt=\"\"\"\n  Implement MINIMAL code to pass tests: [FEATURE_NAME]\n\n  Tests location: [test file path]\n\n  Requirements:\n  - Write ONLY enough code to make tests pass\n  - No additional features beyond what tests require\n  - No \"improvements\" or \"enhancements\"\n  - Run tests after each change\n\n  Follow Red-Green-Refactor strictly.\n  \"\"\"\n)\n```\n\n### Phase 4: Validate\n\n```\nTask(\n  subagent_type=\"arbiter\",\n  prompt=\"\"\"\n  Validate TDD implementation: [FEATURE_NAME]\n\n  - Run full test suite\n  - Verify all new tests pass\n  - Verify no existing tests broke\n  - Check test coverage if available\n  \"\"\"\n)\n```\n\n## TDD Rules Enforced\n\n1. **arbiter** cannot write implementation code\n2. **kraken** cannot add untested features\n3. Tests must fail before implementation\n4. Tests must pass after implementation\n\n## Example\n\n```\nUser: \u002Ftdd Add email validation to the signup form\n\nClaude: Starting \u002Ftdd workflow for email validation...\n\nPhase 1: Planning test cases...\n[Spawns plan-agent]\nTest plan:\n- Valid email formats\n- Invalid email formats\n- Empty email rejection\n- Edge cases (unicode, long emails)\n\nPhase 2: Writing failing tests (RED)...\n[Spawns arbiter]\n✅ 8 tests written, all failing as expected\n\nPhase 3: Implementing minimal code (GREEN)...\n[Spawns kraken]\n✅ All 8 tests now passing\n\nPhase 4: Validating...\n[Spawns arbiter]\n✅ 247 tests passing (8 new), 0 failing\n\nTDD workflow complete!\n```\n\n## Refactor Phase (Optional)\n\nAfter GREEN, you can add a refactor phase:\n\n```\nTask(\n  subagent_type=\"kraken\",\n  prompt=\"\"\"\n  Refactor: [FEATURE_NAME]\n\n  - Clean up code while keeping tests green\n  - Remove duplication\n  - Improve naming\n  - Extract helpers if needed\n\n  DO NOT add new behavior. Keep all tests passing.\n  \"\"\"\n)\n```\n",{"name":5,"keywords":54,"description":7},[5,32,30,39],"main","70e1c350500ee750987420bbae48837afa906b7e","skills\u002Ftdd","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":64,"prompt":74,"zipAvailable":75},[65,68,71],{"tool":66,"command":67},"npx","npx skills add rubicanjr\u002FFinCognis --skill tdd",{"tool":69,"command":70},"bunx","bunx skills add rubicanjr\u002FFinCognis --skill tdd",{"tool":72,"command":73},"pnpm","pnpm dlx skills add rubicanjr\u002FFinCognis --skill tdd","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Ftdd\u002FSKILL.md",true,[],[78,94,103,123,152,170],{"skillNo":79,"name":80,"nameZh":6,"description":81,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":82,"categories":83,"keywords":85,"publishedAt":49},"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",[84],{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[86,48,87,88,89,90,91,92,93],"workflow router","router","orchestration","goals","goal","user","workflow orchestration","tasks",{"skillNo":95,"name":96,"nameZh":6,"description":97,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":49},"01M6NWS3RETSC0SHP16HP66E14","wiring","Wiring Verification","https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Fwiring\u002FSKILL.md",[],[96,101,102],"verification","false",{"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":112,"publishedAt":49},"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",[109],{"categoryNo":110,"categoryName":111,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000015","视觉设计",[113,114,115,116,117,118,119,120,121,122],"websocket","patterns","websocket patterns","design","protocol","management","message","strategies","binary","connection",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":133,"publishedAt":49},"01M6NWRDQDX9ZNETAWRRMQWV52","visual-verdict","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.","https:\u002F\u002Fgithub.com\u002Frubicanjr\u002FFinCognis\u002Fblob\u002Fmain\u002Fskills\u002Fvisual-verdict\u002FSKILL.md",[129,132],{"categoryNo":130,"categoryName":131,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":27,"categoryName":28,"taxonomyType":21,"taxonomyTypeDesc":22},[134,135,136,137,138,139,140,141,142,143,144,145,146,116,44,147,148,149,150,151],"visual","verdict","visual verdict","ui","across","revise","comparison","correctness","implementing","for","fixes","dimensions","frontend","qa","screenshot","returns","use","frontend development",{"skillNo":153,"name":154,"nameZh":6,"description":155,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":156,"categories":157,"keywords":158,"publishedAt":49},"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",[],[159,160,101,161,162,163,164,165,166,167,35,168,169],"verification loop","loop","lint","review","security","pr","system","diff","build","diff review","types",{"skillNo":171,"name":172,"nameZh":6,"description":173,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":174,"categories":175,"keywords":176,"publishedAt":49},"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",[],[177,178,179,180,114,181,182,183,184,120,185,186,187,188,189,143,190,191],"vector db patterns","vector db","db","vector","semantic search","search","embedding strategies","algorithms","chunking","semantic","retrieval","embedding","Hybrid Search","hybrid","rag"]