[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6CD0JA1WDH0NH3D1BHCGG53":3,"skill-same:01M6CD0JA1WDH0NH3D1BHCGG53":123},{"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":39,"linkOnly":40,"markdownContent":41,"markdownBody":42,"frontMatter":43,"refName":48,"commitSha":49,"skillDirectory":50,"forksCount":51,"repositoryHtmlUrl":52,"repositoryHomepageUrl":6,"ownerHtmlUrl":53,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":54,"install":55,"resources":68},"01M6CD0JA1WDH0NH3D1BHCGG53","ghidra",null,"Reverse engineer binaries using Ghidra's headless analyzer. Start with summary, select functions for decompilation, and reuse retained analysis projects.","cercova-studios\u002F10x-swe","cercova-studios","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F217108198?v=4","01M6CCYGHXTH80N3BXRW6KESTE","Cercova Studios","01M6CCYGPADH5MJDR0VNNR775C",1,"MIT","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002FSKILL.md",[],[5,19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"functions","SWE","for","reverse","headless","analyzer","with","reuse","reverse engineer","summary","patterns","plugin","engineer","select","10x","projects","decompilation","analysis","binary-analysis","start","2026-11-10 10:12:30",false,"---\nname: ghidra\ndescription: Reverse engineer binaries using Ghidra's headless analyzer. Start with\n  summary, select functions for decompilation, and reuse retained analysis projects.\nmetadata:\n  skill-graph-id: plugin\u002F10x-swe\u002Fghidra\n  skill-graph-uses: ''\n  skill-graph-used-by: plugin\u002F10x-swe\u002Fbinary-analysis-patterns\n---\n\n# Ghidra headless analysis\n\nUse for authorized static analysis; this does not execute the target. Start from a concrete question. Summary first, focused metadata\u002Fpseudocode next; bulk export only when justified. Treat decompiler output as a hypothesis, not source or proof of runtime behavior.\n\nResolve `scripts\u002F` relative to this skill directory. Requires installed Ghidra and a compatible native JDK (`JAVA_HOME`). No automatic install. `scripts\u002Ffind-ghidra.sh` checks `GHIDRA_HOME` and known Ghidra directories only, not all of `$HOME`. An invalid explicit `GHIDRA_HOME` fails. Help works without discovery:\n\n```bash\nbash scripts\u002Fghidra-analyze.sh --help\nexport GHIDRA_HOME=\u002Fpath\u002Fto\u002Fghidra\n# Import once and retain analysis; defaults to ExportSummary.java, no decompilation.\nbash scripts\u002Fghidra-analyze.sh --keep-project --project-dir \u002Ftmp\u002Fre-projects --project-name sample -o \u002Ftmp\u002Fre-summary \u002Fpath\u002Fto\u002Fbinary\n# Reuse verified project without auto-analysis or project writes.\nbash scripts\u002Fghidra-analyze.sh --reuse --project-dir \u002Ftmp\u002Fre-projects --project-name sample -s ExportFunctions.java -o \u002Ftmp\u002Fre-functions \u002Fpath\u002Fto\u002Fbinary\nbash scripts\u002Fghidra-analyze.sh --reuse --project-dir \u002Ftmp\u002Fre-projects --project-name sample -s ExportDecompiled.java -a 'name:Namespace::function' -o \u002Ftmp\u002Fre-selected \u002Fpath\u002Fto\u002Fbinary\n# Exact entry address as printed by ExportFunctions (including leading zeros).\nbash scripts\u002Fghidra-analyze.sh --reuse --project-dir \u002Ftmp\u002Fre-projects --project-name sample -s ExportDecompiled.java -a addr:00101000 -o \u002Ftmp\u002Fre-selected \u002Fpath\u002Fto\u002Fbinary\n# Explicit bulk opt-in.\nbash scripts\u002Fghidra-analyze.sh -s ExportAll.java -o \u002Ftmp\u002Fre-bulk \u002Fpath\u002Fto\u002Fbinary\n```\n\n`-s` repeats scripts; each `-a` adds ONE literal argument to the preceding script (repeat it for multiple selectors). Selectors are exact qualified `name:`, exact `addr:`, or explicit `all`. No short-name wildcard matching. Per-selector match counts (including zero) and ambiguous name matches (overloads) are reported in the C artifact; use addresses to disambiguate. Counts are partial if cancelled. Output files with the same program name overwrite earlier exports: use separate output directories to retain different queries.\n\n## Wrapper options and reuse contract\n\n`-o\u002F--output`, `-s\u002F--script`, `-a\u002F--script-args`, `--script-path`, `-p\u002F--processor`, `-c\u002F--cspec`, `--no-analysis`, `--timeout seconds`, `--keep-project`, `--project-dir`, `--project-name`, `--reuse`, `-v\u002F--verbose`, `-h\u002F--help`.\n\nReuse requires the original binary and identical processor\u002Fcompiler\u002Fno-analysis\u002Ftimeout settings, artifact SHA-256, basename, engine location\u002Fapplication properties. A sibling `.identity` file records those inputs after a successful import. Missing\u002Fmismatched identity fails; existing project names cannot be imported over. Default temporary projects are deleted only when created by that invocation; retained\u002Freused projects are not deleted. Reuse uses `-process -noanalysis -readOnly`. Do not manually edit retained projects: the input identity does not detect GUI edits or changes to external analyzer preferences. Choose a new project name when those change. `analysis-identity.txt` accompanies successful output.\n\nGhidra auto-analysis timeout (`--timeout`) does NOT bound post-scripts. Decompilation has a 30-second per-function limit and a 120-second overall decompile budget; bulk may be partial. Other exports\u002Fanalysis are not globally time-bounded. Error-tagged headless output fails the wrapper even if Ghidra returns zero; inspect both logs. A zero exit alone is not evidence all requested facts were discovered.\n\n## Canonical artifacts\n\n| Script | Artifact \u002F scope |\n|---|---|\n| ExportSummary.java | `_summary.txt`: architecture, compiler, function counts, memory sections; default |\n| ExportFunctions.java | `_functions.json`: object with `.functions`, qualified names, address identities, parameters, full discovered caller\u002Fcallee address sets, `cancelled` |\n| ExportCalls.java | `_calls.json`: `.callGraph` keyed by entry address, qualified display `name`, callee address arrays, `cancelled`; `mostCalled` is only top 20, not the full graph |\n| ExportDecompiled.java | `_decompiled.c`: selected pseudocode, per-function failures and final matched\u002Fattempted\u002Fsucceeded\u002Ffailed\u002Fskipped\u002Fcancelled\u002FbudgetExceeded counts |\n| ExportStrings.java | `_strings.json`: defined string-like data only, minimum length 4; untruncated values and `cancelled`, not a raw-byte string scan |\n| ExportSymbols.java | `_symbols.json`: imports, external-entry-point functions (not all public APIs), named symbols; explicit 10,000-symbol truncation marker, `cancelled` |\n| ExportAll.java | Calls all canonical exporters, explicitly selects `all` for decompilation; same schemas as standalone scripts |\n\nCall edges are Ghidra-discovered static relationships, not call-site evidence or complete dynamic dispatch. `cancelled=false` means the export loop completed, not that auto-analysis discovered every function\u002Fstring\u002Fcall. Failed decompilations remain visible; external\u002Fthunk selections are counted as skipped. Check status before claiming absence.\n\n## Verification\n\n```bash\npython3 tests\u002Ftest_wrapper.py  # isolated shell stubs, no Ghidra required\npython3 tests\u002Frun_native.py   # installed Ghidra\u002FJDK, synthetic AArch64 bytes only\n```\n\nNative fixture covers two namespace-qualified functions with the same short name, 55 callees (no hidden edge cap), imported-name versus export visibility, canonical bulk schema, selected name\u002Faddress decompilation, a 1,500-character string, and read-only project reuse. Generated projects\u002Fresults stay in a printed temporary directory. It never executes fixture bytes.\n","# Ghidra headless analysis\n\nUse for authorized static analysis; this does not execute the target. Start from a concrete question. Summary first, focused metadata\u002Fpseudocode next; bulk export only when justified. Treat decompiler output as a hypothesis, not source or proof of runtime behavior.\n\nResolve `scripts\u002F` relative to this skill directory. Requires installed Ghidra and a compatible native JDK (`JAVA_HOME`). No automatic install. `scripts\u002Ffind-ghidra.sh` checks `GHIDRA_HOME` and known Ghidra directories only, not all of `$HOME`. An invalid explicit `GHIDRA_HOME` fails. Help works without discovery:\n\n```bash\nbash scripts\u002Fghidra-analyze.sh --help\nexport GHIDRA_HOME=\u002Fpath\u002Fto\u002Fghidra\n# Import once and retain analysis; defaults to ExportSummary.java, no decompilation.\nbash scripts\u002Fghidra-analyze.sh --keep-project --project-dir \u002Ftmp\u002Fre-projects --project-name sample -o \u002Ftmp\u002Fre-summary \u002Fpath\u002Fto\u002Fbinary\n# Reuse verified project without auto-analysis or project writes.\nbash scripts\u002Fghidra-analyze.sh --reuse --project-dir \u002Ftmp\u002Fre-projects --project-name sample -s ExportFunctions.java -o \u002Ftmp\u002Fre-functions \u002Fpath\u002Fto\u002Fbinary\nbash scripts\u002Fghidra-analyze.sh --reuse --project-dir \u002Ftmp\u002Fre-projects --project-name sample -s ExportDecompiled.java -a 'name:Namespace::function' -o \u002Ftmp\u002Fre-selected \u002Fpath\u002Fto\u002Fbinary\n# Exact entry address as printed by ExportFunctions (including leading zeros).\nbash scripts\u002Fghidra-analyze.sh --reuse --project-dir \u002Ftmp\u002Fre-projects --project-name sample -s ExportDecompiled.java -a addr:00101000 -o \u002Ftmp\u002Fre-selected \u002Fpath\u002Fto\u002Fbinary\n# Explicit bulk opt-in.\nbash scripts\u002Fghidra-analyze.sh -s ExportAll.java -o \u002Ftmp\u002Fre-bulk \u002Fpath\u002Fto\u002Fbinary\n```\n\n`-s` repeats scripts; each `-a` adds ONE literal argument to the preceding script (repeat it for multiple selectors). Selectors are exact qualified `name:`, exact `addr:`, or explicit `all`. No short-name wildcard matching. Per-selector match counts (including zero) and ambiguous name matches (overloads) are reported in the C artifact; use addresses to disambiguate. Counts are partial if cancelled. Output files with the same program name overwrite earlier exports: use separate output directories to retain different queries.\n\n## Wrapper options and reuse contract\n\n`-o\u002F--output`, `-s\u002F--script`, `-a\u002F--script-args`, `--script-path`, `-p\u002F--processor`, `-c\u002F--cspec`, `--no-analysis`, `--timeout seconds`, `--keep-project`, `--project-dir`, `--project-name`, `--reuse`, `-v\u002F--verbose`, `-h\u002F--help`.\n\nReuse requires the original binary and identical processor\u002Fcompiler\u002Fno-analysis\u002Ftimeout settings, artifact SHA-256, basename, engine location\u002Fapplication properties. A sibling `.identity` file records those inputs after a successful import. Missing\u002Fmismatched identity fails; existing project names cannot be imported over. Default temporary projects are deleted only when created by that invocation; retained\u002Freused projects are not deleted. Reuse uses `-process -noanalysis -readOnly`. Do not manually edit retained projects: the input identity does not detect GUI edits or changes to external analyzer preferences. Choose a new project name when those change. `analysis-identity.txt` accompanies successful output.\n\nGhidra auto-analysis timeout (`--timeout`) does NOT bound post-scripts. Decompilation has a 30-second per-function limit and a 120-second overall decompile budget; bulk may be partial. Other exports\u002Fanalysis are not globally time-bounded. Error-tagged headless output fails the wrapper even if Ghidra returns zero; inspect both logs. A zero exit alone is not evidence all requested facts were discovered.\n\n## Canonical artifacts\n\n| Script | Artifact \u002F scope |\n|---|---|\n| ExportSummary.java | `_summary.txt`: architecture, compiler, function counts, memory sections; default |\n| ExportFunctions.java | `_functions.json`: object with `.functions`, qualified names, address identities, parameters, full discovered caller\u002Fcallee address sets, `cancelled` |\n| ExportCalls.java | `_calls.json`: `.callGraph` keyed by entry address, qualified display `name`, callee address arrays, `cancelled`; `mostCalled` is only top 20, not the full graph |\n| ExportDecompiled.java | `_decompiled.c`: selected pseudocode, per-function failures and final matched\u002Fattempted\u002Fsucceeded\u002Ffailed\u002Fskipped\u002Fcancelled\u002FbudgetExceeded counts |\n| ExportStrings.java | `_strings.json`: defined string-like data only, minimum length 4; untruncated values and `cancelled`, not a raw-byte string scan |\n| ExportSymbols.java | `_symbols.json`: imports, external-entry-point functions (not all public APIs), named symbols; explicit 10,000-symbol truncation marker, `cancelled` |\n| ExportAll.java | Calls all canonical exporters, explicitly selects `all` for decompilation; same schemas as standalone scripts |\n\nCall edges are Ghidra-discovered static relationships, not call-site evidence or complete dynamic dispatch. `cancelled=false` means the export loop completed, not that auto-analysis discovered every function\u002Fstring\u002Fcall. Failed decompilations remain visible; external\u002Fthunk selections are counted as skipped. Check status before claiming absence.\n\n## Verification\n\n```bash\npython3 tests\u002Ftest_wrapper.py  # isolated shell stubs, no Ghidra required\npython3 tests\u002Frun_native.py   # installed Ghidra\u002FJDK, synthetic AArch64 bytes only\n```\n\nNative fixture covers two namespace-qualified functions with the same short name, 55 callees (no hidden edge cap), imported-name versus export visibility, canonical bulk schema, selected name\u002Faddress decompilation, a 1,500-character string, and read-only project reuse. Generated projects\u002Fresults stay in a printed temporary directory. It never executes fixture bytes.\n",{"name":5,"metadata":44,"description":7},{"skill-graph-id":45,"skill-graph-uses":46,"skill-graph-used-by":47},"plugin\u002F10x-swe\u002Fghidra","","plugin\u002F10x-swe\u002Fbinary-analysis-patterns","main","12441d84a8a292fcc94f47bc98877cbefd9b52e2","plugins\u002F10x-swe\u002Fskills\u002Fghidra",0,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe","https:\u002F\u002Fgithub.com\u002Fcercova-studios","2026-11-12 07:39:44",{"source":8,"skillName":5,"commands":56,"prompt":66,"zipAvailable":67},[57,60,63],{"tool":58,"command":59},"npx","npx skills add cercova-studios\u002F10x-swe --skill ghidra",{"tool":61,"command":62},"bunx","bunx skills add cercova-studios\u002F10x-swe --skill ghidra",{"tool":64,"command":65},"pnpm","pnpm dlx skills add cercova-studios\u002F10x-swe --skill ghidra","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002FSKILL.md",true,[69,75,79,83,87,91,95,99,103,107,111,115,119],{"path":70,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":73,"sourceHtmlUrl":74},"scripts\u002Ffind-ghidra.sh","SCRIPT","脚本",1429,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Fscripts\u002Ffind-ghidra.sh",{"path":76,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":77,"sourceHtmlUrl":78},"scripts\u002Fghidra_scripts\u002FExportAll.java",483,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Fscripts\u002Fghidra_scripts\u002FExportAll.java",{"path":80,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":81,"sourceHtmlUrl":82},"scripts\u002Fghidra_scripts\u002FExportCalls.java",5497,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Fscripts\u002Fghidra_scripts\u002FExportCalls.java",{"path":84,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":85,"sourceHtmlUrl":86},"scripts\u002Fghidra_scripts\u002FExportDecompiled.java",5282,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Fscripts\u002Fghidra_scripts\u002FExportDecompiled.java",{"path":88,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":89,"sourceHtmlUrl":90},"scripts\u002Fghidra_scripts\u002FExportFunctions.java",4850,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Fscripts\u002Fghidra_scripts\u002FExportFunctions.java",{"path":92,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":93,"sourceHtmlUrl":94},"scripts\u002Fghidra_scripts\u002FExportStrings.java",4500,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Fscripts\u002Fghidra_scripts\u002FExportStrings.java",{"path":96,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":97,"sourceHtmlUrl":98},"scripts\u002Fghidra_scripts\u002FExportSummary.java",2600,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Fscripts\u002Fghidra_scripts\u002FExportSummary.java",{"path":100,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":101,"sourceHtmlUrl":102},"scripts\u002Fghidra_scripts\u002FExportSymbols.java",5820,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Fscripts\u002Fghidra_scripts\u002FExportSymbols.java",{"path":104,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":105,"sourceHtmlUrl":106},"scripts\u002Fghidra-analyze.sh",8342,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Fscripts\u002Fghidra-analyze.sh",{"path":108,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":109,"sourceHtmlUrl":110},"tests\u002Fcheck_exports.py",1020,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Ftests\u002Fcheck_exports.py",{"path":112,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":113,"sourceHtmlUrl":114},"tests\u002FRepairFixture.java",1420,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Ftests\u002FRepairFixture.java",{"path":116,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":117,"sourceHtmlUrl":118},"tests\u002Frun_native.py",1211,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Ftests\u002Frun_native.py",{"path":120,"resourceType":71,"resourceTypeDesc":72,"sizeBytes":121,"sourceHtmlUrl":122},"tests\u002Ftest_wrapper.py",3307,"https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fghidra\u002Ftests\u002Ftest_wrapper.py",[124,163,200,220,238,250],{"skillNo":125,"name":126,"nameZh":6,"description":127,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":128,"licenseFileUrl":129,"sourceHtmlUrl":130,"categories":131,"keywords":137,"publishedAt":39},"01M6CD3T6EQ9N5KPNXCM6ABHVA","turnstile-spin","Set up Cloudflare Turnstile end-to-end in a project. Scan the codebase, create the widget via the Cloudflare API, embed it where user requests need bot verification (form submissions, SPA actions, API endpoints, download links, comment or vote submissions, etc.), wire canonical server-side siteverify in the customer's existing backend, validate, and persist the skill. Load this when a user asks to add Turnstile, set up CAPTCHA, protect a form or endpoint from bots, or fix a Turnstile integration. Uses Cloudflare's documented Turnstile contract.","Apache-2.0","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fturnstile-spin\u002FLICENSE","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Fturnstile-spin\u002FSKILL.md",[132],{"categoryNo":133,"categoryName":134,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000010","后端与接口","SCENARIO","使用场景",[138,139,140,141,142,143,144,145,146,147,148,149,150,151,30,152,153,154,155,156,157,158,159,160,161,20,162],"turnstile spin","SET","nextjs","actions","up","fix","cloudflare","bot","api","permissions","create","astro","server","verification","endpoints","customer","backend","sveltekit","integration","app","bots","spa","project","end","when",{"skillNo":164,"name":165,"nameZh":6,"description":166,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":128,"licenseFileUrl":167,"sourceHtmlUrl":168,"categories":169,"keywords":181,"publishedAt":39},"01M6CD0BJYRNV610HYYPX933RE","frontend-design","Create distinctive, production-grade frontend interfaces with high design quality. Use this skill when the user asks to build web components, pages, or applications. Generates creative, polished code that avoids generic AI aesthetics.","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Ffrontend-design\u002FLICENSE.txt","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002F10x-swe\u002Fskills\u002Ffrontend-design\u002FSKILL.md",[170,173,176],{"categoryNo":171,"categoryName":172,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000009","前端开发",{"categoryNo":174,"categoryName":175,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000015","视觉设计",{"categoryNo":177,"categoryName":178,"taxonomyType":179,"taxonomyTypeDesc":180},"01JBSEEDCAT000000000000032","设计师","PROFESSION","适用职业",[182,183,184,148,185,186,187,188,189,190,191,192,193,194,195,196,197,162,25,198,199],"frontend design","frontend","design","web","quality","applications","creative","web components","Production","use","code","components","user","generic","aesthetics","pages","high","build",{"skillNo":201,"name":202,"nameZh":6,"description":203,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":204,"categories":205,"keywords":206,"publishedAt":39},"01M6CD4QX8C4DST98AY21HEYCM","source-insights","Prepare inspected source evidence, preserve exact citations, and publish reviewed insights into an explicit local library.","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002Fknowledge\u002Fskills\u002Fsource-insights\u002FSKILL.md",[],[207,208,209,210,211,212,213,214,215,216,217,218,219],"source insights","insights","source","publish","Citations","evidence","library","workflows","prepare","session","global","local","preserve",{"skillNo":221,"name":222,"nameZh":6,"description":223,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":224,"categories":225,"keywords":229,"publishedAt":39},"01M6CD4N1HVNC1EXPEBZT7YS31","skill-graph","Discover skills and workflows through independent lexical search, relationship paths and a terminal graph.","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002Fknowledge\u002Fskills\u002Fskill-graph\u002FSKILL.md",[226],{"categoryNo":227,"categoryName":228,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000023","Skill与智能体开发",[230,231,30,214,232,33,233,217,234,235,236,20,237],"graph","skill graph","terminal","search","discover skills","discover","paths","relationship",{"skillNo":239,"name":240,"nameZh":6,"description":241,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":242,"categories":243,"keywords":244,"publishedAt":39},"01M6CD4HQKXNZ57YEGD8QVK6Z6","session-search","Recall public session turns with exact provenance, bounded excerpts and independent piped exports.","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002Fknowledge\u002Fskills\u002Fsession-search\u002FSKILL.md",[],[233,216,245,246,214,247,248,217,25,208,209,249],"session search","public","provenance","recall","bounded",{"skillNo":251,"name":252,"nameZh":6,"description":253,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":254,"categories":255,"keywords":262,"publishedAt":39},"01M6CD4ET7DVNBYPDAMAYMSK2T","newsletter","Produce a private local AI newsletter from bounded public research, with cited deep dives, HTML\u002FMarkdown output, Dagu scheduling and seven-day retention.","https:\u002F\u002Fgithub.com\u002Fcercova-studios\u002F10x-swe\u002Fblob\u002Fmain\u002Fplugins\u002Fknowledge\u002Fskills\u002Fnewsletter\u002FSKILL.md",[256,259],{"categoryNo":257,"categoryName":258,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000005","邮件与沟通",{"categoryNo":260,"categoryName":261,"taxonomyType":135,"taxonomyTypeDesc":136},"01JBSEEDCAT000000000000021","资料检索与研究",[252,263,264,265,266,246,214,267,268,269,270,217,25,271,272,218,249,273],"local ai","dagu","produce","research","markdown","scheduling","html","daily","deep","retention","output"]