Skip to content

Rename --tool orchestration flag to --non-interactive#45

Merged
bborbe merged 3 commits into
masterfrom
feature/rename-tool-flag
Jul 2, 2026
Merged

Rename --tool orchestration flag to --non-interactive#45
bborbe merged 3 commits into
masterfrom
feature/rename-tool-flag

Conversation

@bborbe

@bborbe bborbe commented Jul 2, 2026

Copy link
Copy Markdown
Owner

Why

The --tool orchestration-mode flag is opaque — it doesn't read as "no prompts / non-interactive". Renamed to --non-interactive across the plugin so the flag name matches its behavior. Prep for wiring vault-cli work-on's headless bootstrap to pass it (fixes the 5m claude session start timed out hang when the UI Start button runs work-on-task headlessly and it blocks on AskUserQuestion).

What

  • Rename flag --tool--non-interactive and internal label MODE=toolMODE=non_interactive in:
    • commands: create-task, create-goal, complete-task, complete-goal, defer-task, defer-goal
    • agents: task-creator, goal-creator, goal-manager-agent
  • --tool retained as a deprecated alias (parsers accept both) for one release.
  • CHANGELOG under ## Unreleased (autoRelease bot versions on merge).

Follow-ups (separate)

  • Markdown: add --non-interactive behavior to work-on-task (skip Phase 4 asks + Phase 5 chain).
  • dark-factory prompt: workon.go append --non-interactive when headless + make the 5m timeout configurable.

@ben-s-pull-request-reviewer ben-s-pull-request-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Now I have all the information needed. Let me compile the review:

Findings:

  1. Must Fix (Critical): agents/goal-manager-agent.md:86 — The error message still says "goal name required in tool mode" when it should say "goal name required in non_interactive mode" to match the renamed MODE variable. All other references in the diff correctly use MODE=non_interactive.

  2. Correctness verified: commands/complete-task.md — All MODE=tool references were correctly updated to MODE=non_interactive throughout (concern from plan was already addressed in this commit).

  3. Tests: No test files were changed. Verification shows no scenarios or integration tests reference --tool flag, so no test updates are required.

  4. CHANGELOG: The changelog entry correctly describes the rename with --tool kept as deprecated alias.

  5. Agent files: goal-creator.md and task-creator.md correctly document --non-interactive with --tool as deprecated alias.

  6. Command files: All 6 command files (complete-goal.md, complete-task.md, create-goal.md, create-task.md, defer-goal.md, defer-task.md) correctly reference --non-interactive with --tool noted as deprecated alias.

{
  "verdict": "request-changes",
  "summary": "The rename from --tool to --non-interactive is mostly correct, but agents/goal-manager-agent.md:86 has an inconsistency where the error message still refers to 'tool mode' instead of 'non_interactive mode'.",
  "comments": [
    {
      "file": "agents/goal-manager-agent.md",
      "line": 86,
      "severity": "critical",
      "message": "Inconsistent: error message says 'goal name required in tool mode' but MODE is renamed to 'non_interactive'. Should say 'goal name required in non_interactive mode'."
    }
  ],
  "concerns_addressed": [
    "correctness: agents/goal-manager-agent.md:86 still says 'tool mode' in error message — raised as critical comment",
    "correctness: commands/complete-task.md Step 3a is consistent with rename — no issue found",
    "tests: no test files exercise --tool flag parsing — no test updates needed"
  ]
}

@ben-s-pull-request-reviewer ben-s-pull-request-reviewer Bot dismissed their stale review July 2, 2026 16:44

superseded by new automated review

@ben-s-pull-request-reviewer ben-s-pull-request-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Based on my complete analysis, here is the review:

Analysis Summary

Diff scope: 10 files changed — all markdown documentation (.md). No Go implementation code touched.

Project type: This is a hybrid project:

  • vault-cli is a Go CLI binary (the actual tool)
  • commands/ and agents/ are Claude Code plugin files (markdown)
  • The --tool / --non-interactive flag described in the markdown is a conceptual mode indicator in agent instructions, not a CLI flag of the vault-cli binary

Key finding: The PR claim that --tool is "retained as a deprecated alias (parsers accept both)" is misleading. There are no Go parsers for --tool — the vault-cli binary never had this flag. The flag exists only as a documentation convention in the Claude Code agent/command markdown files. The agents invoke vault-cli via vault-cli --output json for machine-readable output.


{
  "verdict": "request-changes",
  "summary": "PR makes only documentation changes but the CHANGELOG entry contains a factual inaccuracy: it claims '--tool' is 'kept as a deprecated alias (parsers accept both)' for one release, but there are no parsers in the implementation — the vault-cli Go binary never had a --tool flag. The flag is a documentation convention in Claude Code agent files, not a CLI flag. The CHANGELOG prose should reflect this accurately to avoid user confusion.",
  "comments": [
    {
      "file": "CHANGELOG.md",
      "line": 14,
      "severity": "major",
      "message": "CHANGELOG entry claims '--tool kept as a deprecated alias (parsers accept both) for one release' — but no parsers accept this flag. The vault-cli Go binary (pkg/cli/cli.go) has no --tool flag; agents invoke it via 'vault-cli --output json'. The '--tool' flag is a documentation convention in agent markdown, not a CLI flag. Rewrite to: '...--non-interactive (previously documented as --tool in agent instructions)' so the claim is accurate."
    }
  ],
  "concerns_addressed": [
    "correctness: commands/create-goal.md etc. — PR description claimed '--tool is retained as deprecated alias' but only markdown documentation was changed, no Go parser code. Verified: vault-cli binary has no --tool flag implementation in pkg/cli/cli.go. The flag is a documentation convention only."
  ]
}

@ben-s-pull-request-reviewer ben-s-pull-request-reviewer Bot dismissed their stale review July 2, 2026 17:26

superseded by new automated review

@ben-s-pull-request-reviewer ben-s-pull-request-reviewer Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Review Summary

Verdict: approve

Summary: The flag rename (--tool--non-interactive, MODE=toolMODE=non_interactive) is correctly implemented across all 6 commands and 3 agents. The deprecated --tool alias is properly documented as still accepted. One notable item: the new prompts/work-on-headless-non-interactive.md is status: draft — it has not been through dark-factory approval and will not execute until approved.


Must Fix (Critical)

None.

Should Fix (Important)

  1. prompts/work-on-headless-non-interactive.md is status: draft — not queued for execution

    The new prompt was placed in prompts/ but is status: draft. Per the dark-factory workflow in CLAUDE.md, prompts must go through: create → audit → user confirms → dark-factory prompt approve <name>. This prompt has not been approved, so the daemon will not execute it. The refactor is incomplete — the flag rename is done, but the companion fix (work-on headless hang) is stalled in draft.

    Fix needed: Either approve the prompt via dark-factory prompt approve work-on-headless-non-interactive, or explicitly leave it as future work and update the CHANGELOG to remove the implication that the headless-hang fix is part of this PR.

  2. CHANGELOG does not mention the new prompts/work-on-headless-non-interactive.md file

    The ## Unreleased entry describes the --tool--non-interactive rename but omits that a new prompt file was added. A reader would not know about the draft prompt.

Nice to Have (Optional)

  1. The argument-hint in all 6 commands now shows [--non-interactive] but the order in complete-task.md and complete-goal.md puts --non-interactive before --force — consistent with the other commands but verify this is intentional since --force was previously only mentioned in interactive-mode contexts.

{
  "verdict": "approve",
  "summary": "The --tool → --non-interactive flag rename and MODE=tool → MODE=non_interactive label change are correctly implemented across all commands and agents. The deprecated --tool alias is preserved. One actionable item: prompts/work-on-headless-non-interactive.md is status=draft and will not execute until approved via dark-factory.",
  "comments": [
    {
      "file": "prompts/work-on-headless-non-interactive.md",
      "line": 2,
      "severity": "major",
      "message": "status: draft — prompt is not queued for dark-factory execution. Either approve via 'dark-factory prompt approve work-on-headless-non-interactive' or update CHANGELOG to clarify this is future work."
    },
    {
      "file": "CHANGELOG.md",
      "line": 13,
      "severity": "nit",
      "message": "CHANGELOG entry describes the flag rename but does not mention the new prompts/work-on-headless-non-interactive.md file that was added in this diff."
    }
  ],
  "concerns_addressed": [
    "correctness: deprecated --tool alias preserved — all 6 commands correctly parse '--non-interactive (or deprecated --tool)' → MODE=non_interactive",
    "correctness: MODE=tool → MODE=non_interactive renamed in all agents (goal-creator.md, task-creator.md, goal-manager-agent.md) and all command markdown files",
    "tests: concern noted — no Go test files in diff; the flag rename affects Claude Code agent instructions (markdown), not CLI argument parsing; no code-level tests exist to update"
  ]
}

@bborbe bborbe merged commit 85b29e9 into master Jul 2, 2026
1 check passed
@bborbe bborbe deleted the feature/rename-tool-flag branch July 2, 2026 17:35
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant