Skip to content

M2-6: Blocked Task Explanation Helper #36

Description

@akserg

Goal

Make blocked tasks immediately understandable to humans by clearly explaining why a task is blocked, what it depends on, and how to unblock it — without requiring users to inspect raw JSON, dependency graphs, or infer state manually.

This milestone ensures that “blocked” is never a dead-end state. Every blocked task must come with an explicit, actionable explanation.

Definition of Done (DoD)

  1. Explicit Blocked Reason Identification
  • When a task is in blocked state, the orchestrator determines the exact reason(s), such as:
    • unmet task dependencies
    • failed or rejected prerequisite tasks
    • missing context files
    • pending approvals
    • failed preflight validation
  • Block reasons are deterministic and machine-derived, not inferred heuristically
  1. Human-Readable Blocked Explanation
  • A clear explanation is generated describing:
    • why the task is blocked
    • what it is waiting for
    • which task(s), approval(s), or file(s) are blocking it
  • The explanation is understandable without reading JSON
  1. Markdown Output for Blocked Tasks
  • For blocked tasks, a Markdown summary is generated or updated, including:
    • task ID and description
    • current status (blocked)
    • blocking reasons (bullet list)
    • concrete next actions required to unblock
  • This information appears in:
    • task-level Markdown (exec.md if applicable)
    • plan-level Markdown (plan.md task table or section)
  1. CLI Integration
  • The status command (or equivalent) surfaces blocked explanations directly
  • Users can quickly see:
    • why a task is blocked
    • whether action is required from them
  • No need to inspect tasks/*.json manually
  1. Accurate and Up-to-Date Explanations
  • Blocked explanations update automatically when:
    • dependencies are approved
    • tasks complete
    • context is added
    • validations pass
  • Stale or misleading explanations are not allowed
  1. Auditability
  • Blocked reasons are recorded in:
    • task state
    • audit.log
  • Changes to blocked status (blocked → unblocked) are auditable and timestamped
  1. Dogfooding Validation
  • During dogfooding on llm-orchestrator:
    • At least one task is intentionally blocked
    • The blocked explanation clearly guides the user to resolution
    • No guesswork is required to unblock the task

Success Signal

When a task is blocked, the user immediately knows why, what must happen next, and who or what is responsible, without reading JSON or reverse-engineering the orchestrator state.

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

    Type

    No type

    Projects

    No projects

      Relationships

      None yet

      Development

      No branches or pull requests

      Issue actions