Skip to content

fix: shell-quote values in actionable workflow next-command output #142

Description

@voku

Evidence

Real consumer run: voku/httpful#34, docs/agents/agent-loop-findings.md finding B4.

Current WorkflowPlanCommand accepts --by as a separate arbitrary non-empty argument, then renders:

agent-loop workflow approve <TASK> --by <ACTOR>

by raw string interpolation. An actor such as Claude (Opus) therefore produces a next command that is not copy/paste-safe in a shell.

Problem

Actionable CLI output is part of the workflow front door. If the tool prints a command that does not reproduce the accepted value, agents either fail or invent their own quoting.

Narrow goal

Render actionable next-command arguments losslessly and shell-safely.

Acceptance criteria

  • workflow plan --by 'Claude (Opus)' prints a next command that passes the exact same actor value when executed in the documented shell environment.
  • Simple safe values remain readable; quoting does not need to be gratuitous.
  • Add regression cases for whitespace, parentheses, a single quote, and shell metacharacters.
  • Centralize command-argument rendering only if a second real caller exists or the existing code already has an owner; do not add a generic command-builder framework for one line.
  • This changes presentation only. Workflow actor identity/storage semantics remain untouched.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

      Milestone

      No milestone

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions