Skip to main content

Test whether a codebase's getting-started documentation is accurate and easy to follow

Project description

Good Start

Test whether a project's getting-started documentation is accurate and easy to follow, using an AI agent.

Good Start reads your project's setup instructions, attempts to follow them step by step, and reports back with a pass/fail result and actionable feedback.

Installation

Requires Python 3.12+.

pip install good-start

Or with uv:

uv add good-start

Prerequisites

Good Start uses the Anthropic API under the hood. Set your API key before running:

export ANTHROPIC_API_KEY=your-key-here

CLI Usage

Check a project's documentation by running good-start check from the project root:

# Let the agent find the getting-started docs automatically
good-start check .

# Point it at a specific file
good-start check README.md
good-start check docs/GETTING_STARTED.md

The output is a color-coded pass/fail panel with the agent's findings. The exit code is 0 on success and 1 on failure, so it works in CI scripts.

Save the output to a file:

good-start check . > report.txt

Pytest Plugin

Good Start ships as a pytest plugin that is automatically available once installed. No configuration or conftest imports needed.

Basic usage

def test_getting_started(good_start):
    result = good_start()
    assert result.passed, result.details

The good_start fixture is a callable that runs the agent and returns a Result object with:

  • result.passed -- boolean indicating whether the agent completed the instructions successfully
  • result.details -- summary of findings, with constructive feedback on failure

Checking a specific file

def test_quickstart(good_start):
    result = good_start("docs/QUICKSTART.md")
    assert result.passed, result.details

Configuration

Configuration resolves in this order (highest priority first):

  1. Direct call arguments: good_start("SETUP.md")
  2. Marker keyword arguments: @pytest.mark.good_start(target="SETUP.md")
  3. CLI options: pytest --good-start-target=SETUP.md
  4. ini options in pyproject.toml
  5. Default: "."

Marker-based configuration

import pytest

@pytest.mark.good_start(target="INSTALL.md")
def test_install_docs(good_start):
    result = good_start()
    assert result.passed, result.details

Project-wide defaults in pyproject.toml

[tool.pytest.ini_options]
good_start_target = "docs/GETTING_STARTED.md"
good_start_prompt = "tests/prompts/custom.md"

Custom prompt templates

Supply your own prompt file to tailor the agent's behavior:

def test_with_custom_prompt(good_start):
    result = good_start(prompt_path="tests/prompts/strict.md")
    assert result.passed, result.details

Skipping agent tests

Tests using the good_start fixture are automatically marked with @pytest.mark.good_start. Skip them during fast iteration:

pytest -m "not good_start"

Or run only the documentation tests:

pytest -m good_start -v

Failure output

When a test fails, the agent's detailed findings are appended to the pytest failure report, so you get actionable feedback directly in your CI output.

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

good_start-0.1.1.tar.gz (77.2 kB view details)

Uploaded Source

Built Distribution

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

good_start-0.1.1-py3-none-any.whl (15.4 kB view details)

Uploaded Python 3

File details

Details for the file good_start-0.1.1.tar.gz.

File metadata

  • Download URL: good_start-0.1.1.tar.gz
  • Upload date:
  • Size: 77.2 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for good_start-0.1.1.tar.gz
Algorithm Hash digest
SHA256 9057188dd84afb23a19700c7e025dc0743e9fbbc0d789404f5782fef2f8752e7
MD5 bc27a882c84d840bb655dc8ac4dec20c
BLAKE2b-256 118590a92b367dec9bd2dc341677e6b5ec0d88b8a3b560ce0857e100beed1094

See more details on using hashes here.

Provenance

The following attestation bundles were made for good_start-0.1.1.tar.gz:

Publisher: publish.yml on cldixon/good-start

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file good_start-0.1.1-py3-none-any.whl.

File metadata

  • Download URL: good_start-0.1.1-py3-none-any.whl
  • Upload date:
  • Size: 15.4 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for good_start-0.1.1-py3-none-any.whl
Algorithm Hash digest
SHA256 899b2034d81865a8555c29eaf18f2908fcc4a726c491c4d1ca54534eaef3d088
MD5 fdc44fbeb98d1ea49f119ab0619dae06
BLAKE2b-256 2098c4edb001ec414bd68755ec69c12c6a71474cf9d48476f89bd19c5bc43199

See more details on using hashes here.

Provenance

The following attestation bundles were made for good_start-0.1.1-py3-none-any.whl:

Publisher: publish.yml on cldixon/good-start

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