[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-openai-systematic-debugging":3,"mdc-2pafpa-key":33,"related-repo-openai-systematic-debugging":1828,"related-org-openai-systematic-debugging":1950},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":22,"repoUrl":23,"updatedAt":24,"license":25,"forks":26,"topics":27,"repo":28,"sourceUrl":31,"mdContent":32},"systematic-debugging","run systematic debugging sessions","Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"openai","OpenAI","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fopenai.png",[12,16,19],{"name":13,"slug":14,"type":15},"Engineering","engineering","tag",{"name":17,"slug":18,"type":15},"Testing","testing",{"name":20,"slug":21,"type":15},"Debugging","debugging",3992,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins","2026-04-16T05:11:49.597999",null,465,[],{"repoUrl":23,"stars":22,"forks":26,"topics":29,"description":30},[],"OpenAI Plugins","https:\u002F\u002Fgithub.com\u002Fopenai\u002Fplugins\u002Ftree\u002FHEAD\u002Fplugins\u002Fsuperpowers\u002Fskills\u002Fsystematic-debugging","---\nname: systematic-debugging\ndescription: Use when encountering any bug, test failure, or unexpected behavior, before proposing fixes\n---\n\n# Systematic Debugging\n\n## Overview\n\nRandom fixes waste time and create new bugs. Quick patches mask underlying issues.\n\n**Core principle:** ALWAYS find root cause before attempting fixes. Symptom fixes are failure.\n\n**Violating the letter of this process is violating the spirit of debugging.**\n\n## The Iron Law\n\n```\nNO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST\n```\n\nIf you haven't completed Phase 1, you cannot propose fixes.\n\n## When to Use\n\nUse for ANY technical issue:\n- Test failures\n- Bugs in production\n- Unexpected behavior\n- Performance problems\n- Build failures\n- Integration issues\n\n**Use this ESPECIALLY when:**\n- Under time pressure (emergencies make guessing tempting)\n- \"Just one quick fix\" seems obvious\n- You've already tried multiple fixes\n- Previous fix didn't work\n- You don't fully understand the issue\n\n**Don't skip when:**\n- Issue seems simple (simple bugs have root causes too)\n- You're in a hurry (rushing guarantees rework)\n- Manager wants it fixed NOW (systematic is faster than thrashing)\n\n## The Four Phases\n\nYou MUST complete each phase before proceeding to the next.\n\n### Phase 1: Root Cause Investigation\n\n**BEFORE attempting ANY fix:**\n\n1. **Read Error Messages Carefully**\n   - Don't skip past errors or warnings\n   - They often contain the exact solution\n   - Read stack traces completely\n   - Note line numbers, file paths, error codes\n\n2. **Reproduce Consistently**\n   - Can you trigger it reliably?\n   - What are the exact steps?\n   - Does it happen every time?\n   - If not reproducible → gather more data, don't guess\n\n3. **Check Recent Changes**\n   - What changed that could cause this?\n   - Git diff, recent commits\n   - New dependencies, config changes\n   - Environmental differences\n\n4. **Gather Evidence in Multi-Component Systems**\n\n   **WHEN system has multiple components (CI → build → signing, API → service → database):**\n\n   **BEFORE proposing fixes, add diagnostic instrumentation:**\n   ```\n   For EACH component boundary:\n     - Log what data enters component\n     - Log what data exits component\n     - Verify environment\u002Fconfig propagation\n     - Check state at each layer\n\n   Run once to gather evidence showing WHERE it breaks\n   THEN analyze evidence to identify failing component\n   THEN investigate that specific component\n   ```\n\n   **Example (multi-layer system):**\n   ```bash\n   # Layer 1: Workflow\n   echo \"=== Secrets available in workflow: ===\"\n   echo \"IDENTITY: ${IDENTITY:+SET}${IDENTITY:-UNSET}\"\n\n   # Layer 2: Build script\n   echo \"=== Env vars in build script: ===\"\n   env | grep IDENTITY || echo \"IDENTITY not in environment\"\n\n   # Layer 3: Signing script\n   echo \"=== Keychain state: ===\"\n   security list-keychains\n   security find-identity -v\n\n   # Layer 4: Actual signing\n   codesign --sign \"$IDENTITY\" --verbose=4 \"$APP\"\n   ```\n\n   **This reveals:** Which layer fails (secrets → workflow ✓, workflow → build ✗)\n\n5. **Trace Data Flow**\n\n   **WHEN error is deep in call stack:**\n\n   See `root-cause-tracing.md` in this directory for the complete backward tracing technique.\n\n   **Quick version:**\n   - Where does bad value originate?\n   - What called this with bad value?\n   - Keep tracing up until you find the source\n   - Fix at source, not at symptom\n\n### Phase 2: Pattern Analysis\n\n**Find the pattern before fixing:**\n\n1. **Find Working Examples**\n   - Locate similar working code in same codebase\n   - What works that's similar to what's broken?\n\n2. **Compare Against References**\n   - If implementing pattern, read reference implementation COMPLETELY\n   - Don't skim - read every line\n   - Understand the pattern fully before applying\n\n3. **Identify Differences**\n   - What's different between working and broken?\n   - List every difference, however small\n   - Don't assume \"that can't matter\"\n\n4. **Understand Dependencies**\n   - What other components does this need?\n   - What settings, config, environment?\n   - What assumptions does it make?\n\n### Phase 3: Hypothesis and Testing\n\n**Scientific method:**\n\n1. **Form Single Hypothesis**\n   - State clearly: \"I think X is the root cause because Y\"\n   - Write it down\n   - Be specific, not vague\n\n2. **Test Minimally**\n   - Make the SMALLEST possible change to test hypothesis\n   - One variable at a time\n   - Don't fix multiple things at once\n\n3. **Verify Before Continuing**\n   - Did it work? Yes → Phase 4\n   - Didn't work? Form NEW hypothesis\n   - DON'T add more fixes on top\n\n4. **When You Don't Know**\n   - Say \"I don't understand X\"\n   - Don't pretend to know\n   - Ask for help\n   - Research more\n\n### Phase 4: Implementation\n\n**Fix the root cause, not the symptom:**\n\n1. **Create Failing Test Case**\n   - Simplest possible reproduction\n   - Automated test if possible\n   - One-off test script if no framework\n   - MUST have before fixing\n   - Use the `superpowers:test-driven-development` skill for writing proper failing tests\n\n2. **Implement Single Fix**\n   - Address the root cause identified\n   - ONE change at a time\n   - No \"while I'm here\" improvements\n   - No bundled refactoring\n\n3. **Verify Fix**\n   - Test passes now?\n   - No other tests broken?\n   - Issue actually resolved?\n\n4. **If Fix Doesn't Work**\n   - STOP\n   - Count: How many fixes have you tried?\n   - If \u003C 3: Return to Phase 1, re-analyze with new information\n   - **If ≥ 3: STOP and question the architecture (step 5 below)**\n   - DON'T attempt Fix #4 without architectural discussion\n\n5. **If 3+ Fixes Failed: Question Architecture**\n\n   **Pattern indicating architectural problem:**\n   - Each fix reveals new shared state\u002Fcoupling\u002Fproblem in different place\n   - Fixes require \"massive refactoring\" to implement\n   - Each fix creates new symptoms elsewhere\n\n   **STOP and question fundamentals:**\n   - Is this pattern fundamentally sound?\n   - Are we \"sticking with it through sheer inertia\"?\n   - Should we refactor architecture vs. continue fixing symptoms?\n\n   **Discuss with your human partner before attempting more fixes**\n\n   This is NOT a failed hypothesis - this is a wrong architecture.\n\n## Red Flags - STOP and Follow Process\n\nIf you catch yourself thinking:\n- \"Quick fix for now, investigate later\"\n- \"Just try changing X and see if it works\"\n- \"Add multiple changes, run tests\"\n- \"Skip the test, I'll manually verify\"\n- \"It's probably X, let me fix that\"\n- \"I don't fully understand but this might work\"\n- \"Pattern says X but I'll adapt it differently\"\n- \"Here are the main problems: [lists fixes without investigation]\"\n- Proposing solutions before tracing data flow\n- **\"One more fix attempt\" (when already tried 2+)**\n- **Each fix reveals new problem in different place**\n\n**ALL of these mean: STOP. Return to Phase 1.**\n\n**If 3+ fixes failed:** Question the architecture (see Phase 4.5)\n\n## your human partner's Signals You're Doing It Wrong\n\n**Watch for these redirections:**\n- \"Is that not happening?\" - You assumed without verifying\n- \"Will it show us...?\" - You should have added evidence gathering\n- \"Stop guessing\" - You're proposing fixes without understanding\n- \"Ultrathink this\" - Question fundamentals, not just symptoms\n- \"We're stuck?\" (frustrated) - Your approach isn't working\n\n**When you see these:** STOP. Return to Phase 1.\n\n## Common Rationalizations\n\n| Excuse | Reality |\n|--------|---------|\n| \"Issue is simple, don't need process\" | Simple issues have root causes too. Process is fast for simple bugs. |\n| \"Emergency, no time for process\" | Systematic debugging is FASTER than guess-and-check thrashing. |\n| \"Just try this first, then investigate\" | First fix sets the pattern. Do it right from the start. |\n| \"I'll write test after confirming fix works\" | Untested fixes don't stick. Test first proves it. |\n| \"Multiple fixes at once saves time\" | Can't isolate what worked. Causes new bugs. |\n| \"Reference too long, I'll adapt the pattern\" | Partial understanding guarantees bugs. Read it completely. |\n| \"I see the problem, let me fix it\" | Seeing symptoms ≠ understanding root cause. |\n| \"One more fix attempt\" (after 2+ failures) | 3+ failures = architectural problem. Question pattern, don't fix again. |\n\n## Quick Reference\n\n| Phase | Key Activities | Success Criteria |\n|-------|---------------|------------------|\n| **1. Root Cause** | Read errors, reproduce, check changes, gather evidence | Understand WHAT and WHY |\n| **2. Pattern** | Find working examples, compare | Identify differences |\n| **3. Hypothesis** | Form theory, test minimally | Confirmed or new hypothesis |\n| **4. Implementation** | Create test, fix, verify | Bug resolved, tests pass |\n\n## When Process Reveals \"No Root Cause\"\n\nIf systematic investigation reveals issue is truly environmental, timing-dependent, or external:\n\n1. You've completed the process\n2. Document what you investigated\n3. Implement appropriate handling (retry, timeout, error message)\n4. Add monitoring\u002Flogging for future investigation\n\n**But:** 95% of \"no root cause\" cases are incomplete investigation.\n\n## Supporting Techniques\n\nThese techniques are part of systematic debugging and available in this directory:\n\n- **`root-cause-tracing.md`** - Trace bugs backward through call stack to find original trigger\n- **`defense-in-depth.md`** - Add validation at multiple layers after finding root cause\n- **`condition-based-waiting.md`** - Replace arbitrary timeouts with condition polling\n\n**Related skills:**\n- **superpowers:test-driven-development** - For creating failing test case (Phase 4, Step 1)\n- **superpowers:verification-before-completion** - Verify fix worked before claiming success\n\n## Real-World Impact\n\nFrom debugging sessions:\n- Systematic approach: 15-30 minutes to fix\n- Random fixes approach: 2-3 hours of thrashing\n- First-time fix rate: 95% vs 40%\n- New bugs introduced: Near zero vs common\n",{"data":34,"body":35},{"name":4,"description":6},{"type":36,"children":37},"root",[38,46,53,59,70,78,84,97,102,108,113,148,156,184,192,210,216,221,228,236,781,787,795,897,903,911,1023,1029,1037,1253,1259,1264,1334,1342,1352,1358,1366,1394,1404,1410,1542,1548,1659,1665,1670,1693,1703,1709,1714,1758,1766,1788,1794,1799,1822],{"type":39,"tag":40,"props":41,"children":42},"element","h1",{"id":4},[43],{"type":44,"value":45},"text","Systematic Debugging",{"type":39,"tag":47,"props":48,"children":50},"h2",{"id":49},"overview",[51],{"type":44,"value":52},"Overview",{"type":39,"tag":54,"props":55,"children":56},"p",{},[57],{"type":44,"value":58},"Random fixes waste time and create new bugs. Quick patches mask underlying issues.",{"type":39,"tag":54,"props":60,"children":61},{},[62,68],{"type":39,"tag":63,"props":64,"children":65},"strong",{},[66],{"type":44,"value":67},"Core principle:",{"type":44,"value":69}," ALWAYS find root cause before attempting fixes. Symptom fixes are failure.",{"type":39,"tag":54,"props":71,"children":72},{},[73],{"type":39,"tag":63,"props":74,"children":75},{},[76],{"type":44,"value":77},"Violating the letter of this process is violating the spirit of debugging.",{"type":39,"tag":47,"props":79,"children":81},{"id":80},"the-iron-law",[82],{"type":44,"value":83},"The Iron Law",{"type":39,"tag":85,"props":86,"children":90},"pre",{"className":87,"code":89,"language":44},[88],"language-text","NO FIXES WITHOUT ROOT CAUSE INVESTIGATION FIRST\n",[91],{"type":39,"tag":92,"props":93,"children":95},"code",{"__ignoreMap":94},"",[96],{"type":44,"value":89},{"type":39,"tag":54,"props":98,"children":99},{},[100],{"type":44,"value":101},"If you haven't completed Phase 1, you cannot propose fixes.",{"type":39,"tag":47,"props":103,"children":105},{"id":104},"when-to-use",[106],{"type":44,"value":107},"When to Use",{"type":39,"tag":54,"props":109,"children":110},{},[111],{"type":44,"value":112},"Use for ANY technical issue:",{"type":39,"tag":114,"props":115,"children":116},"ul",{},[117,123,128,133,138,143],{"type":39,"tag":118,"props":119,"children":120},"li",{},[121],{"type":44,"value":122},"Test failures",{"type":39,"tag":118,"props":124,"children":125},{},[126],{"type":44,"value":127},"Bugs in production",{"type":39,"tag":118,"props":129,"children":130},{},[131],{"type":44,"value":132},"Unexpected behavior",{"type":39,"tag":118,"props":134,"children":135},{},[136],{"type":44,"value":137},"Performance problems",{"type":39,"tag":118,"props":139,"children":140},{},[141],{"type":44,"value":142},"Build failures",{"type":39,"tag":118,"props":144,"children":145},{},[146],{"type":44,"value":147},"Integration issues",{"type":39,"tag":54,"props":149,"children":150},{},[151],{"type":39,"tag":63,"props":152,"children":153},{},[154],{"type":44,"value":155},"Use this ESPECIALLY when:",{"type":39,"tag":114,"props":157,"children":158},{},[159,164,169,174,179],{"type":39,"tag":118,"props":160,"children":161},{},[162],{"type":44,"value":163},"Under time pressure (emergencies make guessing tempting)",{"type":39,"tag":118,"props":165,"children":166},{},[167],{"type":44,"value":168},"\"Just one quick fix\" seems obvious",{"type":39,"tag":118,"props":170,"children":171},{},[172],{"type":44,"value":173},"You've already tried multiple fixes",{"type":39,"tag":118,"props":175,"children":176},{},[177],{"type":44,"value":178},"Previous fix didn't work",{"type":39,"tag":118,"props":180,"children":181},{},[182],{"type":44,"value":183},"You don't fully understand the issue",{"type":39,"tag":54,"props":185,"children":186},{},[187],{"type":39,"tag":63,"props":188,"children":189},{},[190],{"type":44,"value":191},"Don't skip when:",{"type":39,"tag":114,"props":193,"children":194},{},[195,200,205],{"type":39,"tag":118,"props":196,"children":197},{},[198],{"type":44,"value":199},"Issue seems simple (simple bugs have root causes too)",{"type":39,"tag":118,"props":201,"children":202},{},[203],{"type":44,"value":204},"You're in a hurry (rushing guarantees rework)",{"type":39,"tag":118,"props":206,"children":207},{},[208],{"type":44,"value":209},"Manager wants it fixed NOW (systematic is faster than thrashing)",{"type":39,"tag":47,"props":211,"children":213},{"id":212},"the-four-phases",[214],{"type":44,"value":215},"The Four Phases",{"type":39,"tag":54,"props":217,"children":218},{},[219],{"type":44,"value":220},"You MUST complete each phase before proceeding to the next.",{"type":39,"tag":222,"props":223,"children":225},"h3",{"id":224},"phase-1-root-cause-investigation",[226],{"type":44,"value":227},"Phase 1: Root Cause Investigation",{"type":39,"tag":54,"props":229,"children":230},{},[231],{"type":39,"tag":63,"props":232,"children":233},{},[234],{"type":44,"value":235},"BEFORE attempting ANY fix:",{"type":39,"tag":237,"props":238,"children":239},"ol",{},[240,271,302,333,721],{"type":39,"tag":118,"props":241,"children":242},{},[243,248],{"type":39,"tag":63,"props":244,"children":245},{},[246],{"type":44,"value":247},"Read Error Messages Carefully",{"type":39,"tag":114,"props":249,"children":250},{},[251,256,261,266],{"type":39,"tag":118,"props":252,"children":253},{},[254],{"type":44,"value":255},"Don't skip past errors or warnings",{"type":39,"tag":118,"props":257,"children":258},{},[259],{"type":44,"value":260},"They often contain the exact solution",{"type":39,"tag":118,"props":262,"children":263},{},[264],{"type":44,"value":265},"Read stack traces completely",{"type":39,"tag":118,"props":267,"children":268},{},[269],{"type":44,"value":270},"Note line numbers, file paths, error codes",{"type":39,"tag":118,"props":272,"children":273},{},[274,279],{"type":39,"tag":63,"props":275,"children":276},{},[277],{"type":44,"value":278},"Reproduce Consistently",{"type":39,"tag":114,"props":280,"children":281},{},[282,287,292,297],{"type":39,"tag":118,"props":283,"children":284},{},[285],{"type":44,"value":286},"Can you trigger it reliably?",{"type":39,"tag":118,"props":288,"children":289},{},[290],{"type":44,"value":291},"What are the exact steps?",{"type":39,"tag":118,"props":293,"children":294},{},[295],{"type":44,"value":296},"Does it happen every time?",{"type":39,"tag":118,"props":298,"children":299},{},[300],{"type":44,"value":301},"If not reproducible → gather more data, don't guess",{"type":39,"tag":118,"props":303,"children":304},{},[305,310],{"type":39,"tag":63,"props":306,"children":307},{},[308],{"type":44,"value":309},"Check Recent Changes",{"type":39,"tag":114,"props":311,"children":312},{},[313,318,323,328],{"type":39,"tag":118,"props":314,"children":315},{},[316],{"type":44,"value":317},"What changed that could cause this?",{"type":39,"tag":118,"props":319,"children":320},{},[321],{"type":44,"value":322},"Git diff, recent commits",{"type":39,"tag":118,"props":324,"children":325},{},[326],{"type":44,"value":327},"New dependencies, config changes",{"type":39,"tag":118,"props":329,"children":330},{},[331],{"type":44,"value":332},"Environmental differences",{"type":39,"tag":118,"props":334,"children":335},{},[336,341,345,350,353,358,367,370,375,711,714,719],{"type":39,"tag":63,"props":337,"children":338},{},[339],{"type":44,"value":340},"Gather Evidence in Multi-Component Systems",{"type":39,"tag":342,"props":343,"children":344},"br",{},[],{"type":39,"tag":63,"props":346,"children":347},{},[348],{"type":44,"value":349},"WHEN system has multiple components (CI → build → signing, API → service → database):",{"type":39,"tag":342,"props":351,"children":352},{},[],{"type":39,"tag":63,"props":354,"children":355},{},[356],{"type":44,"value":357},"BEFORE proposing fixes, add diagnostic instrumentation:",{"type":39,"tag":85,"props":359,"children":362},{"className":360,"code":361,"language":44},[88],"For EACH component boundary:\n  - Log what data enters component\n  - Log what data exits component\n  - Verify environment\u002Fconfig propagation\n  - Check state at each layer\n\nRun once to gather evidence showing WHERE it breaks\nTHEN analyze evidence to identify failing component\nTHEN investigate that specific component\n",[363],{"type":39,"tag":92,"props":364,"children":365},{"__ignoreMap":94},[366],{"type":44,"value":361},{"type":39,"tag":342,"props":368,"children":369},{},[],{"type":39,"tag":63,"props":371,"children":372},{},[373],{"type":44,"value":374},"Example (multi-layer system):",{"type":39,"tag":85,"props":376,"children":380},{"className":377,"code":378,"language":379,"meta":94,"style":94},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","# Layer 1: Workflow\necho \"=== Secrets available in workflow: ===\"\necho \"IDENTITY: ${IDENTITY:+SET}${IDENTITY:-UNSET}\"\n\n# Layer 2: Build script\necho \"=== Env vars in build script: ===\"\nenv | grep IDENTITY || echo \"IDENTITY not in environment\"\n\n# Layer 3: Signing script\necho \"=== Keychain state: ===\"\nsecurity list-keychains\nsecurity find-identity -v\n\n# Layer 4: Actual signing\ncodesign --sign \"$IDENTITY\" --verbose=4 \"$APP\"\n","bash",[381],{"type":39,"tag":92,"props":382,"children":383},{"__ignoreMap":94},[384,396,423,490,500,509,530,578,586,595,616,630,648,656,665],{"type":39,"tag":385,"props":386,"children":389},"span",{"class":387,"line":388},"line",1,[390],{"type":39,"tag":385,"props":391,"children":393},{"style":392},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[394],{"type":44,"value":395},"# Layer 1: Workflow\n",{"type":39,"tag":385,"props":397,"children":399},{"class":387,"line":398},2,[400,406,412,418],{"type":39,"tag":385,"props":401,"children":403},{"style":402},"--shiki-light:#6182B8;--shiki-default:#82AAFF;--shiki-dark:#82AAFF",[404],{"type":44,"value":405},"echo",{"type":39,"tag":385,"props":407,"children":409},{"style":408},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[410],{"type":44,"value":411}," \"",{"type":39,"tag":385,"props":413,"children":415},{"style":414},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[416],{"type":44,"value":417},"=== Secrets available in workflow: ===",{"type":39,"tag":385,"props":419,"children":420},{"style":408},[421],{"type":44,"value":422},"\"\n",{"type":39,"tag":385,"props":424,"children":426},{"class":387,"line":425},3,[427,431,435,440,445,451,456,461,466,471,475,480,485],{"type":39,"tag":385,"props":428,"children":429},{"style":402},[430],{"type":44,"value":405},{"type":39,"tag":385,"props":432,"children":433},{"style":408},[434],{"type":44,"value":411},{"type":39,"tag":385,"props":436,"children":437},{"style":414},[438],{"type":44,"value":439},"IDENTITY: ",{"type":39,"tag":385,"props":441,"children":442},{"style":408},[443],{"type":44,"value":444},"${",{"type":39,"tag":385,"props":446,"children":448},{"style":447},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[449],{"type":44,"value":450},"IDENTITY",{"type":39,"tag":385,"props":452,"children":453},{"style":408},[454],{"type":44,"value":455},":",{"type":39,"tag":385,"props":457,"children":458},{"style":414},[459],{"type":44,"value":460},"+",{"type":39,"tag":385,"props":462,"children":463},{"style":447},[464],{"type":44,"value":465},"SET",{"type":39,"tag":385,"props":467,"children":468},{"style":408},[469],{"type":44,"value":470},"}${",{"type":39,"tag":385,"props":472,"children":473},{"style":447},[474],{"type":44,"value":450},{"type":39,"tag":385,"props":476,"children":477},{"style":408},[478],{"type":44,"value":479},":-",{"type":39,"tag":385,"props":481,"children":482},{"style":447},[483],{"type":44,"value":484},"UNSET",{"type":39,"tag":385,"props":486,"children":487},{"style":408},[488],{"type":44,"value":489},"}\"\n",{"type":39,"tag":385,"props":491,"children":493},{"class":387,"line":492},4,[494],{"type":39,"tag":385,"props":495,"children":497},{"emptyLinePlaceholder":496},true,[498],{"type":44,"value":499},"\n",{"type":39,"tag":385,"props":501,"children":503},{"class":387,"line":502},5,[504],{"type":39,"tag":385,"props":505,"children":506},{"style":392},[507],{"type":44,"value":508},"# Layer 2: Build script\n",{"type":39,"tag":385,"props":510,"children":512},{"class":387,"line":511},6,[513,517,521,526],{"type":39,"tag":385,"props":514,"children":515},{"style":402},[516],{"type":44,"value":405},{"type":39,"tag":385,"props":518,"children":519},{"style":408},[520],{"type":44,"value":411},{"type":39,"tag":385,"props":522,"children":523},{"style":414},[524],{"type":44,"value":525},"=== Env vars in build script: ===",{"type":39,"tag":385,"props":527,"children":528},{"style":408},[529],{"type":44,"value":422},{"type":39,"tag":385,"props":531,"children":533},{"class":387,"line":532},7,[534,540,545,550,555,560,565,569,574],{"type":39,"tag":385,"props":535,"children":537},{"style":536},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[538],{"type":44,"value":539},"env",{"type":39,"tag":385,"props":541,"children":542},{"style":408},[543],{"type":44,"value":544}," |",{"type":39,"tag":385,"props":546,"children":547},{"style":536},[548],{"type":44,"value":549}," grep",{"type":39,"tag":385,"props":551,"children":552},{"style":414},[553],{"type":44,"value":554}," IDENTITY",{"type":39,"tag":385,"props":556,"children":557},{"style":408},[558],{"type":44,"value":559}," ||",{"type":39,"tag":385,"props":561,"children":562},{"style":402},[563],{"type":44,"value":564}," echo",{"type":39,"tag":385,"props":566,"children":567},{"style":408},[568],{"type":44,"value":411},{"type":39,"tag":385,"props":570,"children":571},{"style":414},[572],{"type":44,"value":573},"IDENTITY not in environment",{"type":39,"tag":385,"props":575,"children":576},{"style":408},[577],{"type":44,"value":422},{"type":39,"tag":385,"props":579,"children":581},{"class":387,"line":580},8,[582],{"type":39,"tag":385,"props":583,"children":584},{"emptyLinePlaceholder":496},[585],{"type":44,"value":499},{"type":39,"tag":385,"props":587,"children":589},{"class":387,"line":588},9,[590],{"type":39,"tag":385,"props":591,"children":592},{"style":392},[593],{"type":44,"value":594},"# Layer 3: Signing script\n",{"type":39,"tag":385,"props":596,"children":598},{"class":387,"line":597},10,[599,603,607,612],{"type":39,"tag":385,"props":600,"children":601},{"style":402},[602],{"type":44,"value":405},{"type":39,"tag":385,"props":604,"children":605},{"style":408},[606],{"type":44,"value":411},{"type":39,"tag":385,"props":608,"children":609},{"style":414},[610],{"type":44,"value":611},"=== Keychain state: ===",{"type":39,"tag":385,"props":613,"children":614},{"style":408},[615],{"type":44,"value":422},{"type":39,"tag":385,"props":617,"children":619},{"class":387,"line":618},11,[620,625],{"type":39,"tag":385,"props":621,"children":622},{"style":536},[623],{"type":44,"value":624},"security",{"type":39,"tag":385,"props":626,"children":627},{"style":414},[628],{"type":44,"value":629}," list-keychains\n",{"type":39,"tag":385,"props":631,"children":633},{"class":387,"line":632},12,[634,638,643],{"type":39,"tag":385,"props":635,"children":636},{"style":536},[637],{"type":44,"value":624},{"type":39,"tag":385,"props":639,"children":640},{"style":414},[641],{"type":44,"value":642}," find-identity",{"type":39,"tag":385,"props":644,"children":645},{"style":414},[646],{"type":44,"value":647}," -v\n",{"type":39,"tag":385,"props":649,"children":651},{"class":387,"line":650},13,[652],{"type":39,"tag":385,"props":653,"children":654},{"emptyLinePlaceholder":496},[655],{"type":44,"value":499},{"type":39,"tag":385,"props":657,"children":659},{"class":387,"line":658},14,[660],{"type":39,"tag":385,"props":661,"children":662},{"style":392},[663],{"type":44,"value":664},"# Layer 4: Actual signing\n",{"type":39,"tag":385,"props":666,"children":668},{"class":387,"line":667},15,[669,674,679,683,688,693,698,702,707],{"type":39,"tag":385,"props":670,"children":671},{"style":536},[672],{"type":44,"value":673},"codesign",{"type":39,"tag":385,"props":675,"children":676},{"style":414},[677],{"type":44,"value":678}," --sign",{"type":39,"tag":385,"props":680,"children":681},{"style":408},[682],{"type":44,"value":411},{"type":39,"tag":385,"props":684,"children":685},{"style":447},[686],{"type":44,"value":687},"$IDENTITY",{"type":39,"tag":385,"props":689,"children":690},{"style":408},[691],{"type":44,"value":692},"\"",{"type":39,"tag":385,"props":694,"children":695},{"style":414},[696],{"type":44,"value":697}," --verbose=4",{"type":39,"tag":385,"props":699,"children":700},{"style":408},[701],{"type":44,"value":411},{"type":39,"tag":385,"props":703,"children":704},{"style":447},[705],{"type":44,"value":706},"$APP",{"type":39,"tag":385,"props":708,"children":709},{"style":408},[710],{"type":44,"value":422},{"type":39,"tag":342,"props":712,"children":713},{},[],{"type":39,"tag":63,"props":715,"children":716},{},[717],{"type":44,"value":718},"This reveals:",{"type":44,"value":720}," Which layer fails (secrets → workflow ✓, workflow → build ✗)",{"type":39,"tag":118,"props":722,"children":723},{},[724,729,732,737,740,742,748,750,753,758],{"type":39,"tag":63,"props":725,"children":726},{},[727],{"type":44,"value":728},"Trace Data Flow",{"type":39,"tag":342,"props":730,"children":731},{},[],{"type":39,"tag":63,"props":733,"children":734},{},[735],{"type":44,"value":736},"WHEN error is deep in call stack:",{"type":39,"tag":342,"props":738,"children":739},{},[],{"type":44,"value":741},"See ",{"type":39,"tag":92,"props":743,"children":745},{"className":744},[],[746],{"type":44,"value":747},"root-cause-tracing.md",{"type":44,"value":749}," in this directory for the complete backward tracing technique.",{"type":39,"tag":342,"props":751,"children":752},{},[],{"type":39,"tag":63,"props":754,"children":755},{},[756],{"type":44,"value":757},"Quick version:",{"type":39,"tag":114,"props":759,"children":760},{},[761,766,771,776],{"type":39,"tag":118,"props":762,"children":763},{},[764],{"type":44,"value":765},"Where does bad value originate?",{"type":39,"tag":118,"props":767,"children":768},{},[769],{"type":44,"value":770},"What called this with bad value?",{"type":39,"tag":118,"props":772,"children":773},{},[774],{"type":44,"value":775},"Keep tracing up until you find the source",{"type":39,"tag":118,"props":777,"children":778},{},[779],{"type":44,"value":780},"Fix at source, not at symptom",{"type":39,"tag":222,"props":782,"children":784},{"id":783},"phase-2-pattern-analysis",[785],{"type":44,"value":786},"Phase 2: Pattern Analysis",{"type":39,"tag":54,"props":788,"children":789},{},[790],{"type":39,"tag":63,"props":791,"children":792},{},[793],{"type":44,"value":794},"Find the pattern before fixing:",{"type":39,"tag":237,"props":796,"children":797},{},[798,819,845,871],{"type":39,"tag":118,"props":799,"children":800},{},[801,806],{"type":39,"tag":63,"props":802,"children":803},{},[804],{"type":44,"value":805},"Find Working Examples",{"type":39,"tag":114,"props":807,"children":808},{},[809,814],{"type":39,"tag":118,"props":810,"children":811},{},[812],{"type":44,"value":813},"Locate similar working code in same codebase",{"type":39,"tag":118,"props":815,"children":816},{},[817],{"type":44,"value":818},"What works that's similar to what's broken?",{"type":39,"tag":118,"props":820,"children":821},{},[822,827],{"type":39,"tag":63,"props":823,"children":824},{},[825],{"type":44,"value":826},"Compare Against References",{"type":39,"tag":114,"props":828,"children":829},{},[830,835,840],{"type":39,"tag":118,"props":831,"children":832},{},[833],{"type":44,"value":834},"If implementing pattern, read reference implementation COMPLETELY",{"type":39,"tag":118,"props":836,"children":837},{},[838],{"type":44,"value":839},"Don't skim - read every line",{"type":39,"tag":118,"props":841,"children":842},{},[843],{"type":44,"value":844},"Understand the pattern fully before applying",{"type":39,"tag":118,"props":846,"children":847},{},[848,853],{"type":39,"tag":63,"props":849,"children":850},{},[851],{"type":44,"value":852},"Identify Differences",{"type":39,"tag":114,"props":854,"children":855},{},[856,861,866],{"type":39,"tag":118,"props":857,"children":858},{},[859],{"type":44,"value":860},"What's different between working and broken?",{"type":39,"tag":118,"props":862,"children":863},{},[864],{"type":44,"value":865},"List every difference, however small",{"type":39,"tag":118,"props":867,"children":868},{},[869],{"type":44,"value":870},"Don't assume \"that can't matter\"",{"type":39,"tag":118,"props":872,"children":873},{},[874,879],{"type":39,"tag":63,"props":875,"children":876},{},[877],{"type":44,"value":878},"Understand Dependencies",{"type":39,"tag":114,"props":880,"children":881},{},[882,887,892],{"type":39,"tag":118,"props":883,"children":884},{},[885],{"type":44,"value":886},"What other components does this need?",{"type":39,"tag":118,"props":888,"children":889},{},[890],{"type":44,"value":891},"What settings, config, environment?",{"type":39,"tag":118,"props":893,"children":894},{},[895],{"type":44,"value":896},"What assumptions does it make?",{"type":39,"tag":222,"props":898,"children":900},{"id":899},"phase-3-hypothesis-and-testing",[901],{"type":44,"value":902},"Phase 3: Hypothesis and Testing",{"type":39,"tag":54,"props":904,"children":905},{},[906],{"type":39,"tag":63,"props":907,"children":908},{},[909],{"type":44,"value":910},"Scientific method:",{"type":39,"tag":237,"props":912,"children":913},{},[914,940,966,992],{"type":39,"tag":118,"props":915,"children":916},{},[917,922],{"type":39,"tag":63,"props":918,"children":919},{},[920],{"type":44,"value":921},"Form Single Hypothesis",{"type":39,"tag":114,"props":923,"children":924},{},[925,930,935],{"type":39,"tag":118,"props":926,"children":927},{},[928],{"type":44,"value":929},"State clearly: \"I think X is the root cause because Y\"",{"type":39,"tag":118,"props":931,"children":932},{},[933],{"type":44,"value":934},"Write it down",{"type":39,"tag":118,"props":936,"children":937},{},[938],{"type":44,"value":939},"Be specific, not vague",{"type":39,"tag":118,"props":941,"children":942},{},[943,948],{"type":39,"tag":63,"props":944,"children":945},{},[946],{"type":44,"value":947},"Test Minimally",{"type":39,"tag":114,"props":949,"children":950},{},[951,956,961],{"type":39,"tag":118,"props":952,"children":953},{},[954],{"type":44,"value":955},"Make the SMALLEST possible change to test hypothesis",{"type":39,"tag":118,"props":957,"children":958},{},[959],{"type":44,"value":960},"One variable at a time",{"type":39,"tag":118,"props":962,"children":963},{},[964],{"type":44,"value":965},"Don't fix multiple things at once",{"type":39,"tag":118,"props":967,"children":968},{},[969,974],{"type":39,"tag":63,"props":970,"children":971},{},[972],{"type":44,"value":973},"Verify Before Continuing",{"type":39,"tag":114,"props":975,"children":976},{},[977,982,987],{"type":39,"tag":118,"props":978,"children":979},{},[980],{"type":44,"value":981},"Did it work? Yes → Phase 4",{"type":39,"tag":118,"props":983,"children":984},{},[985],{"type":44,"value":986},"Didn't work? Form NEW hypothesis",{"type":39,"tag":118,"props":988,"children":989},{},[990],{"type":44,"value":991},"DON'T add more fixes on top",{"type":39,"tag":118,"props":993,"children":994},{},[995,1000],{"type":39,"tag":63,"props":996,"children":997},{},[998],{"type":44,"value":999},"When You Don't Know",{"type":39,"tag":114,"props":1001,"children":1002},{},[1003,1008,1013,1018],{"type":39,"tag":118,"props":1004,"children":1005},{},[1006],{"type":44,"value":1007},"Say \"I don't understand X\"",{"type":39,"tag":118,"props":1009,"children":1010},{},[1011],{"type":44,"value":1012},"Don't pretend to know",{"type":39,"tag":118,"props":1014,"children":1015},{},[1016],{"type":44,"value":1017},"Ask for help",{"type":39,"tag":118,"props":1019,"children":1020},{},[1021],{"type":44,"value":1022},"Research more",{"type":39,"tag":222,"props":1024,"children":1026},{"id":1025},"phase-4-implementation",[1027],{"type":44,"value":1028},"Phase 4: Implementation",{"type":39,"tag":54,"props":1030,"children":1031},{},[1032],{"type":39,"tag":63,"props":1033,"children":1034},{},[1035],{"type":44,"value":1036},"Fix the root cause, not the symptom:",{"type":39,"tag":237,"props":1038,"children":1039},{},[1040,1084,1115,1141,1180],{"type":39,"tag":118,"props":1041,"children":1042},{},[1043,1048],{"type":39,"tag":63,"props":1044,"children":1045},{},[1046],{"type":44,"value":1047},"Create Failing Test Case",{"type":39,"tag":114,"props":1049,"children":1050},{},[1051,1056,1061,1066,1071],{"type":39,"tag":118,"props":1052,"children":1053},{},[1054],{"type":44,"value":1055},"Simplest possible reproduction",{"type":39,"tag":118,"props":1057,"children":1058},{},[1059],{"type":44,"value":1060},"Automated test if possible",{"type":39,"tag":118,"props":1062,"children":1063},{},[1064],{"type":44,"value":1065},"One-off test script if no framework",{"type":39,"tag":118,"props":1067,"children":1068},{},[1069],{"type":44,"value":1070},"MUST have before fixing",{"type":39,"tag":118,"props":1072,"children":1073},{},[1074,1076,1082],{"type":44,"value":1075},"Use the ",{"type":39,"tag":92,"props":1077,"children":1079},{"className":1078},[],[1080],{"type":44,"value":1081},"superpowers:test-driven-development",{"type":44,"value":1083}," skill for writing proper failing tests",{"type":39,"tag":118,"props":1085,"children":1086},{},[1087,1092],{"type":39,"tag":63,"props":1088,"children":1089},{},[1090],{"type":44,"value":1091},"Implement Single Fix",{"type":39,"tag":114,"props":1093,"children":1094},{},[1095,1100,1105,1110],{"type":39,"tag":118,"props":1096,"children":1097},{},[1098],{"type":44,"value":1099},"Address the root cause identified",{"type":39,"tag":118,"props":1101,"children":1102},{},[1103],{"type":44,"value":1104},"ONE change at a time",{"type":39,"tag":118,"props":1106,"children":1107},{},[1108],{"type":44,"value":1109},"No \"while I'm here\" improvements",{"type":39,"tag":118,"props":1111,"children":1112},{},[1113],{"type":44,"value":1114},"No bundled refactoring",{"type":39,"tag":118,"props":1116,"children":1117},{},[1118,1123],{"type":39,"tag":63,"props":1119,"children":1120},{},[1121],{"type":44,"value":1122},"Verify Fix",{"type":39,"tag":114,"props":1124,"children":1125},{},[1126,1131,1136],{"type":39,"tag":118,"props":1127,"children":1128},{},[1129],{"type":44,"value":1130},"Test passes now?",{"type":39,"tag":118,"props":1132,"children":1133},{},[1134],{"type":44,"value":1135},"No other tests broken?",{"type":39,"tag":118,"props":1137,"children":1138},{},[1139],{"type":44,"value":1140},"Issue actually resolved?",{"type":39,"tag":118,"props":1142,"children":1143},{},[1144,1149],{"type":39,"tag":63,"props":1145,"children":1146},{},[1147],{"type":44,"value":1148},"If Fix Doesn't Work",{"type":39,"tag":114,"props":1150,"children":1151},{},[1152,1157,1162,1167,1175],{"type":39,"tag":118,"props":1153,"children":1154},{},[1155],{"type":44,"value":1156},"STOP",{"type":39,"tag":118,"props":1158,"children":1159},{},[1160],{"type":44,"value":1161},"Count: How many fixes have you tried?",{"type":39,"tag":118,"props":1163,"children":1164},{},[1165],{"type":44,"value":1166},"If \u003C 3: Return to Phase 1, re-analyze with new information",{"type":39,"tag":118,"props":1168,"children":1169},{},[1170],{"type":39,"tag":63,"props":1171,"children":1172},{},[1173],{"type":44,"value":1174},"If ≥ 3: STOP and question the architecture (step 5 below)",{"type":39,"tag":118,"props":1176,"children":1177},{},[1178],{"type":44,"value":1179},"DON'T attempt Fix #4 without architectural discussion",{"type":39,"tag":118,"props":1181,"children":1182},{},[1183,1188,1191,1196,1214,1217,1222,1240,1243,1248,1251],{"type":39,"tag":63,"props":1184,"children":1185},{},[1186],{"type":44,"value":1187},"If 3+ Fixes Failed: Question Architecture",{"type":39,"tag":342,"props":1189,"children":1190},{},[],{"type":39,"tag":63,"props":1192,"children":1193},{},[1194],{"type":44,"value":1195},"Pattern indicating architectural problem:",{"type":39,"tag":114,"props":1197,"children":1198},{},[1199,1204,1209],{"type":39,"tag":118,"props":1200,"children":1201},{},[1202],{"type":44,"value":1203},"Each fix reveals new shared state\u002Fcoupling\u002Fproblem in different place",{"type":39,"tag":118,"props":1205,"children":1206},{},[1207],{"type":44,"value":1208},"Fixes require \"massive refactoring\" to implement",{"type":39,"tag":118,"props":1210,"children":1211},{},[1212],{"type":44,"value":1213},"Each fix creates new symptoms elsewhere",{"type":39,"tag":342,"props":1215,"children":1216},{},[],{"type":39,"tag":63,"props":1218,"children":1219},{},[1220],{"type":44,"value":1221},"STOP and question fundamentals:",{"type":39,"tag":114,"props":1223,"children":1224},{},[1225,1230,1235],{"type":39,"tag":118,"props":1226,"children":1227},{},[1228],{"type":44,"value":1229},"Is this pattern fundamentally sound?",{"type":39,"tag":118,"props":1231,"children":1232},{},[1233],{"type":44,"value":1234},"Are we \"sticking with it through sheer inertia\"?",{"type":39,"tag":118,"props":1236,"children":1237},{},[1238],{"type":44,"value":1239},"Should we refactor architecture vs. continue fixing symptoms?",{"type":39,"tag":342,"props":1241,"children":1242},{},[],{"type":39,"tag":63,"props":1244,"children":1245},{},[1246],{"type":44,"value":1247},"Discuss with your human partner before attempting more fixes",{"type":39,"tag":342,"props":1249,"children":1250},{},[],{"type":44,"value":1252},"This is NOT a failed hypothesis - this is a wrong architecture.",{"type":39,"tag":47,"props":1254,"children":1256},{"id":1255},"red-flags-stop-and-follow-process",[1257],{"type":44,"value":1258},"Red Flags - STOP and Follow Process",{"type":39,"tag":54,"props":1260,"children":1261},{},[1262],{"type":44,"value":1263},"If you catch yourself thinking:",{"type":39,"tag":114,"props":1265,"children":1266},{},[1267,1272,1277,1282,1287,1292,1297,1302,1313,1318,1326],{"type":39,"tag":118,"props":1268,"children":1269},{},[1270],{"type":44,"value":1271},"\"Quick fix for now, investigate later\"",{"type":39,"tag":118,"props":1273,"children":1274},{},[1275],{"type":44,"value":1276},"\"Just try changing X and see if it works\"",{"type":39,"tag":118,"props":1278,"children":1279},{},[1280],{"type":44,"value":1281},"\"Add multiple changes, run tests\"",{"type":39,"tag":118,"props":1283,"children":1284},{},[1285],{"type":44,"value":1286},"\"Skip the test, I'll manually verify\"",{"type":39,"tag":118,"props":1288,"children":1289},{},[1290],{"type":44,"value":1291},"\"It's probably X, let me fix that\"",{"type":39,"tag":118,"props":1293,"children":1294},{},[1295],{"type":44,"value":1296},"\"I don't fully understand but this might work\"",{"type":39,"tag":118,"props":1298,"children":1299},{},[1300],{"type":44,"value":1301},"\"Pattern says X but I'll adapt it differently\"",{"type":39,"tag":118,"props":1303,"children":1304},{},[1305,1307,1312],{"type":44,"value":1306},"\"Here are the main problems: ",{"type":39,"tag":385,"props":1308,"children":1309},{},[1310],{"type":44,"value":1311},"lists fixes without investigation",{"type":44,"value":692},{"type":39,"tag":118,"props":1314,"children":1315},{},[1316],{"type":44,"value":1317},"Proposing solutions before tracing data flow",{"type":39,"tag":118,"props":1319,"children":1320},{},[1321],{"type":39,"tag":63,"props":1322,"children":1323},{},[1324],{"type":44,"value":1325},"\"One more fix attempt\" (when already tried 2+)",{"type":39,"tag":118,"props":1327,"children":1328},{},[1329],{"type":39,"tag":63,"props":1330,"children":1331},{},[1332],{"type":44,"value":1333},"Each fix reveals new problem in different place",{"type":39,"tag":54,"props":1335,"children":1336},{},[1337],{"type":39,"tag":63,"props":1338,"children":1339},{},[1340],{"type":44,"value":1341},"ALL of these mean: STOP. Return to Phase 1.",{"type":39,"tag":54,"props":1343,"children":1344},{},[1345,1350],{"type":39,"tag":63,"props":1346,"children":1347},{},[1348],{"type":44,"value":1349},"If 3+ fixes failed:",{"type":44,"value":1351}," Question the architecture (see Phase 4.5)",{"type":39,"tag":47,"props":1353,"children":1355},{"id":1354},"your-human-partners-signals-youre-doing-it-wrong",[1356],{"type":44,"value":1357},"your human partner's Signals You're Doing It Wrong",{"type":39,"tag":54,"props":1359,"children":1360},{},[1361],{"type":39,"tag":63,"props":1362,"children":1363},{},[1364],{"type":44,"value":1365},"Watch for these redirections:",{"type":39,"tag":114,"props":1367,"children":1368},{},[1369,1374,1379,1384,1389],{"type":39,"tag":118,"props":1370,"children":1371},{},[1372],{"type":44,"value":1373},"\"Is that not happening?\" - You assumed without verifying",{"type":39,"tag":118,"props":1375,"children":1376},{},[1377],{"type":44,"value":1378},"\"Will it show us...?\" - You should have added evidence gathering",{"type":39,"tag":118,"props":1380,"children":1381},{},[1382],{"type":44,"value":1383},"\"Stop guessing\" - You're proposing fixes without understanding",{"type":39,"tag":118,"props":1385,"children":1386},{},[1387],{"type":44,"value":1388},"\"Ultrathink this\" - Question fundamentals, not just symptoms",{"type":39,"tag":118,"props":1390,"children":1391},{},[1392],{"type":44,"value":1393},"\"We're stuck?\" (frustrated) - Your approach isn't working",{"type":39,"tag":54,"props":1395,"children":1396},{},[1397,1402],{"type":39,"tag":63,"props":1398,"children":1399},{},[1400],{"type":44,"value":1401},"When you see these:",{"type":44,"value":1403}," STOP. Return to Phase 1.",{"type":39,"tag":47,"props":1405,"children":1407},{"id":1406},"common-rationalizations",[1408],{"type":44,"value":1409},"Common Rationalizations",{"type":39,"tag":1411,"props":1412,"children":1413},"table",{},[1414,1433],{"type":39,"tag":1415,"props":1416,"children":1417},"thead",{},[1418],{"type":39,"tag":1419,"props":1420,"children":1421},"tr",{},[1422,1428],{"type":39,"tag":1423,"props":1424,"children":1425},"th",{},[1426],{"type":44,"value":1427},"Excuse",{"type":39,"tag":1423,"props":1429,"children":1430},{},[1431],{"type":44,"value":1432},"Reality",{"type":39,"tag":1434,"props":1435,"children":1436},"tbody",{},[1437,1451,1464,1477,1490,1503,1516,1529],{"type":39,"tag":1419,"props":1438,"children":1439},{},[1440,1446],{"type":39,"tag":1441,"props":1442,"children":1443},"td",{},[1444],{"type":44,"value":1445},"\"Issue is simple, don't need process\"",{"type":39,"tag":1441,"props":1447,"children":1448},{},[1449],{"type":44,"value":1450},"Simple issues have root causes too. Process is fast for simple bugs.",{"type":39,"tag":1419,"props":1452,"children":1453},{},[1454,1459],{"type":39,"tag":1441,"props":1455,"children":1456},{},[1457],{"type":44,"value":1458},"\"Emergency, no time for process\"",{"type":39,"tag":1441,"props":1460,"children":1461},{},[1462],{"type":44,"value":1463},"Systematic debugging is FASTER than guess-and-check thrashing.",{"type":39,"tag":1419,"props":1465,"children":1466},{},[1467,1472],{"type":39,"tag":1441,"props":1468,"children":1469},{},[1470],{"type":44,"value":1471},"\"Just try this first, then investigate\"",{"type":39,"tag":1441,"props":1473,"children":1474},{},[1475],{"type":44,"value":1476},"First fix sets the pattern. Do it right from the start.",{"type":39,"tag":1419,"props":1478,"children":1479},{},[1480,1485],{"type":39,"tag":1441,"props":1481,"children":1482},{},[1483],{"type":44,"value":1484},"\"I'll write test after confirming fix works\"",{"type":39,"tag":1441,"props":1486,"children":1487},{},[1488],{"type":44,"value":1489},"Untested fixes don't stick. Test first proves it.",{"type":39,"tag":1419,"props":1491,"children":1492},{},[1493,1498],{"type":39,"tag":1441,"props":1494,"children":1495},{},[1496],{"type":44,"value":1497},"\"Multiple fixes at once saves time\"",{"type":39,"tag":1441,"props":1499,"children":1500},{},[1501],{"type":44,"value":1502},"Can't isolate what worked. Causes new bugs.",{"type":39,"tag":1419,"props":1504,"children":1505},{},[1506,1511],{"type":39,"tag":1441,"props":1507,"children":1508},{},[1509],{"type":44,"value":1510},"\"Reference too long, I'll adapt the pattern\"",{"type":39,"tag":1441,"props":1512,"children":1513},{},[1514],{"type":44,"value":1515},"Partial understanding guarantees bugs. Read it completely.",{"type":39,"tag":1419,"props":1517,"children":1518},{},[1519,1524],{"type":39,"tag":1441,"props":1520,"children":1521},{},[1522],{"type":44,"value":1523},"\"I see the problem, let me fix it\"",{"type":39,"tag":1441,"props":1525,"children":1526},{},[1527],{"type":44,"value":1528},"Seeing symptoms ≠ understanding root cause.",{"type":39,"tag":1419,"props":1530,"children":1531},{},[1532,1537],{"type":39,"tag":1441,"props":1533,"children":1534},{},[1535],{"type":44,"value":1536},"\"One more fix attempt\" (after 2+ failures)",{"type":39,"tag":1441,"props":1538,"children":1539},{},[1540],{"type":44,"value":1541},"3+ failures = architectural problem. Question pattern, don't fix again.",{"type":39,"tag":47,"props":1543,"children":1545},{"id":1544},"quick-reference",[1546],{"type":44,"value":1547},"Quick Reference",{"type":39,"tag":1411,"props":1549,"children":1550},{},[1551,1572],{"type":39,"tag":1415,"props":1552,"children":1553},{},[1554],{"type":39,"tag":1419,"props":1555,"children":1556},{},[1557,1562,1567],{"type":39,"tag":1423,"props":1558,"children":1559},{},[1560],{"type":44,"value":1561},"Phase",{"type":39,"tag":1423,"props":1563,"children":1564},{},[1565],{"type":44,"value":1566},"Key Activities",{"type":39,"tag":1423,"props":1568,"children":1569},{},[1570],{"type":44,"value":1571},"Success Criteria",{"type":39,"tag":1434,"props":1573,"children":1574},{},[1575,1596,1617,1638],{"type":39,"tag":1419,"props":1576,"children":1577},{},[1578,1586,1591],{"type":39,"tag":1441,"props":1579,"children":1580},{},[1581],{"type":39,"tag":63,"props":1582,"children":1583},{},[1584],{"type":44,"value":1585},"1. Root Cause",{"type":39,"tag":1441,"props":1587,"children":1588},{},[1589],{"type":44,"value":1590},"Read errors, reproduce, check changes, gather evidence",{"type":39,"tag":1441,"props":1592,"children":1593},{},[1594],{"type":44,"value":1595},"Understand WHAT and WHY",{"type":39,"tag":1419,"props":1597,"children":1598},{},[1599,1607,1612],{"type":39,"tag":1441,"props":1600,"children":1601},{},[1602],{"type":39,"tag":63,"props":1603,"children":1604},{},[1605],{"type":44,"value":1606},"2. Pattern",{"type":39,"tag":1441,"props":1608,"children":1609},{},[1610],{"type":44,"value":1611},"Find working examples, compare",{"type":39,"tag":1441,"props":1613,"children":1614},{},[1615],{"type":44,"value":1616},"Identify differences",{"type":39,"tag":1419,"props":1618,"children":1619},{},[1620,1628,1633],{"type":39,"tag":1441,"props":1621,"children":1622},{},[1623],{"type":39,"tag":63,"props":1624,"children":1625},{},[1626],{"type":44,"value":1627},"3. Hypothesis",{"type":39,"tag":1441,"props":1629,"children":1630},{},[1631],{"type":44,"value":1632},"Form theory, test minimally",{"type":39,"tag":1441,"props":1634,"children":1635},{},[1636],{"type":44,"value":1637},"Confirmed or new hypothesis",{"type":39,"tag":1419,"props":1639,"children":1640},{},[1641,1649,1654],{"type":39,"tag":1441,"props":1642,"children":1643},{},[1644],{"type":39,"tag":63,"props":1645,"children":1646},{},[1647],{"type":44,"value":1648},"4. Implementation",{"type":39,"tag":1441,"props":1650,"children":1651},{},[1652],{"type":44,"value":1653},"Create test, fix, verify",{"type":39,"tag":1441,"props":1655,"children":1656},{},[1657],{"type":44,"value":1658},"Bug resolved, tests pass",{"type":39,"tag":47,"props":1660,"children":1662},{"id":1661},"when-process-reveals-no-root-cause",[1663],{"type":44,"value":1664},"When Process Reveals \"No Root Cause\"",{"type":39,"tag":54,"props":1666,"children":1667},{},[1668],{"type":44,"value":1669},"If systematic investigation reveals issue is truly environmental, timing-dependent, or external:",{"type":39,"tag":237,"props":1671,"children":1672},{},[1673,1678,1683,1688],{"type":39,"tag":118,"props":1674,"children":1675},{},[1676],{"type":44,"value":1677},"You've completed the process",{"type":39,"tag":118,"props":1679,"children":1680},{},[1681],{"type":44,"value":1682},"Document what you investigated",{"type":39,"tag":118,"props":1684,"children":1685},{},[1686],{"type":44,"value":1687},"Implement appropriate handling (retry, timeout, error message)",{"type":39,"tag":118,"props":1689,"children":1690},{},[1691],{"type":44,"value":1692},"Add monitoring\u002Flogging for future investigation",{"type":39,"tag":54,"props":1694,"children":1695},{},[1696,1701],{"type":39,"tag":63,"props":1697,"children":1698},{},[1699],{"type":44,"value":1700},"But:",{"type":44,"value":1702}," 95% of \"no root cause\" cases are incomplete investigation.",{"type":39,"tag":47,"props":1704,"children":1706},{"id":1705},"supporting-techniques",[1707],{"type":44,"value":1708},"Supporting Techniques",{"type":39,"tag":54,"props":1710,"children":1711},{},[1712],{"type":44,"value":1713},"These techniques are part of systematic debugging and available in this directory:",{"type":39,"tag":114,"props":1715,"children":1716},{},[1717,1730,1744],{"type":39,"tag":118,"props":1718,"children":1719},{},[1720,1728],{"type":39,"tag":63,"props":1721,"children":1722},{},[1723],{"type":39,"tag":92,"props":1724,"children":1726},{"className":1725},[],[1727],{"type":44,"value":747},{"type":44,"value":1729}," - Trace bugs backward through call stack to find original trigger",{"type":39,"tag":118,"props":1731,"children":1732},{},[1733,1742],{"type":39,"tag":63,"props":1734,"children":1735},{},[1736],{"type":39,"tag":92,"props":1737,"children":1739},{"className":1738},[],[1740],{"type":44,"value":1741},"defense-in-depth.md",{"type":44,"value":1743}," - Add validation at multiple layers after finding root cause",{"type":39,"tag":118,"props":1745,"children":1746},{},[1747,1756],{"type":39,"tag":63,"props":1748,"children":1749},{},[1750],{"type":39,"tag":92,"props":1751,"children":1753},{"className":1752},[],[1754],{"type":44,"value":1755},"condition-based-waiting.md",{"type":44,"value":1757}," - Replace arbitrary timeouts with condition polling",{"type":39,"tag":54,"props":1759,"children":1760},{},[1761],{"type":39,"tag":63,"props":1762,"children":1763},{},[1764],{"type":44,"value":1765},"Related skills:",{"type":39,"tag":114,"props":1767,"children":1768},{},[1769,1778],{"type":39,"tag":118,"props":1770,"children":1771},{},[1772,1776],{"type":39,"tag":63,"props":1773,"children":1774},{},[1775],{"type":44,"value":1081},{"type":44,"value":1777}," - For creating failing test case (Phase 4, Step 1)",{"type":39,"tag":118,"props":1779,"children":1780},{},[1781,1786],{"type":39,"tag":63,"props":1782,"children":1783},{},[1784],{"type":44,"value":1785},"superpowers:verification-before-completion",{"type":44,"value":1787}," - Verify fix worked before claiming success",{"type":39,"tag":47,"props":1789,"children":1791},{"id":1790},"real-world-impact",[1792],{"type":44,"value":1793},"Real-World Impact",{"type":39,"tag":54,"props":1795,"children":1796},{},[1797],{"type":44,"value":1798},"From debugging sessions:",{"type":39,"tag":114,"props":1800,"children":1801},{},[1802,1807,1812,1817],{"type":39,"tag":118,"props":1803,"children":1804},{},[1805],{"type":44,"value":1806},"Systematic approach: 15-30 minutes to fix",{"type":39,"tag":118,"props":1808,"children":1809},{},[1810],{"type":44,"value":1811},"Random fixes approach: 2-3 hours of thrashing",{"type":39,"tag":118,"props":1813,"children":1814},{},[1815],{"type":44,"value":1816},"First-time fix rate: 95% vs 40%",{"type":39,"tag":118,"props":1818,"children":1819},{},[1820],{"type":44,"value":1821},"New bugs introduced: Near zero vs common",{"type":39,"tag":1823,"props":1824,"children":1825},"style",{},[1826],{"type":44,"value":1827},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":1829,"total":1949},[1830,1849,1863,1875,1895,1917,1937],{"slug":1831,"name":1831,"fn":1832,"description":1833,"org":1834,"tags":1835,"stars":22,"repoUrl":23,"updatedAt":1848},"accessibility-and-inclusive-visualization","make data visualizations accessible","Make data visualizations accessible and inclusive. Use when the user needs chart or diagram accessibility guidance, text alternatives for complex visuals, color and contrast review, keyboard support, reduced-motion behavior for animation or parallax, or an accessibility QA workflow for exported figures, UML-like diagrams, and dashboards.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1836,1839,1842,1845],{"name":1837,"slug":1838,"type":15},"Accessibility","accessibility",{"name":1840,"slug":1841,"type":15},"Charts","charts",{"name":1843,"slug":1844,"type":15},"Data Visualization","data-visualization",{"name":1846,"slug":1847,"type":15},"Design","design","2026-06-30T19:00:57.102",{"slug":1850,"name":1850,"fn":1851,"description":1852,"org":1853,"tags":1854,"stars":22,"repoUrl":23,"updatedAt":1862},"agent-browser","automate browser interactions for agents","Browser automation CLI for AI agents. Use when the user needs to interact with websites, verify dev server output, test web apps, navigate pages, fill forms, click buttons, take screenshots, extract data, or automate any browser task. Also triggers when a dev server starts so you can verify it visually.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1855,1858,1861],{"name":1856,"slug":1857,"type":15},"Agents","agents",{"name":1859,"slug":1860,"type":15},"Browser Automation","browser-automation",{"name":17,"slug":18,"type":15},"2026-04-06T18:41:03.44016",{"slug":1864,"name":1864,"fn":1865,"description":1866,"org":1867,"tags":1868,"stars":22,"repoUrl":23,"updatedAt":1874},"agent-browser-verify","verify dev server output with automated browser","Automated browser verification for dev servers. Triggers when a dev server starts to run a visual gut-check with agent-browser — verifies the page loads, checks for console errors, validates key UI elements, and reports pass\u002Ffail before continuing.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1869,1870,1873],{"name":1859,"slug":1860,"type":15},{"name":1871,"slug":1872,"type":15},"Local Development","local-development",{"name":17,"slug":18,"type":15},"2026-04-06T18:41:17.526867",{"slug":1876,"name":1876,"fn":1877,"description":1878,"org":1879,"tags":1880,"stars":22,"repoUrl":23,"updatedAt":1894},"agents-sdk","build AI agents on Cloudflare Workers","Build AI agents on Cloudflare Workers using the Agents SDK. Load when creating stateful agents, durable workflows, real-time WebSocket apps, scheduled tasks, MCP servers, or chat applications. Covers Agent class, state management, callable RPC, Workflows integration, and React hooks. Biases towards retrieval from Cloudflare docs over pre-trained knowledge.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1881,1882,1885,1888,1891],{"name":1856,"slug":1857,"type":15},{"name":1883,"slug":1884,"type":15},"Cloudflare Workers","cloudflare-workers",{"name":1886,"slug":1887,"type":15},"SDK","sdk",{"name":1889,"slug":1890,"type":15},"Serverless","serverless",{"name":1892,"slug":1893,"type":15},"WebSockets","websockets","2026-04-06T18:39:51.717063",{"slug":1896,"name":1896,"fn":1897,"description":1898,"org":1899,"tags":1900,"stars":22,"repoUrl":23,"updatedAt":1916},"ai-elements","build chat UIs with AI Elements","AI Elements component library guidance — pre-built React components for AI interfaces built on shadcn\u002Fui. Use when building chat UIs, message displays, tool call rendering, streaming responses, reasoning panels, or any AI-native interface with the AI SDK.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1901,1904,1907,1910,1913],{"name":1902,"slug":1903,"type":15},"Frontend","frontend",{"name":1905,"slug":1906,"type":15},"React","react",{"name":1908,"slug":1909,"type":15},"shadcn\u002Fui","shadcn-ui",{"name":1911,"slug":1912,"type":15},"UI Components","ui-components",{"name":1914,"slug":1915,"type":15},"Vercel","vercel","2026-04-06T18:40:59.619419",{"slug":1918,"name":1918,"fn":1919,"description":1920,"org":1921,"tags":1922,"stars":22,"repoUrl":23,"updatedAt":1936},"ai-gateway","configure Vercel AI Gateway","Vercel AI Gateway expert guidance. Use when configuring model routing, provider failover, cost tracking, or managing multiple AI providers through a unified API.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1923,1926,1929,1932,1935],{"name":1924,"slug":1925,"type":15},"AI Infrastructure","ai-infrastructure",{"name":1927,"slug":1928,"type":15},"Cost Optimization","cost-optimization",{"name":1930,"slug":1931,"type":15},"LLM","llm",{"name":1933,"slug":1934,"type":15},"Performance","performance",{"name":1914,"slug":1915,"type":15},"2026-04-06T18:40:44.377464",{"slug":1938,"name":1938,"fn":1939,"description":1940,"org":1941,"tags":1942,"stars":22,"repoUrl":23,"updatedAt":1948},"ai-generation-persistence","implement persistence patterns for AI generations","AI generation persistence patterns — unique IDs, addressable URLs, database storage, and cost tracking for every LLM generation",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1943,1944,1947],{"name":1927,"slug":1928,"type":15},{"name":1945,"slug":1946,"type":15},"Database","database",{"name":1930,"slug":1931,"type":15},"2026-04-06T18:41:08.513425",600,{"items":1951,"total":2148},[1952,1973,1996,2013,2029,2046,2065,2077,2091,2105,2117,2132],{"slug":1953,"name":1953,"fn":1954,"description":1955,"org":1956,"tags":1957,"stars":1970,"repoUrl":1971,"updatedAt":1972},"prior-auth-packet-builder","build healthcare prior authorization packets","Build a concise prior authorization packet from local case files and payer policy docs.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1958,1961,1964,1967],{"name":1959,"slug":1960,"type":15},"Documents","documents",{"name":1962,"slug":1963,"type":15},"Healthcare","healthcare",{"name":1965,"slug":1966,"type":15},"Insurance","insurance",{"name":1968,"slug":1969,"type":15},"Regulatory Compliance","regulatory-compliance",28169,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fopenai-agents-python","2026-04-16T05:11:39.180399",{"slug":1974,"name":1974,"fn":1975,"description":1976,"org":1977,"tags":1978,"stars":1993,"repoUrl":1994,"updatedAt":1995},"aspnet-core","build ASP.NET Core web applications","Build, review, refactor, or architect ASP.NET Core web applications using current official guidance for .NET web development. Use when working on Blazor Web Apps, Razor Pages, MVC, Minimal APIs, controller-based Web APIs, SignalR, gRPC, middleware, dependency injection, configuration, authentication, authorization, testing, performance, deployment, or ASP.NET Core upgrades.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[1979,1982,1984,1987,1990],{"name":1980,"slug":1981,"type":15},".NET","dotnet",{"name":1983,"slug":1974,"type":15},"ASP.NET Core",{"name":1985,"slug":1986,"type":15},"Blazor","blazor",{"name":1988,"slug":1989,"type":15},"C#","csharp",{"name":1991,"slug":1992,"type":15},"Web Development","web-development",23787,"https:\u002F\u002Fgithub.com\u002Fopenai\u002Fskills","2026-04-12T05:07:02.819491",{"slug":1997,"name":1997,"fn":1998,"description":1999,"org":2000,"tags":2001,"stars":1993,"repoUrl":1994,"updatedAt":2012},"chatgpt-apps","build ChatGPT Apps SDK applications","Build, scaffold, refactor, and troubleshoot ChatGPT Apps SDK applications that combine an MCP server and widget UI. Use when Codex needs to design tools, register UI resources, wire the MCP Apps bridge or ChatGPT compatibility APIs, apply Apps SDK metadata or CSP or domain settings, or produce a docs-aligned project scaffold. Prefer a docs-first workflow by invoking the openai-docs skill or OpenAI developer docs MCP tools before generating code.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2002,2005,2008,2011],{"name":2003,"slug":2004,"type":15},"Apps SDK","apps-sdk",{"name":2006,"slug":2007,"type":15},"ChatGPT","chatgpt",{"name":2009,"slug":2010,"type":15},"MCP","mcp",{"name":9,"slug":8,"type":15},"2026-04-12T05:07:05.468097",{"slug":2014,"name":2014,"fn":2015,"description":2016,"org":2017,"tags":2018,"stars":1993,"repoUrl":1994,"updatedAt":2028},"cli-creator","build CLIs from API docs","Build a composable CLI for Codex from API docs, an OpenAPI spec, existing curl examples, an SDK, a web app, an admin tool, or a local script. Use when the user wants Codex to create a command-line tool that can run from any repo, expose composable read\u002Fwrite commands, return stable JSON, manage auth, and pair with a companion skill.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2019,2022,2025],{"name":2020,"slug":2021,"type":15},"API Development","api-development",{"name":2023,"slug":2024,"type":15},"CLI","cli",{"name":2026,"slug":2027,"type":15},"Codex","codex","2026-04-12T05:07:04.132762",{"slug":2030,"name":2030,"fn":2031,"description":2032,"org":2033,"tags":2034,"stars":1993,"repoUrl":1994,"updatedAt":2045},"cloudflare-deploy","deploy projects to Cloudflare","Deploy applications and infrastructure to Cloudflare using Workers, Pages, and related platform services. Use when the user asks to deploy, host, publish, or set up a project on Cloudflare.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2035,2038,2041,2042],{"name":2036,"slug":2037,"type":15},"Cloudflare","cloudflare",{"name":2039,"slug":2040,"type":15},"Cloudflare Pages","cloudflare-pages",{"name":1883,"slug":1884,"type":15},{"name":2043,"slug":2044,"type":15},"Deployment","deployment","2026-04-12T05:07:14.275118",{"slug":2047,"name":2047,"fn":2048,"description":2049,"org":2050,"tags":2051,"stars":1993,"repoUrl":1994,"updatedAt":2064},"define-goal","define and set measurable project goals","Help the user define a concrete, measurable goal before starting work, especially when they ask to use the goal tool, create a goal, set an objective, clarify success criteria, or turn a fuzzy intention into a quantitative outcome. Use this skill for goal creation and goal refinement only; it does not manage durable snapshots, decision logs, or long-running execution artifacts.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2052,2055,2058,2061],{"name":2053,"slug":2054,"type":15},"Productivity","productivity",{"name":2056,"slug":2057,"type":15},"Project Management","project-management",{"name":2059,"slug":2060,"type":15},"Strategy","strategy",{"name":2062,"slug":2063,"type":15},"Task Management","task-management","2026-05-23T06:17:16.870838",{"slug":2066,"name":2066,"fn":2067,"description":2068,"org":2069,"tags":2070,"stars":1993,"repoUrl":1994,"updatedAt":2076},"figma","translate Figma designs into code","Use the Figma MCP server to fetch design context, screenshots, variables, and assets from Figma, and to translate Figma nodes into production code. Trigger when a task involves Figma URLs, node IDs, design-to-code implementation, or Figma MCP setup and troubleshooting.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2071,2072,2074,2075],{"name":1846,"slug":1847,"type":15},{"name":2073,"slug":2066,"type":15},"Figma",{"name":1902,"slug":1903,"type":15},{"name":2009,"slug":2010,"type":15},"2026-04-12T05:06:47.939943",{"slug":2078,"name":2078,"fn":2079,"description":2080,"org":2081,"tags":2082,"stars":1993,"repoUrl":1994,"updatedAt":2090},"figma-code-connect-components","connect Figma designs to code components","Connects Figma design components to code components using Code Connect mapping tools. Use when user says \"code connect\", \"connect this component to code\", \"map this component\", \"link component to code\", \"create code connect mapping\", or wants to establish mappings between Figma designs and code implementations. For canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2083,2084,2087,2088,2089],{"name":1846,"slug":1847,"type":15},{"name":2085,"slug":2086,"type":15},"Design System","design-system",{"name":2073,"slug":2066,"type":15},{"name":1902,"slug":1903,"type":15},{"name":1911,"slug":1912,"type":15},"2026-05-10T05:59:52.971881",{"slug":2092,"name":2092,"fn":2093,"description":2094,"org":2095,"tags":2096,"stars":1993,"repoUrl":1994,"updatedAt":2104},"figma-create-design-system-rules","generate design system rules from Figma","Generates custom design system rules for the user's codebase. Use when user says \"create design system rules\", \"generate rules for my project\", \"set up design rules\", \"customize design system guidelines\", or wants to establish project-specific conventions for Figma-to-code workflows. Requires Figma MCP server connection.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2097,2098,2099,2102,2103],{"name":1846,"slug":1847,"type":15},{"name":2085,"slug":2086,"type":15},{"name":2100,"slug":2101,"type":15},"Documentation","documentation",{"name":2073,"slug":2066,"type":15},{"name":1902,"slug":1903,"type":15},"2026-05-16T06:07:47.821474",{"slug":2106,"name":2106,"fn":2107,"description":2108,"org":2109,"tags":2110,"stars":1993,"repoUrl":1994,"updatedAt":2116},"figma-implement-design","translate Figma designs into application code","Translates Figma designs into production-ready application code with 1:1 visual fidelity. Use when implementing UI code from Figma files, when user mentions \"implement design\", \"generate code\", \"implement component\", provides Figma URLs, or asks to build components matching Figma specs. For Figma canvas writes via `use_figma`, use `figma-use`.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2111,2112,2113,2114,2115],{"name":1846,"slug":1847,"type":15},{"name":2073,"slug":2066,"type":15},{"name":1902,"slug":1903,"type":15},{"name":1911,"slug":1912,"type":15},{"name":1991,"slug":1992,"type":15},"2026-05-16T06:07:40.583615",{"slug":2118,"name":2118,"fn":2119,"description":2120,"org":2121,"tags":2122,"stars":1993,"repoUrl":1994,"updatedAt":2131},"hatch-pet","create animated pets for Codex","Create, repair, validate, visually QA, and package Codex-compatible animated pets and pet spritesheets from character art, generated images, company or prospect brand cues, or visual references. Use when a user wants a lightweight-worker Codex pet workflow, a non-pixel custom pet style, a prospect or company mascot pet, or a full 8x9 animated pet atlas with transparent unused cells, QA contact sheets, and pet.json packaging. This skill composes the installed $imagegen system skill for visual generation and uses bundled scripts for deterministic spritesheet assembly.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2123,2126,2127,2130],{"name":2124,"slug":2125,"type":15},"Animation","animation",{"name":2026,"slug":2027,"type":15},{"name":2128,"slug":2129,"type":15},"Creative","creative",{"name":1846,"slug":1847,"type":15},"2026-05-02T05:31:48.48485",{"slug":2133,"name":2133,"fn":2134,"description":2135,"org":2136,"tags":2137,"stars":1993,"repoUrl":1994,"updatedAt":2147},"imagegen","generate and edit raster images","Generate or edit raster images when the task benefits from AI-created bitmap visuals such as photos, illustrations, textures, sprites, mockups, or transparent-background cutouts. Use when Codex should create a brand-new image, transform an existing image, or derive visual variants from references, and the output should be a bitmap asset rather than repo-native code or vector. Do not use when the task is better handled by editing existing SVG\u002Fvector\u002Fcode-native assets, extending an established icon or logo system, or building the visual directly in HTML\u002FCSS\u002Fcanvas.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2138,2139,2140,2143,2146],{"name":2128,"slug":2129,"type":15},{"name":1846,"slug":1847,"type":15},{"name":2141,"slug":2142,"type":15},"Image Generation","image-generation",{"name":2144,"slug":2145,"type":15},"Images","images",{"name":9,"slug":8,"type":15},"2026-05-15T06:23:24.312127",675]