[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M71GPFD1KW425XMCE4Q1GCY7":3,"skill-same:01M71GPFD1KW425XMCE4Q1GCY7":60},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":22,"publishedAt":27,"linkOnly":28,"markdownContent":29,"markdownBody":30,"frontMatter":31,"refName":32,"commitSha":33,"skillDirectory":34,"forksCount":35,"repositoryHtmlUrl":36,"repositoryHomepageUrl":6,"ownerHtmlUrl":37,"ownerBlogUrl":38,"ownerDescription":6,"updatedAt":39,"install":40,"resources":53},"01M71GPFD1KW425XMCE4Q1GCY7","qa-flaky-test-hunter",null,"lookatitude\u002Fguild","lookatitude","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F524917?v=4","01M71GJ2KGXFSJZKAZC5P1ZXXM","Miguel Pinto","01M71GJ2MH4SH9WJKP8M7XZZ0P",8,"MIT","https:\u002F\u002Fgithub.com\u002Flookatitude\u002Fguild\u002Fblob\u002Fmain\u002Fskills\u002Fspecialists\u002Fqa-flaky-test-hunter\u002FSKILL.md",[17],{"categoryNo":18,"categoryName":19,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[23,24,25,26],"test","qa","hunter","qa flaky test hunter","2026-11-10 10:12:30",false,"---\nname: qa-flaky-test-hunter\ndescription: Diagnoses flaky tests — classifies the cause (timing \u002F ordering \u002F resource \u002F external), quarantines the test safely, and lays out a fix plan. Output: per-test flakiness report, quarantine list, and remediation plan. Pulled by the `qa` specialist. TRIGGER: \"this test is flaky\", \"diagnose why X keeps failing intermittently\", \"hunt down the flaky tests in X\", \"why does X pass locally but fail on CI\", \"quarantine the flaky tests in X\", \"investigate the intermittent failures in X\". DO NOT TRIGGER for: picking test shapes for a new feature (use `qa-test-strategy`), authoring property-based tests (use `qa-property-based-tests`), writing snapshot tests (use `qa-snapshot-tests`), fixing an application bug exposed by a test (owning service group), CI runner capacity tuning (devops-infrastructure-as-code), observability of prod flakiness (devops-observability-setup).\nwhen_to_use: The parent `qa` specialist pulls this skill when the task requires investigating intermittent test failures, classifying them, and returning a remediation plan. Also fires on explicit user request.\ntype: specialist\n---\n\n# qa-flaky-test-hunter\n\nFlaky tests rot the signal of the whole suite; diagnosis-before-fix prevents both silent data loss and hidden bugs.\n\n## What you do\n\nTreat flakiness as a diagnosable phenomenon, not a nuisance to retry. Classify each flaky test, quarantine responsibly with an expiry, and hand back a concrete fix plan — never \"we added a retry.\"\n\n- Reproduce with a tight loop (`--repeat 50` \u002F `--count` \u002F stress harness) to confirm flakiness.\n- Classify: timing (sleep \u002F race), ordering (shared state \u002F test order), resource (port \u002F file \u002F DB), external (network \u002F clock \u002F third-party), nondeterminism (unsorted output, hashing).\n- Inspect test isolation: shared mutable state between tests is a top cause.\n- Quarantine with an expiry date and an owner — never \"quarantine and forget.\"\n- Write the fix plan: what change eliminates the cause, not masks it.\n- If blocked on environment, flag that explicitly — don't call it fixed.\n\n## Output shape\n\nA `flakiness-report.md` containing:\n\n1. **Per-test entries** — test id · reproduction command · classification · evidence.\n2. **Quarantine list** — tests moved out of the blocking suite, each with expiry + owner.\n3. **Fix plan** — ordered list of remediations, smallest first.\n4. **Prevention** — policy changes (e.g. ban `sleep`, require DB cleanup in fixtures).\n5. **Metrics** — before\u002Fafter flake rate from CI telemetry if available.\n\n## Anti-patterns\n\n- Blanket retries — hides the bug and trains devs to ignore failures.\n- Deleting tests without diagnosis — you lose the symptom and the signal.\n- Quarantine with no expiry — tests rot indefinitely and bitrot becomes the norm.\n- `sleep(ms)` as the fix — replaces one race with a slower one.\n- Hiding time bombs — a test that fails only on Feb 29 is still broken.\n- Fixing symptoms (adding assertions) without finding the race.\n\n## Handoff\n\nReturn the report path and quarantine list to the invoking `qa` specialist. If a fix lives in application code, the qa agent hands off to the owning service specialist (backend \u002F mobile). If the root cause is CI infrastructure, handoff chains to `devops-infrastructure-as-code` or `devops-observability-setup`. This skill does not dispatch.\n","# qa-flaky-test-hunter\n\nFlaky tests rot the signal of the whole suite; diagnosis-before-fix prevents both silent data loss and hidden bugs.\n\n## What you do\n\nTreat flakiness as a diagnosable phenomenon, not a nuisance to retry. Classify each flaky test, quarantine responsibly with an expiry, and hand back a concrete fix plan — never \"we added a retry.\"\n\n- Reproduce with a tight loop (`--repeat 50` \u002F `--count` \u002F stress harness) to confirm flakiness.\n- Classify: timing (sleep \u002F race), ordering (shared state \u002F test order), resource (port \u002F file \u002F DB), external (network \u002F clock \u002F third-party), nondeterminism (unsorted output, hashing).\n- Inspect test isolation: shared mutable state between tests is a top cause.\n- Quarantine with an expiry date and an owner — never \"quarantine and forget.\"\n- Write the fix plan: what change eliminates the cause, not masks it.\n- If blocked on environment, flag that explicitly — don't call it fixed.\n\n## Output shape\n\nA `flakiness-report.md` containing:\n\n1. **Per-test entries** — test id · reproduction command · classification · evidence.\n2. **Quarantine list** — tests moved out of the blocking suite, each with expiry + owner.\n3. **Fix plan** — ordered list of remediations, smallest first.\n4. **Prevention** — policy changes (e.g. ban `sleep`, require DB cleanup in fixtures).\n5. **Metrics** — before\u002Fafter flake rate from CI telemetry if available.\n\n## Anti-patterns\n\n- Blanket retries — hides the bug and trains devs to ignore failures.\n- Deleting tests without diagnosis — you lose the symptom and the signal.\n- Quarantine with no expiry — tests rot indefinitely and bitrot becomes the norm.\n- `sleep(ms)` as the fix — replaces one race with a slower one.\n- Hiding time bombs — a test that fails only on Feb 29 is still broken.\n- Fixing symptoms (adding assertions) without finding the race.\n\n## Handoff\n\nReturn the report path and quarantine list to the invoking `qa` specialist. If a fix lives in application code, the qa agent hands off to the owning service specialist (backend \u002F mobile). If the root cause is CI infrastructure, handoff chains to `devops-infrastructure-as-code` or `devops-observability-setup`. This skill does not dispatch.\n",{},"main","2e58b0360ca51ca3c96ca8e015ef5aba5738803d","skills\u002Fspecialists\u002Fqa-flaky-test-hunter",0,"https:\u002F\u002Fgithub.com\u002Flookatitude\u002Fguild","https:\u002F\u002Fgithub.com\u002Flookatitude","https:\u002F\u002Flookatitude.com","2026-11-06 03:55:18",{"source":7,"skillName":5,"commands":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add lookatitude\u002Fguild --skill qa-flaky-test-hunter",{"tool":46,"command":47},"bunx","bunx skills add lookatitude\u002Fguild --skill qa-flaky-test-hunter",{"tool":49,"command":50},"pnpm","pnpm dlx skills add lookatitude\u002Fguild --skill qa-flaky-test-hunter","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Flookatitude\u002Fguild\u002Fblob\u002Fmain\u002Fskills\u002Fspecialists\u002Fqa-flaky-test-hunter\u002FSKILL.md",true,[54],{"path":55,"resourceType":56,"resourceTypeDesc":57,"sizeBytes":58,"sourceHtmlUrl":59},"evals.json","REFERENCE","参考文档",708,"https:\u002F\u002Fgithub.com\u002Flookatitude\u002Fguild\u002Fblob\u002Fmain\u002Fskills\u002Fspecialists\u002Fqa-flaky-test-hunter\u002Fevals.json",[61,73,83,101,119,130],{"skillNo":62,"name":63,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":64,"categories":65,"keywords":66,"publishedAt":27},"01M71GQQ1ZAND0XQBS4GTSWYFK","technical-writer-user-manual","https:\u002F\u002Fgithub.com\u002Flookatitude\u002Fguild\u002Fblob\u002Fmain\u002Fskills\u002Fspecialists\u002Ftechnical-writer-user-manual\u002FSKILL.md",[],[67,68,69,70,71,72],"writer","technical","technical writer","technical writer user manual","manual","user",{"skillNo":74,"name":75,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":27},"01M71GQMQ71DQNH4A7REXRVFCB","technical-writer-release-notes","https:\u002F\u002Fgithub.com\u002Flookatitude\u002Fguild\u002Fblob\u002Fmain\u002Fskills\u002Fspecialists\u002Ftechnical-writer-release-notes\u002FSKILL.md",[],[79,67,80,81,82,68,69],"release","notes","technical writer release notes","release notes",{"skillNo":84,"name":85,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":86,"categories":87,"keywords":96,"publishedAt":27},"01M71GQJQT9G8QHE0A9SN01VE4","technical-writer-api-docs","https:\u002F\u002Fgithub.com\u002Flookatitude\u002Fguild\u002Fblob\u002Fmain\u002Fskills\u002Fspecialists\u002Ftechnical-writer-api-docs\u002FSKILL.md",[88,91],{"categoryNo":89,"categoryName":90,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":92,"categoryName":93,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[97,68,69,98,99,100,67],"technical writer api docs","docs","api docs","api",{"skillNo":102,"name":103,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":112,"publishedAt":27},"01M71GQH3T5F23M2M298WXVAQ5","social-media-platform-post","https:\u002F\u002Fgithub.com\u002Flookatitude\u002Fguild\u002Fblob\u002Fmain\u002Fskills\u002Fspecialists\u002Fsocial-media-platform-post\u002FSKILL.md",[106,109],{"categoryNo":107,"categoryName":108,"taxonomyType":20,"taxonomyTypeDesc":21},"01JBSEEDCAT000000000000019","营销推广",{"categoryNo":110,"categoryName":111,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000035","市场营销",[113,114,115,116,117,118],"social media platform post","post","Media","platform","social","social media",{"skillNo":120,"name":121,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":126,"publishedAt":27},"01M71GQFS4MJ4S8ZRK7KQNNPJE","social-media-engagement-templates","https:\u002F\u002Fgithub.com\u002Flookatitude\u002Fguild\u002Fblob\u002Fmain\u002Fskills\u002Fspecialists\u002Fsocial-media-engagement-templates\u002FSKILL.md",[124,125],{"categoryNo":107,"categoryName":108,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":110,"categoryName":111,"taxonomyType":94,"taxonomyTypeDesc":95},[117,127,115,128,129,118],"engagement","social media engagement templates","templates",{"skillNo":131,"name":132,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":133,"categories":134,"keywords":140,"publishedAt":27},"01M71GQEPZ5GX6NBFQ9H0W5E0C","social-media-content-calendar","https:\u002F\u002Fgithub.com\u002Flookatitude\u002Fguild\u002Fblob\u002Fmain\u002Fskills\u002Fspecialists\u002Fsocial-media-content-calendar\u002FSKILL.md",[135,136,137],{"categoryNo":107,"categoryName":108,"taxonomyType":20,"taxonomyTypeDesc":21},{"categoryNo":110,"categoryName":111,"taxonomyType":94,"taxonomyTypeDesc":95},{"categoryNo":138,"categoryName":139,"taxonomyType":94,"taxonomyTypeDesc":95},"01JBSEEDCAT000000000000036","内容创作者",[141,142,117,118,143,144,115],"calendar","content calendar","social media content calendar","content"]