Skip to content

feat(typefully): add planned drafts support - #32

Merged
rajatkapoor merged 1 commit into
mainfrom
feat/typefully-planned-drafts
Aug 5, 2026
Merged

feat(typefully): add planned drafts support#32
rajatkapoor merged 1 commit into
mainfrom
feat/typefully-planned-drafts

Conversation

@rajatkapoor

Copy link
Copy Markdown
Collaborator

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> on drafts:create and drafts:update → sends plan_at. Mutually exclusive with --schedule (friendly CLI error before hitting the API). On update, literal null clears the plan and returns the draft to plain draft status (same convention as --cover-media-id null).
  • New drafts:plan <social_set_id> <draft_id> --time <...> command mirroring drafts:schedule, including the --use-default single-arg safety gate.
  • drafts:list --status planned documented (the filter was already passed through; help text and docs now include it).
  • SKILL.md: planned lifecycle in the Schedule & publish section (confirm via drafts:schedule, publish via drafts:publish, lapsed planned dates are not failures — replan or confirm), a Common-actions row, flag/command table entries, and planned-aware queue:get description.
  • CHANGELOG.md: user-facing entry.

Tests

6 new tests in tests/drafts.test.js covering: drafts:plan payload + missing --time, create with --plan (and no publish_at leak), the --schedule+--plan mutual-exclusion error, update with --plan, and --plan null sending plan_at: null. Full suite: 130 passed.

Notes

  • The backend PR (typefully-backend#1785) should merge/deploy first; until then plan_at is rejected by the API.
  • Not included (possible follow-up): an unschedule command (publish_at: null) — the CLI never had one and it's orthogonal to planned drafts.

https://claude.ai/code/session_01267PabjVxa2EQueJ9oZoT9

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
@rajatkapoor
rajatkapoor merged commit 051a266 into main Aug 5, 2026
2 checks passed
@rajatkapoor
rajatkapoor deleted the feat/typefully-planned-drafts branch August 5, 2026 09:45
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant