Skip to content

[P1][Diagnostics] dev-cli dry-run-task should emit structured blocked-precondition receipts #122

Description

@wesleysimplicio

Parent: #113

Problem

In the governed run, simplicio-dev-cli task --dry-run-task --json failed closed for Agent targets, but the result was too opaque to act on quickly:

  • the command returned an error/hash,
  • the surrounding state indicated missing artifacts / no handoff targets / broader-context needs,
  • the operator still had to inspect external state to understand whether the failure was target resolution, artifact freshness, handoff readiness, or another precondition.

For a control-plane tool, this is too lossy. A fail-closed result should still explain the blocked preconditions precisely.

Expected behavior

--dry-run-task --json should emit structured blocked-precondition information when it refuses to proceed.

Acceptance criteria

  • simplicio-dev-cli task --dry-run-task --json returns machine-readable blocked reasons for common precondition failures.
  • Target resolution failure, missing artifacts, stale artifacts, missing handoff targets, and broader-context requirements are distinguishable in the JSON output.
  • The command still fails closed, but the receipt is actionable without external guesswork.
  • The JSON contract names the next expected surface (for example mapper artifacts, handoff target, context pack, etc.).
  • At least one focused example demonstrates the blocked receipt for an artifact/handoff failure.
  • Documentation or help output references the blocked-precondition schema.

Measured evidence

  • In the active run, task --dry-run-task --json failed closed with an error hash while Agent lanes were also reporting artifacts_missing and no_handoff_targets.
  • The operator had to correlate multiple sources manually to understand the real blocker.

Scope

This issue is about diagnostic fidelity of fail-closed dry-run receipts. It is not about widening permissions or bypassing safety.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    Status
    Done

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions