Round 476-480: Packer, Vagrant, cloud-init, Ignition, Puppet, Chef, Ansible, Salt, CFEngine, cdist, mgmt, Pulumi, Spacelift, env0, Scalr, Atlantis, Terragrunt, Terramate, OpenTofu, CDKTF (100 commands)

ober

a2cfe76f09e26e640f059f4fa0f4518ba85ec77a

diff --git a/docs/jemacs-vs-emacs.md b/docs/jemacs-vs-emacs.md
index ab5ac66..884782d 100644
--- a/docs/jemacs-vs-emacs.md
+++ b/docs/jemacs-vs-emacs.md
@@ -4583,6 +4583,131 @@ No remaining Tier 1 gaps. All core editing, completion, and navigation features 
 | ebib-import-file | :orange_circle: | Import file into Ebib |
 | ebib-push-citation | :orange_circle: | Push Ebib citation to buffer |
 
+### Round 480 — Terragrunt ext2, Terramate ext, OpenTofu ext, cdktf ext
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| Terragrunt graph | — | `terragrunt-graph` | :orange_circle: Scaffolded |
+| Terragrunt validate | — | `terragrunt-validate` | :orange_circle: Scaffolded |
+| Terragrunt HCL format | — | `terragrunt-hclfmt` | :orange_circle: Scaffolded |
+| Terragrunt render | — | `terragrunt-render` | :orange_circle: Scaffolded |
+| Terragrunt scaffold | — | `terragrunt-scaffold` | :orange_circle: Scaffolded |
+| Terramate create | — | `terramate-create` | :orange_circle: Scaffolded |
+| Terramate generate | — | `terramate-generate` | :orange_circle: Scaffolded |
+| Terramate list | — | `terramate-list` | :orange_circle: Scaffolded |
+| Terramate run | — | `terramate-run` | :orange_circle: Scaffolded |
+| Terramate debug | — | `terramate-debug` | :orange_circle: Scaffolded |
+| OpenTofu init | — | `opentofu-init` | :orange_circle: Scaffolded |
+| OpenTofu plan | — | `opentofu-plan` | :orange_circle: Scaffolded |
+| OpenTofu apply | — | `opentofu-apply` | :orange_circle: Scaffolded |
+| OpenTofu state | — | `opentofu-state` | :orange_circle: Scaffolded |
+| OpenTofu import | — | `opentofu-import` | :orange_circle: Scaffolded |
+| CDKTF synth | — | `cdktf-synth` | :orange_circle: Scaffolded |
+| CDKTF deploy | — | `cdktf-deploy` | :orange_circle: Scaffolded |
+| CDKTF destroy | — | `cdktf-destroy` | :orange_circle: Scaffolded |
+| CDKTF diff | — | `cdktf-diff` | :orange_circle: Scaffolded |
+| CDKTF watch | — | `cdktf-watch` | :orange_circle: Scaffolded |
+
+### Round 479 — Spacelift ext, env0 ext, Scalr ext, Atlantis ext2
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| Spacelift stack | — | `spacelift-stack` | :orange_circle: Scaffolded |
+| Spacelift run | — | `spacelift-run` | :orange_circle: Scaffolded |
+| Spacelift module | — | `spacelift-module` | :orange_circle: Scaffolded |
+| Spacelift policy | — | `spacelift-policy` | :orange_circle: Scaffolded |
+| Spacelift context | — | `spacelift-context` | :orange_circle: Scaffolded |
+| env0 deploy | — | `env0-deploy` | :orange_circle: Scaffolded |
+| env0 destroy | — | `env0-destroy` | :orange_circle: Scaffolded |
+| env0 drift | — | `env0-drift` | :orange_circle: Scaffolded |
+| env0 approval | — | `env0-approval` | :orange_circle: Scaffolded |
+| env0 template | — | `env0-template` | :orange_circle: Scaffolded |
+| Scalr workspace | — | `scalr-workspace` | :orange_circle: Scaffolded |
+| Scalr run | — | `scalr-run` | :orange_circle: Scaffolded |
+| Scalr variable | — | `scalr-variable` | :orange_circle: Scaffolded |
+| Scalr module | — | `scalr-module` | :orange_circle: Scaffolded |
+| Scalr policy | — | `scalr-policy` | :orange_circle: Scaffolded |
+| Atlantis plan all | — | `atlantis-plan-all` | :orange_circle: Scaffolded |
+| Atlantis apply all | — | `atlantis-apply-all` | :orange_circle: Scaffolded |
+| Atlantis unlock | — | `atlantis-unlock` | :orange_circle: Scaffolded |
+| Atlantis import | — | `atlantis-import` | :orange_circle: Scaffolded |
+| Atlantis state | — | `atlantis-state` | :orange_circle: Scaffolded |
+
+### Round 478 — CFEngine ext, cdist ext, mgmt ext, Pulumi ext2
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| CFEngine agent | — | `cfengine-agent` | :orange_circle: Scaffolded |
+| CFEngine promises | — | `cfengine-promises` | :orange_circle: Scaffolded |
+| CFEngine report | — | `cfengine-report` | :orange_circle: Scaffolded |
+| CFEngine server | — | `cfengine-server` | :orange_circle: Scaffolded |
+| CFEngine monitor | — | `cfengine-monitor` | :orange_circle: Scaffolded |
+| cdist config | — | `cdist-config` | :orange_circle: Scaffolded |
+| cdist install | — | `cdist-install` | :orange_circle: Scaffolded |
+| cdist inventory | — | `cdist-inventory` | :orange_circle: Scaffolded |
+| cdist shell | — | `cdist-shell` | :orange_circle: Scaffolded |
+| cdist trigger | — | `cdist-trigger` | :orange_circle: Scaffolded |
+| mgmt run | — | `mgmt-run` | :orange_circle: Scaffolded |
+| mgmt deploy | — | `mgmt-deploy` | :orange_circle: Scaffolded |
+| mgmt get | — | `mgmt-get` | :orange_circle: Scaffolded |
+| mgmt graph | — | `mgmt-graph` | :orange_circle: Scaffolded |
+| mgmt langserver | — | `mgmt-langserver` | :orange_circle: Scaffolded |
+| Pulumi preview | — | `pulumi-preview` | :orange_circle: Scaffolded |
+| Pulumi refresh | — | `pulumi-refresh` | :orange_circle: Scaffolded |
+| Pulumi destroy | — | `pulumi-destroy` | :orange_circle: Scaffolded |
+| Pulumi import | — | `pulumi-import` | :orange_circle: Scaffolded |
+| Pulumi watch | — | `pulumi-watch` | :orange_circle: Scaffolded |
+
+### Round 477 — Puppet ext2, Chef ext2, Ansible ext2, Salt ext2
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| Puppet apply | — | `puppet-apply` | :orange_circle: Scaffolded |
+| Puppet agent | — | `puppet-agent` | :orange_circle: Scaffolded |
+| Puppet module | — | `puppet-module` | :orange_circle: Scaffolded |
+| Puppet resource | — | `puppet-resource` | :orange_circle: Scaffolded |
+| Puppet facts | — | `puppet-facts` | :orange_circle: Scaffolded |
+| Chef client | — | `chef-client` | :orange_circle: Scaffolded |
+| Chef solo | — | `chef-solo` | :orange_circle: Scaffolded |
+| Chef apply | — | `chef-apply` | :orange_circle: Scaffolded |
+| Chef generate | — | `chef-generate` | :orange_circle: Scaffolded |
+| Chef diff | — | `chef-diff` | :orange_circle: Scaffolded |
+| Ansible vault | — | `ansible-vault` | :orange_circle: Scaffolded |
+| Ansible galaxy | — | `ansible-galaxy` | :orange_circle: Scaffolded |
+| Ansible test | — | `ansible-test` | :orange_circle: Scaffolded |
+| Ansible doc | — | `ansible-doc` | :orange_circle: Scaffolded |
+| Ansible lint | — | `ansible-lint` | :orange_circle: Scaffolded |
+| Salt call | — | `salt-call` | :orange_circle: Scaffolded |
+| Salt key | — | `salt-key` | :orange_circle: Scaffolded |
+| Salt run | — | `salt-run` | :orange_circle: Scaffolded |
+| Salt cloud | — | `salt-cloud` | :orange_circle: Scaffolded |
+| Salt SSH | — | `salt-ssh` | :orange_circle: Scaffolded |
+
+### Round 476 — Packer ext2, Vagrant ext2, cloud-init ext, Ignition ext
+
+| Feature | Emacs | jemacs | Status |
+|---|---|---|---|
+| Packer format | — | `packer-fmt` | :orange_circle: Scaffolded |
+| Packer HCL2 upgrade | — | `packer-hcl2` | :orange_circle: Scaffolded |
+| Packer inspect | — | `packer-inspect` | :orange_circle: Scaffolded |
+| Packer plugins | — | `packer-plugins` | :orange_circle: Scaffolded |
+| Packer init | — | `packer-init` | :orange_circle: Scaffolded |
+| Vagrant SSH | — | `vagrant-ssh` | :orange_circle: Scaffolded |
+| Vagrant provision | — | `vagrant-provision` | :orange_circle: Scaffolded |
+| Vagrant snapshot | — | `vagrant-snapshot` | :orange_circle: Scaffolded |
+| Vagrant package | — | `vagrant-package` | :orange_circle: Scaffolded |
+| Vagrant plugin | — | `vagrant-plugin` | :orange_circle: Scaffolded |
+| cloud-init analyze | — | `cloudinit-analyze` | :orange_circle: Scaffolded |
+| cloud-init schema | — | `cloudinit-schema` | :orange_circle: Scaffolded |
+| cloud-init query | — | `cloudinit-query` | :orange_circle: Scaffolded |
+| cloud-init devel | — | `cloudinit-devel` | :orange_circle: Scaffolded |
+| cloud-init clean | — | `cloudinit-clean` | :orange_circle: Scaffolded |
+| Ignition validate | — | `ignition-validate` | :orange_circle: Scaffolded |
+| Ignition render | — | `ignition-render` | :orange_circle: Scaffolded |
+| Ignition config | — | `ignition-config` | :orange_circle: Scaffolded |
+| Ignition merge | — | `ignition-merge` | :orange_circle: Scaffolded |
+| Ignition translate | — | `ignition-translate` | :orange_circle: Scaffolded |
+
 ### Round 475 — Vault ext2, Conjur ext, Boundary ext, Teleport ext2
 
 | Feature | Emacs | jemacs | Status |
diff --git a/src/jerboa-emacs/editor-extra-final.ss b/src/jerboa-emacs/editor-extra-final.ss
index cb59905..818f913 100644
--- a/src/jerboa-emacs/editor-extra-final.ss
+++ b/src/jerboa-emacs/editor-extra-final.ss
@@ -31446,3 +31446,291 @@
 (def (cmd-teleport-access app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "Teleport: access requests")))
+
+;; ── Round 477 — Ansible ext2, Salt ext2 ──
+
+(def (cmd-ansible-vault app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ansible: vault")))
+
+(def (cmd-ansible-galaxy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ansible: galaxy")))
+
+(def (cmd-ansible-test app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ansible: test")))
+
+(def (cmd-ansible-doc app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ansible: documentation")))
+
+(def (cmd-ansible-lint app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ansible: lint")))
+
+(def (cmd-salt-call app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Salt: call module")))
+
+(def (cmd-salt-key app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Salt: key management")))
+
+(def (cmd-salt-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Salt: runner")))
+
+(def (cmd-salt-cloud app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Salt: cloud")))
+
+(def (cmd-salt-ssh app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Salt: SSH")))
+
+;; ── Round 478 — CFEngine ext, cdist ext, mgmt ext, Pulumi ext2 ──
+
+(def (cmd-cfengine-agent app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CFEngine: agent run")))
+
+(def (cmd-cfengine-promises app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CFEngine: promises")))
+
+(def (cmd-cfengine-report app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CFEngine: report")))
+
+(def (cmd-cfengine-server app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CFEngine: server")))
+
+(def (cmd-cfengine-monitor app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CFEngine: monitor")))
+
+(def (cmd-cdist-config app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "cdist: configure host")))
+
+(def (cmd-cdist-install app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "cdist: install")))
+
+(def (cmd-cdist-inventory app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "cdist: inventory")))
+
+(def (cmd-cdist-shell app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "cdist: shell")))
+
+(def (cmd-cdist-trigger app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "cdist: trigger")))
+
+(def (cmd-mgmt-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "mgmt: run")))
+
+(def (cmd-mgmt-deploy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "mgmt: deploy")))
+
+(def (cmd-mgmt-get app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "mgmt: get resources")))
+
+(def (cmd-mgmt-graph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "mgmt: resource graph")))
+
+(def (cmd-mgmt-langserver app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "mgmt: language server")))
+
+(def (cmd-pulumi-preview app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pulumi: preview")))
+
+(def (cmd-pulumi-refresh app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pulumi: refresh")))
+
+(def (cmd-pulumi-destroy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pulumi: destroy")))
+
+(def (cmd-pulumi-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pulumi: import")))
+
+(def (cmd-pulumi-watch app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Pulumi: watch")))
+
+;; ── Round 479 — Spacelift ext, env0 ext, Scalr ext, Atlantis ext2 ──
+
+(def (cmd-spacelift-stack app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Spacelift: stack")))
+
+(def (cmd-spacelift-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Spacelift: run")))
+
+(def (cmd-spacelift-module app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Spacelift: module")))
+
+(def (cmd-spacelift-policy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Spacelift: policy")))
+
+(def (cmd-spacelift-context app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Spacelift: context")))
+
+(def (cmd-env0-deploy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "env0: deploy")))
+
+(def (cmd-env0-destroy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "env0: destroy")))
+
+(def (cmd-env0-drift app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "env0: drift detection")))
+
+(def (cmd-env0-approval app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "env0: approval")))
+
+(def (cmd-env0-template app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "env0: template")))
+
+(def (cmd-scalr-workspace app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Scalr: workspace")))
+
+(def (cmd-scalr-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Scalr: run")))
+
+(def (cmd-scalr-variable app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Scalr: variable")))
+
+(def (cmd-scalr-module app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Scalr: module")))
+
+(def (cmd-scalr-policy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Scalr: policy")))
+
+(def (cmd-atlantis-plan-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Atlantis: plan all")))
+
+(def (cmd-atlantis-apply-all app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Atlantis: apply all")))
+
+(def (cmd-atlantis-unlock app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Atlantis: unlock")))
+
+(def (cmd-atlantis-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Atlantis: import")))
+
+(def (cmd-atlantis-state app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Atlantis: state")))
+
+;; ── Round 480 — Terragrunt ext2, Terramate ext, OpenTofu ext, cdktf ext ──
+
+(def (cmd-terragrunt-graph app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terragrunt: graph dependencies")))
+
+(def (cmd-terragrunt-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terragrunt: validate")))
+
+(def (cmd-terragrunt-hclfmt app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terragrunt: HCL format")))
+
+(def (cmd-terragrunt-render app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terragrunt: render JSON")))
+
+(def (cmd-terragrunt-scaffold app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terragrunt: scaffold")))
+
+(def (cmd-terramate-create app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terramate: create stack")))
+
+(def (cmd-terramate-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terramate: generate code")))
+
+(def (cmd-terramate-list app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terramate: list stacks")))
+
+(def (cmd-terramate-run app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terramate: run command")))
+
+(def (cmd-terramate-debug app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Terramate: debug")))
+
+(def (cmd-opentofu-init app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenTofu: init")))
+
+(def (cmd-opentofu-plan app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenTofu: plan")))
+
+(def (cmd-opentofu-apply app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenTofu: apply")))
+
+(def (cmd-opentofu-state app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenTofu: state")))
+
+(def (cmd-opentofu-import app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "OpenTofu: import")))
+
+(def (cmd-cdktf-synth app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CDKTF: synth")))
+
+(def (cmd-cdktf-deploy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CDKTF: deploy")))
+
+(def (cmd-cdktf-destroy app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CDKTF: destroy")))
+
+(def (cmd-cdktf-diff app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CDKTF: diff")))
+
+(def (cmd-cdktf-watch app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "CDKTF: watch")))
diff --git a/src/jerboa-emacs/editor-extra-modes.ss b/src/jerboa-emacs/editor-extra-modes.ss
index b4fc044..14b7d0a 100644
--- a/src/jerboa-emacs/editor-extra-modes.ss
+++ b/src/jerboa-emacs/editor-extra-modes.ss
@@ -31156,3 +31156,129 @@
 (def (cmd-aide-report app)
   (let* ((echo (app-state-echo app)))
     (echo-message! echo "AIDE: report")))
+
+;; ── Round 476 — Packer ext2, Vagrant ext2, cloud-init ext, Ignition ext ──
+
+(def (cmd-packer-fmt app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Packer: format HCL")))
+
+(def (cmd-packer-hcl2 app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Packer: HCL2 upgrade")))
+
+(def (cmd-packer-inspect app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Packer: inspect template")))
+
+(def (cmd-packer-plugins app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Packer: plugins")))
+
+(def (cmd-packer-init app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Packer: init plugins")))
+
+(def (cmd-vagrant-ssh app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vagrant: SSH into box")))
+
+(def (cmd-vagrant-provision app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vagrant: provision")))
+
+(def (cmd-vagrant-snapshot app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vagrant: snapshot")))
+
+(def (cmd-vagrant-package app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vagrant: package box")))
+
+(def (cmd-vagrant-plugin app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Vagrant: plugin management")))
+
+;; ── Round 477 — Puppet ext2, Chef ext2, Ansible ext2, Salt ext2 ──
+
+(def (cmd-cloudinit-analyze app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "cloud-init: analyze")))
+
+(def (cmd-cloudinit-schema app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "cloud-init: schema")))
+
+(def (cmd-cloudinit-query app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "cloud-init: query")))
+
+(def (cmd-cloudinit-devel app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "cloud-init: devel tools")))
+
+(def (cmd-cloudinit-clean app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "cloud-init: clean")))
+
+(def (cmd-ignition-validate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ignition: validate config")))
+
+(def (cmd-ignition-render app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ignition: render config")))
+
+(def (cmd-ignition-config app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ignition: config")))
+
+(def (cmd-ignition-merge app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ignition: merge configs")))
+
+(def (cmd-ignition-translate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Ignition: translate format")))
+
+;; ── Round 478 — CFEngine ext, cdist ext, mgmt ext, Pulumi ext2 ──
+
+(def (cmd-puppet-apply app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Puppet: apply manifest")))
+
+(def (cmd-puppet-agent app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Puppet: agent run")))
+
+(def (cmd-puppet-module app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Puppet: module")))
+
+(def (cmd-puppet-resource app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Puppet: resource")))
+
+(def (cmd-puppet-facts app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Puppet: facts")))
+
+(def (cmd-chef-client app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Chef: client run")))
+
+(def (cmd-chef-solo app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Chef: solo run")))
+
+(def (cmd-chef-apply app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Chef: apply recipe")))
+
+(def (cmd-chef-generate app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Chef: generate")))
+
+(def (cmd-chef-diff app)
+  (let* ((echo (app-state-echo app)))
+    (echo-message! echo "Chef: diff")))
diff --git a/src/jerboa-emacs/editor-extra-regs2.ss b/src/jerboa-emacs/editor-extra-regs2.ss
index 2abd0dc..3e13198 100644
--- a/src/jerboa-emacs/editor-extra-regs2.ss
+++ b/src/jerboa-emacs/editor-extra-regs2.ss
@@ -11575,4 +11575,115 @@
   (register-command! 'teleport-databases cmd-teleport-databases)
   (register-command! 'teleport-kube cmd-teleport-kube)
   (register-command! 'teleport-access cmd-teleport-access)
+
+
+  ;; Round 476 — Packer ext2, Vagrant ext2, cloud-init ext, Ignition ext
+  (register-command! 'packer-fmt cmd-packer-fmt)
+  (register-command! 'packer-hcl2 cmd-packer-hcl2)
+  (register-command! 'packer-inspect cmd-packer-inspect)
+  (register-command! 'packer-plugins cmd-packer-plugins)
+  (register-command! 'packer-init cmd-packer-init)
+  (register-command! 'vagrant-ssh cmd-vagrant-ssh)
+  (register-command! 'vagrant-provision cmd-vagrant-provision)
+  (register-command! 'vagrant-snapshot cmd-vagrant-snapshot)
+  (register-command! 'vagrant-package cmd-vagrant-package)
+  (register-command! 'vagrant-plugin cmd-vagrant-plugin)
+  (register-command! 'cloudinit-analyze cmd-cloudinit-analyze)
+  (register-command! 'cloudinit-schema cmd-cloudinit-schema)
+  (register-command! 'cloudinit-query cmd-cloudinit-query)
+  (register-command! 'cloudinit-devel cmd-cloudinit-devel)
+  (register-command! 'cloudinit-clean cmd-cloudinit-clean)
+  (register-command! 'ignition-validate cmd-ignition-validate)
+  (register-command! 'ignition-render cmd-ignition-render)
+  (register-command! 'ignition-config cmd-ignition-config)
+  (register-command! 'ignition-merge cmd-ignition-merge)
+  (register-command! 'ignition-translate cmd-ignition-translate)
+
+  ;; Round 477 — Puppet ext2, Chef ext2, Ansible ext2, Salt ext2
+  (register-command! 'puppet-apply cmd-puppet-apply)
+  (register-command! 'puppet-agent cmd-puppet-agent)
+  (register-command! 'puppet-module cmd-puppet-module)
+  (register-command! 'puppet-resource cmd-puppet-resource)
+  (register-command! 'puppet-facts cmd-puppet-facts)
+  (register-command! 'chef-client cmd-chef-client)
+  (register-command! 'chef-solo cmd-chef-solo)
+  (register-command! 'chef-apply cmd-chef-apply)
+  (register-command! 'chef-generate cmd-chef-generate)
+  (register-command! 'chef-diff cmd-chef-diff)
+  (register-command! 'ansible-vault cmd-ansible-vault)
+  (register-command! 'ansible-galaxy cmd-ansible-galaxy)
+  (register-command! 'ansible-test cmd-ansible-test)
+  (register-command! 'ansible-doc cmd-ansible-doc)
+  (register-command! 'ansible-lint cmd-ansible-lint)
+  (register-command! 'salt-call cmd-salt-call)
+  (register-command! 'salt-key cmd-salt-key)
+  (register-command! 'salt-run cmd-salt-run)
+  (register-command! 'salt-cloud cmd-salt-cloud)
+  (register-command! 'salt-ssh cmd-salt-ssh)
+
+  ;; Round 478 — CFEngine ext, cdist ext, mgmt ext, Pulumi ext2
+  (register-command! 'cfengine-agent cmd-cfengine-agent)
+  (register-command! 'cfengine-promises cmd-cfengine-promises)
+  (register-command! 'cfengine-report cmd-cfengine-report)
+  (register-command! 'cfengine-server cmd-cfengine-server)
+  (register-command! 'cfengine-monitor cmd-cfengine-monitor)
+  (register-command! 'cdist-config cmd-cdist-config)
+  (register-command! 'cdist-install cmd-cdist-install)
+  (register-command! 'cdist-inventory cmd-cdist-inventory)
+  (register-command! 'cdist-shell cmd-cdist-shell)
+  (register-command! 'cdist-trigger cmd-cdist-trigger)
+  (register-command! 'mgmt-run cmd-mgmt-run)
+  (register-command! 'mgmt-deploy cmd-mgmt-deploy)
+  (register-command! 'mgmt-get cmd-mgmt-get)
+  (register-command! 'mgmt-graph cmd-mgmt-graph)
+  (register-command! 'mgmt-langserver cmd-mgmt-langserver)
+  (register-command! 'pulumi-preview cmd-pulumi-preview)
+  (register-command! 'pulumi-refresh cmd-pulumi-refresh)
+  (register-command! 'pulumi-destroy cmd-pulumi-destroy)
+  (register-command! 'pulumi-import cmd-pulumi-import)
+  (register-command! 'pulumi-watch cmd-pulumi-watch)
+
+  ;; Round 479 — Spacelift ext, env0 ext, Scalr ext, Atlantis ext2
+  (register-command! 'spacelift-stack cmd-spacelift-stack)
+  (register-command! 'spacelift-run cmd-spacelift-run)
+  (register-command! 'spacelift-module cmd-spacelift-module)
+  (register-command! 'spacelift-policy cmd-spacelift-policy)
+  (register-command! 'spacelift-context cmd-spacelift-context)
+  (register-command! 'env0-deploy cmd-env0-deploy)
+  (register-command! 'env0-destroy cmd-env0-destroy)
+  (register-command! 'env0-drift cmd-env0-drift)
+  (register-command! 'env0-approval cmd-env0-approval)
+  (register-command! 'env0-template cmd-env0-template)
+  (register-command! 'scalr-workspace cmd-scalr-workspace)
+  (register-command! 'scalr-run cmd-scalr-run)
+  (register-command! 'scalr-variable cmd-scalr-variable)
+  (register-command! 'scalr-module cmd-scalr-module)
+  (register-command! 'scalr-policy cmd-scalr-policy)
+  (register-command! 'atlantis-plan-all cmd-atlantis-plan-all)
+  (register-command! 'atlantis-apply-all cmd-atlantis-apply-all)
+  (register-command! 'atlantis-unlock cmd-atlantis-unlock)
+  (register-command! 'atlantis-import cmd-atlantis-import)
+  (register-command! 'atlantis-state cmd-atlantis-state)
+
+  ;; Round 480 — Terragrunt ext2, Terramate ext, OpenTofu ext, cdktf ext
+  (register-command! 'terragrunt-graph cmd-terragrunt-graph)
+  (register-command! 'terragrunt-validate cmd-terragrunt-validate)
+  (register-command! 'terragrunt-hclfmt cmd-terragrunt-hclfmt)
+  (register-command! 'terragrunt-render cmd-terragrunt-render)
+  (register-command! 'terragrunt-scaffold cmd-terragrunt-scaffold)
+  (register-command! 'terramate-create cmd-terramate-create)
+  (register-command! 'terramate-generate cmd-terramate-generate)
+  (register-command! 'terramate-list cmd-terramate-list)
+  (register-command! 'terramate-run cmd-terramate-run)
+  (register-command! 'terramate-debug cmd-terramate-debug)
+  (register-command! 'opentofu-init cmd-opentofu-init)
+  (register-command! 'opentofu-plan cmd-opentofu-plan)
+  (register-command! 'opentofu-apply cmd-opentofu-apply)
+  (register-command! 'opentofu-state cmd-opentofu-state)
+  (register-command! 'opentofu-import cmd-opentofu-import)
+  (register-command! 'cdktf-synth cmd-cdktf-synth)
+  (register-command! 'cdktf-deploy cmd-cdktf-deploy)
+  (register-command! 'cdktf-destroy cmd-cdktf-destroy)
+  (register-command! 'cdktf-diff cmd-cdktf-diff)
+  (register-command! 'cdktf-watch cmd-cdktf-watch)
 )