Skip to content

Commit 4c25cc7

Browse files
Jammy2211claude
authored andcommitted
Brain readability pass: README rewrite, ORGANISM Nerves currency, declutter (#237)
- README on the Mind/Heart pattern: organ opening, drive-it-in-plain-English, sequential 'How PyAutoBrain works' (conductor decides+acts, faculties advise, Brain -> Heart -> Hands, autonomy contract), CLI examples, pointers. The drifted hand copies (6-organ table, 5-of-18 verbs) are replaced by links to ORGANISM.md and AGENTS.md's generated table. - ORGANISM.md records the Nerves rename (PyAutoConf -> PyAutoNerves, autoconf -> autonerves) instead of asserting the old name; same fix in docs/example.md and four skill-doc prose mentions (repo_cleanup/reference.md:128's stale owner mapping is left for the functional-leftovers follow-up). - AI_POLICY.md + CONTRIBUTING.md move under .github/ (zero inbound refs; matches Mind #248 and Heart #151). 13 fully-merged remote branches deleted. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
1 parent 4ff5919 commit 4c25cc7

9 files changed

Lines changed: 61 additions & 40 deletions

File tree

File renamed without changes.
File renamed without changes.

ORGANISM.md

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -18,14 +18,14 @@ organs plan, build, test and release it, and you make every judgment call.
1818
| **Hands** | PyAutoHands | Builds and releases — packaging, tagging, notebook generation, PyPI via `release.yml`. A pure executor: runs no readiness checks and never re-derives a gate decision. |
1919
| **Memory** | PyAutoMemory | Long-term knowledge — *what the science says* (literature wikis, concepts, bibliographies). Operational history — *what the organism did* — lives in Mind (the `complete/` records, issues), not here. |
2020
| **Gut** | PyAutoGut | Owns the lifecycle of *condemned self-material* — stale branches, stashes, dead code/tests. Holds each as a durable, recoverable git ref through a transit window and **voids** it on a sweep. The storage mirror of Memory (retention ↔ release); the hygiene conductor drives it, as vitals reads Heart. |
21-
| **Nerves** | PyAutoConf | The configuration/serialization layer (`autoconf`) — layered config with overrides, the workspace↔library version handshake, `test_mode`, FITS/JSON I/O. Connects the organism's conventions to every library; the base layer the scientific libraries all import. The seventh organ. |
21+
| **Nerves** | PyAutoNerves | The configuration/serialization layer (`autonerves`) — layered config with overrides, the workspace↔library version handshake, `test_mode`, FITS/JSON I/O. Connects the organism's conventions to every library; the base layer the scientific libraries all import. The seventh organ. |
2222

2323
*Hands* and *Build* name the **same organ** (PyAutoHands) throughout this
2424
document: the organ is the **Hands**, and *Build* is the call-chain step it
2525
performs. (The Hands repo was renamed PyAutoBuild → PyAutoHands; the *Build*
26-
call-chain shorthand and the `autohands` package/CLI keep their names.
27-
`PyAutoConf` likewise remains the Nerves repo's name, aligned with its
28-
`autoconf` package.)
26+
call-chain shorthand and the `autohands` package/CLI keep their names. The
27+
Nerves repo was likewise renamed PyAutoConf → PyAutoNerves, its package
28+
`autoconf` `autonerves`.)
2929

3030
The scientific libraries (PyAutoFit, PyAutoArray, PyAutoGalaxy, PyAutoLens) and
3131
the workspaces are **capabilities the organism uses, not organs**. The full
@@ -67,6 +67,6 @@ script), not as a repo. A new organ costs an `AGENTS.md`, a `CLAUDE.md` stub,
6767
install wiring, a body-map row and boundary prose — it must earn that by
6868
owning state or effects no existing organ can. Configuration/signalling is the
6969
one standing exception that already earned organ status: it is the **Nerves**
70-
(PyAutoConf), the base config/serialization layer every library imports — new
70+
(PyAutoNerves), the base config/serialization layer every library imports — new
7171
config surfaces belong there, not in a new organ. The human interaction layer
7272
is the command surface (`/route` + the verb commands), which is part of Brain.

README.md

Lines changed: 51 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -6,37 +6,58 @@
66

77
[![PyAutoScientist GitHub](https://img.shields.io/badge/%E2%9A%9B%EF%B8%8F%20PyAutoScientist-GitHub-181717?style=flat-square)](https://github.com/PyAutoLabs/PyAutoScientist) [![PyAutoScientist ReadTheDocs](https://img.shields.io/badge/%F0%9F%93%96%20PyAutoScientist-ReadTheDocs-8CA1AF?style=flat-square)](https://pyautoscientist.readthedocs.io)
88

9-
The reasoning layer of the PyAuto organism. Brain figures out *how* work
10-
gets done: it classifies incoming tasks, plans them, and routes them to
11-
specialist agents, delegating execution to the other organs. It holds no
12-
state, runs no health checks, and never releases anything itself.
13-
14-
The organism is described once in [ORGANISM.md](ORGANISM.md). The short
15-
version:
16-
17-
| Organ | Repo | Job |
18-
|-------|------|-----|
19-
| Mind | PyAutoMind | what to do — intent, priorities, workflow state |
20-
| Brain | PyAutoBrain (this repo) | how to do it — reasoning, planning, routing |
21-
| Heart | PyAutoHeart | is it healthy — the release-readiness verdict |
22-
| Hands | PyAutoHands | do it — packaging, tagging, PyPI releases |
23-
| Memory | PyAutoMemory | what we know — long-term scientific knowledge |
24-
| Gut | PyAutoGut | what we shed — condemned branches, stashes and dead code, held recoverably then voided |
25-
26-
Agents live under `agents/` in two tiers: **conductors** (front doors a
27-
human drives; they decide and act) and **faculties** (read-only judgments
28-
the conductors consult). Humans mostly reach them through short slash
29-
commands — `/intake`, `/feature`, `/bug`, `/health`, `/route` — whose
30-
bodies live in `skills/`.
9+
**PyAutoBrain is the Brain of the PyAutoScientist** — the reasoning layer that
10+
turns intent into shipped software. It decides *how* work gets done: it
11+
classifies each task, plans it, and routes it to specialist agents — and it
12+
delegates everything else: it holds no state (the Mind's job), runs no health
13+
checks (the Heart's), and never releases anything itself (the Hands').
14+
15+
You drive it in plain English, through short slash commands in a Claude Code
16+
chat: `/intake` to file an idea, `/start_dev` to begin a task, `/health` for a
17+
check-up — or just `/route <what you want>` and the Brain picks the right
18+
door. The full command surface (13 conductors + 5 faculties) is the generated
19+
table in [AGENTS.md](AGENTS.md).
20+
21+
## How PyAutoBrain works
22+
23+
1. **A task arrives.** Usually from the Mind's backlog — pick a task on the
24+
[PyAutoMind dashboard](https://pyautolabs.github.io/PyAutoMind/) and paste
25+
its `/start_dev` command — or free-form, via `/route` or any conductor's
26+
own door.
27+
2. **A conductor takes it.** Conductors ([`agents/conductors/`](agents/conductors))
28+
are the front doors a human drives; they decide *and* act: `intake`
29+
conceives tasks, `feature`/`bug`/`refactor` plan development, `health`
30+
runs the clinic, `release` drives a release, and so on.
31+
3. **Faculties advise.** Faculties ([`agents/faculties/`](agents/faculties))
32+
are read-only opinions the conductors consult: `vitals` reads the Heart's
33+
verdict, `sizing` estimates difficulty, `memory` recalls what the organism
34+
knows, `review` judges a branch. A conductor never consults another
35+
conductor — an opinion worth sharing becomes a faculty.
36+
4. **The organs execute.** Always in the same order — **Brain → Heart (gate)
37+
→ Hands (execute)**: work happens on task worktrees, ships as pull
38+
requests behind the Heart's health verdict, and is packaged and released
39+
by the Hands.
40+
5. **Autonomy is a contract.** How much a run may do without a human is
41+
defined per task in [AUTONOMY.md](AUTONOMY.md) — a safe-capped task may
42+
carry itself to an open pull request; merging and releasing always stay
43+
human.
44+
45+
## CLI examples
46+
47+
The same agents are runnable directly — every slash command is a verb of one
48+
CLI, which runs straight from this checkout (no pip install):
3149

3250
```bash
33-
bin/pyauto-brain help # list the agents
34-
bin/pyauto-brain vitals # one health tick + the dashboard card
35-
bash bin/install.sh # symlink every organ's skills into ~/.claude
51+
bin/pyauto-brain help # list every conductor and faculty
52+
bin/pyauto-brain route "fix the failing lens smoke test" # plain English in
53+
bin/pyauto-brain vitals # read the Heart's readiness verdict
54+
bash bin/install.sh # symlink every organ's skills into ~/.claude
3655
```
3756

38-
Runs straight from its checkout — no pip install. Agent contracts and the
39-
organ boundary are in [AGENTS.md](AGENTS.md); how much a run may do without
40-
a human is the autonomy contract, [AUTONOMY.md](AUTONOMY.md). The full
41-
organism documentation — including how to fork and run your own — is at
42-
<https://pyautoscientist.readthedocs.io> (source: `docs/`).
57+
The seven organs the Brain coordinates — Mind (intent), Brain (reasoning),
58+
Heart (health), Hands (release), Memory (knowledge), Gut (shedding), Nerves
59+
(configuration) — are defined once in [ORGANISM.md](ORGANISM.md), which this
60+
repo hosts. Agent contracts and the generated command table are in
61+
[AGENTS.md](AGENTS.md). The full organism documentation — including how to
62+
fork it and lead your own — is at <https://pyautoscientist.readthedocs.io>,
63+
whose source lives here in [`docs/`](docs).

docs/example.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -10,7 +10,7 @@ replaces every name below with your own.
1010

1111
The live `repos.yaml` declares ~25 repos. The load-bearing categories:
1212

13-
- **Libraries:** PyAutoConf (shared config), PyAutoFit (Bayesian
13+
- **Libraries:** PyAutoNerves (shared config), PyAutoFit (Bayesian
1414
inference), PyAutoArray (data structures), PyAutoGalaxy (galaxy
1515
modelling), PyAutoLens (strong lensing), PyAutoReduce (data reduction) —
1616
a dependency chain released to PyPI nightly when there is new activity.

skills/repo_cleanup/SKILL.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -54,7 +54,7 @@ this covers residue when that flow is skipped); the start_dev branch survey
5454

5555
## Scope
5656

57-
**Always swept:** library canonical checkouts under `$PYAUTO_MAIN` (PyAutoConf,
57+
**Always swept:** library canonical checkouts under `$PYAUTO_MAIN` (PyAutoNerves,
5858
PyAutoFit, PyAutoArray, PyAutoGalaxy, PyAutoLens, PyAutoHands); workspaces incl.
5959
`_test`/`_developer` variants (autofit/autogalaxy/autolens families, HowToLens);
6060
and worktree roots under `$PYAUTO_WT_ROOT`.

skills/sampler_pipeline/reference.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -19,7 +19,7 @@ Given a GitHub URL, before writing any adapter code:
1919
example (e.g. nessai routes users to a `nessai-bilby` plugin), go to the
2020
docs site and examples dir — never guess an API from the package name.
2121
2. **Dependency-compatibility check** against the installed stack *before*
22-
`pip install`: Python floor, JAX pin overlap with PyAutoConf's `[jax]`
22+
`pip install`: Python floor, JAX pin overlap with PyAutoNerves's `[jax]`
2323
floor/ceiling, and heavyweight extras (a PyTorch-core sampler like nessai
2424
brings CUDA-pinning risk beside the JAX stack). Under-declared floors are
2525
real (the nufftax lesson) — check what the code imports, not just

skills/ship_library/ship_library.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Ship Library: Gate, Test, PR
22

3-
Ship source-library changes (PyAutoConf, PyAutoFit, PyAutoArray, PyAutoGalaxy,
3+
Ship source-library changes (PyAutoNerves, PyAutoFit, PyAutoArray, PyAutoGalaxy,
44
PyAutoLens) for every library repo touched by the task. This is
55
**feature-development** work — the commit/push/feature-PR is the dev workflow's
66
own execution, gated by Heart. It is **not** a Build task (Build is

skills/start_library/start_library.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
# Start Library: Set Up Library Development
22

3-
Set up the development environment for **library source-code** work (PyAutoConf,
3+
Set up the development environment for **library source-code** work (PyAutoNerves,
44
PyAutoFit, PyAutoArray, PyAutoGalaxy, PyAutoLens). Assumes `/start_dev` already
55
registered the task in `PyAutoMind/active.md`.
66

0 commit comments

Comments
 (0)