> Discover all available Postdom documentation from the machine-readable index: https://postdom.com/llms.txt

Reference · plan lifecycle

# Plan states

Six exact values record human review and cancellation. Execution eligibility also depends on time, targets, trust, policy, and capacity.

Exact wire values

## State reference

Only a pending plan can be approved, changed, rejected, or expire during approval. Only an approved plan can be cancelled.

| State | Entered when | Next | Agent handoff |
| --- | --- | --- | --- |
| requires_approval | A new plan is accepted for review. | approved · changes_requested · rejected · expired | Wait for a human decision. |
| approved | A human approves the exact version before its window closes. | cancelled | Use its accounts, window, and remaining capacity. |
| changes_requested | A human returns structured feedback. | No in-record transition | Prepare a deliberate new submission from the feedback. |
| rejected | A human rejects the pending plan. | No in-record transition | Stop plan-backed work and return the decision. |
| expired | Approval is attempted after ends_at. | No in-record transition | Submit a new bounded plan if a human requests it. |
| cancelled | A human cancels an approved plan. | No in-record transition | Stop plan-backed work immediately. |

Stored state and time

## Expiry semantics

### Time eligibility

An approval attempt after `ends_at` changes a pending plan to `expired`. An approved record can remain `approved` after its window closes.

Execution checks the window separately and can return `plan_expired`. Never infer a stored state change from that authorization reason.

Execution boundary

## Authorization result

Plan-backed publishing returns `applied` or `not_applied`. An applied result has a null reason.

`agent_paused`

Exact reason returned when plan authority cannot apply.

`publishing_disabled`

Exact reason returned when plan authority cannot apply.

`plan_not_found`

Exact reason returned when plan authority cannot apply.

`plan_not_approved`

Exact reason returned when plan authority cannot apply.

`plan_not_started`

Exact reason returned when plan authority cannot apply.

`plan_expired`

Exact reason returned when plan authority cannot apply.

`plan_cancelled`

Exact reason returned when plan authority cannot apply.

`target_not_in_plan`

Exact reason returned when plan authority cannot apply.

`target_not_l2`

Exact reason returned when plan authority cannot apply.

`target_disconnected`

Exact reason returned when plan authority cannot apply.

`policy_not_configured`

Exact reason returned when plan authority cannot apply.

`policy_violation`

Exact reason returned when plan authority cannot apply.

`max_posts_exhausted`

Exact reason returned when plan authority cannot apply.

`request_changed`

Exact reason returned when plan authority cannot apply.

`schedule_missed`

Exact reason returned when plan authority cannot apply.

Human review evidence

## Structured feedback

Feedback contains a decision, category, and text. Categories are exact wire values.

`caption``media``targeting``timing``policy``other`

_EXAMPLE RESPONSE EXCERPT · SYNTHETIC VALUES_

```
{
  "status": "changes_requested",
  "approval_feedback": {
    "decision": "changes_requested",
    "category": "timing",
    "text": "Keep the plan inside the launch window."
  }
}
```

 VERIFIED · 26 AUGUST 2026  **Plan state schema · Approval transitions · Authorization model**

The example feedback is synthetic.
