[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M7AAPWDFKTP40Z5NEP9P2EB8":3,"skill-same:01M7AAPWDFKTP40Z5NEP9P2EB8":69},{"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":18,"publishedAt":19,"linkOnly":20,"markdownContent":21,"markdownBody":22,"frontMatter":23,"refName":24,"commitSha":25,"skillDirectory":26,"forksCount":14,"repositoryHtmlUrl":27,"repositoryHomepageUrl":6,"ownerHtmlUrl":28,"ownerBlogUrl":29,"ownerDescription":6,"updatedAt":30,"install":31,"resources":44},"01M7AAPWDFKTP40Z5NEP9P2EB8","dev-debug",null,"Reproduce-first bug work. Use when given a bug to fix — \"debug this\", \"this is broken and I don't know why\", \"users report X fails\", \"login intermittently 500s\", implementing a fix-type issue whose brief carries a Reproduction section, or when a fix keeps not fixing the symptom. Not for writing the bug up as an issue (dev-intake), building planned features (dev-implement — this skill governs the diagnosis inside its dark mode), or reviewing a finished fix (dev-review).","vegastack\u002Fvegafactory","vegastack","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F80521387?v=4","01M7AAPGJ8YXFVK8523BXPA6DM","VegaStack","01M7AAPGJZTFEBZMBDM7Z8M8YH",0,"MIT","https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Fdev\u002Fdev-debug\u002FSKILL.md",[],[],"2026-11-15 14:19:17",false,"---\nname: dev-debug\ndescription: Reproduce-first bug work. Use when given a bug to fix — \"debug this\", \"this is broken and I don't know why\", \"users report X fails\", \"login intermittently 500s\", implementing a fix-type issue whose brief carries a Reproduction section, or when a fix keeps not fixing the symptom. Not for writing the bug up as an issue (dev-intake), building planned features (dev-implement — this skill governs the diagnosis inside its dark mode), or reviewing a finished fix (dev-review).\n---\n\n# dev-debug\n\nAct: reproduce first, then shrink, suspect, test, prove and clean, in that order, because a fix without a red command fixes a guess.\n\nThe failure this skill prevents: reading code, forming one theory, and \"fixing\" something that was not the cause. The discipline is a hard order — **reproduce, shrink, suspect, test, prove, clean** — and each phase has a completion criterion you can check, not vibe. It runs inside dev-implement's dark mode: no operator questions; missing-artifact stops are one `handback` comment; every phase result is a ledger checkpoint.\n\nNearest neighbors: `dev-intake`'s bug variant writes the brief this skill executes; `dev-implement` owns the surrounding build ceremony; `dev-review` judges the finished fix.\n\n## Phase 1 — the red command comes before any theory\n\nBuild **one named command** that demonstrates the bug: it fails right now *because of this bug's exact symptom*, and will pass once it's truly fixed. The completion criterion, all four checkable:\n\n- **Red-capable** — it asserts the reported symptom, not \"runs without erroring\"; you have run it at least once and its invocation + failing output (redacted) go in the ledger.\n- **Deterministic** — same verdict every run; a flaky bug substitutes a pinned, stated reproduction rate (\"~1 in 12 across 50 runs\").\n- **Fast** — seconds, not minutes; a tight loop is the whole superpower here.\n- **Agent-runnable** — no human in the loop.\n\nPick the cheapest rung that reaches the bug from the [loop ladder](references\u002Floop-ladder.md). Can't build one after walking the ladder → stop: one `handback` comment, `waiting-on-operator`. A handback lists what was tried, one line per ladder rung, and asks for the artifacts by name (logs, HAR, recording, environment access). Proceeding to theories without a red command is the exact failure this skill exists to prevent.\n\n## Phase 2 — shrink until everything left is load-bearing\n\nRun the loop, watch it go red on the *reported* symptom (the wrong bug means the wrong fix). Then minimise: cut inputs, callers, config, and steps **one at a time**, re-running after each cut, keeping only what the failure needs. Done when removing any remaining element turns the loop green. The minimal repro shrinks the suspect space and becomes Phase 5's regression test.\n\n## Phase 3 — suspects: 3–5, ranked, falsifiable, posted, then GO\n\nList 3–5 candidate causes ranked most-likely first — a single hypothesis anchors on the first plausible idea. Each must be **falsifiable**: \"if X is the cause, then changing Y makes the bug disappear \u002F Z makes it worse.\" A suspect whose prediction you can't state is a vibe — discard or sharpen it. Post the ranked list to the ledger and proceed, because dark mode holds and the operator's re-rank arrives asynchronously whenever it comes.\n\n## Phase 4 — test suspects one variable at a time\n\nEvery probe maps to one suspect's prediction. Prefer a debugger\u002FREPL breakpoint over logs; when logging, target the boundaries that separate suspects, because a blanket log buries the signal. **Every debug log carries a `[DEBUG-\u003C4hex>]` tag** (one random tag per session): cleanup becomes a single grep, and `vegafactory ship check` blocks any tag that survives into the diff. Performance bugs: logs lie — measure a baseline first (timing harness, profiler, query plan), then bisect.\n\n## Phase 5 — regression test before the fix\n\nWrite the failing test before touching the fix, at a correct seam: one where the test exercises the real bug pattern as it occurs at the call site. If the only reachable seam is too shallow to replicate the trigger, that is itself a finding — record it in the ledger and evidence; a false-confidence test is worse than a named gap. With a correct seam: minimal repro → failing test → watch it fail → fix → watch it pass → re-run the original un-minimised Phase 1 loop green.\n\n## Phase 6 — clean up and teach\n\nBefore hand-back, all checkable: the original repro re-runs green · `git diff \u003Cbase>... | grep -F '[DEBUG-'` comes back empty (fixed-string grep; `vegafactory ship check` backstops the added lines) · throwaway harnesses deleted · the winning suspect and its evidence named in the evidence comment and the commit message — the next debugger learns what it actually was, not just that it went away.\n","# dev-debug\n\nAct: reproduce first, then shrink, suspect, test, prove and clean, in that order, because a fix without a red command fixes a guess.\n\nThe failure this skill prevents: reading code, forming one theory, and \"fixing\" something that was not the cause. The discipline is a hard order — **reproduce, shrink, suspect, test, prove, clean** — and each phase has a completion criterion you can check, not vibe. It runs inside dev-implement's dark mode: no operator questions; missing-artifact stops are one `handback` comment; every phase result is a ledger checkpoint.\n\nNearest neighbors: `dev-intake`'s bug variant writes the brief this skill executes; `dev-implement` owns the surrounding build ceremony; `dev-review` judges the finished fix.\n\n## Phase 1 — the red command comes before any theory\n\nBuild **one named command** that demonstrates the bug: it fails right now *because of this bug's exact symptom*, and will pass once it's truly fixed. The completion criterion, all four checkable:\n\n- **Red-capable** — it asserts the reported symptom, not \"runs without erroring\"; you have run it at least once and its invocation + failing output (redacted) go in the ledger.\n- **Deterministic** — same verdict every run; a flaky bug substitutes a pinned, stated reproduction rate (\"~1 in 12 across 50 runs\").\n- **Fast** — seconds, not minutes; a tight loop is the whole superpower here.\n- **Agent-runnable** — no human in the loop.\n\nPick the cheapest rung that reaches the bug from the [loop ladder](references\u002Floop-ladder.md). Can't build one after walking the ladder → stop: one `handback` comment, `waiting-on-operator`. A handback lists what was tried, one line per ladder rung, and asks for the artifacts by name (logs, HAR, recording, environment access). Proceeding to theories without a red command is the exact failure this skill exists to prevent.\n\n## Phase 2 — shrink until everything left is load-bearing\n\nRun the loop, watch it go red on the *reported* symptom (the wrong bug means the wrong fix). Then minimise: cut inputs, callers, config, and steps **one at a time**, re-running after each cut, keeping only what the failure needs. Done when removing any remaining element turns the loop green. The minimal repro shrinks the suspect space and becomes Phase 5's regression test.\n\n## Phase 3 — suspects: 3–5, ranked, falsifiable, posted, then GO\n\nList 3–5 candidate causes ranked most-likely first — a single hypothesis anchors on the first plausible idea. Each must be **falsifiable**: \"if X is the cause, then changing Y makes the bug disappear \u002F Z makes it worse.\" A suspect whose prediction you can't state is a vibe — discard or sharpen it. Post the ranked list to the ledger and proceed, because dark mode holds and the operator's re-rank arrives asynchronously whenever it comes.\n\n## Phase 4 — test suspects one variable at a time\n\nEvery probe maps to one suspect's prediction. Prefer a debugger\u002FREPL breakpoint over logs; when logging, target the boundaries that separate suspects, because a blanket log buries the signal. **Every debug log carries a `[DEBUG-\u003C4hex>]` tag** (one random tag per session): cleanup becomes a single grep, and `vegafactory ship check` blocks any tag that survives into the diff. Performance bugs: logs lie — measure a baseline first (timing harness, profiler, query plan), then bisect.\n\n## Phase 5 — regression test before the fix\n\nWrite the failing test before touching the fix, at a correct seam: one where the test exercises the real bug pattern as it occurs at the call site. If the only reachable seam is too shallow to replicate the trigger, that is itself a finding — record it in the ledger and evidence; a false-confidence test is worse than a named gap. With a correct seam: minimal repro → failing test → watch it fail → fix → watch it pass → re-run the original un-minimised Phase 1 loop green.\n\n## Phase 6 — clean up and teach\n\nBefore hand-back, all checkable: the original repro re-runs green · `git diff \u003Cbase>... | grep -F '[DEBUG-'` comes back empty (fixed-string grep; `vegafactory ship check` backstops the added lines) · throwaway harnesses deleted · the winning suspect and its evidence named in the evidence comment and the commit message — the next debugger learns what it actually was, not just that it went away.\n",{"name":5,"description":7},"main","f58c477065c33acdace9ba500eaf770d9751b6a7","skills\u002Fdev\u002Fdev-debug","https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory","https:\u002F\u002Fgithub.com\u002Fvegastack","https:\u002F\u002Fvegastack.com","2026-09-25 17:43:43",{"source":8,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add vegastack\u002Fvegafactory --skill dev-debug",{"tool":37,"command":38},"bunx","bunx skills add vegastack\u002Fvegafactory --skill dev-debug",{"tool":40,"command":41},"pnpm","pnpm dlx skills add vegastack\u002Fvegafactory --skill dev-debug","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Fdev\u002Fdev-debug\u002FSKILL.md",true,[45,51,55,61,65],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},"agents\u002Fopenai.yaml","REFERENCE","参考文档",161,"https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Fdev\u002Fdev-debug\u002Fagents\u002Fopenai.yaml",{"path":52,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":53,"sourceHtmlUrl":54},"evals\u002Fevals.json",2701,"https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Fdev\u002Fdev-debug\u002Fevals\u002Fevals.json",{"path":56,"resourceType":57,"resourceTypeDesc":58,"sizeBytes":59,"sourceHtmlUrl":60},"evals\u002Ffiles\u002Flogin-flaky.log","OTHER","其他",1969,"https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Fdev\u002Fdev-debug\u002Fevals\u002Ffiles\u002Flogin-flaky.log",{"path":62,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":63,"sourceHtmlUrl":64},"references\u002Floop-ladder.md",2077,"https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Fdev\u002Fdev-debug\u002Freferences\u002Floop-ladder.md",{"path":66,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":67,"sourceHtmlUrl":68},"tests\u002Ffixtures\u002Ftrigger-queries.json",1620,"https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Fdev\u002Fdev-debug\u002Ftests\u002Ffixtures\u002Ftrigger-queries.json",[70,77,84,90,95,100],{"skillNo":71,"name":72,"nameZh":6,"description":73,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":74,"categories":75,"keywords":76,"publishedAt":19},"01M7AARWXXMS94Z3FB70AW50B1","skills-refresh","Re-verify the dated platform and harness facts the dev skills pin, and file what changed as issues. Use when asked to \"refresh the skills\", \"check the pinned facts\", \"are our platform facts still true\", \"run the facts sweep\", \"what changed in Cloudflare\u002FNext.js\u002FClaude Code since we last checked\", when a fact is older than the 60-day window, or when a scheduled refresh run starts. Not for editing skill prose (dev-implement builds the issues this files), authoring or auditing a skill (skillify), or architecture advice from those facts (dev-architect).","https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Fskills-tooling\u002Fskills-refresh\u002FSKILL.md",[],[],{"skillNo":78,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":81,"categories":82,"keywords":83,"publishedAt":19},"01M7AARVXS618SV4CPHNNJCFGE","beta","fixture","https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Frepo-tooling\u002Fskillify\u002Ftests\u002Ffixtures\u002Ftrigger-check\u002Fcollision\u002Fskills\u002Fbeta\u002FSKILL.md",[],[],{"skillNo":85,"name":86,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":87,"categories":88,"keywords":89,"publishedAt":19},"01M7AARV1Y2AW25NK6GJBA5M5C","alpha","https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Frepo-tooling\u002Fskillify\u002Ftests\u002Ffixtures\u002Ftrigger-check\u002Fcollision\u002Fskills\u002Falpha\u002FSKILL.md",[],[],{"skillNo":91,"name":79,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":92,"categories":93,"keywords":94,"publishedAt":19},"01M7AART5NWATTHXNWYJDNTK0D","https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Frepo-tooling\u002Fskillify\u002Ftests\u002Ffixtures\u002Ftrigger-check\u002Fclean\u002Fskills\u002Fbeta\u002FSKILL.md",[],[],{"skillNo":96,"name":86,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":97,"categories":98,"keywords":99,"publishedAt":19},"01M7AARSA3B75TN2VT9ZKF791V","https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Frepo-tooling\u002Fskillify\u002Ftests\u002Ffixtures\u002Ftrigger-check\u002Fclean\u002Fskills\u002Falpha\u002FSKILL.md",[],[],{"skillNo":101,"name":86,"nameZh":6,"description":80,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":102,"categories":103,"keywords":104,"publishedAt":19},"01M7AARRF98VWHXGZP1H859100","https:\u002F\u002Fgithub.com\u002Fvegastack\u002Fvegafactory\u002Fblob\u002Fmain\u002Fskills\u002Frepo-tooling\u002Fskillify\u002Ftests\u002Ffixtures\u002Ftrigger-check\u002Fbroken\u002Fskills\u002Falpha\u002FSKILL.md",[],[]]