From 909d6d24fad032fc5327f80e05ce0f5b12fd4743 Mon Sep 17 00:00:00 2001 From: Jammy2211 Date: Thu, 23 Jul 2026 12:50:14 +0100 Subject: [PATCH] refactor: rename autobuild package and CLI to autohands The Hands repo was renamed PyAutoBuild -> PyAutoHands but its payload package and CLI kept the old name. Renames autobuild/ -> autohands/ and bin/autobuild -> bin/autohands (via git mv, so history follows) and updates every live reference across the organism. Preserved deliberately: PyAutoBuild#NNN issue citations, the rhayes777/PyAutoBuild url_fixups patterns, the pyautobuild -> pyautohands policy alias, pyautobuild_boundary_audit.md, and PyAutoMind historical records. 'autobuild' is also kept as a back-compat router keyword in policy.yaml / _intake.py / _bug.py, since those are typed keywords rather than paths. Refs PyAutoLabs/PyAutoHands#177 Co-Authored-By: Claude Opus 4.8 --- .github/workflows/smoke-tests.yml | 2 +- .github/workflows/workspace-validation.yml | 12 ++++++------ bin/pyauto-heart | 2 +- health_agent/pyautobuild_boundary_audit.md | 4 ++-- heart/checks/script_timing.py | 4 ++-- heart/checks/test_run.py | 2 +- heart/checks/url_check_live.py | 2 +- heart/checks/url_check_live.sh | 2 +- scripts/health_release.sh | 2 +- scripts/health_sync.sh | 10 +++++----- skills/pyauto-status-full/reference.md | 6 +++--- skills/verify_install/verify_install.md | 2 +- 12 files changed, 25 insertions(+), 25 deletions(-) diff --git a/.github/workflows/smoke-tests.yml b/.github/workflows/smoke-tests.yml index ec85259..106f70d 100644 --- a/.github/workflows/smoke-tests.yml +++ b/.github/workflows/smoke-tests.yml @@ -87,7 +87,7 @@ jobs: JAX_ENABLE_X64: "True" NUMBA_CACHE_DIR: /tmp/numba_cache MPLCONFIGDIR: /tmp/matplotlib - PYTHONPATH: ${{ github.workspace }}/PyAutoHands/autobuild + PYTHONPATH: ${{ github.workspace }}/PyAutoHands/autohands run: | cd workspace python .github/scripts/run_smoke.py diff --git a/.github/workflows/workspace-validation.yml b/.github/workflows/workspace-validation.yml index 84434e8..021b9f7 100644 --- a/.github/workflows/workspace-validation.yml +++ b/.github/workflows/workspace-validation.yml @@ -132,7 +132,7 @@ jobs: else PROJECTS="autofit autogalaxy autolens autofit_test autogalaxy_test autolens_test howtogalaxy howtolens howtofit" fi - matrix="$(python3 PyAutoHands/autobuild/script_matrix.py $PROJECTS)" + matrix="$(python3 PyAutoHands/autohands/script_matrix.py $PROJECTS)" echo "matrix=$matrix" >> "$GITHUB_OUTPUT" generate_notebooks: @@ -176,7 +176,7 @@ jobs: run: | export PYTHONPATH="$PYTHONPATH:$(pwd)/PyAutoHands" pushd workspace - python3 "$(pwd)/../PyAutoHands/autobuild/generate.py" "${{ matrix.project.name }}" + python3 "$(pwd)/../PyAutoHands/autohands/generate.py" "${{ matrix.project.name }}" - name: Upload generated notebooks if: always() uses: actions/upload-artifact@v4 @@ -292,7 +292,7 @@ jobs: LIBS="$(pwd)/libs" export PYTHONPATH="$LIBS/PyAutoNerves:$LIBS/PyAutoArray:$LIBS/PyAutoFit:$LIBS/PyAutoGalaxy:$LIBS/PyAutoLens:$(pwd)/PyAutoHands:$PYTHONPATH" pushd workspace - python3 "$(pwd)/../PyAutoHands/autobuild/run_python.py" \ + python3 "$(pwd)/../PyAutoHands/autohands/run_python.py" \ "${{ matrix.project.name }}" "scripts/${{ matrix.project.directory }}" \ --report-dir test-results - name: "Run Python scripts [mode=release, wheels, release profile, no source on PYTHONPATH]" @@ -319,7 +319,7 @@ jobs: echo "::error::$ENV_CONFIG missing — no release profile defined for this workspace" exit 1 fi - python3 "$(pwd)/../PyAutoHands/autobuild/run_python.py" \ + python3 "$(pwd)/../PyAutoHands/autohands/run_python.py" \ "${{ matrix.project.name }}" "scripts/${{ matrix.project.directory }}" \ --report-dir test-results \ --env-config "$ENV_CONFIG" @@ -408,7 +408,7 @@ jobs: LIBS="$(pwd)/libs" export PYTHONPATH="$LIBS/PyAutoNerves:$LIBS/PyAutoArray:$LIBS/PyAutoFit:$LIBS/PyAutoGalaxy:$LIBS/PyAutoLens:$(pwd)/PyAutoHands:$PYTHONPATH" pushd workspace - python3 "$(pwd)/../PyAutoHands/autobuild/run.py" \ + python3 "$(pwd)/../PyAutoHands/autohands/run.py" \ "${{ matrix.project.name }}" "notebooks/${{ matrix.project.directory }}" \ --report-dir test-results - name: Upload notebook results @@ -442,7 +442,7 @@ jobs: - name: Aggregate into report.json run: | export PYTHONPATH="$PYTHONPATH:$(pwd)/PyAutoHands" - python3 PyAutoHands/autobuild/aggregate_results.py all-results/ \ + python3 PyAutoHands/autohands/aggregate_results.py all-results/ \ --output report.json --markdown report.md - name: Post summary if: always() diff --git a/bin/pyauto-heart b/bin/pyauto-heart index 9dc9fc7..a1f083b 100755 --- a/bin/pyauto-heart +++ b/bin/pyauto-heart @@ -1,7 +1,7 @@ #!/usr/bin/env bash # bin/pyauto-heart — the PyAutoHeart CLI dispatcher. # -# Subcommand pattern mirrors PyAutoHands/bin/autobuild so users see a +# Subcommand pattern mirrors PyAutoHands/bin/autohands so users see a # familiar shape. Help is auto-generated from SHORT_DESC. set -u diff --git a/health_agent/pyautobuild_boundary_audit.md b/health_agent/pyautobuild_boundary_audit.md index 8976f34..e1a2146 100644 --- a/health_agent/pyautobuild_boundary_audit.md +++ b/health_agent/pyautobuild_boundary_audit.md @@ -25,7 +25,7 @@ url_check`. ### One nuance the agent must understand: `aggregate_results.py` -`autobuild/aggregate_results.py` builds a report titled **"Release Readiness +`autohands/aggregate_results.py` builds a report titled **"Release Readiness Report"** with a top-level `ready` boolean, and `create_analysis_issue.py` posts it. This *looks* like a readiness gate but is **not**: @@ -54,7 +54,7 @@ vocabulary with Heart's authoritative verdict and could mislead a future reader. documentation/naming change, not a logic move, so it does not block the Health Agent. - A follow-up task capturing this is filed in PyAutoMind: - `maintenance/autobuild/rename_release_readiness_report.md`. + `maintenance/autohands/rename_release_readiness_report.md`. ## Boundary the agent enforces diff --git a/heart/checks/script_timing.py b/heart/checks/script_timing.py index 70f61ac..7fa07aa 100644 --- a/heart/checks/script_timing.py +++ b/heart/checks/script_timing.py @@ -1,4 +1,4 @@ -"""heart/checks/script_timing.py — read autobuild run_all results, track +"""heart/checks/script_timing.py — read autohands run_all results, track rolling per-script duration baselines, classify regressions. Inputs: @@ -63,7 +63,7 @@ def slug_for(workspace: str, directory: str, file_path: str) -> str: (e.g. ``imaging/modeling.py`` vs ``imaging/features/.../modeling.py``) do not collide on a shared leaf name. """ - # The autobuild run_all writes ``file`` as an absolute path. Strip + # The autohands run_all writes ``file`` as an absolute path. Strip # everything up to and including "scripts/" so the slug is workspace- # relative. f = Path(file_path) diff --git a/heart/checks/test_run.py b/heart/checks/test_run.py index cc4c2eb..64c0286 100644 --- a/heart/checks/test_run.py +++ b/heart/checks/test_run.py @@ -42,7 +42,7 @@ # own .github/workflows/workspace-validation.yml) is the continuous source of # the workspace-integration verdict. The tick reads only its conclusion + # timestamp (cheap, same budget as ci_status); the full report.json detail still -# comes from a local `autobuild run_all` when one is present. +# comes from a local `autohands run_all` when one is present. VALIDATION_REPO = os.environ.get("GITHUB_REPOSITORY", "PyAutoLabs/PyAutoHeart") VALIDATION_WORKFLOW = "workspace-validation.yml" diff --git a/heart/checks/url_check_live.py b/heart/checks/url_check_live.py index 3112b49..5034d3e 100644 --- a/heart/checks/url_check_live.py +++ b/heart/checks/url_check_live.py @@ -101,7 +101,7 @@ def _load_pattern_rewrites() -> list[tuple[re.Pattern[str], str, str]]: -_TOOL_DIR_ABS = Path(__file__).resolve().parent # PyAutoHands/autobuild +_TOOL_DIR_ABS = Path(__file__).resolve().parent # PyAutoHands/autohands def _should_scan(path: Path) -> bool: diff --git a/heart/checks/url_check_live.sh b/heart/checks/url_check_live.sh index 33544fd..a51480c 100755 --- a/heart/checks/url_check_live.sh +++ b/heart/checks/url_check_live.sh @@ -13,7 +13,7 @@ # - name: Run live URL audit # id: url_audit # run: | -# body=$(bash PyAutoHands/autobuild/url_check_live.sh repo) && rc=0 || rc=$? +# body=$(bash heart/checks/url_check_live.sh repo) && rc=0 || rc=$? # echo "$body" > /tmp/url_audit_body.md # echo "rc=$rc" >> "$GITHUB_OUTPUT" diff --git a/scripts/health_release.sh b/scripts/health_release.sh index 92f64ce..bc74305 100755 --- a/scripts/health_release.sh +++ b/scripts/health_release.sh @@ -39,7 +39,7 @@ health release: no run found at $run_dir To produce one, from PyAutoHands root: source ../activate.sh - python autobuild/run_all.py + python autohands/run_all.py EOF return 1 fi diff --git a/scripts/health_sync.sh b/scripts/health_sync.sh index 9c3af75..0c74c31 100644 --- a/scripts/health_sync.sh +++ b/scripts/health_sync.sh @@ -40,9 +40,9 @@ # ~/.cache/pyauto/smoke/*.json (written by the # /smoke-test skill). Green when failed=0, red # otherwise. Suppressed when no JSONs exist. -# - "Last autobuild run:" — aggregate from +# - "Last autohands run:" — aggregate from # ~/Code/PyAutoLabs/PyAutoHands/test_results/*.json -# (committed by the autobuild release pipeline). +# (committed by the autohands release pipeline). # Suppressed when no JSONs exist. # - "Hygiene:" — nudge when the last /repo_cleanup audit stamp # (~/.cache/pyauto/repo_cleanup_last_audit.json) @@ -365,8 +365,8 @@ for f in sorted(glob.glob(os.path.expanduser("~/.cache/pyauto/smoke/*.json"))): ' 2>/dev/null) fi - # Last autobuild run. Reads aggregate from PyAutoHands/test_results/*.json - # (committed by the autobuild release pipeline). Counts only — failure + # Last autohands run. Reads aggregate from PyAutoHands/test_results/*.json + # (committed by the autohands release pipeline). Counts only — failure # detail lives in the per-job JSON / the GitHub Actions run. local pab_dir="$HOME/Code/PyAutoLabs/PyAutoHands/test_results" if [[ -d "$pab_dir" ]] && compgen -G "$pab_dir/*.json" > /dev/null; then @@ -397,7 +397,7 @@ print(f"{latest[:10]}|{num}|{len(projects)}|{total_p}|{total_f}|{total_s}") IFS='|' read -r pab_date njobs nproj pab_p pab_f pab_s <<< "$pab_summary" sha=$(git -C "$HOME/Code/PyAutoLabs/PyAutoHands" rev-parse --short HEAD 2>/dev/null) echo "" - printf "Last autobuild run: %s (PyAutoHands commit %s)\n" "$pab_date" "${sha:-?}" + printf "Last autohands run: %s (PyAutoHands commit %s)\n" "$pab_date" "${sha:-?}" local color='\033[32m' [[ "$pab_f" != "0" ]] && color='\033[31m' printf " ${color}%s jobs across %s workspaces: %s passed, %s failed, %s skipped\033[0m\n" \ diff --git a/skills/pyauto-status-full/reference.md b/skills/pyauto-status-full/reference.md index b95051e..3f762a3 100644 --- a/skills/pyauto-status-full/reference.md +++ b/skills/pyauto-status-full/reference.md @@ -5,7 +5,7 @@ > `PyAutoBrain/skills/health/health.md`). `$health` is the single health door; > this file is the release-run dashboard leg it drives. -Render the most recent PyAutoHands full-run report as a release-readiness dashboard. Use this to inspect timing and failures from the last `python autobuild/run_all.py`. Read-only. +Render the most recent PyAutoHands full-run report as a release-readiness dashboard. Use this to inspect timing and failures from the last `python autohands/run_all.py`. Read-only. A **PyAutoHeart** view — Heart owns the health/release-readiness surface; this skill summarises the artefacts a PyAutoHands run leaves on disk (Build executes; @@ -39,7 +39,7 @@ No full release-prep run on disk. To produce one, from PyAutoHands root: source ../activate.sh - python autobuild/run_all.py + python autohands/run_all.py ``` …and exit. Do not invent data. @@ -115,7 +115,7 @@ If only one run exists, omit this section silently. ## Execution environments -This skill renders **local artefacts** produced by an autobuild full run. It is +This skill renders **local artefacts** produced by an autohands full run. It is therefore meaningful only in a `local-dev` environment where those artefacts exist (see PyAutoBrain `skills/WORKFLOW.md` for the environment model). In a `web-github` / `analysis-only` / `ci-only` session there is no local run to diff --git a/skills/verify_install/verify_install.md b/skills/verify_install/verify_install.md index 6215793..57a3935 100644 --- a/skills/verify_install/verify_install.md +++ b/skills/verify_install/verify_install.md @@ -27,7 +27,7 @@ reported as **SKIP** and does not count toward overall failure. The script is self-contained and runs from any shell. The canonical entry point is `pyauto-heart verify_install`, which runs the checks and writes the readiness sidecar. -(`autobuild verify_install` still works as a thin shim that delegates here, for anyone +(`autohands verify_install` still works as a thin shim that delegates here, for anyone with PyAutoHands on PATH.) ```bash