cli tools for the allod stack
Find a file
2026-07-16 19:13:44 -04:00
docs Allow root bootstrap without source remote 2026-07-09 16:28:44 +00:00
flake Fix review findings: grep injection, FLAKE_STATUS_JOBS validation, glob safety 2026-06-24 21:23:51 +00:00
git-hooks Move per-group docs into source directories as README.md 2026-06-24 20:33:34 +00:00
lib Refactor repo layout: group scripts into directories 2026-06-24 20:27:19 +00:00
pm allod: add pm board tool 2026-07-16 19:13:44 -04:00
tests Allow root bootstrap without source remote 2026-07-09 16:28:44 +00:00
workspace Limit pull-all concurrency 2026-07-06 22:28:03 +00:00
allod allod: add pm board tool 2026-07-16 19:13:44 -04:00
forge Fix forge organization command review findings 2026-07-07 14:43:27 +00:00
README.md allod: add pm board tool 2026-07-16 19:13:44 -04:00

allod/tools

Shell scripts for managing a multi-repo NixOS dev environment. All scripts are packaged via pkgs.writeShellApplication in profiles (dev VMs) and nexus (host machine) — no manual installation needed after nixos-rebuild switch.

Layout

allod                     main CLI (change, patch, pm)
forge                     Forgejo CLI
pm/                       PM board tools (schema, renderer, groom prompt)
workspace/                daily workspace sync and status
  pull-all                pull every repo under ~/work/
  work-diff               show staged/unstaged changes across repos
flake/                    nix flake pin management
  flake-status            inspect flake input pins across repos
  flake-update-cascade    update flake inputs across repos
git-hooks/                git hook policy and setup
  protected-refs-policy   branch protection, signing, remote restrictions
  setup-tracked-hooks     hookspath setup from repository registry
lib/                      shared shell libraries
  workspace.sh            repo discovery and default-branch helpers

Documentation

Shared Library

lib/workspace.sh provides repo discovery and default-branch helpers used by allod, pull-all, work-diff, flake-status, and flake-update-cascade. It also sets WORK_DIR (defaults to ~/work/, overridable via the environment).

Workflow

Morning sync / getting up to speed

pull-all --switch # return clean pushed branches to default, then pull
work-diff         # see anything still in-flight
flake-status      # spot pin drift across repos

Updating a flake input

# 1. Check if an update is available
flake-status allod-tools --upstream

# 2. Preview what would change
flake-update-cascade allod-tools --dry-run

# 3. Create update PRs across all repos
flake-update-cascade allod-tools --pr

# 4. Review and merge PRs on Forgejo

# 5. Sync and verify
pull-all
flake-status allod-tools

Reviewing a PR

forge pr list
forge pr view <number>
forge pr review-comments <number>
forge pr reply <number> <comment-id> --body "looks good"
forge pr comment <number> --body "approved"