|
| 1 | +# PyAutoPulse — Agent Guidance |
| 2 | + |
| 3 | +PyAutoPulse is the **health authority** of the PyAuto release ecosystem: it owns |
| 4 | +all health and release-readiness checking plus continuous monitoring of the |
| 5 | +PyAuto repos. `pyauto-pulse readiness` is the authoritative "is it safe to |
| 6 | +release?" gate. |
| 7 | + |
| 8 | +## The boundary (one description, mirrored in all three repos) |
| 9 | + |
| 10 | +- **PyAutoPulse — the health authority.** All health/readiness logic lives here: |
| 11 | + version drift, install-path, URL hygiene, CI/worktree/timing monitoring. |
| 12 | + `pyauto-pulse readiness` is the **authoritative** green/yellow/red verdict — |
| 13 | + the single "is it safe to release?" gate. Pulse is an observer: it reads and |
| 14 | + emits verdicts; it never writes into other repos and never triggers Build. |
| 15 | +- **PyAutoBuild — the executor.** Packaging, tagging, notebook generation, and |
| 16 | + PyPI publication via `release.yml`. Build runs **no** readiness checks of its |
| 17 | + own and never re-derives a gate decision; it just executes. |
| 18 | +- **PyAutoAgent — the brain.** Hosts the agents that connect the two. It owns no |
| 19 | + checks and no release steps; it gates on Pulse and delegates execution to |
| 20 | + Build. |
| 21 | + |
| 22 | +## The call chain (always this order) |
| 23 | + |
| 24 | +``` |
| 25 | +Agent → Pulse (gate) → Build (execute) |
| 26 | +``` |
| 27 | + |
| 28 | +The agent asks `pyauto-pulse readiness --json`; only on a **green** verdict does |
| 29 | +it trigger Build's release. Pulse never triggers Build; Build never re-derives a |
| 30 | +gate decision the agent already made. |
| 31 | + |
| 32 | +## Where things live |
| 33 | + |
| 34 | +- Continuous checks (cheap, in the <30s `tick`): repo state, CI status, open PRs, |
| 35 | + worktree drift, script timing, version skew. |
| 36 | +- Deep checks (on-demand / cloud cron, never in the tick): `verify_install` (pip |
| 37 | + & conda install-path) and the URL-hygiene sweep (`url_sweep` + the central |
| 38 | + `.github/workflows/url-check.yml`). |
| 39 | +- `readiness` rolls these into the authoritative verdict (URL hygiene is |
| 40 | + monitoring only and does **not** gate it). |
| 41 | + |
| 42 | +See [`CLAUDE.md`](CLAUDE.md) for Pulse's internals — the check framework, the |
| 43 | +<30s tick budget, how to add a check, and the hard rules (observer-only, colour |
| 44 | +coding, atomic state writes). |
0 commit comments