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.
Parent: #113
Problem
In the governed run,
simplicio-dev-cli task --dry-run-task --jsonfailed closed for Agent targets, but the result was too opaque to act on quickly: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 --jsonshould emit structured blocked-precondition information when it refuses to proceed.Acceptance criteria
simplicio-dev-cli task --dry-run-task --jsonreturns machine-readable blocked reasons for common precondition failures.Measured evidence
task --dry-run-task --jsonfailed closed with an error hash while Agent lanes were also reportingartifacts_missingandno_handoff_targets.Scope
This issue is about diagnostic fidelity of fail-closed dry-run receipts. It is not about widening permissions or bypassing safety.