Repository navigation
sustainabot: add SafeDOMExample.res→.affine standing recipe #214
Description
Context
gitbot-fleet#208 ran a one-time sweep of SafeDOMExample.res → SafeDOMExample.affine across 125+ repos. Today's otpiser#11 + estate sweep revealed that three template repos kept regenerating the .res variant on every new repo, so the sweep needs to be a STANDING sustainabot recipe rather than a one-shot.
Template-side fixes landed today in:
- Template repo has no CONTRIBUTING at root, so it fails its own required-docs gate and mints repos that inherit the red rsr-template-repo#71
- hyperpolymath/mtpc-template-repo#8
- fix(template): stop regenerating CodeQL/ReScript CI failure classes thunderbird-template-reloaded#75
But sustainabot should still carry a standing recipe for any new fork / external clone that introduces the .res copy.
Recipe
Add to recipes/safedom-example-affine.yaml:
id: SAFEDOM-001
trigger:
file_exists: examples/SafeDOMExample.res
file_missing: examples/SafeDOMExample.affine
confidence: 0.99
action: substitute
fix_script: scripts/fix-scripts/safedom-res-to-affine.sh
description: |
Replace examples/SafeDOMExample.res with the canonical
examples/SafeDOMExample.affine. Source-of-truth lives in
burble/main:examples/SafeDOMExample.affine.
skip_if:
# Repo has substantive non-SafeDOM .res files (blocked on
# affinescript#57 Phase 2 migration tooling)
any_substantive_res_files: trueThe skip_if predicate prevents the recipe from firing on repos with non-SafeDOM .res files (which need affinescript#57 Phase 2 first). Today's empirical skip-set:
- bunsenite, gossamer, nesy-solver, reposystem, stapeln, svalinn, vcl-ut, verisimdb, idaptik, laniakea, affinescript
Source of truth
gh api repos/hyperpolymath/burble/contents/examples/SafeDOMExample.affine?ref=main (cached at burble main).
Cross-refs: hypatia#336 (corresponding hypatia detection rule).
Filed from session sweeping otpiser#11 + estate-wide drift.
Activity
hyperpolymath commentedon May 27, 2026
Now tracked under estate migration epic: affinescript#406.