[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CSYHG15ZNS8M2AQMC3GJ9X":3,"skill-same:01M6CSYHG15ZNS8M2AQMC3GJ9X":108},{"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":24,"linkOnly":25,"markdownContent":26,"markdownBody":27,"frontMatter":28,"refName":30,"commitSha":31,"skillDirectory":32,"forksCount":14,"repositoryHtmlUrl":33,"repositoryHomepageUrl":6,"ownerHtmlUrl":34,"ownerBlogUrl":35,"ownerDescription":6,"updatedAt":36,"install":37,"resources":49},"01M6CSYHG15ZNS8M2AQMC3GJ9X","recap",null,"Loads session context and pending work status for fresh session starts.","goffity\u002Fdev-km","goffity","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F778547?v=4","01M6CSW9QQ32YQYTRKQWVKYCAY","Goffity","01M6CSW9VQFVZ3QS6RB4VYJGE6",0,"MIT","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Frecap\u002FSKILL.md",[],[5,19,20,21,22,23],"status","work","context","session","session context","2026-11-10 10:12:30",false,"---\nname: recap\ndescription: Loads session context and pending work status for fresh session starts.\nuser-invocable: true\n---\n\n# Session Recap\n\nเริ่ม session ใหม่โดยโหลด context ที่จำเป็น\n\n## Usage\n\n```\n\u002Frecap\n```\n\n## Instructions\n\n### Language Setting\n\n> Check `LANGUAGE` in `docs\u002Fcurrent.md`. If `th`, translate output per `references\u002Flanguage-guide.md`. Display current LANGUAGE as part of context. See `references\u002Fbash-helpers.md` for detection snippet.\n\n### Step 1: Load Current Focus\n\n```bash\nexport TZ='Asia\u002FBangkok'\necho \"=== Current Focus ===\"\ncat docs\u002Fcurrent.md\n```\n\n### Step 2: Show Context\n\n```bash\nexport TZ='Asia\u002FBangkok'\necho \"=== Recent Activity (last 5) ===\"\ntail -5 docs\u002Flogs\u002Factivity.log\n\necho \"\"\necho \"=== Git Status ===\"\necho \"Date: $(date '+%Y-%m-%d %H:%M')\"\necho \"Branch: $(git branch --show-current)\"\ngit status --short\necho \"\"\necho \"=== Recent Commits ===\"\ngit log --oneline -5\n```\n\n### Step 3: Check for Pending Work\n\n**ถ้า STATE = `working` หรือ `pending`:**\n\nใช้ AskUserQuestion เพื่อถามผู้ใช้:\n\n```\nงานค้างอยู่: [TASK from current.md]\nตั้งแต่: [SINCE from current.md]\n\nต้องการทำอะไร?\n```\n\nOptions:\n1. **ทำต่องานเดิม** - Continue working on current task\n2. **เริ่มงานใหม่** - Start new task (old task moves to WIP.md)\n\n### Step 4: Handle User Choice\n\n**ถ้าเลือก \"ทำต่องานเดิม\":**\n\n```bash\nexport TZ='Asia\u002FBangkok'\n\nEXPECTED_BRANCH=$(grep \"^BRANCH:\" docs\u002Fcurrent.md | cut -d: -f2- | xargs)\nCURRENT_BRANCH=$(git branch --show-current)\n\nif [ -n \"$EXPECTED_BRANCH\" ] && [ \"$EXPECTED_BRANCH\" != \"-\" ] && [ \"$CURRENT_BRANCH\" != \"$EXPECTED_BRANCH\" ]; then\n  echo \"Switching to branch: $EXPECTED_BRANCH\"\n  git checkout \"$EXPECTED_BRANCH\"\nfi\n\nsed -i '' 's\u002FSTATE: pending\u002FSTATE: working\u002F' docs\u002Fcurrent.md\necho \"$(date '+%Y-%m-%d %H:%M') | working | [TASK] (resumed)\" >> docs\u002Flogs\u002Factivity.log\n```\n\nแสดง:\n```\nพร้อมทำต่อ: [TASK]\nBranch: [BRANCH]\n```\n\n**ถ้าเลือก \"เริ่มงานใหม่\":**\n\n1. ย้ายงานเก่าไป WIP.md:\n\n```bash\nexport TZ='Asia\u002FBangkok'\n\nif [ ! -f docs\u002FWIP.md ]; then\n  echo \"# Work In Progress\" > docs\u002FWIP.md\n  echo \"\" >> docs\u002FWIP.md\n  echo \"งานที่ยังไม่เสร็จ พักไว้ก่อน\" >> docs\u002FWIP.md\n  echo \"\" >> docs\u002FWIP.md\nfi\n\nTASK=$(grep \"^TASK:\" docs\u002Fcurrent.md | cut -d: -f2- | xargs)\nSINCE=$(grep \"^SINCE:\" docs\u002Fcurrent.md | cut -d: -f2- | xargs)\nBRANCH=$(grep \"^BRANCH:\" docs\u002Fcurrent.md | cut -d: -f2- | xargs)\nISSUE=$(grep \"^ISSUE:\" docs\u002Fcurrent.md | cut -d: -f2- | xargs)\n\necho \"## $TASK\" >> docs\u002FWIP.md\necho \"\" >> docs\u002FWIP.md\necho \"- **Started:** $SINCE\" >> docs\u002FWIP.md\necho \"- **Paused:** $(date '+%Y-%m-%d %H:%M')\" >> docs\u002FWIP.md\necho \"- **Branch:** $BRANCH\" >> docs\u002FWIP.md\necho \"- **Issue:** $ISSUE\" >> docs\u002FWIP.md\necho \"- **Status:** Incomplete\" >> docs\u002FWIP.md\necho \"\" >> docs\u002FWIP.md\n```\n\n2. Log activity:\n\n```bash\nexport TZ='Asia\u002FBangkok'\necho \"$(date '+%Y-%m-%d %H:%M') | pending | [TASK] (moved to WIP.md)\" >> docs\u002Flogs\u002Factivity.log\n```\n\n3. Reset current.md:\n\n```bash\nexport TZ='Asia\u002FBangkok'\ncat > docs\u002Fcurrent.md \u003C\u003C 'EOF'\nSTATE: ready\nTASK: -\nSINCE: -\nISSUE: -\nBRANCH: -\nEOF\n```\n\n4. แสดง:\n```\nงานเก่าถูกย้ายไป docs\u002FWIP.md แล้ว\nใช้ \u002Ffocus เพื่อตั้งงานใหม่\n```\n\n**ถ้า STATE = `ready` หรือ `completed`:**\n\n```\nไม่มีงานค้าง\nใช้ \u002Ffocus เพื่อตั้งงานใหม่\n```\n\n### Step 5: Check WIP.md (Optional)\n\nถ้ามี WIP.md และมีงานค้างอยู่ แสดง:\n\n```bash\nif [ -f docs\u002FWIP.md ]; then\n  echo \"=== งานที่พักไว้ ===\"\n  grep \"^## \" docs\u002FWIP.md | head -5\nfi\n```\n\n## Output Format\n\n```markdown\n## Session Recap\n\n### Current Focus\nSTATE: [state]\nTASK: [task]\nSINCE: [since]\nISSUE: [issue]\nBRANCH: [branch]\n\n### Recent Activity\n[last 5 entries]\n\n### Git Status\nBranch: [branch]\nChanges: [count]\n\n### Action Required\n[ถาม continue\u002Fnew หรือ แนะนำ \u002Ffocus]\n```\n\n## State Reference\n\n| STATE | Action |\n|-------|--------|\n| `ready` | ไม่มี focus → แนะนำ `\u002Ffocus` |\n| `working` | มีงานค้าง → ถาม continue\u002Fnew |\n| `pending` | งานถูกพักไว้ → ถาม continue\u002Fnew |\n| `blocked` | ติดปัญหา → ถามสถานะ |\n| `completed` | งานเสร็จแล้ว → แนะนำ `\u002Ffocus` |\n\n## Related Commands\n\n| Command | Purpose |\n|---------|---------|\n| `\u002Ffocus` | ตั้ง focus ใหม่ |\n| `\u002Frecap` | ดู context (คุณอยู่ที่นี่) |\n| `\u002Ftd` | จบ session + retrospective |\n| `\u002Fmem` | บันทึก knowledge |\n","# Session Recap\n\nเริ่ม session ใหม่โดยโหลด context ที่จำเป็น\n\n## Usage\n\n```\n\u002Frecap\n```\n\n## Instructions\n\n### Language Setting\n\n> Check `LANGUAGE` in `docs\u002Fcurrent.md`. If `th`, translate output per `references\u002Flanguage-guide.md`. Display current LANGUAGE as part of context. See `references\u002Fbash-helpers.md` for detection snippet.\n\n### Step 1: Load Current Focus\n\n```bash\nexport TZ='Asia\u002FBangkok'\necho \"=== Current Focus ===\"\ncat docs\u002Fcurrent.md\n```\n\n### Step 2: Show Context\n\n```bash\nexport TZ='Asia\u002FBangkok'\necho \"=== Recent Activity (last 5) ===\"\ntail -5 docs\u002Flogs\u002Factivity.log\n\necho \"\"\necho \"=== Git Status ===\"\necho \"Date: $(date '+%Y-%m-%d %H:%M')\"\necho \"Branch: $(git branch --show-current)\"\ngit status --short\necho \"\"\necho \"=== Recent Commits ===\"\ngit log --oneline -5\n```\n\n### Step 3: Check for Pending Work\n\n**ถ้า STATE = `working` หรือ `pending`:**\n\nใช้ AskUserQuestion เพื่อถามผู้ใช้:\n\n```\nงานค้างอยู่: [TASK from current.md]\nตั้งแต่: [SINCE from current.md]\n\nต้องการทำอะไร?\n```\n\nOptions:\n1. **ทำต่องานเดิม** - Continue working on current task\n2. **เริ่มงานใหม่** - Start new task (old task moves to WIP.md)\n\n### Step 4: Handle User Choice\n\n**ถ้าเลือก \"ทำต่องานเดิม\":**\n\n```bash\nexport TZ='Asia\u002FBangkok'\n\nEXPECTED_BRANCH=$(grep \"^BRANCH:\" docs\u002Fcurrent.md | cut -d: -f2- | xargs)\nCURRENT_BRANCH=$(git branch --show-current)\n\nif [ -n \"$EXPECTED_BRANCH\" ] && [ \"$EXPECTED_BRANCH\" != \"-\" ] && [ \"$CURRENT_BRANCH\" != \"$EXPECTED_BRANCH\" ]; then\n  echo \"Switching to branch: $EXPECTED_BRANCH\"\n  git checkout \"$EXPECTED_BRANCH\"\nfi\n\nsed -i '' 's\u002FSTATE: pending\u002FSTATE: working\u002F' docs\u002Fcurrent.md\necho \"$(date '+%Y-%m-%d %H:%M') | working | [TASK] (resumed)\" >> docs\u002Flogs\u002Factivity.log\n```\n\nแสดง:\n```\nพร้อมทำต่อ: [TASK]\nBranch: [BRANCH]\n```\n\n**ถ้าเลือก \"เริ่มงานใหม่\":**\n\n1. ย้ายงานเก่าไป WIP.md:\n\n```bash\nexport TZ='Asia\u002FBangkok'\n\nif [ ! -f docs\u002FWIP.md ]; then\n  echo \"# Work In Progress\" > docs\u002FWIP.md\n  echo \"\" >> docs\u002FWIP.md\n  echo \"งานที่ยังไม่เสร็จ พักไว้ก่อน\" >> docs\u002FWIP.md\n  echo \"\" >> docs\u002FWIP.md\nfi\n\nTASK=$(grep \"^TASK:\" docs\u002Fcurrent.md | cut -d: -f2- | xargs)\nSINCE=$(grep \"^SINCE:\" docs\u002Fcurrent.md | cut -d: -f2- | xargs)\nBRANCH=$(grep \"^BRANCH:\" docs\u002Fcurrent.md | cut -d: -f2- | xargs)\nISSUE=$(grep \"^ISSUE:\" docs\u002Fcurrent.md | cut -d: -f2- | xargs)\n\necho \"## $TASK\" >> docs\u002FWIP.md\necho \"\" >> docs\u002FWIP.md\necho \"- **Started:** $SINCE\" >> docs\u002FWIP.md\necho \"- **Paused:** $(date '+%Y-%m-%d %H:%M')\" >> docs\u002FWIP.md\necho \"- **Branch:** $BRANCH\" >> docs\u002FWIP.md\necho \"- **Issue:** $ISSUE\" >> docs\u002FWIP.md\necho \"- **Status:** Incomplete\" >> docs\u002FWIP.md\necho \"\" >> docs\u002FWIP.md\n```\n\n2. Log activity:\n\n```bash\nexport TZ='Asia\u002FBangkok'\necho \"$(date '+%Y-%m-%d %H:%M') | pending | [TASK] (moved to WIP.md)\" >> docs\u002Flogs\u002Factivity.log\n```\n\n3. Reset current.md:\n\n```bash\nexport TZ='Asia\u002FBangkok'\ncat > docs\u002Fcurrent.md \u003C\u003C 'EOF'\nSTATE: ready\nTASK: -\nSINCE: -\nISSUE: -\nBRANCH: -\nEOF\n```\n\n4. แสดง:\n```\nงานเก่าถูกย้ายไป docs\u002FWIP.md แล้ว\nใช้ \u002Ffocus เพื่อตั้งงานใหม่\n```\n\n**ถ้า STATE = `ready` หรือ `completed`:**\n\n```\nไม่มีงานค้าง\nใช้ \u002Ffocus เพื่อตั้งงานใหม่\n```\n\n### Step 5: Check WIP.md (Optional)\n\nถ้ามี WIP.md และมีงานค้างอยู่ แสดง:\n\n```bash\nif [ -f docs\u002FWIP.md ]; then\n  echo \"=== งานที่พักไว้ ===\"\n  grep \"^## \" docs\u002FWIP.md | head -5\nfi\n```\n\n## Output Format\n\n```markdown\n## Session Recap\n\n### Current Focus\nSTATE: [state]\nTASK: [task]\nSINCE: [since]\nISSUE: [issue]\nBRANCH: [branch]\n\n### Recent Activity\n[last 5 entries]\n\n### Git Status\nBranch: [branch]\nChanges: [count]\n\n### Action Required\n[ถาม continue\u002Fnew หรือ แนะนำ \u002Ffocus]\n```\n\n## State Reference\n\n| STATE | Action |\n|-------|--------|\n| `ready` | ไม่มี focus → แนะนำ `\u002Ffocus` |\n| `working` | มีงานค้าง → ถาม continue\u002Fnew |\n| `pending` | งานถูกพักไว้ → ถาม continue\u002Fnew |\n| `blocked` | ติดปัญหา → ถามสถานะ |\n| `completed` | งานเสร็จแล้ว → แนะนำ `\u002Ffocus` |\n\n## Related Commands\n\n| Command | Purpose |\n|---------|---------|\n| `\u002Ffocus` | ตั้ง focus ใหม่ |\n| `\u002Frecap` | ดู context (คุณอยู่ที่นี่) |\n| `\u002Ftd` | จบ session + retrospective |\n| `\u002Fmem` | บันทึก knowledge |\n",{"name":5,"description":7,"user-invocable":29},true,"main","835c1f754a3eab31c2e7eb408d21431a98c633ee","skills\u002Frecap","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km","https:\u002F\u002Fgithub.com\u002Fgoffity","www.narongwate.com","2026-11-10 01:34:18",{"source":8,"skillName":5,"commands":38,"prompt":48,"zipAvailable":29},[39,42,45],{"tool":40,"command":41},"npx","npx skills add goffity\u002Fdev-km --skill recap",{"tool":43,"command":44},"bunx","bunx skills add goffity\u002Fdev-km --skill recap",{"tool":46,"command":47},"pnpm","pnpm dlx skills add goffity\u002Fdev-km --skill recap","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Frecap\u002FSKILL.md",[50,56,60,64,68,72,76,80,84,88,92,96,100,104],{"path":51,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":54,"sourceHtmlUrl":55},"CompanyTools.md","REFERENCE","参考文档",5111,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FCompanyTools.md",{"path":57,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":58,"sourceHtmlUrl":59},"EntityTools.md",7021,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FEntityTools.md",{"path":61,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":62,"sourceHtmlUrl":63},"EthicalFramework.md",5513,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FEthicalFramework.md",{"path":65,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":66,"sourceHtmlUrl":67},"Methodology.md",6248,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FMethodology.md",{"path":69,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":70,"sourceHtmlUrl":71},"PeopleTools.md",4740,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FPeopleTools.md",{"path":73,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":74,"sourceHtmlUrl":75},"SOURCES.JSON",102729,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FSOURCES.JSON",{"path":77,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":78,"sourceHtmlUrl":79},"SOURCES.md",29481,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FSOURCES.md",{"path":81,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":82,"sourceHtmlUrl":83},"Workflows\u002FCompanyDueDiligence.md",13635,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FWorkflows\u002FCompanyDueDiligence.md",{"path":85,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":86,"sourceHtmlUrl":87},"Workflows\u002FCompanyLookup.md",6956,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FWorkflows\u002FCompanyLookup.md",{"path":89,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":90,"sourceHtmlUrl":91},"Workflows\u002FDiscoverOSINTSources.md",5896,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FWorkflows\u002FDiscoverOSINTSources.md",{"path":93,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":94,"sourceHtmlUrl":95},"Workflows\u002FDomainLookup.md",9656,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FWorkflows\u002FDomainLookup.md",{"path":97,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":98,"sourceHtmlUrl":99},"Workflows\u002FEntityLookup.md",8909,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FWorkflows\u002FEntityLookup.md",{"path":101,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":102,"sourceHtmlUrl":103},"Workflows\u002FOrganizationLookup.md",11393,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FWorkflows\u002FOrganizationLookup.md",{"path":105,"resourceType":52,"resourceTypeDesc":53,"sizeBytes":106,"sourceHtmlUrl":107},"Workflows\u002FPeopleLookup.md",6500,"https:\u002F\u002Fgithub.com\u002Ffadrienne\u002FMyGitHub\u002Fblob\u002Fmain\u002FPersonal_AI_Infrastructure\u002FPacks\u002FInvestigation\u002Fsrc\u002FOSINT\u002FWorkflows\u002FPeopleLookup.md",[109,120,154,164,172,187],{"skillNo":110,"name":111,"nameZh":6,"description":112,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":113,"categories":114,"keywords":115,"publishedAt":24},"01M6CSZ9DKT0CG5Y2HE8F5D9KX","wait-what","Stop. That last message did not land: re-pitch it.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fwait-what\u002FSKILL.md",[],[116,117,118,119],"wait what","land","stop","message",{"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":134,"publishedAt":24},"01M6CSZ6B0GH2N75WNPPESCDHX","tdd","Test-driven development loop (red-green-refactor) with commit-based phase state and Jira traceability. Use when the user wants to build a feature or fix a bug test-first, mentions \"tdd\", \"red-green-refactor\", or \"test-first\". Replaces the tdg plugin — combines its commit\u002Fphase discipline with seam-based test quality rules from kb Testing Standards.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Ftdd\u002FSKILL.md",[126,131],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000007","代码审查","SCENARIO","使用场景",{"categoryNo":132,"categoryName":133,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000008","测试与质量",[122,135,136,137,138,139,140,141,142,143,144,145,146,147,148,149,150,151,152,153],"discipline","development","state","first","loop","quality","Rules","fix","kb","use","test","standards","red-green-refactor","build","green","jira","testing","commit","plugin",{"skillNo":155,"name":156,"nameZh":6,"description":157,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":158,"categories":159,"keywords":160,"publishedAt":24},"01M6CSZ3PNYFR2K5GB197TA7GP","td","Creates post-task retrospectives with Before\u002FAfter context and session documentation.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Ftd\u002FSKILL.md",[],[156,161,21,22,162,163],"documentation","task","done",{"skillNo":165,"name":166,"nameZh":6,"description":167,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":168,"categories":169,"keywords":170,"publishedAt":24},"01M6CSZ1TZKVNHS07B4EBQEKFQ","summary","Generates weekly or monthly session summaries from retrospectives and activity logs.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fsummary\u002FSKILL.md",[],[166,171,22],"logs",{"skillNo":173,"name":174,"nameZh":6,"description":175,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":176,"categories":177,"keywords":181,"publishedAt":24},"01M6CSYZQHMHJT9ZV8FYY06XZN","share","Shares knowledge across projects by copying to shared-knowledge directory with cross-project metadata.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fshare\u002FSKILL.md",[178],{"categoryNo":179,"categoryName":180,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000021","资料检索与研究",[174,182,183,184,185,186],"directory","metadata","file","knowledge","projects",{"skillNo":188,"name":189,"nameZh":6,"description":190,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":191,"categories":192,"keywords":193,"publishedAt":24},"01M6CSYXFZ7D7EKEFXCQE8QW7S","session-analyzer","Analyzes git changes and creates retrospective drafts with Before\u002FAfter context.","https:\u002F\u002Fgithub.com\u002Fgoffity\u002Fdev-km\u002Fblob\u002Fmain\u002Fskills\u002Fsession-analyzer\u002FSKILL.md",[],[22,194,195,21,196],"session analyzer","git","retrospective"]