Extract Tool Dependencies

The /cc-deck.extract command analyzes your locally checked-out repositories to discover required build tools, compilers, and runtime dependencies.

Usage

Inside Claude Code in your build directory:

/cc-deck.extract

Claude Code will ask for the path to your repository (or repositories) and analyze them.

What Gets Analyzed

The command examines:

  • Build files: go.mod, Cargo.toml, package.json, pyproject.toml, pom.xml, build.gradle, build.gradle.kts, settings.gradle

  • CI configurations: .github/workflows/*.yml, .gitlab-ci.yml, Jenkinsfile

  • Tool version files: .tool-versions, .node-version, .python-version, .go-version, .java-version, .sdkmanrc

  • Java-specific: mvnw / gradlew wrapper scripts, jvm.config, .mvn/ directory

  • Container files: Containerfile, Dockerfile

How It Works

  1. You provide one or more repository paths

  2. Claude Code reads build files and CI configs to discover tools

  3. Discovered tools are presented for your review

  4. You can accept, reject, or modify individual entries

  5. Accepted tools are written to the manifest’s tools section

Deduplication

When analyzing multiple repositories, the command deduplicates tools automatically. If two repos require Go but at different versions, Claude Code suggests the highest compatible version and explains the conflict.

Source Provenance

Each analyzed repository is recorded in the manifest’s sources section, tracking:

  • Repository URL and branch

  • Local checkout path

  • Which tools were detected

  • Which files they were detected from

This provenance lets you re-run extraction later to detect changes.

Example

After analyzing a Go project with a React frontend:

tools:
  - "Go compiler >= 1.25"
  - "Node.js 22 LTS"
  - "protoc and buf CLI"

sources:
  - url: https://github.com/org/my-project
    ref: main
    path: /home/user/projects/my-project
    detected_tools: ["Go 1.25", "Node.js 22", "protoc >= 25.0"]
    detected_from: [go.mod, package.json, buf.yaml]