[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M719H37Q23PVF4KXNA3PFG3R":3,"skill-same:01M719H37Q23PVF4KXNA3PFG3R":58},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":30,"linkOnly":31,"markdownContent":32,"markdownBody":33,"frontMatter":34,"refName":37,"commitSha":38,"skillDirectory":39,"forksCount":40,"repositoryHtmlUrl":41,"repositoryHomepageUrl":6,"ownerHtmlUrl":42,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":43,"install":44,"resources":57},"01M719H37Q23PVF4KXNA3PFG3R","ralph-two-pass-scan",null,"Cuts GitHub API calls by separating lightweight list scanning from full hydration","DeDuva\u002Fsquad","DeDuva","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F8153108?v=4","01M719BQB25861D0TKS3RVHMN2","01M719BQBSWR380PSYDD5M9YD4",1,"MIT","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Fpackages\u002Fsquad-cli\u002Ftemplates\u002Fskills\u002Fralph-two-pass-scan\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29],"ralph two pass scan","scan","ralph","work","github","high","scanning","calls","list","full","api","monitoring","2026-11-10 10:12:30",false,"---\nname: \"ralph-two-pass-scan\"\ndescription: \"Cuts GitHub API calls by separating lightweight list scanning from full hydration\"\ndomain: \"work-monitoring\"\nconfidence: \"high\"\nsource: \"extracted\"\n---\n\n# Skill: Ralph — Two-Pass Issue Scanning\n**Confidence:** high\n**Domain:** work-monitoring\n**Last validated:** 2026-03-24\n\n## Context\nCuts GitHub API calls from N+1 to ~7 per round (~72% reduction) by separating list scanning from full hydration.\nAddresses the scanning inefficiency described in issue #596.\n\n## Pattern\n\n### Pass 1 — Lightweight Scan\n\n```\ngh issue list --state open --json number,title,labels,assignees --limit 100\n```\n\n**Skip hydration if ANY of these match:**\n\n| Condition | Skip reason |\n|-----------|-------------|\n| `assignees` non-empty AND no `status:needs-review` | Already owned |\n| Labels contain `status:blocked` or `status:waiting-external` | Externally gated |\n| Labels contain `status:done` or `status:postponed` | Closed loop |\n| Title matches stale\u002Fnoisy pattern (`[chore]`, `[auto]`) | Low-signal |\n\n### Pass 2 — Selective Hydration\n\nFor each issue surviving Pass 1:\n\n```\ngh issue view \u003Cnumber> --json number,title,body,labels,assignees,comments,state\n```\n\nThen apply normal Ralph triage logic. Rule of thumb: hydrate ≤ 30% of scanned list. If more than 30% survive Pass 1, tighten filter rules.\n","# Skill: Ralph — Two-Pass Issue Scanning\n**Confidence:** high\n**Domain:** work-monitoring\n**Last validated:** 2026-03-24\n\n## Context\nCuts GitHub API calls from N+1 to ~7 per round (~72% reduction) by separating list scanning from full hydration.\nAddresses the scanning inefficiency described in issue #596.\n\n## Pattern\n\n### Pass 1 — Lightweight Scan\n\n```\ngh issue list --state open --json number,title,labels,assignees --limit 100\n```\n\n**Skip hydration if ANY of these match:**\n\n| Condition | Skip reason |\n|-----------|-------------|\n| `assignees` non-empty AND no `status:needs-review` | Already owned |\n| Labels contain `status:blocked` or `status:waiting-external` | Externally gated |\n| Labels contain `status:done` or `status:postponed` | Closed loop |\n| Title matches stale\u002Fnoisy pattern (`[chore]`, `[auto]`) | Low-signal |\n\n### Pass 2 — Selective Hydration\n\nFor each issue surviving Pass 1:\n\n```\ngh issue view \u003Cnumber> --json number,title,body,labels,assignees,comments,state\n```\n\nThen apply normal Ralph triage logic. Rule of thumb: hydrate ≤ 30% of scanned list. If more than 30% survive Pass 1, tighten filter rules.\n",{"name":5,"domain":35,"source":36,"confidence":23,"description":7},"work-monitoring","extracted","dev","4ffda80d1bb1043d9169688cf161e53097345c72","packages\u002Fsquad-cli\u002Ftemplates\u002Fskills\u002Fralph-two-pass-scan",0,"https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad","https:\u002F\u002Fgithub.com\u002FDeDuva","2026-11-09 20:24:44",{"source":8,"skillName":5,"commands":45,"prompt":55,"zipAvailable":56},[46,49,52],{"tool":47,"command":48},"npx","npx skills add DeDuva\u002Fsquad --skill ralph-two-pass-scan",{"tool":50,"command":51},"bunx","bunx skills add DeDuva\u002Fsquad --skill ralph-two-pass-scan",{"tool":53,"command":54},"pnpm","pnpm dlx skills add DeDuva\u002Fsquad --skill ralph-two-pass-scan","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Fpackages\u002Fsquad-cli\u002Ftemplates\u002Fskills\u002Fralph-two-pass-scan\u002FSKILL.md",true,[],[59,75,83,99,123,138],{"skillNo":60,"name":61,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":62,"categories":63,"keywords":69,"publishedAt":30},"01M719NE6ZPZT80MKVWFDECJZ3","My Skill","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fmy-skill\u002FSKILL.md",[64],{"categoryNo":65,"categoryName":66,"taxonomyType":67,"taxonomyTypeDesc":68},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[70,71,72,73,74],"my","my skill","testing","vitest","tester",{"skillNo":76,"name":77,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":78,"categories":79,"keywords":80,"publishedAt":30},"01M719NDJAMEWM8D9H355SCNA8","bad-skill","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftest-fixtures\u002Fskills-test-abb30454\u002Fbad-skill\u002FSKILL.md",[],[81,82],"bad skill","bad",{"skillNo":84,"name":85,"nameZh":6,"description":86,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":30},"01M719NCC1AZ02GHZ1V71YPEV7","squad-conventions","Core conventions and patterns used in the Squad codebase","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Fsquad-conventions\u002FSKILL.md",[],[90,91,92,93,94,95,96,23,97,98],"conventions","squad","squad conventions","project-conventions","core","project","manual","codebase","patterns",{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":30},"01M719NAYM17B7X8MGP681EHKQ","rework-rate","Measure and interpret PR rework rate — the emerging 5th DORA metric","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Frework-rate\u002FSKILL.md",[],[106,107,108,109,23,110,111,112,91,113,114,115,116,96,117,118,119,120,121,122],"rate","rework rate","health","analyze","review efficiency","quality","metric","metrics","efficiency","code quality","pr","prs","when","code","team","code-review","review",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":129,"publishedAt":30},"01M719NA136PDC3SQ10R4R88TH","nap","Context hygiene — compress, prune, archive .squad\u002F state","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Fnap\u002FSKILL.md",[],[125,130,131,132,133,134,135,136,91,137],"prune","state","maintenance","context hygiene","archive","hygiene","compress","context",{"skillNo":139,"name":140,"nameZh":6,"description":141,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":142,"categories":143,"keywords":148,"publishedAt":30},"01M719N7B4PBQPNXW78TEJY4HQ","e2e-template-testing","End-to-end validation of coordinator and agent template changes","https:\u002F\u002Fgithub.com\u002FDeDuva\u002Fsquad\u002Fblob\u002Fdev\u002Ftemplates\u002Fskills\u002Fe2e-template-testing\u002FSKILL.md",[144,147],{"categoryNo":145,"categoryName":146,"taxonomyType":67,"taxonomyTypeDesc":68},"01JBSEEDCAT000000000000008","测试与质量",{"categoryNo":65,"categoryName":66,"taxonomyType":67,"taxonomyTypeDesc":68},[72,149,150,151,152,153,154,96,155,23,156],"e2e template testing","e2e","template","end","coordinator","development","changes","validation"]