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.1-py3-none-win_arm64.whl (7.3 MB view details)

Uploaded Python 3Windows ARM64

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

Uploaded Python 3Windows x86-64

agentic_adoption_scan-0.0.1-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.1-py3-none-musllinux_1_2_aarch64.whl (7.3 MB view details)

Uploaded Python 3musllinux: musl 1.2+ ARM64

agentic_adoption_scan-0.0.1-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.1-py3-none-manylinux_2_17_aarch64.whl (7.3 MB view details)

Uploaded Python 3manylinux: glibc 2.17+ ARM64

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

Uploaded Python 3macOS 11.0+ ARM64

agentic_adoption_scan-0.0.1-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.1-py3-none-win_arm64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.1-py3-none-win_arm64.whl
Algorithm Hash digest
SHA256 0cbaf0a34ffdc4bb3a082a86109201b6c50376668cf114694007370d28155706
MD5 d632a96dcdd95c9b66fc24c24d4c4a68
BLAKE2b-256 e14327ea525b2134c647e2b56cf88aa60df710e87abb5d3d5d2d094e7c3980bc

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.1-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.1-py3-none-win_amd64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.1-py3-none-win_amd64.whl
Algorithm Hash digest
SHA256 9fea650f824f637dd7deb8538de0e4a87272500143c0dcf0503ad817fb03c288
MD5 4c10aa69e3e589840223b28230dc5c4e
BLAKE2b-256 444c472d64f3d85d200dcf95a41c65df9c9d8a77dbcd04a7166f24c1cb5959be

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.1-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.1-py3-none-musllinux_1_2_x86_64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.1-py3-none-musllinux_1_2_x86_64.whl
Algorithm Hash digest
SHA256 7061fcd6df2ad77685399ed2e2570db8ef0cadbae12ef57eb9a57671078772d8
MD5 98f58d245ca42fc180ed0cfc7a950369
BLAKE2b-256 76830d4ceecec60cb67c262b607ccb77fd9b53258c16e78200ed430cc26e1ec4

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.1-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.1-py3-none-musllinux_1_2_aarch64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.1-py3-none-musllinux_1_2_aarch64.whl
Algorithm Hash digest
SHA256 45a34b7cb1562aa0acc90d526a07873f96011b61facc3ebd5fa867b987b79493
MD5 f6e7986970c0d40347cd8c57ee4c8613
BLAKE2b-256 18b01aae9dcfe059bd7efb4f980ff679752d21520693c62e235664752b4540da

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.1-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.1-py3-none-manylinux_2_17_x86_64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.1-py3-none-manylinux_2_17_x86_64.whl
Algorithm Hash digest
SHA256 b6f90b9728346b992da9cc5dad43a70a3fc29eb0179e753b01527a7f1a659d83
MD5 2c2e1915589f66f458a30fa7054d5724
BLAKE2b-256 e8f9bc7e155450d14ab9eb73059513b620637d1e37ca84f8b0efc84710ba910b

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.1-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.1-py3-none-manylinux_2_17_aarch64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.1-py3-none-manylinux_2_17_aarch64.whl
Algorithm Hash digest
SHA256 bec2c84ceb3954b146b9e2bddb903219f63d8a3e3f9d70d2bcbf4bcf5c364e83
MD5 5bce78c544f2cd16aec6e430e1c20ec6
BLAKE2b-256 be3be275d116e119450ee3a8e56debc8cc2059c15477a74670467c98abadaeff

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.1-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.1-py3-none-macosx_11_0_arm64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.1-py3-none-macosx_11_0_arm64.whl
Algorithm Hash digest
SHA256 fd30c9d727876d53301073dc6fd21e01353fdbc238e632a561abf471021b2f22
MD5 bc2f52191513fd1164b99de07ede5df2
BLAKE2b-256 c4c4d46c4b3e468380773f30304d0381f8a2ef3f223b643c8a36bdf0caf6ac98

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.1-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.1-py3-none-macosx_10_9_x86_64.whl.

File metadata

File hashes

Hashes for agentic_adoption_scan-0.0.1-py3-none-macosx_10_9_x86_64.whl
Algorithm Hash digest
SHA256 493ccf8c5934eff63847df54e27dc91d1bbc1b31c77a6b0f5563b28106400a11
MD5 ab5c1f7f5d8b310ff2f34cf35f45770e
BLAKE2b-256 96f1389fa01f28c9c551d7754a181dc4e27bc27c7acd3d252683686c2d20becc

See more details on using hashes here.

Provenance

The following attestation bundles were made for agentic_adoption_scan-0.0.1-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