keryx approve¶
Description¶
Approve a piece's outlets on a platform (or all) for publishing — the gate
publish enforces (R-POST-2). Approval refuses an outlet whose copy has
hard constraint violations (text/title overflow), reporting them
(R-POST-10); fix the copy with keryx social set and retry. Advisory notes
(e.g. "links not clickable — use link in bio") do not block approval.
--at sets the due hour the unattended runner (publish due) consumes
(R-POST-11), and it is an hour: an RFC3339 time with minutes or seconds is
refused. A bare date takes the platform's default hour
(platforms.<p>.announce.hour in announce.timezone); no --at takes the
article's own date at that hour, or is due immediately when the article has no
date. Two outlets on one platform may not share an hour anywhere in the article;
the second is refused naming the first. --revoke returns the outlet to draft
and clears its schedule.
Usage¶
keryx approve <platform|all> (--article <dir> (--reel <slug> | --post <id>) | --workspace <slug>) [--at <rfc3339-hour|date>] [--revoke]
keryx approve instagram --workspace my-post
keryx approve all --article content/post/my-post --post launch --at 2026-06-20
keryx approve linkedin --article content/post/my-post --post launch --at 2026-06-20T17:00:00+01:00
Flags¶
| Flag | Description | Default | Required |
|---|---|---|---|
--article |
the article's bundle directory | ||
--reel |
the reel piece (a workspace slug) | ||
--post |
the post piece (its id, from post new) |
||
--workspace |
shorthand for --article <its bundle> --reel <slug> |
||
--at |
due hour (RFC3339 on the hour) or a date (takes the platform's default hour); absent uses the article's date | ||
--revoke |
return the outlet to draft and clear its schedule |