Skill · em Proteger
security-ownership-map
Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV/JSON for graph databases and visualization. Trigger only when the user explicitly wants a security-oriented ownership or bus-factor analysis grounded in…
Procedência
- Origem: davila7/claude-code-templates
- Caminho:
cli-tool/components/skills/security/security-ownership-map - Versão fixada:
57f899e5394bb8ca166f38eacae8f0853cbfe033 - Licença: Apache-2.0
- Espelhado em 25/09/2026
- 3 downloads no Claude Code Templates (lido em 25/09/2026)
Antes de instalar
8 arquivos · 96,2 KB · inclui 4 scripts que executam: scripts/build_ownership_map.py, scripts/community_maintainers.py, scripts/query_ownership.py, scripts/run_ownership_map.py
Instalar na sua CLI
O comando baixa a versão fixada (commit 57f899e) direto da origem, para a pasta que a CLI lê. Precisa de curl (macOS e Linux); no Windows não há comando, porque o Rook Labs é para macOS.
Claude Code
Neste projeto: instala em .claude/skills/security-ownership-map/.
d=".claude/skills/security-ownership-map" u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/security/security-ownership-map" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/agents/openai.yaml" "$u/agents/openai.yaml" \ -o "$d/LICENSE.txt" "$u/LICENSE.txt" \ -o "$d/references/neo4j-import.md" "$u/references/neo4j-import.md" \ -o "$d/scripts/build_ownership_map.py" "$u/scripts/build_ownership_map.py" \ -o "$d/scripts/community_maintainers.py" "$u/scripts/community_maintainers.py" \ -o "$d/scripts/query_ownership.py" "$u/scripts/query_ownership.py" \ -o "$d/scripts/run_ownership_map.py" "$u/scripts/run_ownership_map.py"
Global: instala em ~/.claude/skills/security-ownership-map/.
d="$HOME/.claude/skills/security-ownership-map" u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/security/security-ownership-map" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/agents/openai.yaml" "$u/agents/openai.yaml" \ -o "$d/LICENSE.txt" "$u/LICENSE.txt" \ -o "$d/references/neo4j-import.md" "$u/references/neo4j-import.md" \ -o "$d/scripts/build_ownership_map.py" "$u/scripts/build_ownership_map.py" \ -o "$d/scripts/community_maintainers.py" "$u/scripts/community_maintainers.py" \ -o "$d/scripts/query_ownership.py" "$u/scripts/query_ownership.py" \ -o "$d/scripts/run_ownership_map.py" "$u/scripts/run_ownership_map.py"
Codex
Neste projeto: instala em .agents/skills/security-ownership-map/.
d=".agents/skills/security-ownership-map" u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/security/security-ownership-map" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/agents/openai.yaml" "$u/agents/openai.yaml" \ -o "$d/LICENSE.txt" "$u/LICENSE.txt" \ -o "$d/references/neo4j-import.md" "$u/references/neo4j-import.md" \ -o "$d/scripts/build_ownership_map.py" "$u/scripts/build_ownership_map.py" \ -o "$d/scripts/community_maintainers.py" "$u/scripts/community_maintainers.py" \ -o "$d/scripts/query_ownership.py" "$u/scripts/query_ownership.py" \ -o "$d/scripts/run_ownership_map.py" "$u/scripts/run_ownership_map.py"
Global: instala em ~/.agents/skills/security-ownership-map/.
d="$HOME/.agents/skills/security-ownership-map" u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/security/security-ownership-map" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/agents/openai.yaml" "$u/agents/openai.yaml" \ -o "$d/LICENSE.txt" "$u/LICENSE.txt" \ -o "$d/references/neo4j-import.md" "$u/references/neo4j-import.md" \ -o "$d/scripts/build_ownership_map.py" "$u/scripts/build_ownership_map.py" \ -o "$d/scripts/community_maintainers.py" "$u/scripts/community_maintainers.py" \ -o "$d/scripts/query_ownership.py" "$u/scripts/query_ownership.py" \ -o "$d/scripts/run_ownership_map.py" "$u/scripts/run_ownership_map.py"
Antigravity
Neste projeto: instala em .agents/skills/security-ownership-map/.
d=".agents/skills/security-ownership-map" u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/security/security-ownership-map" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/agents/openai.yaml" "$u/agents/openai.yaml" \ -o "$d/LICENSE.txt" "$u/LICENSE.txt" \ -o "$d/references/neo4j-import.md" "$u/references/neo4j-import.md" \ -o "$d/scripts/build_ownership_map.py" "$u/scripts/build_ownership_map.py" \ -o "$d/scripts/community_maintainers.py" "$u/scripts/community_maintainers.py" \ -o "$d/scripts/query_ownership.py" "$u/scripts/query_ownership.py" \ -o "$d/scripts/run_ownership_map.py" "$u/scripts/run_ownership_map.py"
Global: instala em ~/.gemini/antigravity-cli/skills/security-ownership-map/.
d="$HOME/.gemini/antigravity-cli/skills/security-ownership-map" u="https://raw.githubusercontent.com/davila7/claude-code-templates/57f899e5394bb8ca166f38eacae8f0853cbfe033/cli-tool/components/skills/security/security-ownership-map" curl -fsSL --create-dirs \ -o "$d/SKILL.md" "$u/SKILL.md" \ -o "$d/agents/openai.yaml" "$u/agents/openai.yaml" \ -o "$d/LICENSE.txt" "$u/LICENSE.txt" \ -o "$d/references/neo4j-import.md" "$u/references/neo4j-import.md" \ -o "$d/scripts/build_ownership_map.py" "$u/scripts/build_ownership_map.py" \ -o "$d/scripts/community_maintainers.py" "$u/scripts/community_maintainers.py" \ -o "$d/scripts/query_ownership.py" "$u/scripts/query_ownership.py" \ -o "$d/scripts/run_ownership_map.py" "$u/scripts/run_ownership_map.py"
Peça ao Rook
Já usa o Rook Labs? Cole no chat do Rook: instale a skill https://rooklabs.sh/marketplace/cct.security-ownership-map
Prévia do SKILL.md
---
name: "security-ownership-map"
description: "Analyze git repositories to build a security ownership topology (people-to-file), compute bus factor and sensitive-code ownership, and export CSV/JSON for graph databases and visualization. Trigger only when the user explicitly wants a security-oriented ownership or bus-factor analysis grounded in git his…
author: openai
---
# Security Ownership Map
## Overview
Build a bipartite graph of people and files from git history, then compute ownership risk and export graph artifacts for Neo4j/Gephi. 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.
## Requirements
- Python 3
- `networkx` (required; community detection is enabled by default)
Install with:
```bash
pip install networkx
```
## Workflow
1. Scope the repo and time window (optional `--since/--until`).
2. Decide sensitivity rules (use defaults or provide a CSV config).
3. Build the ownership map with `scripts/run_ownership_map.py` (co-change graph is on by default; use `--cochange-max-files` to ignore supernode commits).
4. Communities are computed by default; graphml output is optional (`--graphml`).
5. Query the outputs with `scripts/query_ownership.py` for bounded JSON slices.
6. Persist and visualize (see `references/neo4j-import.md`).
By default, the co-change graph ignores common “glue” files (lockfiles, `.github/*`, 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-auth…
If you want to exclude Linux build glue like `Kbuild` from co-change clustering, pass:
```bash
python skills/skills/security-ownership-map/scripts/run_ownership_map.py \
--repo /path/to/linux \
--out ownership-map-out \
…