Skip to content
archived Visibility internal Owner erik@uvilo.com Approver _ Created 2026-04-27 Updated 2026-04-27

Bash Refactor State 3

Related plan: Bash Refactor Plan 3


  • Task 1 — Register forge-bash in librechat.yaml
  • Task 2 — Update FORGE.md
    • Remove PERMISSION RULE paragraph
    • Remove project session workflow step 2 (shell-permissions.yaml)
    • Replace uvilo-shell MCP server instructions with forge-bash
    • Update other uvilo-shell references
  • Task 3 — Update /end-session Command
    • Remove shell-permissions commit step from commands.md
    • Check referenced skill files for shell-permissions references
  • Task 4 — Write TypeScript Migration Evaluation
    • Create Bash_Refactor_TS_Migration_Evaluation.md
    • Add sidebar entry
    • Build to verify
  • Task 5 — Update Project Research Skill
    • Replace append-only rule with “no historical residue” rule
  • Task 6 — Verify No Stale References Remain
    • grep for ‘PERMISSION REQUIRED’
    • grep for ‘shell-permissions’
    • grep for ‘grant.*parameter’
    • Clean up any disallowed hits
    • Commit, build, push

Evaluation — Plan 3

#TypeDescriptionStatusDisposition
E1DefectForge/Configs/LibreChat_Service/librechat.yaml has no forge-bash entry — only the debian copy was updated.🟢 ResolvedReject — only Configs-debian is in scope
E2DefectBoth librechat.yaml files still have uvilo-shell entry with permission-language serverInstructions.🟢 ResolvedReject — language needed for uvilo-shell to remain functional
E3GapAGENTS.md still references uvilo-shell.py and shell-permissions.yaml in Knowledge section.🟢 ResolvedUpdate — Knowledge section removed
E4GapREADME.md still says “Refactor the uvilo-shell MCP server…” without mentioning forge-bash.🟢 ResolvedUpdate — README updated
E5GapForge/Configs-debian/FORGE.md missing Update_Infrastructure from Skills list.🟢 ResolvedUpdate — Skills list synced
E6VarianceStale references in Forge_Optimizer asset and archived Plan Shell doc.🟢 ResolvedReject — archived is always out of scope
E7Varianceuvilo-shell.py source files still exist in both Configs directories.🟢 ResolvedReject — intentional per Plan Task 1