[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6J1KQJ9QC2GFDQ8942RTDMD":3,"skill-same:01M6J1KQJ9QC2GFDQ8942RTDMD":106},{"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":44,"linkOnly":45,"markdownContent":46,"markdownBody":47,"frontMatter":48,"refName":49,"commitSha":50,"skillDirectory":51,"forksCount":52,"repositoryHtmlUrl":53,"repositoryHomepageUrl":54,"ownerHtmlUrl":55,"ownerBlogUrl":6,"ownerDescription":56,"updatedAt":57,"install":58,"resources":71},"01M6J1KQJ9QC2GFDQ8942RTDMD","security-ownership-map",null,"Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV\u002FJSON for graph databases and visualization. Trigger only when the user explicitly wants a security-oriented ownership or bus-factor analysis grounded in git history (for example: orphaned sensitive code, security maintainers, CODEOWNERS reality checks for risk, sensitive hotspots, or ownership clusters). Do not trigger for general maintainer lists or non-security ownership questions.","sampleXbro\u002Fagentsmesh","sampleXbro","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F55853222?v=4","01M6J1A11VAS9QEE92CHHMBCKC","Serhii Zhabskyi","01M6J1A16FCGNMMABYE0P6SNTF",29,"MIT","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002FSKILL.md",[18],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},"01JBSEEDCAT000000000000030","开发工程师","PROFESSION","适用职业",[24,25,26,27,28,29,30,31,32,33,34,35,36,37,38,39,40,41,42,43],"ownership","security ownership map","map","security","export","factor analysis","people","factor","graph databases","do","databases","only","bus factor","analyze","analysis","topology","graph","git","code","visualization","2026-11-10 10:12:30",false,"---\nname: security-ownership-map\ndescription: \"Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV\u002FJSON for graph databases and visualization. Trigger only when the user explicitly wants a security-oriented ownership or bus-factor analysis grounded in git history (for example: orphaned sensitive code, security maintainers, CODEOWNERS reality checks for risk, sensitive hotspots, or ownership clusters). Do not trigger for general maintainer lists or non-security ownership questions.\"\n---\n\n## Purpose\n\n# Security Ownership Map\n\n## Overview\n\nBuild a bipartite graph of people and files from git history, then compute ownership risk and export graph artifacts for Neo4j\u002FGephi. Also build a file co-change graph (Jaccard similarity on shared commits) to cluster files by how they move together while ignoring large, noisy commits.\n\n## Requirements\n\n- Python 3\n- `networkx` (required; community detection is enabled by default)\n\nInstall with:\n\n```bash\npip install networkx\n```\n\n## Workflow\n\n1. Scope the repo and time window (optional `--since\u002F--until`).\n2. Decide sensitivity rules (use defaults or provide a CSV config).\n3. Build the ownership map with `.\u002Fscripts\u002Frun_ownership_map.py` (co-change graph is on by default; use `--cochange-max-files` to ignore supernode commits).\n4. Communities are computed by default; graphml output is optional (`--graphml`).\n5. Query the outputs with `.\u002Fscripts\u002Fquery_ownership.py` for bounded JSON slices.\n6. Persist and visualize (see `.\u002Freferences\u002Fneo4j-import.md`).\n\nBy default, the co-change graph ignores common “glue” files (lockfiles, `.github\u002F*`, editor config) so clusters reflect actual code movement instead of shared infra edits. Override with `--cochange-exclude` or `--no-default-cochange-excludes`. Dependabot commits are excluded by default; override with `--no-default-author-excludes` or add patterns via `--author-exclude-regex`.\n\nIf you want to exclude Linux build glue like `Kbuild` from co-change clustering, pass:\n\n```bash\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Frun_ownership_map.py \\\n  --repo \u002Fpath\u002Fto\u002Flinux \\\n  --out ownership-map-out \\\n  --cochange-exclude \"**\u002FKbuild\"\n```\n\n## Quick start\n\nRun from the repo root:\n\n```bash\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Frun_ownership_map.py \\\n  --repo . \\\n  --out ownership-map-out \\\n  --since \"12 months ago\" \\\n  --emit-commits\n```\n\nDefaults: author identity, author date, and merge commits excluded. Use `--identity committer`, `--date-field committer`, or `--include-merges` if needed.\n\nExample (override co-change excludes):\n\n```bash\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Frun_ownership_map.py \\\n  --repo . \\\n  --out ownership-map-out \\\n  --cochange-exclude \"**\u002FCargo.lock\" \\\n  --cochange-exclude \"**\u002F.github\u002F**\" \\\n  --no-default-cochange-excludes\n```\n\nCommunities are computed by default. To disable:\n\n```bash\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Frun_ownership_map.py \\\n  --repo . \\\n  --out ownership-map-out \\\n  --no-communities\n```\n\n## Sensitivity rules\n\nBy default, the script flags common auth\u002Fcrypto\u002Fsecret paths. Override by providing a CSV file:\n\n```\n# pattern,tag,weight\n**\u002Fauth\u002F**,auth,1.0\n**\u002Fcrypto\u002F**,crypto,1.0\n**\u002F*.pem,secrets,1.0\n```\n\nUse it with `--sensitive-config path\u002Fto\u002Fsensitive.csv`.\n\n## Output artifacts\n\n`ownership-map-out\u002F` contains:\n\n- `people.csv` (nodes: people)\n- `files.csv` (nodes: files)\n- `edges.csv` (edges: touches)\n- `cochange_edges.csv` (file-to-file co-change edges with Jaccard weight; omitted with `--no-cochange`)\n- `summary.json` (security ownership findings)\n- `commits.jsonl` (optional, if `--emit-commits`)\n- `communities.json` (computed by default from co-change edges when available; includes `maintainers` per community; disable with `--no-communities`)\n- `cochange.graph.json` (NetworkX node-link JSON with `community_id` + `community_maintainers`; falls back to `ownership.graph.json` if no co-change edges)\n- `ownership.graphml` \u002F `cochange.graphml` (optional, if `--graphml`)\n\n`people.csv` includes timezone detection based on author commit offsets: `primary_tz_offset`, `primary_tz_minutes`, and `timezone_offsets`.\n\n## LLM query helper\n\nUse `.\u002Fscripts\u002Fquery_ownership.py` to return small, JSON-bounded slices without loading the full graph into context.\n\nExamples:\n\n```bash\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out people --limit 10\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out files --tag auth --bus-factor-max 1\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out person --person alice@corp --limit 10\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out file --file crypto\u002Ftls\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out cochange --file crypto\u002Ftls --limit 10\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out summary --section orphaned_sensitive_code\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out community --id 3\n```\n\nUse `--community-top-owners 5` (default) to control how many maintainers are stored per community.\n\n## Basic security queries\n\nRun these to answer common security ownership questions with bounded output:\n\n```bash\n# Orphaned sensitive code (stale + low bus factor)\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out summary --section orphaned_sensitive_code\n\n# Hidden owners for sensitive tags\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out summary --section hidden_owners\n\n# Sensitive hotspots with low bus factor\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out summary --section bus_factor_hotspots\n\n# Auth\u002Fcrypto files with bus factor \u003C= 1\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out files --tag auth --bus-factor-max 1\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out files --tag crypto --bus-factor-max 1\n\n# Who is touching sensitive code the most\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out people --sort sensitive_touches --limit 10\n\n# Co-change neighbors (cluster hints for ownership drift)\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out cochange --file path\u002Fto\u002Ffile --min-jaccard 0.05 --limit 20\n\n# Community maintainers (for a cluster)\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out community --id 3\n\n# Monthly maintainers for the community containing a file\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fcommunity_maintainers.py \\\n  --data-dir ownership-map-out \\\n  --file network\u002Fcard.c \\\n  --since 2025-01-01 \\\n  --top 5\n\n# Quarterly buckets instead of monthly\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fcommunity_maintainers.py \\\n  --data-dir ownership-map-out \\\n  --file network\u002Fcard.c \\\n  --since 2025-01-01 \\\n  --bucket quarter \\\n  --top 5\n```\n\nNotes:\n- Touches default to one authored commit (not per-file). Use `--touch-mode file` to count per-file touches.\n- Use `--window-days 90` or `--weight recency --half-life-days 180` to smooth churn.\n- Filter bots with `--ignore-author-regex '(bot|dependabot)'`.\n- Use `--min-share 0.1` to show stable maintainers only.\n- Use `--bucket quarter` for calendar quarter groupings.\n- Use `--identity committer` or `--date-field committer` to switch from author attribution.\n- Use `--include-merges` to include merge commits (excluded by default).\n\n### Summary format (default)\n\nUse this structure, add fields if needed:\n\n```json\n{\n  \"orphaned_sensitive_code\": [\n    {\n      \"path\": \"crypto\u002Ftls\u002Fhandshake.rs\",\n      \"last_security_touch\": \"2023-03-12T18:10:04+00:00\",\n      \"bus_factor\": 1\n    }\n  ],\n  \"hidden_owners\": [\n    {\n      \"person\": \"alice@corp\",\n      \"controls\": \"63% of auth code\"\n    }\n  ]\n}\n```\n\n## Graph persistence\n\nUse `.\u002Freferences\u002Fneo4j-import.md` when you need to load the CSVs into Neo4j. It includes constraints, import Cypher, and visualization tips.\n\n## Notes\n\n- `bus_factor_hotspots` in `summary.json` lists sensitive files with low bus factor; `orphaned_sensitive_code` is the stale subset.\n- If `git log` is too large, narrow with `--since` or `--until`.\n- Compare `summary.json` against CODEOWNERS to highlight ownership drift.","## Purpose\n\n# Security Ownership Map\n\n## Overview\n\nBuild a bipartite graph of people and files from git history, then compute ownership risk and export graph artifacts for Neo4j\u002FGephi. Also build a file co-change graph (Jaccard similarity on shared commits) to cluster files by how they move together while ignoring large, noisy commits.\n\n## Requirements\n\n- Python 3\n- `networkx` (required; community detection is enabled by default)\n\nInstall with:\n\n```bash\npip install networkx\n```\n\n## Workflow\n\n1. Scope the repo and time window (optional `--since\u002F--until`).\n2. Decide sensitivity rules (use defaults or provide a CSV config).\n3. Build the ownership map with `.\u002Fscripts\u002Frun_ownership_map.py` (co-change graph is on by default; use `--cochange-max-files` to ignore supernode commits).\n4. Communities are computed by default; graphml output is optional (`--graphml`).\n5. Query the outputs with `.\u002Fscripts\u002Fquery_ownership.py` for bounded JSON slices.\n6. Persist and visualize (see `.\u002Freferences\u002Fneo4j-import.md`).\n\nBy default, the co-change graph ignores common “glue” files (lockfiles, `.github\u002F*`, editor config) so clusters reflect actual code movement instead of shared infra edits. Override with `--cochange-exclude` or `--no-default-cochange-excludes`. Dependabot commits are excluded by default; override with `--no-default-author-excludes` or add patterns via `--author-exclude-regex`.\n\nIf you want to exclude Linux build glue like `Kbuild` from co-change clustering, pass:\n\n```bash\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Frun_ownership_map.py \\\n  --repo \u002Fpath\u002Fto\u002Flinux \\\n  --out ownership-map-out \\\n  --cochange-exclude \"**\u002FKbuild\"\n```\n\n## Quick start\n\nRun from the repo root:\n\n```bash\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Frun_ownership_map.py \\\n  --repo . \\\n  --out ownership-map-out \\\n  --since \"12 months ago\" \\\n  --emit-commits\n```\n\nDefaults: author identity, author date, and merge commits excluded. Use `--identity committer`, `--date-field committer`, or `--include-merges` if needed.\n\nExample (override co-change excludes):\n\n```bash\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Frun_ownership_map.py \\\n  --repo . \\\n  --out ownership-map-out \\\n  --cochange-exclude \"**\u002FCargo.lock\" \\\n  --cochange-exclude \"**\u002F.github\u002F**\" \\\n  --no-default-cochange-excludes\n```\n\nCommunities are computed by default. To disable:\n\n```bash\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Frun_ownership_map.py \\\n  --repo . \\\n  --out ownership-map-out \\\n  --no-communities\n```\n\n## Sensitivity rules\n\nBy default, the script flags common auth\u002Fcrypto\u002Fsecret paths. Override by providing a CSV file:\n\n```\n# pattern,tag,weight\n**\u002Fauth\u002F**,auth,1.0\n**\u002Fcrypto\u002F**,crypto,1.0\n**\u002F*.pem,secrets,1.0\n```\n\nUse it with `--sensitive-config path\u002Fto\u002Fsensitive.csv`.\n\n## Output artifacts\n\n`ownership-map-out\u002F` contains:\n\n- `people.csv` (nodes: people)\n- `files.csv` (nodes: files)\n- `edges.csv` (edges: touches)\n- `cochange_edges.csv` (file-to-file co-change edges with Jaccard weight; omitted with `--no-cochange`)\n- `summary.json` (security ownership findings)\n- `commits.jsonl` (optional, if `--emit-commits`)\n- `communities.json` (computed by default from co-change edges when available; includes `maintainers` per community; disable with `--no-communities`)\n- `cochange.graph.json` (NetworkX node-link JSON with `community_id` + `community_maintainers`; falls back to `ownership.graph.json` if no co-change edges)\n- `ownership.graphml` \u002F `cochange.graphml` (optional, if `--graphml`)\n\n`people.csv` includes timezone detection based on author commit offsets: `primary_tz_offset`, `primary_tz_minutes`, and `timezone_offsets`.\n\n## LLM query helper\n\nUse `.\u002Fscripts\u002Fquery_ownership.py` to return small, JSON-bounded slices without loading the full graph into context.\n\nExamples:\n\n```bash\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out people --limit 10\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out files --tag auth --bus-factor-max 1\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out person --person alice@corp --limit 10\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out file --file crypto\u002Ftls\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out cochange --file crypto\u002Ftls --limit 10\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out summary --section orphaned_sensitive_code\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out community --id 3\n```\n\nUse `--community-top-owners 5` (default) to control how many maintainers are stored per community.\n\n## Basic security queries\n\nRun these to answer common security ownership questions with bounded output:\n\n```bash\n# Orphaned sensitive code (stale + low bus factor)\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out summary --section orphaned_sensitive_code\n\n# Hidden owners for sensitive tags\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out summary --section hidden_owners\n\n# Sensitive hotspots with low bus factor\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out summary --section bus_factor_hotspots\n\n# Auth\u002Fcrypto files with bus factor \u003C= 1\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out files --tag auth --bus-factor-max 1\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out files --tag crypto --bus-factor-max 1\n\n# Who is touching sensitive code the most\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out people --sort sensitive_touches --limit 10\n\n# Co-change neighbors (cluster hints for ownership drift)\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out cochange --file path\u002Fto\u002Ffile --min-jaccard 0.05 --limit 20\n\n# Community maintainers (for a cluster)\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py --data-dir ownership-map-out community --id 3\n\n# Monthly maintainers for the community containing a file\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fcommunity_maintainers.py \\\n  --data-dir ownership-map-out \\\n  --file network\u002Fcard.c \\\n  --since 2025-01-01 \\\n  --top 5\n\n# Quarterly buckets instead of monthly\npython skills\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fcommunity_maintainers.py \\\n  --data-dir ownership-map-out \\\n  --file network\u002Fcard.c \\\n  --since 2025-01-01 \\\n  --bucket quarter \\\n  --top 5\n```\n\nNotes:\n- Touches default to one authored commit (not per-file). Use `--touch-mode file` to count per-file touches.\n- Use `--window-days 90` or `--weight recency --half-life-days 180` to smooth churn.\n- Filter bots with `--ignore-author-regex '(bot|dependabot)'`.\n- Use `--min-share 0.1` to show stable maintainers only.\n- Use `--bucket quarter` for calendar quarter groupings.\n- Use `--identity committer` or `--date-field committer` to switch from author attribution.\n- Use `--include-merges` to include merge commits (excluded by default).\n\n### Summary format (default)\n\nUse this structure, add fields if needed:\n\n```json\n{\n  \"orphaned_sensitive_code\": [\n    {\n      \"path\": \"crypto\u002Ftls\u002Fhandshake.rs\",\n      \"last_security_touch\": \"2023-03-12T18:10:04+00:00\",\n      \"bus_factor\": 1\n    }\n  ],\n  \"hidden_owners\": [\n    {\n      \"person\": \"alice@corp\",\n      \"controls\": \"63% of auth code\"\n    }\n  ]\n}\n```\n\n## Graph persistence\n\nUse `.\u002Freferences\u002Fneo4j-import.md` when you need to load the CSVs into Neo4j. It includes constraints, import Cypher, and visualization tips.\n\n## Notes\n\n- `bus_factor_hotspots` in `summary.json` lists sensitive files with low bus factor; `orphaned_sensitive_code` is the stale subset.\n- If `git log` is too large, narrow with `--since` or `--until`.\n- Compare `summary.json` against CODEOWNERS to highlight ownership drift.",{"name":5,"description":7},"master","2a22abcae4e5677b6e385b5a0e144c48baac4a94",".agents\u002Fskills\u002Fsecurity-ownership-map",7,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh","https:\u002F\u002Fsamplexbro.github.io\u002Fagentsmesh\u002F","https:\u002F\u002Fgithub.com\u002FsampleXbro","Senior Software Engineer · React · TypeScript · Next.js · Smart TV specialist (Tizen, webOS, Android TV)","2026-11-06 03:06:21",{"source":8,"skillName":5,"commands":59,"prompt":69,"zipAvailable":70},[60,63,66],{"tool":61,"command":62},"npx","npx skills add sampleXbro\u002Fagentsmesh --skill security-ownership-map",{"tool":64,"command":65},"bunx","bunx skills add sampleXbro\u002Fagentsmesh --skill security-ownership-map",{"tool":67,"command":68},"pnpm","pnpm dlx skills add sampleXbro\u002Fagentsmesh --skill security-ownership-map","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002FSKILL.md",true,[72,78,84,88,94,98,102],{"path":73,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":76,"sourceHtmlUrl":77},"agents\u002Fopenai.yaml","REFERENCE","参考文档",253,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Fagents\u002Fopenai.yaml",{"path":79,"resourceType":80,"resourceTypeDesc":81,"sizeBytes":82,"sourceHtmlUrl":83},"LICENSE.txt","LICENSE","许可证",10776,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002FLICENSE.txt",{"path":85,"resourceType":74,"resourceTypeDesc":75,"sizeBytes":86,"sourceHtmlUrl":87},"references\u002Fneo4j-import.md",2428,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Freferences\u002Fneo4j-import.md",{"path":89,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":92,"sourceHtmlUrl":93},"scripts\u002Fbuild_ownership_map.py","SCRIPT","脚本",34330,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fbuild_ownership_map.py",{"path":95,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":96,"sourceHtmlUrl":97},"scripts\u002Fcommunity_maintainers.py",18122,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fcommunity_maintainers.py",{"path":99,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":100,"sourceHtmlUrl":101},"scripts\u002Fquery_ownership.py",17991,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py",{"path":103,"resourceType":90,"resourceTypeDesc":91,"sizeBytes":104,"sourceHtmlUrl":105},"scripts\u002Frun_ownership_map.py",5890,"https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Frun_ownership_map.py",[107,123,139,161,167,185],{"skillNo":108,"name":109,"nameZh":6,"description":110,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":111,"categories":112,"keywords":118,"publishedAt":44},"01M6J2GJ4NDEPJND2GAXN0VPRB","research","Research docs and summarize decisions","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Fwindsurf-project\u002F.windsurf\u002Fskills\u002Fresearch\u002FSKILL.md",[113],{"categoryNo":114,"categoryName":115,"taxonomyType":116,"taxonomyTypeDesc":117},"01JBSEEDCAT000000000000021","资料检索与研究","SCENARIO","使用场景",[109,119,120,121,122],"docs","summarize","decisions","research docs",{"skillNo":124,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":127,"categories":128,"keywords":132,"publishedAt":44},"01M6J2GF8WQVFP75AMJWV7YM50","debugging","Systematic debugging workflow for production failures and test regressions.","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Fwarp-project\u002F.warp\u002Fskills\u002Fdebugging\u002FSKILL.md",[129],{"categoryNo":130,"categoryName":131,"taxonomyType":116,"taxonomyTypeDesc":117},"01JBSEEDCAT000000000000023","Skill与智能体开发",[125,133,134,135,136,137,138],"systematic debugging","workflow","test","Production","systematic","for",{"skillNo":140,"name":141,"nameZh":6,"description":142,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":143,"categories":144,"keywords":150,"publishedAt":44},"01M6J2GAQRCM0KV565J63STPWB","api-generator","Generate REST API endpoints with validation and tests","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Ftrae-project\u002F.trae\u002Fskills\u002Fapi-generator\u002FSKILL.md",[145,148,149],{"categoryNo":146,"categoryName":147,"taxonomyType":116,"taxonomyTypeDesc":117},"01JBSEEDCAT000000000000010","后端与接口",{"categoryNo":130,"categoryName":131,"taxonomyType":116,"taxonomyTypeDesc":117},{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[151,152,153,154,155,156,157,158,159,160],"api","api generator","generator","REST","endpoints","rest api","tests","with","validation","generate",{"skillNo":162,"name":125,"nameZh":6,"description":126,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":163,"categories":164,"keywords":166,"publishedAt":44},"01M6J2G7VF3A2EGK5YBR4BM9KS","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Frovodev-project\u002F.rovodev\u002Fskills\u002Fdebugging\u002FSKILL.md",[165],{"categoryNo":130,"categoryName":131,"taxonomyType":116,"taxonomyTypeDesc":117},[125,138,134,135,133,136,137],{"skillNo":168,"name":169,"nameZh":6,"description":170,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":171,"categories":172,"keywords":174,"publishedAt":44},"01M6J2G4VHBHSPXGVQRZCH8CDW","typescript-pro","Apply advanced TypeScript patterns including conditional types, template literal types, and mapped types","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Froo-code-project\u002F.roo\u002Fskills\u002Ftypescript-pro\u002FSKILL.md",[173],{"categoryNo":19,"categoryName":20,"taxonomyType":21,"taxonomyTypeDesc":22},[175,176,177,178,42,179,180,181,182,183,184],"typescript","typescript pro","pro","patterns","architect","template","typescript patterns","Literal","types","advanced",{"skillNo":186,"name":125,"nameZh":6,"description":187,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":188,"categories":189,"keywords":191,"publishedAt":44},"01M6J2G2133FJ5SAHK9WX4YVNV","Systematic debugging workflow for Replit projects","https:\u002F\u002Fgithub.com\u002FsampleXbro\u002Fagentsmesh\u002Fblob\u002Fmaster\u002Ftests\u002Fe2e\u002Ffixtures\u002Freplit-agent-project\u002F.agents\u002Fskills\u002Fdebugging\u002FSKILL.md",[190],{"categoryNo":130,"categoryName":131,"taxonomyType":116,"taxonomyTypeDesc":117},[125,133,192,137,138,134],"projects"]