feat(typefully): add planned drafts support - #32
Merged
Conversation
Add --plan to drafts:create/drafts:update (mutually exclusive with --schedule, literal null on update clears the plan), a drafts:plan command mirroring drafts:schedule, and the planned value in the drafts:list status filter. Document the planned lifecycle in SKILL.md: dated but inert until confirmed via drafts:schedule, and a lapsed planned date is not a failure. Claude-Session: https://claude.ai/code/session_01267PabjVxa2EQueJ9oZoT9
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
What
Adds planned-drafts support to the Typefully skill, matching the API v2 write support shipping in typefully-backend#1785.
A planned draft sits on the queue/calendar at its date but is inert — it never auto-publishes until confirmed into a real schedule.
Changes
--plan <iso|next-free-slot>ondrafts:createanddrafts:update→ sendsplan_at. Mutually exclusive with--schedule(friendly CLI error before hitting the API). On update, literalnullclears the plan and returns the draft to plain draft status (same convention as--cover-media-id null).drafts:plan <social_set_id> <draft_id> --time <...>command mirroringdrafts:schedule, including the--use-defaultsingle-arg safety gate.drafts:list --status planneddocumented (the filter was already passed through; help text and docs now include it).drafts:schedule, publish viadrafts:publish, lapsed planned dates are not failures — replan or confirm), a Common-actions row, flag/command table entries, and planned-awarequeue:getdescription.Tests
6 new tests in
tests/drafts.test.jscovering:drafts:planpayload + missing--time, create with--plan(and nopublish_atleak), the--schedule+--planmutual-exclusion error, update with--plan, and--plan nullsendingplan_at: null. Full suite: 130 passed.Notes
plan_atis rejected by the API.publish_at: null) — the CLI never had one and it's orthogonal to planned drafts.https://claude.ai/code/session_01267PabjVxa2EQueJ9oZoT9