Skip to main content

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

newb mascot

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       │    │   sac (scitex-agent-         │    │   Report             │
│                      │    │   container)                 │    │                      │
│   ./docs/   or       │    │                              │    │   what_for           │
│   ./_skills/<pkg>/   │ →  │   spins up a fresh Claude    │ →  │   problems_solved    │
│   tests_newb.yaml    │    │   Code session (local /      │    │   quick_start        │
│   (optional)         │    │   docker / apptainer) with   │    │   when_not_to_use    │
│                      │    │   only your skills mounted   │    │   tests[] (pass/fail)│
└──────────────────────┘    └──────────────────────────────┘    └──────────────────────┘
            │                            ▲
            │                            │  newb POSTs N prompts via A2A JSON-RPC
            └────────── stages ──────────┘
                                         (one container, N requests)

newb owns the test schema (4 canonical questions + tests_newb.yaml

  • graders + report rendering). sac owns everything else: runtime selection, auth, isolation, Claude Code session lifecycle. newb only speaks A2A.

Install

pip install newb

scitex-agent-container is pulled in as a dependency.

Use

newb ./docs                                # any dir of .md files
newb ./src/mypkg/_skills/mypkg             # standard SciTeX layout
newb https://github.com/user/repo.git      # git URL — shallow-clones
newb ./docs --format markdown >> README.md

Asks a fresh Claude Code 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.

Auth, runtime, isolation

All handled by sac — see scitex-agent-container for credential setup, runtime backends (local / docker / apptainer / ssh-remote / slurm), and isolation primitives. newb's job ends at "POST the prompt, parse the response."

Library

import newb
report = newb("./docs")
print(newb.render_markdown(report))

Requirements

  • Python 3.10+
  • scitex-agent-container (auto-installed) — see its README for one-time account/credential setup

License

AGPL-3.0-only.

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

newb-0.7.0.tar.gz (14.3 kB view details)

Uploaded Source

Built Distribution

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

newb-0.7.0-py3-none-any.whl (12.3 kB view details)

Uploaded Python 3

File details

Details for the file newb-0.7.0.tar.gz.

File metadata

  • Download URL: newb-0.7.0.tar.gz
  • Upload date:
  • Size: 14.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for newb-0.7.0.tar.gz
Algorithm Hash digest
SHA256 aa569a99cbf27c754f6e73dba807c835ab68a12321d0ad2346ef955f85b3ef56
MD5 ac006fe1b0cd036a22e7dfc41831a0e8
BLAKE2b-256 1d77b83b86598c54bd33fec4fe05dc316081e3e068121baab802cedb75426738

See more details on using hashes here.

File details

Details for the file newb-0.7.0-py3-none-any.whl.

File metadata

  • Download URL: newb-0.7.0-py3-none-any.whl
  • Upload date:
  • Size: 12.3 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/6.2.0 CPython/3.10.12

File hashes

Hashes for newb-0.7.0-py3-none-any.whl
Algorithm Hash digest
SHA256 257bf2add045651526ef79ab651bd37ccf65a5499c8e459d2b26ca2fe9481511
MD5 513aef2b7518ad75aa1d4777cae9d237
BLAKE2b-256 7a0c65e52d7d933b75fd4a1a9c4ba0d350964c874de4a8fc9cc81393a1fb189e

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