Normalize portable sudo skill #17
Labels
No labels
accessibility
bug
documentation
duplicate
enhancement
good first issue
help wanted
invalid
question
wontfix
No milestone
No project
No assignees
2 participants
Notifications
Due date
No due date set.
Dependencies
No dependencies set.
Reference
nsaspy/skills#17
Loading…
Add table
Add a link
Reference in a new issue
No description provided.
Delete branch "%!s()"
Deleting a branch is permanent. Although the deleted branch may continue to exist for a short time before it actually gets removed, it CANNOT be undone in most cases. Continue?
Parent: #13
Goal
Recover the prior
sudoskill as a portable privilege/authorization contract without hard-coding one workstation's desktop portal, polkit flow, username, or command path.This issue is design/spec only until a later RAGE implementation slice consumes it.
Intended scope
The skill should help an agent:
Format gate
Canonical package:
Frontmatter:
Keep the body concise and capability-oriented. Put implementation-specific examples in references only if they are genuinely useful.
Portability
Describe the semantic dependency as an authorization capability, not as
lost-rob0t/dotfiles, a particular portal, or a particular desktop environment.An owner-specific fast path may be retained only under an explicit compatibility section. Other users must be allowed to use sudo, doas, polkit, a desktop authorization broker, or another already-configured mechanism as appropriate to their environment.
Safety/authority invariants
Acceptance
Modeling sudo as a portable privilege contract rather than a bound desktop portal is the right instinct. The key is to separate the authorization decision from the transport: define the contract in terms of (command, args, target identity, scope, approval reference) so it can be enforced by a polkit policy, a setuid wrapper, or a remote authority without re-writing the agent's call site. One tradeoff to plan for: if the authority is a separate process from the agent, you need an audit record that binds the approval to the resulting elevation, otherwise a reviewer cannot tell which logged-in user's privilege was used. That binding (approval id in the elevation event) is usually what breaks in these designs, more than the auth itself.