[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6DBVYQSY6CPWZMEWNVH7NDX":3,"skill-same:01M6DBVYQSY6CPWZMEWNVH7NDX":98},{"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":44,"commitSha":45,"skillDirectory":46,"forksCount":14,"repositoryHtmlUrl":47,"repositoryHomepageUrl":6,"ownerHtmlUrl":48,"ownerBlogUrl":6,"ownerDescription":6,"updatedAt":49,"install":50,"resources":63},"01M6DBVYQSY6CPWZMEWNVH7NDX","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. Not for general maintainer lists or non-security ownership questions.","Prekzursil\u002Fagent-skills-toolchain","Prekzursil","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F54636077?v=4","01M6DACZ1PCQHD99SCR1YXG28B","Andrei Mihai Visalon","01M6DACZ670WZF535V3WYYSS4Z",0,"MIT","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002FSKILL.md",[],[19,20,21,22,23,24,25,26,27,28,29,30,31,32,33,34,35,36,37,38],"security ownership map","map","security","git repositories","trigger","factor","graph databases","compute","build","general","databases","only","history","analyze","json","analysis","csv","file","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. Not for general maintainer lists or non-security ownership questions.\n---\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 `scripts\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 `scripts\u002Fquery_ownership.py` for bounded JSON slices.\n6. Persist and visualize (see `references\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 `scripts\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 `references\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.\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 `scripts\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 `scripts\u002Fquery_ownership.py` for bounded JSON slices.\n6. Persist and visualize (see `references\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 `scripts\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 `references\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.\n",{"name":5,"description":7},"main","a298c929b6cbd662e1fce54302ce520d5ceea1a5",".agents\u002Fskills\u002Fsecurity-ownership-map","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain","https:\u002F\u002Fgithub.com\u002FPrekzursil","2026-11-02 14:30:57",{"source":8,"skillName":5,"commands":51,"prompt":61,"zipAvailable":62},[52,55,58],{"tool":53,"command":54},"npx","npx skills add Prekzursil\u002Fagent-skills-toolchain --skill security-ownership-map",{"tool":56,"command":57},"bunx","bunx skills add Prekzursil\u002Fagent-skills-toolchain --skill security-ownership-map",{"tool":59,"command":60},"pnpm","pnpm dlx skills add Prekzursil\u002Fagent-skills-toolchain --skill security-ownership-map","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002FSKILL.md",true,[64,70,76,80,86,90,94],{"path":65,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":68,"sourceHtmlUrl":69},"agents\u002Fopenai.yaml","REFERENCE","参考文档",253,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Fagents\u002Fopenai.yaml",{"path":71,"resourceType":72,"resourceTypeDesc":73,"sizeBytes":74,"sourceHtmlUrl":75},"LICENSE.txt","LICENSE","许可证",10776,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002FLICENSE.txt",{"path":77,"resourceType":66,"resourceTypeDesc":67,"sizeBytes":78,"sourceHtmlUrl":79},"references\u002Fneo4j-import.md",2428,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Freferences\u002Fneo4j-import.md",{"path":81,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":84,"sourceHtmlUrl":85},"scripts\u002Fbuild_ownership_map.py","SCRIPT","脚本",35009,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fbuild_ownership_map.py",{"path":87,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":88,"sourceHtmlUrl":89},"scripts\u002Fcommunity_maintainers.py",18349,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fcommunity_maintainers.py",{"path":91,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":92,"sourceHtmlUrl":93},"scripts\u002Fquery_ownership.py",18093,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Fquery_ownership.py",{"path":95,"resourceType":82,"resourceTypeDesc":83,"sizeBytes":96,"sourceHtmlUrl":97},"scripts\u002Frun_ownership_map.py",5940,"https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002F.agents\u002Fskills\u002Fsecurity-ownership-map\u002Fscripts\u002Frun_ownership_map.py",[99,120,150,177,191,207],{"skillNo":100,"name":101,"nameZh":6,"description":102,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":103,"categories":104,"keywords":105,"publishedAt":39},"01M6DF7D7478R55P46REYH4QAC","clarify-requirements","Resolve genuine pre-execution ambiguity by scanning repo context, generating 1-6 grounded options, and asking 1-3 focused questions via AskUserQuestion. NOT for mid-task use (injection risk); NOT when the goal is already unambiguous; use to disambiguate vague prompts before any file edits.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fworkspace-hooks\u002Fskills\u002Fclarify-requirements\u002FSKILL.md",[],[106,107,108,109,110,111,112,113,114,115,116,117,118,119,36],"clarify requirements","clarify","requirements","risk","options","task","prompts","goal","scanning","use","context","repo","injection","execution",{"skillNo":121,"name":122,"nameZh":6,"description":123,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":124,"categories":125,"keywords":131,"publishedAt":39},"01M6DF79CA4BHJS66J8EZDBPWJ","openmm-md","Run FREE, open-source, Windows-native GPU molecular dynamics via the openmm-md MCP (OpenMM + CUDA on the local NVIDIA GPU). Use for protein \u002F protein-ligand MD when you want a free stack or are on Windows without a Schrodinger license. Covers the full workflow (prepare, solvate, minimize, equilibrate, production, analyze, mmgbsa) AND an honest decision guide vs Schrodinger Desmond, including how to run Desmond legitimately on Linux or a cloud GPU with a real license. This is a deliberately LESSER free alternative and does NOT replace the schrodinger MCP tools. Do NOT use it to pick a free tool when a validated FEP+, WaterMap, IFD-MD, or Prime MM-GBSA result is actually required.","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Fmcp\u002Fopenmm-md-mcp\u002Fskill\u002Fopenmm-md\u002FSKILL.md",[126],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[132,133,134,135,136,32,137,138,139,140,141,142,143,144,115,145,146,147,148,149],"openmm md","how","decision","pick","linux","tool","stack","open","NVIDIA","gpu","license","workflow","windows","free","molecular dynamics","local","do","MCP",{"skillNo":151,"name":152,"nameZh":6,"description":153,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":154,"categories":155,"keywords":162,"publishedAt":39},"01M6DF76C1MG85VEWP8VZCBNMN","visual-review","Take screenshots of web pages and UI using Playwright for visual review and iteration","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fvisual-review\u002FSKILL.md",[156,159],{"categoryNo":157,"categoryName":158,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000003","演示文稿",{"categoryNo":160,"categoryName":161,"taxonomyType":129,"taxonomyTypeDesc":130},"01JBSEEDCAT000000000000008","测试与质量",[163,164,165,166,167,168,169,170,171,172,133,173,174,175,176],"review","visual","visual review","pages","web","false","iteration","take","check","slides","ui","screenshot","playwright","screenshots",{"skillNo":178,"name":179,"nameZh":6,"description":180,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":181,"categories":182,"keywords":183,"publishedAt":39},"01M6DF73AQVCBZKEN0YXEX9FXP","status","Diagnostic status report — shows metaswarm installation state, project setup, and potential issues","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstatus\u002FSKILL.md",[],[179,184,185,186,187,188,189,190],"setup","report","project","installation","project setup","issues","state",{"skillNo":192,"name":193,"nameZh":6,"description":194,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":195,"categories":196,"keywords":198,"publishedAt":39},"01M6DF6X6C2XB0P6GX76P7TTYV","start","Use when starting work on any task, when the user mentions metaswarm, or when the user wants to begin tracked development work","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fstart\u002FSKILL.md",[197],{"categoryNo":127,"categoryName":128,"taxonomyType":129,"taxonomyTypeDesc":130},[193,199,111,200,201,202,115,203,204,205,206],"start issue","issue","ready","work on issue","user","work","work on","development",{"skillNo":208,"name":184,"nameZh":6,"description":209,"descriptionZh":6,"repositoryFullName":8,"ownerLogin":9,"ownerAvatarUrl":10,"ownerAccountNo":11,"ownerDisplayName":12,"repositoryNo":13,"starsCount":14,"licenseSpdxId":15,"licenseFileUrl":6,"sourceHtmlUrl":210,"categories":211,"keywords":212,"publishedAt":39},"01M6DF6QMJ9AJKFKHHKRT005PQ","Interactive project setup — detects your project, configures metaswarm, writes project-local files","https:\u002F\u002Fgithub.com\u002FPrekzursil\u002Fagent-skills-toolchain\u002Fblob\u002Fmain\u002Ftools\u002Feditor\u002Fmetaswarm\u002Fskills\u002Fsetup\u002FSKILL.md",[],[184,186,147,213,188,214],"files","interactive"]