Skip to content

ak-plan: require explicit runtime verification before task assignment #196

Description

@saltbo

Summary

During an ak-plan execution after user confirmation, I created initial implementation tasks assigned to a Copilot runtime even though the user expected Codex. The user had to correct the workflow, and the tasks had to be deleted and recreated with Codex workers.

Command

ak create task --board 2ih1vz3s ... --assign-to
ak apply ... (attempted reassignment did not effectively change assigned_to)
ak delete task ...
ak create task ... --assign-to

Expected

ak-plan should make the runtime choice explicit in the preview and require the leader to verify the selected worker runtime/model immediately before every task creation, especially when the user has indicated a desired runtime such as Codex.

Actual

The workflow allowed tasks to be created on a different available runtime. Reassignment attempts appeared to update tasks but did not change assigned_to, so the practical recovery was delete and recreate.

Context

  • ak version: 1.13.4
  • OS: Darwin Mac 24.6.0 arm64
  • Runtime: Codex
  • Auth type: user
  • Board: 2ih1vz3s

Reproduction

  1. Run ak-plan with multiple available workers/runtimes.
  2. Create a task plan where runtime choice is not re-verified at the exact task creation step.
  3. Assign tasks by agent id from the available pool.
  4. User notices selected runtime is not the requested one.
  5. Attempt assignment updates; if assigned_to does not change, delete and recreate tasks.

Proposed Skill Change

In ak-plan Phase 3, add this rule:

Before every task creation, the leader must re-read ak get agent -o json for the chosen worker IDs and confirm spec.runtime, spec.model, and runtime_available: true match the runtime choice shown in the task plan preview. If the user has named a runtime, using any other runtime is a hard error unless the user explicitly approves the substitution. If reassignment is needed after creation and assigned_to does not change, delete and recreate the task instead of assuming the update worked.

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