[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C1WNH1CT96ZSSEM8TG584N":3,"skill-same:01M6C1WNH1CT96ZSSEM8TG584N":54},{"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":28,"linkOnly":29,"markdownContent":30,"markdownBody":31,"frontMatter":32,"refName":33,"commitSha":34,"skillDirectory":35,"forksCount":36,"repositoryHtmlUrl":37,"repositoryHomepageUrl":6,"ownerHtmlUrl":38,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":39,"install":40,"resources":53},"01M6C1WNH1CT96ZSSEM8TG584N","ao-lifecycle-triage",null,"Triage AO lifecycle backfill claim failures and ghost worktree fetch errors.","jleechanorg\u002Fjleechan-skills","jleechanorg","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F221404966?v=4","01M6C1VJ99XG950X1DWPEBCBGX","01M6C1VJDK5YVDNT3362RT5WSB",6,"MIT","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fao-lifecycle-triage\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27],"triage","lifecycle","ao lifecycle triage","ao","worktree","ghost","fetch","claim","errors","backfill","2026-11-10 10:12:30",false,"---\nname: ao-lifecycle-triage\ndescription: Triage AO lifecycle backfill claim failures and ghost worktree fetch errors.\n---\n\n# AO Lifecycle Backfill Claim Failure Triage\n\nThis is a read-only diagnosis by default. Preserve the current checkout,\nbranch, worktree, and any uncommitted data. Never run `git reset --hard`,\n`git clean`, or `git worktree remove --force` as an automatic repair. Resolve\nthe exact target and inspect its status before any authorized cleanup; use the\napproved `diskm worktree-new` path when an isolated checkout is needed.\n\n## When to use\nWhen `lifecycle.backfill.claim_failed` errors appear in the lifecycle-worker log with:\n`fatal: refusing to fetch into branch 'refs\u002Fheads\u002FBRANCH' checked out at 'PATH'`\n\n## Two distinct root causes (same error surface)\n\n### Cause A: Main repo on wrong branch\n**Symptom**: `checked out at '\u003Cmain AO checkout>'` (the main checkout, `$AO_REPO_ROOT`)\n**Diagnosis**: `git -C \"$AO_REPO_ROOT\" branch --show-current`\n**Safe recovery**:\n```bash\ngit -C \"$AO_REPO_ROOT\" branch --show-current\ngit -C \"$AO_REPO_ROOT\" status --short\ngit -C \"$AO_REPO_ROOT\" worktree list --porcelain\n```\nDo not switch branches or pull in the active main checkout automatically. If it\nis dirty or another worker owns it, preserve it and continue diagnosis through\nan approved isolated worktree.\n\n### Cause B: Ghost worktrees (dead AO worktrees with branches still checked out)\n**Symptom**: `checked out at '\u003Cworktree root>\u002F\u003Cproject>\u002Fao-NNN'` (an AO session worktree; use the exact path from the error as `WT` below)\n**Diagnosis**: `git worktree list | grep ao-NNN` — if present with no live tmux session, it's a ghost\n**Safe recovery**:\n```bash\nao session ls\ngit -C \"$AO_REPO_ROOT\" worktree list --porcelain\ngit -C \"$WT\" status --short\n```\nConfirm the session\u002Fprocess owner and inspect the exact worktree before any\ncleanup. A missing tmux session alone does not prove that the checkout is safe\nto remove. Do not use `--force`; if it contains changes, preserve them and\nreport the exact blocker. Any deletion requires separate explicit\nauthorization.\n\n## Triage order (always check A first)\n\n1. Look at the path in the error: if it's the main repo path → Cause A\n2. If it's an `ao-NNN` session worktree → Cause B\n3. If backfill is aborted (`claim_failed_abort` after 3 consecutive failures), check both\n\n## Prevention\n\n- `sweepOrphanWorktrees` in lifecycle-worker.ts runs every 5min (orphan TTL: 6h)\n- Agents should leave unrelated checkouts untouched; AO lifecycle cleanup must preserve task work and use the approved worktree path\n\n## Harness note\n\nGhost worktree accumulation cleaned manually twice in the same session on 2026-03-24 — this is the harness-level fix. If seeing this pattern again, the `orphanTtlMs` may need reduction.\n","# AO Lifecycle Backfill Claim Failure Triage\n\nThis is a read-only diagnosis by default. Preserve the current checkout,\nbranch, worktree, and any uncommitted data. Never run `git reset --hard`,\n`git clean`, or `git worktree remove --force` as an automatic repair. Resolve\nthe exact target and inspect its status before any authorized cleanup; use the\napproved `diskm worktree-new` path when an isolated checkout is needed.\n\n## When to use\nWhen `lifecycle.backfill.claim_failed` errors appear in the lifecycle-worker log with:\n`fatal: refusing to fetch into branch 'refs\u002Fheads\u002FBRANCH' checked out at 'PATH'`\n\n## Two distinct root causes (same error surface)\n\n### Cause A: Main repo on wrong branch\n**Symptom**: `checked out at '\u003Cmain AO checkout>'` (the main checkout, `$AO_REPO_ROOT`)\n**Diagnosis**: `git -C \"$AO_REPO_ROOT\" branch --show-current`\n**Safe recovery**:\n```bash\ngit -C \"$AO_REPO_ROOT\" branch --show-current\ngit -C \"$AO_REPO_ROOT\" status --short\ngit -C \"$AO_REPO_ROOT\" worktree list --porcelain\n```\nDo not switch branches or pull in the active main checkout automatically. If it\nis dirty or another worker owns it, preserve it and continue diagnosis through\nan approved isolated worktree.\n\n### Cause B: Ghost worktrees (dead AO worktrees with branches still checked out)\n**Symptom**: `checked out at '\u003Cworktree root>\u002F\u003Cproject>\u002Fao-NNN'` (an AO session worktree; use the exact path from the error as `WT` below)\n**Diagnosis**: `git worktree list | grep ao-NNN` — if present with no live tmux session, it's a ghost\n**Safe recovery**:\n```bash\nao session ls\ngit -C \"$AO_REPO_ROOT\" worktree list --porcelain\ngit -C \"$WT\" status --short\n```\nConfirm the session\u002Fprocess owner and inspect the exact worktree before any\ncleanup. A missing tmux session alone does not prove that the checkout is safe\nto remove. Do not use `--force`; if it contains changes, preserve them and\nreport the exact blocker. Any deletion requires separate explicit\nauthorization.\n\n## Triage order (always check A first)\n\n1. Look at the path in the error: if it's the main repo path → Cause A\n2. If it's an `ao-NNN` session worktree → Cause B\n3. If backfill is aborted (`claim_failed_abort` after 3 consecutive failures), check both\n\n## Prevention\n\n- `sweepOrphanWorktrees` in lifecycle-worker.ts runs every 5min (orphan TTL: 6h)\n- Agents should leave unrelated checkouts untouched; AO lifecycle cleanup must preserve task work and use the approved worktree path\n\n## Harness note\n\nGhost worktree accumulation cleaned manually twice in the same session on 2026-03-24 — this is the harness-level fix. If seeing this pattern again, the `orphanTtlMs` may need reduction.\n",{"name":5,"description":7},"main","8144f00ebafc4306264c63239e4b9fa42e48a90e",".claude\u002Fskills\u002Fao-lifecycle-triage",0,"https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills","https:\u002F\u002Fgithub.com\u002Fjleechanorg","2026-11-14 14:55:35",{"source":8,"skillName":5,"commands":41,"prompt":51,"zipAvailable":52},[42,45,48],{"tool":43,"command":44},"npx","npx skills add jleechanorg\u002Fjleechan-skills --skill ao-lifecycle-triage",{"tool":46,"command":47},"bunx","bunx skills add jleechanorg\u002Fjleechan-skills --skill ao-lifecycle-triage",{"tool":49,"command":50},"pnpm","pnpm dlx skills add jleechanorg\u002Fjleechan-skills --skill ao-lifecycle-triage","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fao-lifecycle-triage\u002FSKILL.md",true,[],[55,73,95,108,122,138],{"skillNo":56,"name":57,"nameZh":6,"description":58,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":59,"categories":60,"keywords":61,"publishedAt":28},"01M716Y5MTJ6GYJZ2ATXCJK8G4","instinct","Use when the user invokes \u002Finstinct or \u002Fin, or asks to \"message Instinct\", \"ask Instinct\", \"tell Instinct\", \"check Instinct\", or read replies from the configured peer assistant. iMessage first, WhatsApp Web as fallback.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Finstinct\u002FSKILL.md",[],[57,62,63,64,65,66,67,68,69,70,71,72],"user","when","replies","check","use","identity","whatsapp","gmail","read","message","ask",{"skillNo":74,"name":75,"nameZh":6,"description":76,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":77,"categories":78,"keywords":84,"publishedAt":28},"01M716Y4HF7FVVMJSA2CCVN5VF","hr","Compatibility alias for history-resume; produce the same fresh-state, provenance-aware resume briefing.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhr\u002FSKILL.md",[79],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000038","人力资源","PROFESSION","适用职业",[75,85,86,87,88,89,90,91,92,93,94],"resume","compatibility","provenance","for","history","produce","alias","briefing","state","fresh",{"skillNo":96,"name":97,"nameZh":6,"description":98,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":99,"categories":100,"keywords":102,"publishedAt":28},"01M716Y1FFNFKFJYYKF8HQA6T8","history-resume","Resume briefing for the current repository branch or worktree using fresh state and admitted history sources.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fhistory-resume\u002FSKILL.md",[101],{"categoryNo":80,"categoryName":81,"taxonomyType":82,"taxonomyTypeDesc":83},[89,85,103,104,62,105,92,106,88,22,107,93,94],"history resume","branch","analysis","repository","sources",{"skillNo":109,"name":110,"nameZh":6,"description":111,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":112,"categories":113,"keywords":114,"publishedAt":28},"01M716XWXJ8EPHK4RH9T14TR85","grok","Alias for the canonical grokbot browser conversation workflow; \u002Fgrok talks to the Grok bot the same way \u002Fdot talks to Dot.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fgrok\u002FSKILL.md",[],[110,115,116,117,88,118,91,119,120,121],"dot","bot","workflow","canonical","conversation","browser","grokbot",{"skillNo":123,"name":124,"nameZh":6,"description":125,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":126,"categories":127,"keywords":128,"publishedAt":28},"01M70N9Q07DTE0EW5KFXMMMSJ0","codexa-bench","Compare `codexa` and normal `codex` on a fair split of comparable work by default; use `--strict` for duplicate runs of the exact same task.","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Fcodexa-bench\u002FSKILL.md",[],[129,130,131,66,132,88,133,134,135,136,137],"codexa bench","work","split","default","duplicate","task","compare","normal","codex",{"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":142,"licenseFileUrl":143,"sourceHtmlUrl":144,"categories":145,"keywords":157,"publishedAt":28},"01M6C24S2X60SP8BBFGAEKPEGW","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, artifacts, posters, or applications (examples include websites, landing pages, dashboards, React components, HTML\u002FCSS layouts, or when styling\u002Fbeautifying any web UI). Generates creative, polished code and UI design that avoids generic AI aesthetics.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fjleechanorg\u002Fjleechan-skills\u002Fblob\u002Fmain\u002F.claude\u002Fskills\u002Ffrontend-design\u002FSKILL.md",[146,151,154],{"categoryNo":147,"categoryName":148,"taxonomyType":149,"taxonomyTypeDesc":150},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",{"categoryNo":152,"categoryName":153,"taxonomyType":149,"taxonomyTypeDesc":150},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":155,"categoryName":156,"taxonomyType":82,"taxonomyTypeDesc":83},"01JBSEEDCAT000000000000032","设计师",[158,159,160,66,161,162,163,62,164,165,166,167,168,169,170,171,172,173,174,175,176,177,178,179,180,181,63,182],"frontend","design","frontend design","generic","ui design","react","html","components","code","artifacts","ui","aesthetics","Production","web components","landing","applications","quality","web","css","create","examples","with","react components","web ui","pages"]