Skip to content

fix(bots): neuter live mutating rhodibot → report-only audit mode (+directive, 4-mode setting) [WS-1]#4

Merged
hyperpolymath merged 3 commits into
mainfrom
feat/trope-build
Jun 22, 2026
Merged

fix(bots): neuter live mutating rhodibot → report-only audit mode (+directive, 4-mode setting) [WS-1]#4
hyperpolymath merged 3 commits into
mainfrom
feat/trope-build

Conversation

@hyperpolymath

Copy link
Copy Markdown
Owner

WS-1 (P1) — remove the live mutating-bot hazard from main

origin/main currently carries the old rhodibot.yml with contents: write + pull-requests: write and a guardless licence rewrite (sed -i 's/AGPL-3.0-or-later/MPL-2.0/g; s/AGPL-3.0/MPL-2.0/g', comment mislabels it "AGPL → PMPL") plus a dangling workflow_run: ["Hypatia Neurosymbolic Analysis"]. That is a directive-blind reimplementation of rhodibot, divergent from the deterministic Rust engine, and it can open PRs that relicense files with none of the engine's guards.

This PR lands the three commits that neuter it:

  1. rhodibot per-repo directive (.machine_readable/bot_directives/rhodibot.a2ml) — full enforcement (software repo); deterministic licence guards in deny (never relicense third-party/vendored/forked; never change an undeterminable or deliberate licence).
  2. AUDIT MODErhodibot.yml becomes report-only: detect + log what it would do, zero mutations, no PR, permissions: contents: read. Removes the guardless sed and the dangling trigger.
  3. Fleet mode settingactive / audit / passive / ignore as a first-class directive field (set to audit).

This is the deterministic-vs-neural distinction in practice: rhodibot may normalise SPDX deterministically, but the inline-bash copy lacked the engine's guards, so it is unsafe as written; audit mode is the interim safe state pending convergence.

Tracked fleet-wide in hyperpolymath/gitbot-fleet#310 (convergence onto the engine + estate-wide rollout: 166/248 repos still run the guardless sed). Commits signed.

…are/language repo)

Every other estate repo carries .machine_readable/bot_directives/rhodibot.a2ml; these
three lacked it, so rhodibot (the deterministic RSR verifier) had no per-repo allow/
deny/scope guidance here. Adds it modelled on the estate schema (schema_version 1.0),
with the deterministic licence guards in deny: never relicense third-party/vendored,
never change an undeterminable licence (leave untouched), never convert deliberate
(non-drift) licences. SPDX normalisation to the declared licences (code -> MPL-2.0,
prose -> CC-BY-SA-4.0) is allowed (rhodibot is symbolic/deterministic, out of scope
of the neural-agent no-automated-licence-edits rule). root-shape: ok.
Replace the directive-blind inline auto-fix (delete/rename/SPDX-sed/file-create +
auto-PR) with a detect-and-LOG audit run: it reports what it WOULD do, mutates
nothing, opens no PR, and runs with contents:read only. Neutralises the guardless
SPDX sed immediately while preserving rhodibot's detection value. Aligns with the
report-only-canary directive. Convergence onto the deterministic engine tracked
HIGH PRIORITY in gitbot-fleet.
…hodibot directive

Adds a first-class 'mode' field to the rhodibot directive (fleet-standard; all
gitbot-fleet bots should honour it): active=do it; audit=dry-run + full forensic log
of what it WOULD do; passive=normal report only; ignore=skip the repo entirely. Set
to mode=audit here, matching the report-only audit workflow now deployed. Orthogonal
to enforcement (full/partial) and repo-kind (software/lean-docs).
@hyperpolymath
hyperpolymath merged commit c870f93 into main Jun 22, 2026
19 of 26 checks passed
@hyperpolymath
hyperpolymath deleted the feat/trope-build branch June 22, 2026 13:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant