[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6EERN87DZ9ZDDSBFPC5VT2T":3,"skill-same:01M6EERN87DZ9ZDDSBFPC5VT2T":323},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":18,"linkOnly":19,"markdownContent":20,"markdownBody":20,"frontMatter":21,"refName":22,"commitSha":23,"skillDirectory":24,"forksCount":25,"repositoryHtmlUrl":26,"repositoryHomepageUrl":27,"ownerHtmlUrl":28,"ownerBlogUrl":6,"ownerDescription":29,"updatedAt":30,"install":31,"resources":44},"01M6EERN87DZ9ZDDSBFPC5VT2T","d3",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",66,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Fd3\u002FSKILL.md",[],[5],"2026-11-10 10:12:30",false,"# D3.js\n\n## Overview\n\nD3.js is a low-level JavaScript library for building custom, interactive data visualizations by binding data to DOM elements. It provides scales, axes, shape generators, geographic projections, force simulations, and hierarchical layouts, giving developers full control over the visual output while integrating with React through computed scales and layouts.\n\n## Instructions\n\n- When binding data, use `.data(dataset).join(\"element\")` (D3 v6+) for the enter\u002Fupdate\u002Fexit pattern, setting attributes and styles from bound data via accessor functions.\n- When creating scales, choose the appropriate type (`scaleLinear` for continuous, `scaleBand` for categorical bars, `scaleTime` for dates, `scaleOrdinal` for color mapping) and always set domain from the data using `d3.extent()`.\n- When building axes, create them with `d3.axisBottom(scale)` or `d3.axisLeft(scale)`, configure ticks and format labels with `d3.format()`, and regenerate on resize.\n- When creating chart types, use shape generators (`d3.line()`, `d3.area()`, `d3.arc()`, `d3.pie()`, `d3.stack()`) and layout functions (`d3.treemap()`, `d3.forceSimulation()`, `d3.geoPath()`) for complex visualizations.\n- When adding interactivity, use transitions (`.transition().duration(750)`) for smooth data updates, tooltips on hover, and brushing\u002Fzooming for exploration.\n- When integrating with React, use D3 for math (scales, layouts, data transforms) and React for DOM rendering, computing values in `useMemo` and using `useEffect` with refs for D3-driven animations.\n\n## Examples\n\n### Example 1: Build a real-time dashboard with multiple chart types\n\n**User request:** \"Create a dashboard with line charts, bar charts, and a pie chart from API data\"\n\n**Actions:**\n1. Set up shared scales with `d3.scaleTime()` for the x-axis and `d3.scaleLinear()` for the y-axis\n2. Build a line chart using `d3.line()` with smooth curve interpolation and area fill\n3. Build a grouped bar chart using `d3.scaleBand()` with staggered enter transitions\n4. Build a donut chart using `d3.pie()` and `d3.arc()` with hover tooltips\n\n**Output:** A responsive dashboard with animated charts that update smoothly when data changes.\n\n### Example 2: Create a force-directed network graph\n\n**User request:** \"Visualize relationships between entities as an interactive network graph\"\n\n**Actions:**\n1. Set up `d3.forceSimulation()` with `forceManyBody`, `forceLink`, and `forceCenter`\n2. Render nodes as circles with `d3.scaleOrdinal()` coloring by category\n3. Add drag interaction with `d3.drag()` to reposition nodes\n4. Implement zoom and pan with `d3.zoom()` and tooltips on hover\n\n**Output:** An interactive force-directed graph with draggable nodes, color-coded categories, and zoom navigation.\n\n## Guidelines\n\n- Use D3 for scales, layouts, and data processing; let React handle DOM rendering in React apps.\n- Use `.join()` instead of manual enter\u002Fupdate\u002Fexit for simpler, cleaner data binding.\n- Always set scale domains from data (`d3.extent()`) rather than hardcoding ranges.\n- Use `d3.format()` for axis labels and tooltips: `\",.0f\"` for thousands, `\"$.2f\"` for currency.\n- Add transitions of 750ms with `easeCubicInOut` for smooth data update animations.\n- Make visualizations responsive by recalculating scales on `ResizeObserver` callbacks.\n- Add `aria-label` to SVG elements and meaningful `\u003Ctitle>` tags for accessibility.\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002FTerminalSkills\u002Fskills\u002Fd3",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":32,"prompt":42,"zipAvailable":43},[33,36,39],{"tool":34,"command":35},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill d3",{"tool":37,"command":38},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill d3",{"tool":40,"command":41},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill d3","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002FTerminalSkills\u002Fskills\u002Fd3\u002FSKILL.md",true,[45,51,57,61,65,69,73,77,81,85,89,93,97,101,105,109,113,117,121,125,129,133,137,141,145,149,153,157,161,165,169,173,177,181,185,189,193,197,201,205,209,213,217,221,225,229,233,237,241,245,249,253,257,261,267,271,275,279,283,287,291,295,299,303,307,311,315,319],{"path":46,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":49,"sourceHtmlUrl":50},"checklist.md","REFERENCE","参考文档",23465,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fchecklist.md",{"path":52,"resourceType":53,"resourceTypeDesc":54,"sizeBytes":55,"sourceHtmlUrl":56},"customize.toml","OTHER","其他",1553,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fcustomize.toml",{"path":58,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":59,"sourceHtmlUrl":60},"instructions.md",1436,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Finstructions.md",{"path":62,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":63,"sourceHtmlUrl":64},"resources\u002Fknowledge\u002Fadr-quality-readiness-checklist.md",25356,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fadr-quality-readiness-checklist.md",{"path":66,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":67,"sourceHtmlUrl":68},"resources\u002Fknowledge\u002Fapi-request.md",17129,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fapi-request.md",{"path":70,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":71,"sourceHtmlUrl":72},"resources\u002Fknowledge\u002Fapi-testing-patterns.md",26976,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fapi-testing-patterns.md",{"path":74,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":75,"sourceHtmlUrl":76},"resources\u002Fknowledge\u002Fauth-session.md",16215,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fauth-session.md",{"path":78,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":79,"sourceHtmlUrl":80},"resources\u002Fknowledge\u002Fburn-in.md",6503,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fburn-in.md",{"path":82,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":83,"sourceHtmlUrl":84},"resources\u002Fknowledge\u002Fci-burn-in.md",22486,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fci-burn-in.md",{"path":86,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":87,"sourceHtmlUrl":88},"resources\u002Fknowledge\u002Fcomponent-tdd.md",16149,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fcomponent-tdd.md",{"path":90,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":91,"sourceHtmlUrl":92},"resources\u002Fknowledge\u002Fcontract-testing.md",38991,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fcontract-testing.md",{"path":94,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":95,"sourceHtmlUrl":96},"resources\u002Fknowledge\u002Fdata-factories.md",15331,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fdata-factories.md",{"path":98,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":99,"sourceHtmlUrl":100},"resources\u002Fknowledge\u002Femail-auth.md",24553,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Femail-auth.md",{"path":102,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":103,"sourceHtmlUrl":104},"resources\u002Fknowledge\u002Ferror-handling.md",22959,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Ferror-handling.md",{"path":106,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":107,"sourceHtmlUrl":108},"resources\u002Fknowledge\u002Ffeature-flags.md",23214,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Ffeature-flags.md",{"path":110,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":111,"sourceHtmlUrl":112},"resources\u002Fknowledge\u002Ffile-utils.md",13745,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Ffile-utils.md",{"path":114,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":115,"sourceHtmlUrl":116},"resources\u002Fknowledge\u002Ffixture-architecture.md",12414,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Ffixture-architecture.md",{"path":118,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":119,"sourceHtmlUrl":120},"resources\u002Fknowledge\u002Ffixtures-composition.md",11249,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Ffixtures-composition.md",{"path":122,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":123,"sourceHtmlUrl":124},"resources\u002Fknowledge\u002Fintercept-network-call.md",13489,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fintercept-network-call.md",{"path":126,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":127,"sourceHtmlUrl":128},"resources\u002Fknowledge\u002Flog.md",11281,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Flog.md",{"path":130,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":131,"sourceHtmlUrl":132},"resources\u002Fknowledge\u002Fnetwork-error-monitor.md",12277,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fnetwork-error-monitor.md",{"path":134,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":135,"sourceHtmlUrl":136},"resources\u002Fknowledge\u002Fnetwork-first.md",16327,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fnetwork-first.md",{"path":138,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":139,"sourceHtmlUrl":140},"resources\u002Fknowledge\u002Fnetwork-recorder.md",15499,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fnetwork-recorder.md",{"path":142,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":143,"sourceHtmlUrl":144},"resources\u002Fknowledge\u002Fnfr-criteria.md",26670,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fnfr-criteria.md",{"path":146,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":147,"sourceHtmlUrl":148},"resources\u002Fknowledge\u002Foverview.md",9663,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Foverview.md",{"path":150,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":151,"sourceHtmlUrl":152},"resources\u002Fknowledge\u002Fpact-broker-webhooks.md",13376,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fpact-broker-webhooks.md",{"path":154,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":155,"sourceHtmlUrl":156},"resources\u002Fknowledge\u002Fpact-consumer-di.md",12005,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fpact-consumer-di.md",{"path":158,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":159,"sourceHtmlUrl":160},"resources\u002Fknowledge\u002Fpact-consumer-framework-setup.md",35846,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fpact-consumer-framework-setup.md",{"path":162,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":163,"sourceHtmlUrl":164},"resources\u002Fknowledge\u002Fpact-mcp.md",8977,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fpact-mcp.md",{"path":166,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":167,"sourceHtmlUrl":168},"resources\u002Fknowledge\u002Fpactjs-utils-consumer-helpers.md",16029,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fpactjs-utils-consumer-helpers.md",{"path":170,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":171,"sourceHtmlUrl":172},"resources\u002Fknowledge\u002Fpactjs-utils-overview.md",10481,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fpactjs-utils-overview.md",{"path":174,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":175,"sourceHtmlUrl":176},"resources\u002Fknowledge\u002Fpactjs-utils-provider-verifier.md",18180,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fpactjs-utils-provider-verifier.md",{"path":178,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":179,"sourceHtmlUrl":180},"resources\u002Fknowledge\u002Fpactjs-utils-request-filter.md",7275,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fpactjs-utils-request-filter.md",{"path":182,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":183,"sourceHtmlUrl":184},"resources\u002Fknowledge\u002Fplaywright-cli.md",14993,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fplaywright-cli.md",{"path":186,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":187,"sourceHtmlUrl":188},"resources\u002Fknowledge\u002Fplaywright-config.md",21457,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fplaywright-config.md",{"path":190,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":191,"sourceHtmlUrl":192},"resources\u002Fknowledge\u002Fprobability-impact.md",19200,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fprobability-impact.md",{"path":194,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":195,"sourceHtmlUrl":196},"resources\u002Fknowledge\u002Frecurse.md",12936,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Frecurse.md",{"path":198,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":199,"sourceHtmlUrl":200},"resources\u002Fknowledge\u002Frisk-governance.md",20965,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Frisk-governance.md",{"path":202,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":203,"sourceHtmlUrl":204},"resources\u002Fknowledge\u002Fselective-testing.md",21846,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fselective-testing.md",{"path":206,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":207,"sourceHtmlUrl":208},"resources\u002Fknowledge\u002Fselector-resilience.md",19784,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fselector-resilience.md",{"path":210,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":211,"sourceHtmlUrl":212},"resources\u002Fknowledge\u002Ftest-healing-patterns.md",21388,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Ftest-healing-patterns.md",{"path":214,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":215,"sourceHtmlUrl":216},"resources\u002Fknowledge\u002Ftest-levels-framework.md",14756,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Ftest-levels-framework.md",{"path":218,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":219,"sourceHtmlUrl":220},"resources\u002Fknowledge\u002Ftest-priorities-matrix.md",11454,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Ftest-priorities-matrix.md",{"path":222,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":223,"sourceHtmlUrl":224},"resources\u002Fknowledge\u002Ftest-quality.md",24580,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Ftest-quality.md",{"path":226,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":227,"sourceHtmlUrl":228},"resources\u002Fknowledge\u002Ftiming-debugging.md",14021,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Ftiming-debugging.md",{"path":230,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":231,"sourceHtmlUrl":232},"resources\u002Fknowledge\u002Fvisual-debugging.md",17480,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fvisual-debugging.md",{"path":234,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":235,"sourceHtmlUrl":236},"resources\u002Fknowledge\u002Fwebhook-module-setup.md",5834,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fwebhook-module-setup.md",{"path":238,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":239,"sourceHtmlUrl":240},"resources\u002Fknowledge\u002Fwebhook-providers.md",6440,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fwebhook-providers.md",{"path":242,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":243,"sourceHtmlUrl":244},"resources\u002Fknowledge\u002Fwebhook-risk-guidance.md",6474,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fwebhook-risk-guidance.md",{"path":246,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":247,"sourceHtmlUrl":248},"resources\u002Fknowledge\u002Fwebhook-template-matchers.md",6011,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fwebhook-template-matchers.md",{"path":250,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":251,"sourceHtmlUrl":252},"resources\u002Fknowledge\u002Fwebhook-testing-fundamentals.md",3185,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fwebhook-testing-fundamentals.md",{"path":254,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":255,"sourceHtmlUrl":256},"resources\u002Fknowledge\u002Fwebhook-timeout-error.md",5726,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fwebhook-timeout-error.md",{"path":258,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":259,"sourceHtmlUrl":260},"resources\u002Fknowledge\u002Fwebhook-waiting-querying.md",7074,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Fknowledge\u002Fwebhook-waiting-querying.md",{"path":262,"resourceType":263,"resourceTypeDesc":264,"sizeBytes":265,"sourceHtmlUrl":266},"resources\u002Ftea-index.csv","ASSET","资产文件",11002,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fresources\u002Ftea-index.csv",{"path":268,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":269,"sourceHtmlUrl":270},"steps-c\u002Fstep-01-load-context.md",6319,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fsteps-c\u002Fstep-01-load-context.md",{"path":272,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":273,"sourceHtmlUrl":274},"steps-c\u002Fstep-01b-resume.md",3341,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fsteps-c\u002Fstep-01b-resume.md",{"path":276,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":277,"sourceHtmlUrl":278},"steps-c\u002Fstep-02-discover-tests.md",3842,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fsteps-c\u002Fstep-02-discover-tests.md",{"path":280,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":281,"sourceHtmlUrl":282},"steps-c\u002Fstep-03-map-criteria.md",3236,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fsteps-c\u002Fstep-03-map-criteria.md",{"path":284,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":285,"sourceHtmlUrl":286},"steps-c\u002Fstep-04-analyze-gaps.md",21687,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fsteps-c\u002Fstep-04-analyze-gaps.md",{"path":288,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":289,"sourceHtmlUrl":290},"steps-c\u002Fstep-05-gate-decision.md",24238,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fsteps-c\u002Fstep-05-gate-decision.md",{"path":292,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":293,"sourceHtmlUrl":294},"steps-e\u002Fstep-01-assess.md",1253,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fsteps-e\u002Fstep-01-assess.md",{"path":296,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":297,"sourceHtmlUrl":298},"steps-e\u002Fstep-02-apply-edit.md",1475,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fsteps-e\u002Fstep-02-apply-edit.md",{"path":300,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":301,"sourceHtmlUrl":302},"steps-v\u002Fstep-01-validate.md",1793,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fsteps-v\u002Fstep-01-validate.md",{"path":304,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":305,"sourceHtmlUrl":306},"trace-template.md",21429,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Ftrace-template.md",{"path":308,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":309,"sourceHtmlUrl":310},"validation-report-20260127-095021.md",2057,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fvalidation-report-20260127-095021.md",{"path":312,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":313,"sourceHtmlUrl":314},"validation-report-20260127-102401.md",3716,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fvalidation-report-20260127-102401.md",{"path":316,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":317,"sourceHtmlUrl":318},"workflow-plan.md",468,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fworkflow-plan.md",{"path":320,"resourceType":47,"resourceTypeDesc":48,"sizeBytes":321,"sourceHtmlUrl":322},"workflow.yaml",4072,"https:\u002F\u002Fgithub.com\u002FdevelopAgent\u002Fbmad-start\u002Fblob\u002Fmain\u002F.pi\u002Fskills\u002Fbmad-testarch-trace\u002Fworkflow.yaml",[324,338,348,357,363,370],{"skillNo":325,"name":326,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":327,"categories":328,"keywords":334,"publishedAt":18},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[329],{"categoryNo":330,"categoryName":331,"taxonomyType":332,"taxonomyTypeDesc":333},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[335,336,337],"model","model hierarchy","model hierarchy skill",{"skillNo":339,"name":340,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":341,"categories":342,"keywords":344,"publishedAt":18},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[343],{"categoryNo":330,"categoryName":331,"taxonomyType":332,"taxonomyTypeDesc":333},[345,346,347],"MCP","zoom","zoom mcp",{"skillNo":349,"name":350,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":351,"categories":352,"keywords":353,"publishedAt":18},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[354,355,356,346],"sdk","zoom apps sdk","apps",{"skillNo":358,"name":359,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":360,"categories":361,"keywords":362,"publishedAt":18},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[359],{"skillNo":364,"name":365,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":366,"categories":367,"keywords":369,"publishedAt":18},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[368],{"categoryNo":330,"categoryName":331,"taxonomyType":332,"taxonomyTypeDesc":333},[365],{"skillNo":371,"name":372,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":373,"categories":374,"keywords":375,"publishedAt":18},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[372]]