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

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 \
…

Ver todo o marketplace