Skip to main content

7 out of 10 Claude Dentists agree this package is GREAT and not COULD BE BETTER.

Project description

PyPI version Python versions License Claude Dentist Rating

claude-dentist

7 out of 10 Claude Dentists agree this package is GREAT and not COULD BE BETTER.

Agent Experience (AX) testing for tools built for Claude. Asserts X out of Y agents report your tool works GREAT and not COULD BE BETTER.

Agents run with bypassPermissions enabled and can execute shell commands, read/write files, and install packages without confirmation. Always run in a sandboxed environment.

Usage

import pytest
from claude_dentist import claude_dentist

@pytest.mark.anyio
async def test_agent_experience() -> None:
    await claude_dentist(
        runs=3,
        min_passes=2,
        prompt="Assess my-tool by using it. Install with `uv add my-tool`.",
        max_turns=15,
        deadline_seconds=60,
    )

Self-assessment

This is the test used to assess claude-dentist itself:

@pytest.mark.agent_experience
@pytest.mark.anyio
async def test_claude_can_use_claude_dentist() -> None:
    await claude_dentist(
        runs=10,
        min_passes=9,
        prompt=textwrap.dedent(f"""\
            Assess the claude-dentist library. Create a temporary project
            in /tmp, install it with
            `uv add "claude-dentist @ {CLAUDE_DENTIST_ROOT}"`, and try
            it out. Use a maximum of 3 runs to save on costs.
        """),
        options=ClaudeAgentOptions(max_turns=30),
        deadline_seconds=600,
    )

Dissenting opinions

Three Claude Dentists reported this library COULD BE BETTER:

  • Dentist #2 found that sub-agents kept hitting the max turns limit before completing, causing ERROR verdicts.
  • Dentist #8 discovered that verdict parsing is fragile — an agent that mentions "COULD BE BETTER" anywhere in its narrative gets misclassified, even when the final judgment is GREAT.
  • Dentist #10 actually said GREAT, but fell victim to the same verdict parsing bug that Dentist #8 reported.

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

claude_dentist-0.0.3.tar.gz (7.1 kB view details)

Uploaded Source

Built Distribution

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

claude_dentist-0.0.3-py3-none-any.whl (8.3 kB view details)

Uploaded Python 3

File details

Details for the file claude_dentist-0.0.3.tar.gz.

File metadata

  • Download URL: claude_dentist-0.0.3.tar.gz
  • Upload date:
  • Size: 7.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for claude_dentist-0.0.3.tar.gz
Algorithm Hash digest
SHA256 8f1252b561830ea826b1b27a3f7c7e473a431d92644e94c80c456e80e5cb7bff
MD5 4169bb088f1ce4d8c1ad0312069cfd67
BLAKE2b-256 fc2a1d0191756076d1f91946dfcdf0b009ed5e5b81496185811ca2505628a33d

See more details on using hashes here.

File details

Details for the file claude_dentist-0.0.3-py3-none-any.whl.

File metadata

  • Download URL: claude_dentist-0.0.3-py3-none-any.whl
  • Upload date:
  • Size: 8.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: uv/0.11.14 {"installer":{"name":"uv","version":"0.11.14","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":{"name":"Ubuntu","version":"24.04","id":"noble","libc":null},"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

File hashes

Hashes for claude_dentist-0.0.3-py3-none-any.whl
Algorithm Hash digest
SHA256 923dffac15233f7a73d100d1ad5a671f5fcdaa91cf790a87d0f40b2827836a4f
MD5 14c68fe783b1ba0e9f6b321b9a35968c
BLAKE2b-256 1de968c2519a581f6b84e475b256abe1b8d26fd1a2403cbc6fbb7ac42669fac4

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