Test your package through the eyes of a newbie agent — a fresh AI agent reads only your docs/skills and tries to use your package.
Project description
newb
A fresh AI agent reads only your docs and tries to use your package. If it succeeds, your docs work.
How it works
┌──────────────────────┐ ┌────────────────────────────────────┐ ┌──────────────────────┐
│ Your package │ │ Fresh agent │ │ Report │
│ │ newb │ │ asks │ │
│ ./docs/ or │ spins │ docker / local / apptainer │ 4 + N │ what_for │
│ ./_skills/<pkg>/ │ up │ isolated HOME (no ~/.claude) │ ────→ │ problems_solved │
│ tests_newb.yaml │ │ sees ONLY your docs │ reads │ quick_start │
│ (optional) │ │ no internet to your real session │ back │ when_not_to_use │
└──────────────────────┘ └────────────────────────────────────┘ │ tests[] (pass/fail)│
│ ▲ └──────────────────────┘
└───────────── stages skills ───────────┘
(read-only mount)
The agent has no prior context — it sees only what you ship. If it answers
the 4 canonical questions correctly and your tests_newb.yaml graders
pass, your docs work for the realistic case of a brand-new user (or AI).
Install
pip install newb
Use
newb ./docs # any dir of .md files
newb https://github.com/user/repo.git # git URL — auto-clones
newb ./docs --format markdown >> README.md
newb ./docs --runtime local --auth claude-code # host subprocess
Asks a fresh Claude agent four canonical questions (what for / problems
solved / quick start / when not to use), plus any author-defined tests in
tests_newb.yaml. Output: JSON (for CI) or markdown.
Author tests (tests_newb.yaml)
- name: redirects_parallel
prompt: How do I run things in parallel?
expect_contains: ["does not"]
judge: "Must redirect to an alternative tool, not hallucinate."
Each test combines optional substring grading and an optional LLM judge.
Runtime · Auth
--runtime |
what |
|---|---|
docker |
default — clean container, no host leakage |
local |
host subprocess with isolated HOME |
apptainer |
HPC (planned) |
--auth |
what |
|---|---|
api-key |
default — uses $ANTHROPIC_API_KEY |
claude-code |
copies host ~/.claude/.credentials* |
Library
import newb
report = newb("./docs")
print(newb.render_markdown(report))
Requirements
dockeron PATH (orclaudeCLI if--runtime local)$ANTHROPIC_API_KEY(or--auth claude-code)- Python 3.10+
License
AGPL-3.0-only.
Project details
Release history Release notifications | RSS feed
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 newb-0.5.2.tar.gz.
File metadata
- Download URL: newb-0.5.2.tar.gz
- Upload date:
- Size: 15.9 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
5057914fdb4939dbb8b4c46d49250ec5fe183d756922cc5541494c30c636170b
|
|
| MD5 |
b868d58b29e455b679731ff25826885d
|
|
| BLAKE2b-256 |
af5813c0596975873dac73b6a7b1b1e12402e7ddf3f95c2345f879599e6d42d1
|
File details
Details for the file newb-0.5.2-py3-none-any.whl.
File metadata
- Download URL: newb-0.5.2-py3-none-any.whl
- Upload date:
- Size: 13.9 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.2.0 CPython/3.10.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
ce61ebc7139bbf5ba160fb4b81a87d4f4f2c0a5ef66aa5c58ce5362278d60ef6
|
|
| MD5 |
0c03a4d4f063a56ce9d4059790282a1c
|
|
| BLAKE2b-256 |
6a54736f6445a9d7ea9b5324074439f0ae1c2eaa38350d299ab167dfbcd7d335
|