Adopt execverb: admin/doctor remote-exec + git slice as exec-dialect guardfiles #81

Closed
opened 2026-06-10 18:22:15 +00:00 by coilysiren · 1 comment
Owner

What

Adopt cli-guard v0.11.0's execverb (the KDL exec dialect, coilyco-flight-deck/cli-guard#130) in ward:

  1. forgejo admin/doctor - replace the 4 kubectl-exec leaves (admin user list/create, admin auth list, doctor check) with an exec-dialect guardfile pinning exec ssh { argv-prefix "kai@kai-server" "k3s" "kubectl" "-n" "forgejo" "exec" "deploy/forgejo" "--" "forgejo" }. This completes the last non-HTTP slice of the 40-leaf surface (#75).
  2. git slice - express ward's audited git verbs as wrap ward git { exec git ... } grants with deny-flag "--no-verify", proving the dialect on the highest-traffic surface.

Open questions

  • Mounting: ward proper links cli-guard as a library, so execverb.Mount slots beside the existing tree; the no-code driver path (specverb-gen learning the exec transport) is the follow-up that would let ward-kdl carry these too.
  • The concurrency-safe commit (private GIT_INDEX_FILE) stays a ward-Go special until the env-policy M1 lands.

Part of the coily->ward merge; ward is the surviving operator binary.

## What Adopt cli-guard v0.11.0's execverb (the KDL exec dialect, https://forgejo.coilysiren.me/coilyco-flight-deck/cli-guard/issues/130) in ward: 1. **forgejo admin/doctor** - replace the 4 kubectl-exec leaves (admin user list/create, admin auth list, doctor check) with an exec-dialect guardfile pinning `exec ssh { argv-prefix "kai@kai-server" "k3s" "kubectl" "-n" "forgejo" "exec" "deploy/forgejo" "--" "forgejo" }`. This completes the last non-HTTP slice of the 40-leaf surface (https://forgejo.coilysiren.me/coilyco-flight-deck/ward/issues/75). 2. **git slice** - express ward's audited git verbs as `wrap ward git { exec git ... }` grants with deny-flag "--no-verify", proving the dialect on the highest-traffic surface. ## Open questions * Mounting: ward proper links cli-guard as a library, so `execverb.Mount` slots beside the existing tree; the no-code driver path (specverb-gen learning the exec transport) is the follow-up that would let ward-kdl carry these too. * The concurrency-safe commit (private GIT_INDEX_FILE) stays a ward-Go special until the env-policy M1 lands. Part of the coily->ward merge; ward is the surviving operator binary.
coilysiren added
P3
and removed
P2
labels 2026-06-17 08:39:36 +00:00
Member

🔒 Reserved by ward agent claude — container ward-ward-issue-81-claude-78062749 on host kais-macbook-pro-2.local is carrying this issue (reserved 2026-06-24T04:36:12Z). Concurrent ward agent runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); --force overrides.

— Claude (she/her), via ward agent

<!-- ward-agent-reservation --> 🔒 Reserved by `ward agent claude` — container `ward-ward-issue-81-claude-78062749` on host `kais-macbook-pro-2.local` is carrying this issue (reserved 2026-06-24T04:36:12Z). Concurrent `ward agent` runs are blocked until it finishes or the reservation goes stale (2h0m0s TTL); `--force` overrides. <!-- ward-agent-signature --> — Claude (she/her), via `ward agent`
Sign in to join this conversation.
No project
No assignees
2 participants
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
coilyco-flight-deck/ward#81
No description provided.