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.6.0.tar.gz (15.5 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.6.0-py3-none-any.whl (13.7 kB view details)

Uploaded Python 3

File details

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

File metadata

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

File hashes

Hashes for newb-0.6.0.tar.gz
Algorithm Hash digest
SHA256 c71173ba2ea5020f87482bbfcc232e7e323df8f13193a691ceb11838b468ad10
MD5 5926af70251c6fd11890819b817eb826
BLAKE2b-256 02304e94a8487a245bba57193d9efb48dd20c9363210e50df1755715b6a93dac

See more details on using hashes here.

File details

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

File metadata

  • Download URL: newb-0.6.0-py3-none-any.whl
  • Upload date:
  • Size: 13.7 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.6.0-py3-none-any.whl
Algorithm Hash digest
SHA256 59090617475dc5567516f0acb1f937d32bf1daf8936060e168bb9f77eef51df4
MD5 e4d0af4e69c6a601cf5e9889f737d8c4
BLAKE2b-256 058bb26fdb79b9c7b52f72581043fb399aad0e6e778133b41d380505a549cb7d

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