Metadata-Version: 2.4
Name: hammer-cli
Version: 0.1.5
Summary: R&D signal capture from git commits — silent scoring for SR&ED/IRS tax credits
Author-email: HammerAI <info@hammerai.ai>
License-Expression: MIT
Project-URL: Homepage, https://hammerai.ai/cli
Project-URL: Repository, https://github.com/MicheLauzon/hammer-cli
Project-URL: Issues, https://github.com/MicheLauzon/hammer-cli/issues
Keywords: r&d,tax-credits,sred,git,scoring,evidence
Classifier: Development Status :: 3 - Alpha
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: Financial and Insurance Industry
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Software Development :: Version Control :: Git
Requires-Python: >=3.10
Description-Content-Type: text/markdown
License-File: LICENSE
Requires-Dist: click>=8.0
Requires-Dist: httpx>=0.27
Dynamic: license-file

# Hammer CLI

R&D signal capture from git commits.

Hammer scores every git commit for R&D tax credit relevance (SR&ED in Canada, IRS Section 41 in the US). It runs silently as a post-commit hook, stores results locally, and optionally feeds [HammerLedger](https://hammerai.ai) for full evidence management.

## Install

```bash
pip install hammer-cli
```

Requires Python 3.10+ and git.

## Quick Start

```bash
# 1. Register (free -- 200 scores/month)
hammer init

# 2. Install the hook in your repo
cd your-repo
hammer install

# 3. That's it -- commits are scored automatically
git commit -m "Implement adaptive retry with exponential backoff"
# => 0.82 [Strong] Algorithmic uncertainty / experimentation

# 4. Check your R&D summary
hammer status
```

To install across multiple repos at once:

```bash
hammer install --scan ~/code
```

## Commands

| Command | Description |
|---------|-------------|
| `hammer init` | Register with HammerAI and create `~/.hammer/` config |
| `hammer install` | Install post-commit hook in current repo (or `--scan` a directory) |
| `hammer uninstall` | Remove hooks from current repo or `--all` tracked repos |
| `hammer score [REF]` | Score a commit, range (`a..b`), or `--all` history |
| `hammer scan [PATH]` | Find all git repos under a directory and score every commit |
| `hammer status` | R&D scoring summary for current repo or `--all` repos |
| `hammer log` | List scored commits with scores and categories |
| `hammer export` | Export qualifying commits as JSON or CSV |
| `hammer push` | Push scored commits to a HammerLedger instance |
| `hammer override` | Set per-repo config overrides (domain, ledger ID) |
| `hammer flush` | Retry scoring for queued commits (offline recovery) |
| `hammer exclude` | Exclude repos from automatic scoring by name or pattern |
| `hammer prune` | Delete old or low-scoring commit data |
| `hammer migrate` | Rename a project's scored data directory |
| `hammer config` | View or edit global configuration |
| `hammer doctor` | Diagnose installation, connectivity, and hook status |

## How It Works

1. `hammer install` adds a post-commit hook to your repo's `.git/hooks/`. The hook runs in the background and never blocks your workflow. Hooks are per-repo -- Hammer does not modify your global git config.

2. On each commit, the hook sends commit metadata to the scoring API at `api.hammerai.ai`. The API classifies the commit's R&D relevance and returns a score from 0.0 to 1.0.

3. Results are stored locally at `~/.hammer/commits/{project}/{hash}.json`. Nothing is written inside your repository.

4. If the API is unreachable, the commit is queued locally and retried on the next commit or via `hammer flush`.

### Score Thresholds

| Score | Label | Meaning |
|-------|-------|---------|
| >= 0.8 | Strong | Clear R&D indicators across uncertainty, experimentation, advancement |
| >= 0.6 | Moderate | Meaningful R&D signals present |
| >= 0.4 | Weak | Some technical unknowns, mostly routine |
| >= 0.2 | Minimal | Standard development work |
| < 0.2 | None | Purely routine, no R&D signals |

Commits scoring 0.6 or above are considered qualifying for tax credit evidence.

## Privacy

**Metadata-only by default.** Hammer sends commit messages, file names, and line counts. No source code leaves your machine unless you explicitly opt in.

**Optional diff scoring.** Enable with `hammer config set send_diff true` to send truncated diffs (up to 12KB) for more accurate classification. Disable at any time.

**Zero-retention API.** Scoring uses Anthropic Claude with a zero-retention policy -- inputs are not stored or used for model training by Anthropic.

**Per-repo hooks only.** Hammer installs hooks individually per repository. It never sets a global hooks path and does not interfere with existing post-commit hooks (it appends to them).

**Local storage.** All scored data lives at `~/.hammer/`. Remove everything with `hammer uninstall --all` or `rm -rf ~/.hammer`.

Full privacy policy: [hammerai.ai/privacy](https://hammerai.ai/privacy)

## Export and HammerLedger

Hammer CLI works standalone for local R&D signal tracking. For teams that need cryptographic evidence seals, audit trails, and T661 form generation, scored commits can be pushed to [HammerLedger](https://hammerai.ai):

```bash
# Export locally
hammer export --format json --min-score 0.6 -o evidence.json
hammer export --format csv --min-score 0.6 -o evidence.csv

# Or push directly to HammerLedger
hammer config set ledger_url https://app.hammerledger.com
hammer config set ledger_id led_your_id
hammer push --dry-run    # preview first
hammer push              # send to ledger
```

## Configuration

Global config is stored at `~/.hammer/config.json`.

```bash
hammer config show                          # view all settings
hammer config set send_diff true            # enable diff scoring
hammer config set ledger_url https://...    # set ledger endpoint
```

Per-repo overrides for scoring domain or ledger ID:

```bash
hammer override --domain sred --ledger-id led_mobile_2026
hammer override --show
```

## Pricing

| Plan | Scoring | Scores/month | Cost |
|------|---------|-------------|------|
| Free | Metadata only | 1,000 | $0 |
| Pro | Metadata + code diffs | Unlimited | $19/month |

Upgrade from the terminal:

```bash
hammer upgrade
```

## Support

- Questions and feedback: [GitHub Issues](https://github.com/MicheLauzon/hammer-cli/issues)
- Email: info@hammerai.ai

## License

MIT

---

Built by [HammerAI](https://hammerai.ai).
