Skip to content

fix: Colab link rot — pin/repoint chapter README URLs, purge allowlists (phase 2) #21

Description

@Jammy2211

Overview

Phase 2 of the Colab maturity work (tracker: PyAutoLabs/PyAutoHands#124). Phase 1 (merged 2026-07-09: PyAutoLabs/PyAutoNerves#120, PyAutoLabs/PyAutoHands#125, PyAutoLabs/PyAutoHeart#44) made every generated notebook Colab-runnable by construction and added forbidden-URL guards that now flag the accumulated link rot. This phase fixes the rot so the Monday central url-check sweep can go green.

--auto run (effective level: safe — mechanical, well-specified link repair; header safe, difficulty medium). Plan below per the autonomy contract; ship goes through the four-leg autonomous gate and ends at PR-open. Note: the Brain Feature Agent recommended re-homing as research; overridden inline — the task has an explicit repo list, concrete edits, and a verifiable done-condition (url_check.sh green per repo).

Scope split at launch: PyAutoLens + PyAutoGalaxy are claimed by release-docs-polish-learn-paths (awaiting-input, uncommitted). Their docs/howto* dead-link fixes + allowlist purges are deferred to a follow-up leg registered in planned.md, blocked on that task. This run covers HowToFit, HowToGalaxy, HowToLens, euclid_strong_lens_modeling_pipeline.

Plan

  • HowToLens — pin the 71 unpinned blob/main Colab URLs in scripts/*/README.md (mirrored in notebooks/*/README.md) to the current release tag 2026.7.6.649; fix dead filenames (tutorial_11_adapt_regularization.py.ipynbtutorial_11_adaptive_regularization.ipynb, etc.); verify every link target exists in the repo; purge the now-fixed Colab entries from .url_check_allowlist.txt.
  • HowToGalaxy — repoint the 28 wrong-repo chapter README Colab URLs (autogalaxy_workspace/...HowToGalaxy/... at the current tag); verify targets; purge fixed allowlist Colab entries.
  • HowToFit — verify every chapter README Colab link target exists at the pinned tag; fix the two moved/renamed tutorials frozen in the allowlist; purge fixed entries.
  • euclid_strong_lens_modeling_pipeline — replace the forbidden Jammy2211 Colab URL in README.md with the PyAutoLabs form.
  • Verify — run the merged Heart url_check.sh (offline guard, now including the new patterns) over each repo: must exit clean.
Detailed implementation plan

Affected Repositories

  • HowToLens (primary)
  • HowToGalaxy
  • HowToFit
  • euclid_strong_lens_modeling_pipeline

Branch Survey

Repository Current Branch Dirty?
./HowToLens main 20 modified (regenerated dataset FITS/JSON — unrelated churn)
./HowToGalaxy main 13 modified (same)
./HowToFit main 315 modified (same)
./euclid_strong_lens_modeling_pipeline main 1 modified (test_report.md)

Dirty files are local dataset-regeneration churn, none overlapping this task's files; worktrees branch from origin/main.

Suggested branch: feature/colab-link-rot
Work Classification: Workspace
Worktree root: ~/Code/PyAutoLabs-wt/colab-link-rot/

Implementation Steps

  1. Script an audit: extract every colab.research.google.com URL from chapter READMEs in the three HowTo repos, map to the expected local notebooks/... path, report missing targets.
  2. Fix systematically: right repo (HowToGalaxy), pinned tag (HowToLens), corrected filenames (all three); mirror scripts/ README edits into notebooks/ READMEs.
  3. euclid README: Jammy2211PyAutoLabs owner (verify the target notebook exists; otherwise repoint to the imaging start_here).
  4. Purge fixed Colab entries from each repo's .url_check_allowlist.txt (leave non-Colab entries).
  5. Gate: bash PyAutoHeart/heart/checks/url_check.sh <repo> clean per repo; four-leg autonomous-ship gate; PRs with pending-release.

Key Files

  • HowTo*/scripts/*/README.md + HowTo*/notebooks/*/README.md — Colab link lists
  • HowTo*/.url_check_allowlist.txt — grandfathered rot to purge
  • euclid_strong_lens_modeling_pipeline/README.md

Original Prompt

Click to expand starting prompt

See PyAutoMind/issued/colab_link_rot.md (line-rot inventory from the 2026-07-09 census in issued/colab_maturity.md).

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions