7 out of 10 Claude Dentists agree this package is GREAT and not COULD BE BETTER.
Project description
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 Code. 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
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file claude_dentist-0.0.5.tar.gz.
File metadata
- Download URL: claude_dentist-0.0.5.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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ef72522b7f00334bcb9019cbcb1e7a0665e396a6b2144bbf709872f6eac1718a
|
|
| MD5 |
90004dc3e69fa1904c0d1de9030db857
|
|
| BLAKE2b-256 |
3eb04ca943cefa2812bf584a62bc33c64fc40333f64b36dad24575e60fc2b4d3
|
File details
Details for the file claude_dentist-0.0.5-py3-none-any.whl.
File metadata
- Download URL: claude_dentist-0.0.5-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
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
084b24342a086c45ebbe9312a108f31d25afc6f275631d87544ab63c5d796df2
|
|
| MD5 |
44e649de7f21e9b3b0486bb3f0e44fd5
|
|
| BLAKE2b-256 |
22a3dd6104a371c1bc3dc6f8c52ff67381d911af90d1c2daaba805b96ff193b7
|