[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6RADMNKPPTZS63V1W0EJG1S":3,"skill-same:01M6RADMNKPPTZS63V1W0EJG1S":79},{"skillNo":4,"name":5,"nameZh":6,"description":7,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":37,"linkOnly":38,"markdownContent":39,"markdownBody":40,"frontMatter":41,"refName":42,"commitSha":43,"skillDirectory":44,"forksCount":45,"repositoryHtmlUrl":46,"repositoryHomepageUrl":6,"ownerHtmlUrl":47,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":48,"install":49,"resources":62},"01M6RADMNKPPTZS63V1W0EJG1S","diagnose-camera-stack",null,"Diagnose HikRobot, MindVision, or USB camera discovery, SDK, streaming, frame, and frame-rate failures in this repository. Use when camera initialization fails, frames are empty, FPS is wrong, or exposure\u002Fgain\u002FVID-PID settings look suspect.","HNUST-Dust\u002FDust_infantry_vision","HNUST-Dust","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F242605597?v=4","01M6RAD8QP9GXRZWD7WEN7KXWZ","01M6RAD8XNF76XNGYHDPX4AV12",5,"MIT","https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fdiagnose-camera-stack\u002FSKILL.md",[],[18,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36],"camera","diagnose camera stack","stack","diagnose","repository","discovery","streaming","settings","use","look","sdk","empty","PID","usb","initialization","frame","Wrong","rate","when","2026-11-10 10:12:30",false,"---\nname: diagnose-camera-stack\ndescription: Diagnose HikRobot, MindVision, or USB camera discovery, SDK, streaming, frame, and frame-rate failures in this repository. Use when camera initialization fails, frames are empty, FPS is wrong, or exposure\u002Fgain\u002FVID-PID settings look suspect.\n---\n\n# Diagnose Camera Stack\n\nUse this skill for camera-only failures. Keep the diagnosis read-only until the user explicitly asks to change a device setting.\n\n## Workflow\n\n1. Establish the exact symptom and whether it reproduces with hardware disconnected. Record the config path, camera name, VID:PID, expected resolution\u002FFPS, and the first error line.\n2. Run `scripts\u002Fcamera_preflight.sh [config]` from the repository root. Treat missing devices, permissions, SDK libraries, and model binaries as separate findings.\n3. Confirm the build before touching hardware:\n   - `cmake --build build-ninja --target camera_test -j$(nproc)`\n   - `cmake --build build-ninja --target camera_detect_test -j$(nproc)`\n   - `.\u002Fbuild-ninja\u002Fcamera_test -h`\n4. Exercise the smallest relevant executable. `camera_test` proves acquisition; `camera_detect_test` adds the detector. Do not jump to `infantry` until both are understood.\n5. Compare observed frame timestamps\u002FFPS and image dimensions with `exposure_ms`, `gain` or `gamma`, `frame_rate`, `camera_name`, and `vid_pid`. For HikRobot also check `\u002Fopt\u002FMVS\u002Flib\u002F64` and `LD_LIBRARY_PATH`; MindVision uses the repository SDK library.\n6. If acquisition is healthy, hand off algorithm symptoms to `$replay-auto-aim`. If the failure is a config\u002Fmodel mismatch, hand off to `$audit-vision-config`.\n\n## Evidence and stop conditions\n\n- Capture command, exit status, stderr, device listing, and the first failing layer. Redact machine-specific serials and private paths when reporting.\n- A successful process start is not proof of streaming. Require non-empty frames and a measured rate.\n- Stop before changing exposure, gain, camera firmware, udev rules, or SDK installation. Ask the user before any privileged or hardware-mutating action.\n- GUI tests need a display. Report `DISPLAY`\u002Fheadless limitations instead of substituting an unverified result.\n\nRead [camera-matrix.md](references\u002Fcamera-matrix.md) for repository-specific facts and expected commands.\n","# Diagnose Camera Stack\n\nUse this skill for camera-only failures. Keep the diagnosis read-only until the user explicitly asks to change a device setting.\n\n## Workflow\n\n1. Establish the exact symptom and whether it reproduces with hardware disconnected. Record the config path, camera name, VID:PID, expected resolution\u002FFPS, and the first error line.\n2. Run `scripts\u002Fcamera_preflight.sh [config]` from the repository root. Treat missing devices, permissions, SDK libraries, and model binaries as separate findings.\n3. Confirm the build before touching hardware:\n   - `cmake --build build-ninja --target camera_test -j$(nproc)`\n   - `cmake --build build-ninja --target camera_detect_test -j$(nproc)`\n   - `.\u002Fbuild-ninja\u002Fcamera_test -h`\n4. Exercise the smallest relevant executable. `camera_test` proves acquisition; `camera_detect_test` adds the detector. Do not jump to `infantry` until both are understood.\n5. Compare observed frame timestamps\u002FFPS and image dimensions with `exposure_ms`, `gain` or `gamma`, `frame_rate`, `camera_name`, and `vid_pid`. For HikRobot also check `\u002Fopt\u002FMVS\u002Flib\u002F64` and `LD_LIBRARY_PATH`; MindVision uses the repository SDK library.\n6. If acquisition is healthy, hand off algorithm symptoms to `$replay-auto-aim`. If the failure is a config\u002Fmodel mismatch, hand off to `$audit-vision-config`.\n\n## Evidence and stop conditions\n\n- Capture command, exit status, stderr, device listing, and the first failing layer. Redact machine-specific serials and private paths when reporting.\n- A successful process start is not proof of streaming. Require non-empty frames and a measured rate.\n- Stop before changing exposure, gain, camera firmware, udev rules, or SDK installation. Ask the user before any privileged or hardware-mutating action.\n- GUI tests need a display. Report `DISPLAY`\u002Fheadless limitations instead of substituting an unverified result.\n\nRead [camera-matrix.md](references\u002Fcamera-matrix.md) for repository-specific facts and expected commands.\n",{"name":5,"description":7},"main","1ce4eeca9e26627f8e445d56f5abf69f372eb3dd",".codex\u002Fskills\u002Fdiagnose-camera-stack",1,"https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision","https:\u002F\u002Fgithub.com\u002FHNUST-Dust","2026-11-13 20:21:39",{"source":8,"skillName":5,"commands":50,"prompt":60,"zipAvailable":61},[51,54,57],{"tool":52,"command":53},"npx","npx skills add HNUST-Dust\u002FDust_infantry_vision --skill diagnose-camera-stack",{"tool":55,"command":56},"bunx","bunx skills add HNUST-Dust\u002FDust_infantry_vision --skill diagnose-camera-stack",{"tool":58,"command":59},"pnpm","pnpm dlx skills add HNUST-Dust\u002FDust_infantry_vision --skill diagnose-camera-stack","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fdiagnose-camera-stack\u002FSKILL.md",true,[63,69,73],{"path":64,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":67,"sourceHtmlUrl":68},"agents\u002Fopenai.yaml","REFERENCE","参考文档",256,"https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fdiagnose-camera-stack\u002Fagents\u002Fopenai.yaml",{"path":70,"resourceType":65,"resourceTypeDesc":66,"sizeBytes":71,"sourceHtmlUrl":72},"references\u002Fcamera-matrix.md",1044,"https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fdiagnose-camera-stack\u002Freferences\u002Fcamera-matrix.md",{"path":74,"resourceType":75,"resourceTypeDesc":76,"sizeBytes":77,"sourceHtmlUrl":78},"scripts\u002Fcamera_preflight.sh","SCRIPT","脚本",2036,"https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fdiagnose-camera-stack\u002Fscripts\u002Fcamera_preflight.sh",[80,105,132,150,167,184],{"skillNo":81,"name":82,"nameZh":6,"description":83,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":84,"categories":85,"keywords":86,"publishedAt":37},"01M6RAEVD39W5QTD1BTNMR8XK3","replay-auto-aim","Reproduce and isolate auto-aim detection, tracking, solving, aiming, and planning issues from recorded video in this repository. Use for false positives, missed armors, tracker state changes, aim jitter, fire decisions, or latency regressions.","https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Freplay-auto-aim\u002FSKILL.md",[],[87,88,89,90,91,92,93,94,95,96,26,97,98,99,100,101,102,22,103,104],"auto","replay","replay auto aim","tracking","changes","for","false","latency","missed","tracker","planning","decisions","jitter","reproduce","Video","detection","issues","state",{"skillNo":106,"name":107,"nameZh":6,"description":108,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":109,"categories":110,"keywords":116,"publishedAt":37},"01M6RAER0Q716PFNKAPVXX7AVC","improve-codebase-architecture","Scan a codebase for deepening opportunities, present them as a visual HTML report, then grill through whichever one you pick.","https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fimprove-codebase-architecture\u002FSKILL.md",[111],{"categoryNo":112,"categoryName":113,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000009","前端开发","SCENARIO","使用场景",[117,118,119,120,121,92,122,123,124,125,126,127,128,129,130,131],"improve codebase architecture","architecture","improve","codebase","deepening","you","as","present","visual","scan","grill","html","pick","html report","report",{"skillNo":133,"name":134,"nameZh":6,"description":135,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":136,"categories":137,"keywords":138,"publishedAt":37},"01M6RAEE88RSKY2HX0WVN67WJN","grill-with-docs","A relentless interview to sharpen a plan or design, which also creates docs (ADR's and glossary) as we go.","https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fgrill-with-docs\u002FSKILL.md",[],[139,140,141,127,123,142,143,144,145,146,147,148,149],"with","docs","grill with docs","which","interview","glossary","adr","sharpen","plan","go","design",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":156,"publishedAt":37},"01M6RAE7BMHJQJRMP79E5AGTNK","diagnosing-bugs","Diagnosis loop for hard bugs and performance regressions. Use when the user says \"diagnose\"\u002F\"debug this\", or reports something broken\u002Fthrowing\u002Ffailing\u002Fslow.","https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fdiagnosing-bugs\u002FSKILL.md",[],[157,158,159,160,21,161,36,92,162,163,26,164,165,166],"diagnosing bugs","bugs","debug","performance","failing","diagnosis","reports","user","broken","loop",{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":173,"publishedAt":37},"01M6RAE1HQRFJ1PQFHK3YX0AKH","diagnose-gimbal-link","Safely diagnose this repository's gimbal serial link, packet framing, CRC, timing, quaternion interpolation, and reconnect behavior. Use for \u002Fdev\u002Fgimbal failures, stale state, CRC errors, dropped packets, or incorrect control data.","https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fdiagnose-gimbal-link\u002FSKILL.md",[],[21,174,175,176,177,92,178,179,180,26,181,182,22,104,183],"link","diagnose gimbal link","control","interpolation","errors","timing","stale","behavior","data","dev",{"skillNo":185,"name":186,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":6,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":198,"publishedAt":37},"01M6RADFJ916YTFCPT88J9DDN9","codebase-design","Shared vocabulary for designing deep modules. Use when the user wants to design or improve a module's interface, find deepening opportunities, decide where a seam goes, make code more testable or AI-navigable, or when another skill needs the deep-module vocabulary.","https:\u002F\u002Fgithub.com\u002FHNUST-Dust\u002FDust_infantry_vision\u002Fblob\u002Fmain\u002F.codex\u002Fskills\u002Fcodebase-design\u002FSKILL.md",[190,193],{"categoryNo":191,"categoryName":192,"taxonomyType":114,"taxonomyTypeDesc":115},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":194,"categoryName":195,"taxonomyType":196,"taxonomyTypeDesc":197},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[199,149,120,200,201,164,26,202,203,119,204,205,92,36,206,121,207,208,209,210],"codebase design","find","decide","modules","code","interface","more","seam","shared","deep","another skill","module"]