Skip to main content

Harness Baby

Harness Baby is a deterministic CLI for people who want an AI coding agent to work safely but do not yet know what repository harness to build. It gives an empty folder the smallest honest starting structure, then scores readiness as you and your preferred coding agent fill in the real project details.

You do not need to understand harness engineering before using it. Preview the starter skeleton, create it explicitly, ask the coding agent you already like to help fill the TODOs, and run the scan again. Harness Baby provides the first foothold and the feedback loop; it does not choose your agent or pretend unfinished controls already exist.

Project status

Harness Baby is experimental alpha software, not a stable release or a guarantee that a repository is ready for production or unsupervised agent work. Use it at your own risk. Review the preview before running init --apply, keep the target under version control or backed up, and independently verify generated content, detected evidence, and scores before relying on them. The software is provided without warranty under the MIT License.

It is not an AI agent and never calls an LLM. scan does not change source or configuration, install dependencies, run Terraform, or contact external services; its only repository write is the requested .harness/report.yaml artifact. The separate init --apply command writes only its reviewed generic skeleton into an empty target.

Install

Python 3.12 or newer is required.

Install the released CLI in an isolated environment with pipx:

pipx install harness-baby --python python3.12

Upgrade or remove it with:

pipx upgrade harness-baby
pipx uninstall harness-baby

For development from a source checkout, use the commands in the Development section.

Usage

Start from an empty folder

Preview a generic, agent-neutral harness without writing anything:

harness-baby init my-project --project-name "My Project"

Create the exact preview explicitly:

harness-baby init my-project --project-name "My Project" --apply

The bootstrap creates seven context and feedback files. It does not invent source code, tests, CI, dependencies, a license, or an architecture. See docs/bootstrap.md for the novice walkthrough and conflict behavior.

Check readiness

Scan the current directory:

harness-baby scan .

Choose another report destination:

harness-baby scan /path/to/repository --output /tmp/report.yaml

The command prints a compact summary and writes <repository>/.harness/report.yaml by default. Finding failed checks does not make the process fail; exit code 2 is reserved for invocation, path, or report-write errors.

Report schema

Schema version 1 has five stable top-level fields. Evidence fields may grow as checks improve.

schema_version: 1
tool:
  name: harness-baby
  version: 0.1.0
project:
  path: .
  detected_stacks:
    - python
summary:
  score: 75
  passed: 5
  warned: 2
  failed: 1
  skipped: 2
checks:
  testing:
    category: testing
    status: pass
    evidence:
      frameworks:
        - pytest
      test_files:
        - tests/test_app.py
      pyproject_parse_error: null

Every check has an ID, category, status (pass, warn, fail, or skip), and evidence. Secret findings contain only a file, line number, and finding kind—never the suspected value.

The score is calculated in scoring.py: pass is 1.0, warn is 0.5, fail is 0, and skip is excluded. Each check has weight 1.0 in the MVP, while the scoring API already accepts explicit per-check weights.

Supported stacks and checks

  • Repository: Git marker and license evidence
  • Documentation: root README
  • Agent context: root AGENTS.md
  • Python: pyproject.toml, requirements.txt, pytest, unittest, ruff, flake8, black, mypy, and coverage-related configuration evidence
  • Terraform: .tf files, module directories, Terraform executable availability, tflint, tfsec/checkov configuration, and read-only fmt/validate readiness
  • GitHub Actions: workflows, test/lint/Terraform validate command signals, YAML parse failures, and a deliberately small hardcoded-secret heuristic
  • Reproducibility: common Python lockfiles, pinned requirements, and Terraform lockfiles

Terraform commands are never executed. terraform_binary_available describes the current environment, while commands_executed remains empty. This avoids state changes, implicit initialization, and network access.

Architecture

Scanner performs bounded, sorted file discovery, detects stacks, and executes an ordered registry of Check implementations. A check receives an immutable ScanContext and returns a CheckResult; it does not mutate the repository. Adding a stack means adding checks under src/harness_baby/checks/ and registering them in built_in_checks().

The score policy and YAML reporter are independent modules. YAML output preserves registry order and contains no timestamps, making repeated scans stable when repository and relevant tool availability are unchanged.

bootstrap.py owns the generic template and separates deterministic planning from explicit application. It preflights every path before writing, refuses ownership ambiguity, and verifies the complete result after application. The maintained contract and stop conditions live in docs/specs/blank-folder-bootstrap.md.

Development

The committed uv.lock is the reproducible development environment:

uv sync --locked --extra dev
uv run pytest
uv run ruff check .
uv run ruff format --check .
uv run mypy
uv run python -m build
uv run twine check dist/*

Without uv, create a Python 3.12 virtual environment and run python -m pip install -e '.[dev]' before invoking the tools directly.

Release maintainers should follow docs/releasing.md.

Roadmap

After the generic bootstrap is proven, likely additions are a novice-friendly interactive flow, stack-specific templates, safe adoption into existing repositories, a versioned external plugin discovery contract, configurable check weights, optional report history, more robust workflow semantics, and support for Node.js, Go, Rust, Java, Docker, Kubernetes, and Ansible.

Dynamic plugins, application-code generation, automatic remediation, external command execution, historical reports, remote integrations, and exhaustive secret scanning are intentionally outside the current scope.

Metadata

Release files for harness-baby 0.1.0

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for harness-baby 0.1.0
File Size Uploaded
harness_baby-0.1.0.tar.gz 29.4 kB Details

Built distribution (wheel)

Table of built distributions (wheels) for harness-baby 0.1.0
File Interpreter ABI Platform
harness_baby-0.1.0-py3-none-any.whl Python 3 none any Details

Total release size: 53.3 kB

Release files / harness_baby-0.1.0.tar.gz

Download URL harness_baby-0.1.0.tar.gz
Size 29.4 kB
Tags Source
SHA-256 checksum
How to use checksums
512958748e7f19f80bd0bbbc1631fe040737cdd548ee3313b9fe26807ac1b8c1
BLAKE2b-256 checksum
How to use checksums
c888b839c2d41969c4e0c9521c1dc43cc9b136f3b5b53ac4b44e30306dbf6391
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release files / harness_baby-0.1.0-py3-none-any.whl

Download URL harness_baby-0.1.0-py3-none-any.whl
Size 23.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
e956096007ce82a2239957897cd3f7dd0f6680dcb233c9abe1427d01202fb53e
BLAKE2b-256 checksum
How to use checksums
9c593e96aa824df2e0717b1c563b46f841cfa812295ff1df010bbd1d3ed06380
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/7.0.0 CPython/3.13.14

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Aug 20, 2026.

Transparency log

Release history Release notifications | RSS feed

This release

0.1.0 This release

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page