Skip to main content

Spec-to-code mapping: core library, MCP server, and CLI

Project description

Specmap

Map AI-generated code changes back to spec intent.

Specmap generates LLM-powered annotations that link code changes to specification documents. When an AI agent writes code, reviewers can see which spec requirements each code region implements, with inline [N] citations pointing to the exact spec sections.

How It Works

  1. MCP server integrates with your coding agent (e.g., Claude Code) to annotate code changes with spec references as you work
  2. CLI validates annotations in CI (specmap validate)
  3. Web UI lets reviewers browse PRs with spec annotations overlaid on diffs
Coding Agent ──MCP──► Specmap Server ──LLM──► .specmap/{branch}.json
                          │                          │
                     reads specs                committed to git
                     reads diffs                     │
                                                     ▼
                                              specmap validate (CI)
                                              specmap serve (Web UI)

Use Specmap on Your Projects

No need to clone this repo. Install as a tool and use it in any project:

# Install
uv tool install git+https://github.com/jdraines/specmap.git

# Verify
specmap --version

Add the MCP server to your coding agent (.mcp.json in your project):

{
  "mcpServers": {
    "specmap": {
      "command": "specmap-mcp",
      "env": {
        "SPECMAP_API_KEY": "sk-..."
      }
    }
  }
}

See the full documentation for configuration, CLI commands, and CI integration.

Develop Specmap

Clone and run locally:

git clone https://github.com/jdraines/specmap.git
cd specmap

# Install dependencies
just mcp-install     # Python (core library, MCP server, CLI, API server)
just web-install     # Node (React frontend)

# Run full dev stack (API + Vite dev server)
just dev

# Run tests
just test-all        # Unit + functional tests
just lint            # ruff + tsc

# Build wheel with bundled frontend
just build

To run the web UI locally, you'll need a forge token (PAT or OAuth). See Development for the complete setup.

Prerequisites

Tool Install
Python 3.11+ System package manager
uv curl -LsSf https://astral.sh/uv/install.sh | sh
Node.js 20+ System package manager
just cargo install just or system packages
git System package manager

Project Structure

specmap/
├── core/          Python: core library, MCP server, CLI, API server
├── web/           React frontend (Vite + Tailwind)
├── tests/         Functional test suite
├── docs/          MkDocs documentation
└── justfile       Task runner (run `just` to see all commands)

License

See LICENSE.

Project details


Download files

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

Source Distribution

specmap-0.2.35.tar.gz (378.9 kB view details)

Uploaded Source

Built Distribution

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

specmap-0.2.35-py3-none-any.whl (245.2 kB view details)

Uploaded Python 3

File details

Details for the file specmap-0.2.35.tar.gz.

File metadata

  • Download URL: specmap-0.2.35.tar.gz
  • Upload date:
  • Size: 378.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for specmap-0.2.35.tar.gz
Algorithm Hash digest
SHA256 0594a53f6d3196a245f1c5ccbd4e37f04ea1301e78f4d369fd1a5acd13ac8e50
MD5 8b909e1cf498f4137b088c17137d8052
BLAKE2b-256 2b3e9c0477fc38e6ef133ba65b86784c707fe23977307b709144cc1958dffb07

See more details on using hashes here.

File details

Details for the file specmap-0.2.35-py3-none-any.whl.

File metadata

  • Download URL: specmap-0.2.35-py3-none-any.whl
  • Upload date:
  • Size: 245.2 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.13.12

File hashes

Hashes for specmap-0.2.35-py3-none-any.whl
Algorithm Hash digest
SHA256 4f5dfb3a4a3e2f0bf8ca110af841f8f6d1b83527a9d6cb9a13427b22a15d7efb
MD5 f65db6d7d2f1f83644be83c79b80364a
BLAKE2b-256 d178f5d488d373c3aec58828931780bb4f0789e301cddb1f502ef65766b2d490

See more details on using hashes here.

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