From 73ecead4f50b09ad1535a76f9d32098d48048037 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 19 Sep 2026 14:33:48 +0000 Subject: [PATCH 1/2] chore(ci): remove the rhodibot rule that could never delete anything The rule deletes ../../../../.github/CONTRIBUTING.md when a nested CONTRIBUTING.md is present. These workflows run from the repository root, so that path resolves outside the repository - the condition is never true and the file is never touched. It has been inert since it was written. Removed, along with the stale mention in each file's header comment. - `actions/validate/.github/workflows/rhodibot.yml` - `bindings/deno/.github/workflows/rhodibot.yml` - `bindings/haskell/.github/workflows/rhodibot.yml` - `bindings/rust/.github/workflows/rhodibot.yml` - `editors/vscode/.github/workflows/rhodibot.yml` --- actions/validate/.github/workflows/rhodibot.yml | 7 +------ bindings/deno/.github/workflows/rhodibot.yml | 7 +------ bindings/haskell/.github/workflows/rhodibot.yml | 7 +------ bindings/rust/.github/workflows/rhodibot.yml | 7 +------ editors/vscode/.github/workflows/rhodibot.yml | 2 +- 5 files changed, 5 insertions(+), 25 deletions(-) diff --git a/actions/validate/.github/workflows/rhodibot.yml b/actions/validate/.github/workflows/rhodibot.yml index 91d6c3f..f906cb8 100644 --- a/actions/validate/.github/workflows/rhodibot.yml +++ b/actions/validate/.github/workflows/rhodibot.yml @@ -2,7 +2,7 @@ # rhodibot.yml — Automated RSR compliance enforcement # # Reads root-hygiene rules and auto-fixes what it can: -# - Delete banned files (AI.djot, duplicate ../../../../.github/CONTRIBUTING.md, stale snapshots) +# - Delete banned files (AI.djot, stale snapshots) # - Rename misnamed files (AI.a2ml → 0-AI-MANIFEST.a2ml) # - Fix SPDX headers (AGPL → PMPL in dotfiles) # - Create missing required files (SECURITY.md, CONTRIBUTING.md) @@ -68,11 +68,6 @@ jobs: fi # --- 3. Delete duplicate format files --- - if [ -f "CONTRIBUTING.md" ] && [ -f "../../../../.github/CONTRIBUTING.md" ]; then - rm ../../../../.github/CONTRIBUTING.md - FIXES="$FIXES\n- Deleted duplicate \`../../../../.github/CONTRIBUTING.md\` (keeping .md for GitHub)" - CHANGED=true - fi if [ -f "README.md" ] && [ -f "README.adoc" ]; then # Only delete README.md if it's a stub (<5 lines) diff --git a/bindings/deno/.github/workflows/rhodibot.yml b/bindings/deno/.github/workflows/rhodibot.yml index 91d6c3f..f906cb8 100644 --- a/bindings/deno/.github/workflows/rhodibot.yml +++ b/bindings/deno/.github/workflows/rhodibot.yml @@ -2,7 +2,7 @@ # rhodibot.yml — Automated RSR compliance enforcement # # Reads root-hygiene rules and auto-fixes what it can: -# - Delete banned files (AI.djot, duplicate ../../../../.github/CONTRIBUTING.md, stale snapshots) +# - Delete banned files (AI.djot, stale snapshots) # - Rename misnamed files (AI.a2ml → 0-AI-MANIFEST.a2ml) # - Fix SPDX headers (AGPL → PMPL in dotfiles) # - Create missing required files (SECURITY.md, CONTRIBUTING.md) @@ -68,11 +68,6 @@ jobs: fi # --- 3. Delete duplicate format files --- - if [ -f "CONTRIBUTING.md" ] && [ -f "../../../../.github/CONTRIBUTING.md" ]; then - rm ../../../../.github/CONTRIBUTING.md - FIXES="$FIXES\n- Deleted duplicate \`../../../../.github/CONTRIBUTING.md\` (keeping .md for GitHub)" - CHANGED=true - fi if [ -f "README.md" ] && [ -f "README.adoc" ]; then # Only delete README.md if it's a stub (<5 lines) diff --git a/bindings/haskell/.github/workflows/rhodibot.yml b/bindings/haskell/.github/workflows/rhodibot.yml index 91d6c3f..f906cb8 100644 --- a/bindings/haskell/.github/workflows/rhodibot.yml +++ b/bindings/haskell/.github/workflows/rhodibot.yml @@ -2,7 +2,7 @@ # rhodibot.yml — Automated RSR compliance enforcement # # Reads root-hygiene rules and auto-fixes what it can: -# - Delete banned files (AI.djot, duplicate ../../../../.github/CONTRIBUTING.md, stale snapshots) +# - Delete banned files (AI.djot, stale snapshots) # - Rename misnamed files (AI.a2ml → 0-AI-MANIFEST.a2ml) # - Fix SPDX headers (AGPL → PMPL in dotfiles) # - Create missing required files (SECURITY.md, CONTRIBUTING.md) @@ -68,11 +68,6 @@ jobs: fi # --- 3. Delete duplicate format files --- - if [ -f "CONTRIBUTING.md" ] && [ -f "../../../../.github/CONTRIBUTING.md" ]; then - rm ../../../../.github/CONTRIBUTING.md - FIXES="$FIXES\n- Deleted duplicate \`../../../../.github/CONTRIBUTING.md\` (keeping .md for GitHub)" - CHANGED=true - fi if [ -f "README.md" ] && [ -f "README.adoc" ]; then # Only delete README.md if it's a stub (<5 lines) diff --git a/bindings/rust/.github/workflows/rhodibot.yml b/bindings/rust/.github/workflows/rhodibot.yml index 91d6c3f..f906cb8 100644 --- a/bindings/rust/.github/workflows/rhodibot.yml +++ b/bindings/rust/.github/workflows/rhodibot.yml @@ -2,7 +2,7 @@ # rhodibot.yml — Automated RSR compliance enforcement # # Reads root-hygiene rules and auto-fixes what it can: -# - Delete banned files (AI.djot, duplicate ../../../../.github/CONTRIBUTING.md, stale snapshots) +# - Delete banned files (AI.djot, stale snapshots) # - Rename misnamed files (AI.a2ml → 0-AI-MANIFEST.a2ml) # - Fix SPDX headers (AGPL → PMPL in dotfiles) # - Create missing required files (SECURITY.md, CONTRIBUTING.md) @@ -68,11 +68,6 @@ jobs: fi # --- 3. Delete duplicate format files --- - if [ -f "CONTRIBUTING.md" ] && [ -f "../../../../.github/CONTRIBUTING.md" ]; then - rm ../../../../.github/CONTRIBUTING.md - FIXES="$FIXES\n- Deleted duplicate \`../../../../.github/CONTRIBUTING.md\` (keeping .md for GitHub)" - CHANGED=true - fi if [ -f "README.md" ] && [ -f "README.adoc" ]; then # Only delete README.md if it's a stub (<5 lines) diff --git a/editors/vscode/.github/workflows/rhodibot.yml b/editors/vscode/.github/workflows/rhodibot.yml index d270c2b..fde01e0 100644 --- a/editors/vscode/.github/workflows/rhodibot.yml +++ b/editors/vscode/.github/workflows/rhodibot.yml @@ -2,7 +2,7 @@ # rhodibot.yml — Automated RSR compliance enforcement # # Reads root-hygiene rules and auto-fixes what it can: -# - Delete banned files (AI.djot, duplicate ../../../../.github/CONTRIBUTING.md, stale snapshots) +# - Delete banned files (AI.djot, stale snapshots) # - Rename misnamed files (AI.a2ml → 0-AI-MANIFEST.a2ml) # - Fix SPDX headers (AGPL → PMPL in dotfiles) # - Create missing required files (SECURITY.md, CONTRIBUTING.md) From 213847dd48f3abe0cc0f727b6ea6ace194fe3fe6 Mon Sep 17 00:00:00 2001 From: "Jonathan D.A. Jewell" <6759885+hyperpolymath@users.noreply.github.com> Date: Sat, 19 Sep 2026 14:34:01 +0000 Subject: [PATCH 2/2] chore(ci): remove the same dead rule from the pandoc copy This copy spells the path ../../../ rather than ../../../../ (pandoc sits one level deep, not two), which is still outside the repository when the workflow runs from the root - so it is equally inert. --- pandoc/.github/workflows/rhodibot.yml | 7 +------ 1 file changed, 1 insertion(+), 6 deletions(-) diff --git a/pandoc/.github/workflows/rhodibot.yml b/pandoc/.github/workflows/rhodibot.yml index ca048a8..f906cb8 100644 --- a/pandoc/.github/workflows/rhodibot.yml +++ b/pandoc/.github/workflows/rhodibot.yml @@ -2,7 +2,7 @@ # rhodibot.yml — Automated RSR compliance enforcement # # Reads root-hygiene rules and auto-fixes what it can: -# - Delete banned files (AI.djot, duplicate ../../../.github/CONTRIBUTING.md, stale snapshots) +# - Delete banned files (AI.djot, stale snapshots) # - Rename misnamed files (AI.a2ml → 0-AI-MANIFEST.a2ml) # - Fix SPDX headers (AGPL → PMPL in dotfiles) # - Create missing required files (SECURITY.md, CONTRIBUTING.md) @@ -68,11 +68,6 @@ jobs: fi # --- 3. Delete duplicate format files --- - if [ -f "CONTRIBUTING.md" ] && [ -f "../../../.github/CONTRIBUTING.md" ]; then - rm ../../../.github/CONTRIBUTING.md - FIXES="$FIXES\n- Deleted duplicate \`../../../.github/CONTRIBUTING.md\` (keeping .md for GitHub)" - CHANGED=true - fi if [ -f "README.md" ] && [ -f "README.adoc" ]; then # Only delete README.md if it's a stub (<5 lines)