Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
8 changes: 4 additions & 4 deletions .github/workflows/navigator_check.yml
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
name: Navigator Check

# Thin caller for PyAutoBuild's reusable navigator-catalogue check. The check
# Thin caller for PyAutoHands's reusable navigator-catalogue check. The check
# logic (path/banner lint + catalogue staleness) and its entrypoints live in
# PyAutoBuild/autobuild; this repo only declares which generator project to run.
# See PyAutoLabs/PyAutoBuild/.github/workflows/navigator_check.yml.
# PyAutoHands/autobuild; this repo only declares which generator project to run.
# See PyAutoLabs/PyAutoHands/.github/workflows/navigator_check.yml.

on: [push, pull_request]

Expand All @@ -12,6 +12,6 @@ permissions:

jobs:
navigator:
uses: PyAutoLabs/PyAutoBuild/.github/workflows/navigator_check.yml@main
uses: PyAutoLabs/PyAutoHands/.github/workflows/navigator_check.yml@main
with:
project: howtofit
2 changes: 1 addition & 1 deletion .navigator_check_ignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Paths exempt from the navigator path/banner checks (see
# PyAutoBuild/autobuild/check_navigator.py). One path or glob per line.
# PyAutoHands/autobuild/check_navigator.py). One path or glob per line.
#
# CLAUDE.md's "Relationship to autofit_workspace" section mentions sibling
# autofit_workspace scripts in prose (as the next destination after a concept).
Expand Down
16 changes: 7 additions & 9 deletions AGENTS.md
Original file line number Diff line number Diff line change
Expand Up @@ -36,9 +36,9 @@ and the generic `af.Model` / `af.Collection` API.

On CI, every PR is gated on Python **3.12 and 3.13** by `smoke_tests.yml` (runs
`python .github/scripts/run_smoke.py`, driven by `smoke_tests.txt` + `config/build/env_vars.yaml` —
the definition of green), `navigator_check.yml` (PyAutoBuild's reusable navigator-catalogue check;
the definition of green), `navigator_check.yml` (PyAutoHands's reusable navigator-catalogue check;
see *Notebooks vs Scripts*), and `url_check.yml` (link checking). The smoke and navigator jobs check
out **PyAutoBuild** as a sibling and run the PyAuto* libraries from the **same-named branch** of each
out **PyAutoHands** as a sibling and run the PyAuto* libraries from the **same-named branch** of each
source repo, so a HowToFit PR is validated against matching library branches.

## Sandboxed / restricted runs
Expand All @@ -51,17 +51,17 @@ NUMBA_CACHE_DIR=/tmp/numba_cache MPLCONFIGDIR=/tmp/matplotlib python scripts/cha

## Notebooks vs Scripts

Notebooks in `notebooks/` are **generated** from the `.py` scripts via PyAutoBuild. **Always edit the
Notebooks in `notebooks/` are **generated** from the `.py` scripts via PyAutoHands. **Always edit the
`.py` scripts, never the `.ipynb` directly.** The `# %%` marker alternates code and markdown cells.
Regenerate from the repo root:

```bash
PYTHONPATH=../PyAutoBuild/autobuild python3 ../PyAutoBuild/autobuild/generate.py howtofit
PYTHONPATH=../PyAutoHands/autobuild python3 ../PyAutoHands/autobuild/generate.py howtofit
```

The `howtofit` project target is registered in PyAutoBuild (`run_all.py`, `navigator.py`, `config/`).
The `howtofit` project target is registered in PyAutoHands (`run_all.py`, `navigator.py`, `config/`).
The navigator catalogue — `llms-full.txt` + `workspace_index.json` — is what `navigator_check.yml`
gates; it is rebuilt by the same PyAutoBuild generate/merge flow that builds the notebooks. Commit
gates; it is rebuilt by the same PyAutoHands generate/merge flow that builds the notebooks. Commit
regenerated notebooks and catalogue alongside the script changes.

## Bulk-edit safety
Expand All @@ -74,7 +74,7 @@ write from a header skim silently deletes every section below the header.

- `../PyAutoFit` — source library.
- `../autofit_workspace` — the user-facing workspace (tutorials point here as the next destination).
- `../PyAutoBuild` — notebook generation + CI tooling.
- `../PyAutoHands` — notebook generation + CI tooling.

## Task Workflows

Expand All @@ -84,11 +84,9 @@ entries until the summary passes; regenerate notebooks + catalogue after. **Gene
only files in `scripts/` (never `notebooks/`), preserve docstrings and explanations, test, then
regenerate. Flag any change that affects `autofit_workspace` or PyAutoFit in your PR.

<!-- repos_sync:history:begin -->
## Never rewrite history

Never rewrite pushed history on any repo with a remote — no `git init` over a
tracked repo, no force-push to `main`, no fresh-start "Initial commit", no
`filter-repo` / `filter-branch` / `rebase -i` on pushed branches. To get a
clean tree: `git fetch origin && git reset --hard origin/main && git clean -fd`.
<!-- repos_sync:history:end -->
4 changes: 2 additions & 2 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -67,9 +67,9 @@ Before starting chapter 1, open `start_here.py` for a one-page overview of the s

## Notebooks vs Scripts

Notebooks in `notebooks/` are generated from the Python files in `scripts/`. **Always edit the \`\`.py\`\`
Notebooks in `notebooks/` are generated from the Python files in `scripts/`. **Always edit the ``.py``
scripts, never the notebooks directly.** The `# %%` markers in each script alternate between code and
markdown cells, which [PyAutoBuild](https://github.com/PyAutoLabs/PyAutoBuild) uses to produce the
markdown cells, which [PyAutoHands](https://github.com/PyAutoLabs/PyAutoHands) uses to produce the
`.ipynb` files.

## Relationship to autofit_workspace
Expand Down
2 changes: 1 addition & 1 deletion config/build/markdown_examples.yaml
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
# Curated examples rendered to executed markdown pages (markdown/) with real
# output images, for GitHub browsing. Built by PyAutoBuild's generate_markdown.py
# output images, for GitHub browsing. Built by PyAutoHands's generate_markdown.py
# (never TEST_MODE; features/ never rendered; order = execution + index order).
# Batch 2b: chapter_1_introduction (the intro lecture, in reading order).
- script: scripts/chapter_1_introduction/start_here.py
Expand Down
2 changes: 1 addition & 1 deletion llms-full.txt
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
AUTO-GENERATED by PyAutoBuild — do not edit by hand; regenerate with generate.py.
AUTO-GENERATED by PyAutoHands — do not edit by hand; regenerate with generate.py.

# HowToFit Lectures — Full Catalogue

Expand Down
2 changes: 1 addition & 1 deletion markdown/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -9,4 +9,4 @@ Every page below is the corresponding example script **fully executed**, rendere
- [Tutorial 4: Why Modeling Is Hard](chapter_1_introduction/tutorial_4_why_modeling_is_hard.md) — from `scripts/chapter_1_introduction/tutorial_4_why_modeling_is_hard.py`
- [Tutorial 5: Results And Samples](chapter_1_introduction/tutorial_5_results_and_samples.md) — from `scripts/chapter_1_introduction/tutorial_5_results_and_samples.py`

These pages are regenerated manually by PyAutoBuild's `generate_markdown.py` when a curated script changes.
These pages are regenerated manually by PyAutoHands's `generate_markdown.py` when a curated script changes.
Loading