[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DSM3YYNKBVR5GMFSKR0CFP":3,"skill-same:01M6DSM3YYNKBVR5GMFSKR0CFP":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":26,"linkOnly":27,"markdownContent":28,"markdownBody":29,"frontMatter":30,"refName":31,"commitSha":32,"skillDirectory":33,"forksCount":34,"repositoryHtmlUrl":35,"repositoryHomepageUrl":6,"ownerHtmlUrl":36,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":37,"install":38,"resources":51},"01M6DSM3YYNKBVR5GMFSKR0CFP","self-healing-observer",null,"Pre-flight auth check for observer\u002Fmemory agents with local fallback","AntifragileTech\u002Fantifragile-claude-code","AntifragileTech","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F174357194?v=4","01M6DQCYMK4CDSQQAN0ZC72NTV","01M6DQCYS9YPW1WKMQ5TJMPQ43",9,"MIT","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fops\u002Fself-healing-observer\u002FSKILL.md",[],[18,19,20,21,22,23,24,25],"self","healing","self healing observer","memory","auth","check","fallback","local","2026-11-10 10:12:30",false,"---\nname: self-healing-observer\ndescription: Pre-flight auth check for observer\u002Fmemory agents with local fallback\n---\n\n# Self-Healing Observer Pipeline\n\n## Usage\nInvoke with: `\u002Fself-healing-observer` before launching any observer or memory agent session.\n\n## Pre-Flight Check\n\n1. **Test OAuth token** — make a minimal API call to verify authentication\n2. **If 401 or auth error**:\n   - Attempt token refresh using stored refresh token\n   - If refresh succeeds: proceed normally, log \"AUTH: refreshed\"\n   - If refresh fails: switch to local mode\n3. **Surface auth status** in the first line of output:\n   - `AUTH: valid` — proceeding with API-based observation\n   - `AUTH: refreshed` — token was stale, refreshed successfully\n   - `AUTH: local-only` — API unavailable, using file-based logging\n\n## Local Fallback Mode\n\nWhen API auth is unavailable:\n- Write all observations to `~\u002F.claude\u002Flogs\u002Fobservations\u002Fsession-{timestamp}.md`\n- Use standard frontmatter format:\n  ```\n  ---\n  session: {timestamp}\n  mode: local-only\n  directory: {pwd}\n  ---\n  ```\n- Log key decisions, file changes, and context for next session\n- Do NOT retry API calls — they will all fail\n\n## Rules\n- NEVER proceed with observer agents if auth check fails AND local fallback is not set up\n- NEVER retry failed auth calls more than once\n- Always tell the user which mode is active\n- Local observations can be bulk-uploaded to API later when auth is restored\n","# Self-Healing Observer Pipeline\n\n## Usage\nInvoke with: `\u002Fself-healing-observer` before launching any observer or memory agent session.\n\n## Pre-Flight Check\n\n1. **Test OAuth token** — make a minimal API call to verify authentication\n2. **If 401 or auth error**:\n   - Attempt token refresh using stored refresh token\n   - If refresh succeeds: proceed normally, log \"AUTH: refreshed\"\n   - If refresh fails: switch to local mode\n3. **Surface auth status** in the first line of output:\n   - `AUTH: valid` — proceeding with API-based observation\n   - `AUTH: refreshed` — token was stale, refreshed successfully\n   - `AUTH: local-only` — API unavailable, using file-based logging\n\n## Local Fallback Mode\n\nWhen API auth is unavailable:\n- Write all observations to `~\u002F.claude\u002Flogs\u002Fobservations\u002Fsession-{timestamp}.md`\n- Use standard frontmatter format:\n  ```\n  ---\n  session: {timestamp}\n  mode: local-only\n  directory: {pwd}\n  ---\n  ```\n- Log key decisions, file changes, and context for next session\n- Do NOT retry API calls — they will all fail\n\n## Rules\n- NEVER proceed with observer agents if auth check fails AND local fallback is not set up\n- NEVER retry failed auth calls more than once\n- Always tell the user which mode is active\n- Local observations can be bulk-uploaded to API later when auth is restored\n",{"name":5,"description":7},"master","c73386b305dec167db7654e0e6feacb462d4f9dc","assets\u002Fskills\u002Fops\u002Fself-healing-observer",1,"https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code","https:\u002F\u002Fgithub.com\u002FAntifragileTech","2026-10-02 14:22:14",{"source":8,"skillName":5,"commands":39,"prompt":49,"zipAvailable":50},[40,43,46],{"tool":41,"command":42},"npx","npx skills add AntifragileTech\u002Fantifragile-claude-code --skill self-healing-observer",{"tool":44,"command":45},"bunx","bunx skills add AntifragileTech\u002Fantifragile-claude-code --skill self-healing-observer",{"tool":47,"command":48},"pnpm","pnpm dlx skills add AntifragileTech\u002Fantifragile-claude-code --skill self-healing-observer","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fops\u002Fself-healing-observer\u002FSKILL.md",true,[52],{"path":53,"resourceType":54,"resourceTypeDesc":55,"sizeBytes":56,"sourceHtmlUrl":57},"index.json","REFERENCE","参考文档",559,"https:\u002F\u002Fgithub.com\u002FDCx7C5\u002Fai-marketplace\u002Fblob\u002Fmain\u002Fskills\u002Flinux-log-syslog-analyze\u002Findex.json",[59,85,100,115,128,141],{"skillNo":60,"name":61,"nameZh":6,"description":62,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":63,"categories":64,"keywords":78,"publishedAt":26},"01M6DT9Q6VYA615SCXR757TZZ7","writing-skills","Use when creating new skills, editing existing skills, or verifying skills work before deployment","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwriting-skills\u002FSKILL.md",[65,70,73],{"categoryNo":66,"categoryName":67,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",{"categoryNo":71,"categoryName":72,"taxonomyType":68,"taxonomyTypeDesc":69},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[79,80,81,82,83,84],"writing skills","writing","use","editing","work","deployment",{"skillNo":86,"name":87,"nameZh":6,"description":88,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":89,"categories":90,"keywords":93,"publishedAt":26},"01M6DT9GFHDNY90P41WGAE1TV0","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwriting-plans\u002FSKILL.md",[91,92],{"categoryNo":71,"categoryName":72,"taxonomyType":68,"taxonomyTypeDesc":69},{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},[94,95,80,96,97,81,98,99],"plans","writing plans","requirements","task","code","spec",{"skillNo":101,"name":102,"nameZh":6,"description":103,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":104,"categories":105,"keywords":108,"publishedAt":26},"01M6DT9C6PFGD86WS3HY7YE3XG","docs:write-concisely","Apply writing rules to any documentation that humans will read. Makes your writing clearer, stronger, and more professional.","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwrite-concisely\u002FSKILL.md",[106,107],{"categoryNo":71,"categoryName":72,"taxonomyType":68,"taxonomyTypeDesc":69},{"categoryNo":74,"categoryName":75,"taxonomyType":76,"taxonomyTypeDesc":77},[109,110,111,112,113,114,80],"docs:write concisely","write","docs","read","Rules","documentation",{"skillNo":116,"name":117,"nameZh":6,"description":118,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":119,"categories":120,"keywords":121,"publishedAt":26},"01M6DT98AWQ27P0N1CG97WAG66","kaizen:why","Iterative Five Whys root cause analysis drilling from symptoms to fundamentals","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fwhy\u002FSKILL.md",[],[117,122,123,124,125,126,127],"why","kaizen","issue","five whys","analysis","root cause analysis",{"skillNo":129,"name":130,"nameZh":6,"description":131,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":132,"categories":133,"keywords":134,"publishedAt":26},"01M6DT93EH25NAX19R3WGE1P53","verification-loop","A comprehensive verification system for Claude Code sessions.","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fverification-loop\u002FSKILL.md",[],[135,136,137,138,98,139,140],"verification loop","verification","loop","sessions","claude code sessions","system",{"skillNo":142,"name":143,"nameZh":6,"description":144,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":145,"categories":146,"keywords":147,"publishedAt":26},"01M6DT90GW7Z7VCN98P9DVYSNC","verification-before-completion","Use when about to claim work is complete, fixed, or passing, before committing or creating PRs - requires running verification commands and confirming output before making any success claims; evidence before assertions always","https:\u002F\u002Fgithub.com\u002FAntifragileTech\u002Fantifragile-claude-code\u002Fblob\u002Fmaster\u002Fassets\u002Fskills\u002Fthinking\u002Fverification-before-completion\u002FSKILL.md",[],[148,136,149,83,81,150,151,152],"verification before completion","commands","evidence","claim","complete"]