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.
Metadata
Release files for claude-dentist 0.0.5
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Source distribution (sdist)
| File | Size | Uploaded | |
|---|---|---|---|
| claude_dentist-0.0.5.tar.gz | 7.1 kB | Details |
Built distribution (wheel)
| File | Interpreter | ABI | Platform | Reset |
|---|---|---|---|---|
| claude_dentist-0.0.5-py3-none-any.whl | Python 3 | none | any | Details |
Total release size: 15.4 kB
Release files / claude_dentist-0.0.5.tar.gz
| Download URL | claude_dentist-0.0.5.tar.gz |
|---|---|
| Size | 7.1 kB |
| Tags | Source |
|
SHA-256 checksum How to use checksums |
ef72522b7f00334bcb9019cbcb1e7a0665e396a6b2144bbf709872f6eac1718a
|
|
BLAKE2b-256 checksum How to use checksums |
3eb04ca943cefa2812bf584a62bc33c64fc40333f64b36dad24575e60fc2b4d3
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|
Release files / claude_dentist-0.0.5-py3-none-any.whl
| Download URL | claude_dentist-0.0.5-py3-none-any.whl |
|---|---|
| Size | 8.3 kB |
| Tags | Python 3 |
|
SHA-256 checksum How to use checksums |
084b24342a086c45ebbe9312a108f31d25afc6f275631d87544ab63c5d796df2
|
|
BLAKE2b-256 checksum How to use checksums |
22a3dd6104a371c1bc3dc6f8c52ff67381d911af90d1c2daaba805b96ff193b7
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is 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}
|