Skip to main content

Detect agentic coding tool adoption across GitHub organizations

Project description

eng-effectiveness-metrics-tools

Tools for measuring and tracking engineering effectiveness, with a focus on agentic coding tool adoption.


agentic-adoption-scan

A CLI tool that scans all repositories in a GitHub organization to detect adoption of agentic coding tools (Claude Code, GitHub Copilot, Cursor, MCP servers, evals frameworks, and more). Produces tidy-format CSV data suitable for analysis and visualization.

Install

macOS (Intel and Apple Silicon):

curl -fsSL "https://github.com/posit-dev/eng-effectiveness-metrics-tools/releases/latest/download/agentic-adoption-scan_darwin_$(uname -m | sed 's/x86_64/amd64/').tar.gz" | tar -xz && sudo mv agentic-adoption-scan /usr/local/bin/

Linux (x86_64 and arm64):

curl -fsSL "https://github.com/posit-dev/eng-effectiveness-metrics-tools/releases/latest/download/agentic-adoption-scan_linux_$(uname -m | sed 's/x86_64/amd64/;s/aarch64/arm64/').tar.gz" | tar -xz && sudo mv agentic-adoption-scan /usr/local/bin/

Via pip/pipx (macOS, Linux, Windows):

pipx install agentic-adoption-scan

Prerequisites

The tool uses the gh CLI for GitHub authentication. Make sure you have it installed and authenticated:

gh auth login

Usage

Scan an organization for agentic tool indicators:

agentic-adoption-scan scan --org your-org --output results.csv

Fetch and analyze content of detected indicators:

agentic-adoption-scan inspect --org your-org --scan-results results.csv --output inspect-results.csv

Generate a customizable indicators config file:

agentic-adoption-scan init-config --output indicators.yaml

Run as an MCP server for Claude Code integration:

agentic-adoption-scan serve

Scan flags

Flag Default Description
--org (required) GitHub organization to scan
--output stdout Output CSV file path
--days 90 Only include repos active in the last N days
--include-archived false Include archived repos
--force false Bypass cache and rescan everything
--cache-dir .agentic-scan-cache Directory for scan state cache
--config Path to custom indicators YAML config
--verbose false Enable verbose logging

What it detects

The tool checks for 25+ built-in indicators across 7 categories:

Category Examples
claude-code CLAUDE.md, .claude/ directory, settings.json, custom commands
github-copilot copilot-instructions.md, .copilot/ directory
cursor .cursorrules, .cursor/rules/ directory
agents-config AGENTS.md, .agents/ directory
mcp mcp.json, .mcp.json, MCP server configs
evals evals directories, promptfoo, inspect_ai, mcp-evals
workflows-ai claude-code-action, Copilot references, AI review actions

You can extend or override these indicators via a YAML config file (init-config generates a starter).

Output format

Scan results are written as tidy CSV — one row per (repo × indicator) observation:

scan_timestamp,org,repo,repo_visibility,repo_language,repo_pushed_at,category,indicator,found,file_path,details

This format makes it easy to filter, pivot, and visualize in R, Python, or any BI tool.

MCP server

The tool can run as an MCP server, exposing tools for use directly within Claude Code:

{
  "mcpServers": {
    "agentic-adoption-scan": {
      "command": "agentic-adoption-scan",
      "args": ["serve"]
    }
  }
}

Available MCP tools: scan_org, inspect_repo, list_indicators, get_repo_summary, get_adoption_summary.


Other scripts

Record a deployment event into GitHub:

./record-deployment.sh posit-dev/eng-effectiveness-metrics-tools main testing

Releases

Releases are fully automated via python-semantic-release on every merge to main. The version bump is determined automatically from Conventional Commit PR titles (enforced by the pr-title workflow):

PR title prefix Version bump
fix: patch — 0.1.00.1.1
feat: minor — 0.1.10.2.0
feat!: / BREAKING CHANGE: major — 0.2.01.0.0
chore:, docs:, refactor:, etc. no release

On every merge to main, semantic-release analyzes commits since the last tag. If there are releasable changes, it creates a CHANGELOG.md entry, commits it, tags the new version (e.g. v0.2.0), and publishes a GitHub release — all in one step. That tag push then triggers the publish workflow, which:

  1. Builds native binaries for macOS (amd64/arm64) and Linux (amd64/arm64) via GoReleaser
  2. Publishes Python wheels for all platforms to PyPI via go-to-wheel

One-time setup required

Deploy key — semantic-release pushes back to main and needs to trigger the publish workflow. The default GITHUB_TOKEN cannot do this, so an SSH deploy key is required:

ssh-keygen -t ed25519 -C "semantic-release" -f deploy_key -N ""
  1. Add deploy_key.pub as a repo Deploy key with write access: Settings → Deploy keys
  2. Add deploy_key (private) as an Actions secret named DEPLOY_KEY: Settings → Secrets and variables → Actions

PyPI Trusted Publisher — the publish workflow uses OIDC Trusted Publishing (no API token needed). Configure a Trusted Publisher on PyPI for this repository pointing to the publish.yml workflow and the pypi environment.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distributions

No source distribution files available for this release.See tutorial on generating distribution archives.

Built Distributions

If you're not sure about the file name format, learn more about wheel file names.

agentic_adoption_scan-0.0.2-py3-none-win_arm64.whl (7.3 MB view details)

Uploaded Python 3Windows ARM64

agentic_adoption_scan-0.0.2-py3-none-win_amd64.whl (8.0 MB view details)

Uploaded Python 3Windows x86-64

agentic_adoption_scan-0.0.2-py3-none-musllinux_1_2_x86_64.whl (7.8 MB view details)

Uploaded Python 3musllinux: musl 1.2+ x86-64

agentic_adoption_scan-0.0.2-py3-none-musllinux_1_2_aarch64.whl (7.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

agentic_adoption_scan-0.0.2-py3-none-manylinux_2_17_x86_64.whl (7.8 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ x86-64

agentic_adoption_scan-0.0.2-py3-none-manylinux_2_17_aarch64.whl (7.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

agentic_adoption_scan-0.0.2-py3-none-macosx_11_0_arm64.whl (7.5 MB view details)

Uploaded Python 3macOS 11.0+ ARM64

agentic_adoption_scan-0.0.2-py3-none-macosx_10_9_x86_64.whl (8.0 MB view details)

Uploaded Python 3macOS 10.9+ x86-64

File details

Details for the file agentic_adoption_scan-0.0.2-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.2-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 5e11d052de11b62bbafeda32ab6416828888a2266fe83e88ad8820d5b35913e0
MD5 49857f7b23ea8229417b93ecb3965488
BLAKE2b-256 3bdc66d231aee3ec412d69fc88dab6726702ff40e8cb7d02fd6e1ee654b285d7

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.2-py3-none-win_arm64.whl:

Publisher: publish.yml on posit-dev/eng-effectiveness-metrics-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentic_adoption_scan-0.0.2-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.2-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 418eb701640c2187a1e0a0cf845fbd74275d2fddd22cc8a9a90c72d77f32730f
MD5 f2cb829845c4b9f87bad42a922fbb206
BLAKE2b-256 a48f7cf8c0461eb5795accf0a9b9c6be6929f9310a0c4eb9fdf06821b9983434

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.2-py3-none-win_amd64.whl:

Publisher: publish.yml on posit-dev/eng-effectiveness-metrics-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentic_adoption_scan-0.0.2-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.2-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 42480770d73f1930c14da353bca6f60e4c6930efac9b355455b6df5e1d814b2d
MD5 04b0430413f650e7ade6988425ff9d7c
BLAKE2b-256 aca0319bf225649dca05f7dfc12e6e9cd7a6bde7c609b1aa53b566f4904a316a

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.2-py3-none-musllinux_1_2_x86_64.whl:

Publisher: publish.yml on posit-dev/eng-effectiveness-metrics-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentic_adoption_scan-0.0.2-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.2-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 be5a4e1e1919845993235ece9dbed098cfc167c58403c63640caeab71e41eb2a
MD5 6d7ca070f139d80722073f9856a5dccf
BLAKE2b-256 94aacb098d5b761048d3dede34dc30d32da3205d6d8c55ee0241e8bc7e6bbd5e

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.2-py3-none-musllinux_1_2_aarch64.whl:

Publisher: publish.yml on posit-dev/eng-effectiveness-metrics-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentic_adoption_scan-0.0.2-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.2-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b8e992f75d8fc62110a18f0f2ced6f3d9631bd4d37f0a8120eec9076b2267b74
MD5 1691f37419068ee8a7a5aee0514fb9cf
BLAKE2b-256 976f381bdf97324cad12d4913ee42f210c0feefa77da956bdfc9ac5425b226bb

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.2-py3-none-manylinux_2_17_x86_64.whl:

Publisher: publish.yml on posit-dev/eng-effectiveness-metrics-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentic_adoption_scan-0.0.2-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.2-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 d17b28df564df0d91f7f15808e6d7961ddf91f9efdf4ff67b0fc6609ccbaceee
MD5 3a566ae93a948d3fc20cc01afa4d9b01
BLAKE2b-256 6fbcdc5d0d8438aa9dcc3306ac996c93399b8ab1493f455c75e6dd1d6008c6e9

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.2-py3-none-manylinux_2_17_aarch64.whl:

Publisher: publish.yml on posit-dev/eng-effectiveness-metrics-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentic_adoption_scan-0.0.2-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.2-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 1ea9c5cfd3b4394abdc6e98d4effbb34146bfa68e9a7a72e01bef835f45e29af
MD5 d59daaa4cfe131159c346d27202a2731
BLAKE2b-256 1f16499431fd2af3c09c56188211cc5cb24061062cfe7b56a16abd406c36c29c

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.2-py3-none-macosx_11_0_arm64.whl:

Publisher: publish.yml on posit-dev/eng-effectiveness-metrics-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file agentic_adoption_scan-0.0.2-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.2-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 fb5e07d736c17921214ece594c49026660ca1416960f4c6b96b07b94511d91de
MD5 92d7cdec5ae4f6c99b63414671ab1007
BLAKE2b-256 f0eb73e981f9c83efb8c42be92a849f3c079acb6fa3143b12060f59192a5e2d3

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.2-py3-none-macosx_10_9_x86_64.whl:

Publisher: publish.yml on posit-dev/eng-effectiveness-metrics-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page