An agent that lives in your repository. It is event-driven (pull requests, comments, a weekly clock), it uses tools (the tracer, the verifier, the plan, git, the training runner), it acts on its own (opens fix pull requests, submits jobs when asked), it verifies its own work with a deterministic gate before pushing anything, and it remembers outcomes in a ledger the next change is checked against. Dependabot did this for dependencies. Nobody does it for models.
Plan and block are shipped. Fix pull requests and /neurarch train are in progress. Neither artifact below is a mock. Both are copied from a real run and link to it.
$ neurarch-trace torchvision.models:resnet18 --input 1,3,224,224 --plan --share Plan: resnet18 68 layers · 11.7M params · fingerprint 9ea7d4ae shape [3,224,224] -> [1000] will run yes (0 blockers, 0 warnings) fits T4 16GB yes · A100 40GB yes · H100 80GB yes train ~$0.11 / 6m on A10G (24GB) (10 epochs, batch 32, 50k samples assumed) Share: https://www.neurarch.com/p/r7rq5c4jt2
models/small_cnn.py:SmallCNN will run
SmallCNN: 21 layers, 1.1M params, will run, fits a T4, about $0.05 to train, vs SmallCNN: params +978.9K
| Layers / params | 21 / 1.1M (+978.9K, +693%) |
| Shape | [3,32,32] -> [10] |
| Will it run | yes, 0 warnings |
| GPU fit | T4 yes · A100 40GB yes · H100 80GB yes (memory +0.02 GB) |
| Est. training | ~$0.05 / 3m on A10G (24GB) (+<$0.01) |
| Blast radius | 7 downstream layers from 8 touched |
One workflow, one config that names the models and their input shapes. The bot traces a forward pass in CI, so it works on models built at runtime: from_pretrained, timm factories, architectures across a dozen files.
name: neurarch-bot
on: [pull_request]
permissions:
contents: read
pull-requests: write
jobs:
plan:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v4
with:
fetch-depth: 0
- uses: neurarch-ai/neurarch-bot@v0
models:
- path: models/gpt.py:GPT
input: 1,128:long
- path: models/resnet.py:ResNet18
input: 1,3,224,224
policy: # optional, coming with phase 3
max_params: 200M
must_fit: A100-40GB
forbid_types: [softmax]
No account needed. An API key (Settings → Developer API) lifts the anonymous rate limit and, later, turns on the ledger. Try the same plan locally first: pip install neurarch-trace.
Traces base and head, posts one comment: layers, params and the delta, GPU fit, estimated cost and the delta, blast radius, the exact lines that changed structurally. Updated in place on every push, never duplicated.
A graph that will not forward-pass turns the check red. Deterministic: the same graph gets the same answer every run, which is what a gate in front of a GPU queue needs.
On a blocker the bot opens a branch with the patch, re-traces, re-plans, and pushes only if the new plan is legal. Exact fixes need no model call; proposed fixes are verified in your CI before anything is pushed.
Comment on the PR and the bot submits the job, watches it, posts the curve and the metrics, and writes the outcome to your ledger so the next change is checked against what actually happened.
--share or set share: true. Shared plans are stored at an unguessable URL and say so on the page.The full contract is in docs/DATA_POLICY.md; the site privacy page is here.