[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6C0SWB8HRFRJQQVNHFPDYP0":3,"skill-same:01M6C0SWB8HRFRJQQVNHFPDYP0":83},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":16,"categories":17,"keywords":23,"publishedAt":40,"linkOnly":41,"markdownContent":42,"markdownBody":43,"frontMatter":44,"refName":62,"commitSha":63,"skillDirectory":64,"forksCount":14,"repositoryHtmlUrl":65,"repositoryHomepageUrl":6,"ownerHtmlUrl":66,"ownerBlogUrl":67,"ownerDescription":68,"updatedAt":69,"install":70,"resources":82},"01M6C0SWB8HRFRJQQVNHFPDYP0","systematic_debugging",null,"Use when diagnosing a bug, failing test, or unexpected behavior — drive a methodical reproduce → isolate → hypothesize → fix → verify loop instead of guessing. Prevents thrashing and repeated edits to the same file.","marcosdh1987\u002Fml-python-base","marcosdh1987","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F31476977?v=4","01M6C0RHZYKQDC51CRAMD70QPA","Marcos Soto","01M6C0RJ4MBBJ4YHRE79QFGDXZ",0,"Apache-2.0","https:\u002F\u002Fgithub.com\u002Fmarcosdh1987\u002Fml-python-base\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsystematic_debugging\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000008","测试与质量","SCENARIO","使用场景",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39],"systematic debugging","debugging","testing","test","core","file","developer","verify","loop","regression","reproduce","quality","work","broken","behavior","fix","2026-11-10 10:12:30",false,"---\nname: systematic_debugging\ndescription: Use when diagnosing a bug, failing test, or unexpected behavior — drive a methodical reproduce → isolate → hypothesize → fix → verify loop instead of guessing. Prevents thrashing and repeated edits to the same file.\nsummary: Reproduce → isolate → hypothesize → fix → verify a bug or failing test, one cause at a time\nfamily: quality-testing-debugging\nvisibility: developer\nprofile: core\nauto_trigger: true\nmaturity: stable\nrisk: writes-files\nsmall_model_path: true\ntriggers:\n  - failing test\n  - fails with\n  - traceback\n  - exception\n  - keyerror\n  - bug\n  - does not work\n  - doesn't work\n  - unexpected behavior\n  - regression\n  - crash\n  - error when\n  - broken\n---\n\n# Skill: systematic_debugging\n\n## Purpose\n\nFind and fix the root cause of a defect through a disciplined loop rather than\ntrial-and-error edits. Reduces rework and keeps changes minimal and targeted.\nThis skill is a workflow to follow inline, not an agent to invoke or delegate to.\n\n## Required Input\n\n- A description of the symptom and how it was observed (error, failing test, wrong\n  output).\n- The command or steps that trigger it, if known.\n- Relevant scope: file(s), module, or feature area.\n\n## Output Format\n\n- A minimal reproduction (command or test).\n- The identified root cause, stated plainly.\n- The smallest fix that addresses the cause (not the symptom).\n- Verification evidence: the command run and its result.\n\n## Execution Rules\n\n1. **Ground.** Confirm the actual working root first (`pwd`\u002F`ls`): the directory\n   that contains `.git` and the failing test's path (in this template: `Makefile`,\n   `pyproject.toml`, `src\u002F`). Pin it and prefix every later path with it. If a\n   path errors, do not retry it — re-derive it with one `find \u003Croot> -name \u003Cfile>`\n   and use the printed path. Open the failing test plus the implementation it\n   exercises from that root, and restate the exact exception type, message,\n   operands, and failing call site (file:line) before hypothesizing.\n2. **Reproduce first.** Establish a reliable, minimal repro before changing code,\n   using the repo's own documented runner (check `Makefile`, `tox.ini`,\n   `scripts\u002F`, CONTRIBUTING; here: `make test` \u002F focused `uv run pytest`); else\n   `python -m pytest \u003Ctest> -x`; if pytest is missing, execute the real test\n   file's functions directly. Never write a new script that approximates the\n   test. If you cannot reproduce it, gather more signal rather than guessing.\n3. **Isolate.** Narrow the failure to the smallest scope — bisect, add focused\n   assertions, or read the failing path. Form one hypothesis at a time; after two\n   probes that fail to confirm it, stop, re-read the evidence, and reframe instead\n   of stacking guesses.\n4. **Confirm the cause before fixing.** State why the bug happens and back it with\n   evidence. Do not edit speculatively.\n5. **Fix the cause, minimally.** Avoid broad rewrites. Do not repeatedly hammer the\n   same file — if you are on the third edit, step back and re-diagnose. If a patch\n   fails to apply, re-read only the ~10 lines around the target, rebuild the old\n   text from that exact output, and retry with a smaller hunk — never retry the\n   same patch or free-hand the line. Keep edits small and incremental until the\n   current failure is verified fixed.\n6. **Verify.** After every edit batch, run a fast parse\u002Fcompile check\n   (`python -m py_compile \u003Cchanged files>`) before any smoke test. Then re-run\n   the exact rule-2 repro and the relevant tests via the same runner order —\n   done means that rerun passes. After a failed verification, make a new code\n   change or take the next diagnostic step; never re-read unchanged code, never\n   repeat the same failed command more than twice, and never treat a\n   parse\u002Fsyntax check alone as verification. Add a regression test when\n   practical (`test-driven-development`).\n7. **Record.** Capture any non-obvious gotcha in `memory\u002Flearnings.md`.\n8. Comply with governance: `.github\u002Farchitecture.md`, `.github\u002Fstandards.md`.\n","# Skill: systematic_debugging\n\n## Purpose\n\nFind and fix the root cause of a defect through a disciplined loop rather than\ntrial-and-error edits. Reduces rework and keeps changes minimal and targeted.\nThis skill is a workflow to follow inline, not an agent to invoke or delegate to.\n\n## Required Input\n\n- A description of the symptom and how it was observed (error, failing test, wrong\n  output).\n- The command or steps that trigger it, if known.\n- Relevant scope: file(s), module, or feature area.\n\n## Output Format\n\n- A minimal reproduction (command or test).\n- The identified root cause, stated plainly.\n- The smallest fix that addresses the cause (not the symptom).\n- Verification evidence: the command run and its result.\n\n## Execution Rules\n\n1. **Ground.** Confirm the actual working root first (`pwd`\u002F`ls`): the directory\n   that contains `.git` and the failing test's path (in this template: `Makefile`,\n   `pyproject.toml`, `src\u002F`). Pin it and prefix every later path with it. If a\n   path errors, do not retry it — re-derive it with one `find \u003Croot> -name \u003Cfile>`\n   and use the printed path. Open the failing test plus the implementation it\n   exercises from that root, and restate the exact exception type, message,\n   operands, and failing call site (file:line) before hypothesizing.\n2. **Reproduce first.** Establish a reliable, minimal repro before changing code,\n   using the repo's own documented runner (check `Makefile`, `tox.ini`,\n   `scripts\u002F`, CONTRIBUTING; here: `make test` \u002F focused `uv run pytest`); else\n   `python -m pytest \u003Ctest> -x`; if pytest is missing, execute the real test\n   file's functions directly. Never write a new script that approximates the\n   test. If you cannot reproduce it, gather more signal rather than guessing.\n3. **Isolate.** Narrow the failure to the smallest scope — bisect, add focused\n   assertions, or read the failing path. Form one hypothesis at a time; after two\n   probes that fail to confirm it, stop, re-read the evidence, and reframe instead\n   of stacking guesses.\n4. **Confirm the cause before fixing.** State why the bug happens and back it with\n   evidence. Do not edit speculatively.\n5. **Fix the cause, minimally.** Avoid broad rewrites. Do not repeatedly hammer the\n   same file — if you are on the third edit, step back and re-diagnose. If a patch\n   fails to apply, re-read only the ~10 lines around the target, rebuild the old\n   text from that exact output, and retry with a smaller hunk — never retry the\n   same patch or free-hand the line. Keep edits small and incremental until the\n   current failure is verified fixed.\n6. **Verify.** After every edit batch, run a fast parse\u002Fcompile check\n   (`python -m py_compile \u003Cchanged files>`) before any smoke test. Then re-run\n   the exact rule-2 repro and the relevant tests via the same runner order —\n   done means that rerun passes. After a failed verification, make a new code\n   change or take the next diagnostic step; never re-read unchanged code, never\n   repeat the same failed command more than twice, and never treat a\n   parse\u002Fsyntax check alone as verification. Add a regression test when\n   practical (`test-driven-development`).\n7. **Record.** Capture any non-obvious gotcha in `memory\u002Flearnings.md`.\n8. Comply with governance: `.github\u002Farchitecture.md`, `.github\u002Fstandards.md`.\n",{"name":5,"risk":45,"family":46,"profile":28,"summary":47,"maturity":48,"triggers":49,"visibility":30,"description":7,"auto_trigger":61,"small_model_path":61},"writes-files","quality-testing-debugging","Reproduce → isolate → hypothesize → fix → verify a bug or failing test, one cause at a time","stable",[50,51,52,53,54,55,56,57,58,33,59,60,37],"failing test","fails with","traceback","exception","keyerror","bug","does not work","doesn't work","unexpected behavior","crash","error when",true,"main","a13a7ba3a107d6810ee15f05851acd873cfdf316",".agents\u002Fskills\u002Fsystematic_debugging","https:\u002F\u002Fgithub.com\u002Fmarcosdh1987\u002Fml-python-base","https:\u002F\u002Fgithub.com\u002Fmarcosdh1987","https:\u002F\u002Fwww.linkedin.com\u002Fin\u002Fmarcosesoto\u002F","I'm a System Engineer, a big fan of technology and travels ","2026-09-12 21:08:50",{"source":8,"skillName":5,"commands":71,"prompt":81,"zipAvailable":61},[72,75,78],{"tool":73,"command":74},"npx","npx skills add marcosdh1987\u002Fml-python-base --skill systematic_debugging",{"tool":76,"command":77},"bunx","bunx skills add marcosdh1987\u002Fml-python-base --skill systematic_debugging",{"tool":79,"command":80},"pnpm","pnpm dlx skills add marcosdh1987\u002Fml-python-base --skill systematic_debugging","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fmarcosdh1987\u002Fml-python-base\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsystematic_debugging\u002FSKILL.md",[],[84,103,112,119,127,141],{"skillNo":85,"name":86,"nameZh":6,"description":87,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":88,"categories":89,"keywords":98,"publishedAt":40},"01M6C0Z2ZS9H5CGZ29BMP9CER3","writing-plans","Use when you have a spec or requirements for a multi-step task, before touching code","https:\u002F\u002Fgithub.com\u002Fmarcosdh1987\u002Fml-python-base\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fwriting-plans\u002FSKILL.md",[90,93],{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000018","写作与文案",{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000036","内容创作者","PROFESSION","适用职业",[99,100,101,102],"writing plans","writing","spec","code",{"skillNo":104,"name":105,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":106,"categories":107,"keywords":110,"publishedAt":40},"01M6C0Z14PK451BXB8CYM7FX90","writing-clearly-and-concisely","https:\u002F\u002Fgithub.com\u002Fmarcosdh1987\u002Fml-python-base\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fwriting-clearly-and-concisely\u002FSKILL.md",[108,109],{"categoryNo":91,"categoryName":92,"taxonomyType":21,"taxonomyTypeDesc":22},{"categoryNo":94,"categoryName":95,"taxonomyType":96,"taxonomyTypeDesc":97},[111,100],"writing clearly and concisely",{"skillNo":113,"name":114,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":115,"categories":116,"keywords":117,"publishedAt":40},"01M6C0YZY8TWH2Y4N3SK6YRDWP","verify_changes","https:\u002F\u002Fgithub.com\u002Fmarcosdh1987\u002Fml-python-base\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fverify_changes\u002FSKILL.md",[],[31,118],"Verify Changes",{"skillNo":120,"name":121,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":122,"categories":123,"keywords":124,"publishedAt":40},"01M6C0YYMB7BRK96VWDNCWGRK6","validate_module_structure","https:\u002F\u002Fgithub.com\u002Fmarcosdh1987\u002Fml-python-base\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fvalidate_module_structure\u002FSKILL.md",[],[125,126],"validate module structure","validate",{"skillNo":128,"name":129,"nameZh":6,"description":130,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":131,"categories":132,"keywords":133,"publishedAt":40},"01M6C0YVRTE83GBHRA90YP6AYT","using-git-worktrees","Use when starting feature work that needs isolation from current workspace or before executing implementation plans - ensures an isolated workspace exists via native tools or git worktree fallback","https:\u002F\u002Fgithub.com\u002Fmarcosdh1987\u002Fml-python-base\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fusing-git-worktrees\u002FSKILL.md",[],[134,135,136,36,137,138,139,140],"git worktrees","git","using git worktrees","workspace","git worktree","Tools","worktree",{"skillNo":142,"name":143,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":144,"categories":145,"keywords":149,"publishedAt":40},"01M6C0YTB8BHES6KTV29SKDTFA","ui-ux-pro-max","https:\u002F\u002Fgithub.com\u002Fmarcosdh1987\u002Fml-python-base\u002Fblob\u002Fmain\u002F.opencode\u002Fskills\u002Fui-ux-pro-max\u002FSKILL.md",[146],{"categoryNo":147,"categoryName":148,"taxonomyType":96,"taxonomyTypeDesc":97},"01JBSEEDCAT000000000000032","设计师",[150,151,152],"ui","ui ux pro max","ux"]