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.0.tar.gz (63.7 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.0-py3-none-any.whl (8.4 kB view details)

Uploaded Python 3

File details

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

File metadata

  • Download URL: good_start-0.1.0.tar.gz
  • Upload date:
  • Size: 63.7 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.0.tar.gz
Algorithm Hash digest
SHA256 2e35bc5a1babb3601987daad21338334a5145416645fa7eec6e761931478fbaa
MD5 b7f35826dde0d37ae8ed43db4135d2ac
BLAKE2b-256 580febde710f0dde455774d5440019db1ea6091faa60767937c2745bee33e8ab

See more details on using hashes here.

Provenance

The following attestation bundles were made for good_start-0.1.0.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.0-py3-none-any.whl.

File metadata

  • Download URL: good_start-0.1.0-py3-none-any.whl
  • Upload date:
  • Size: 8.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.0-py3-none-any.whl
Algorithm Hash digest
SHA256 fe52a5f768e9c7a86f8e840573a25fdd87024a9b2a7185f829fdf3c6e3fd3b56
MD5 3000c4eca5c6672bdb8791e1d8d29470
BLAKE2b-256 1738dc60f610bfe01d2d9cb2ce801aff44446fc04737a1a75ba6ae661391e66f

See more details on using hashes here.

Provenance

The following attestation bundles were made for good_start-0.1.0-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