Editorial planning: audiences, content pillars and real production time
What this is: a planning method and an editable worksheet, examples/editorial-plan.example.json. It helps you decide which idea is worth making, for which reader, in which format, within the time you really have, before any post is written.
What this is not: a command. No ReachWeaver command reads or validates the worksheet today; it is plain JSON that you and Claude Code read as context. It writes no post text, picks no posting time, connects no account and predicts no reach. Each existing command it hands over to is listed below.
Why a separate step
Section titled “Why a separate step”ReachWeaver already turns one source into a campaign scaffold (signal-brief), checks campaigns and claims (campaign-check, claims-check), proposes posting slots (calendar-plan), suggests discovery labels (discovery-plan) and measures results (post-audit, experiment-readout). What those commands assume is that you already know what to make this week. The worksheet records that decision so it is repeatable and honest about effort.
The worksheet
Section titled “The worksheet”Copy the example into your private workspace folder and replace the synthetic values with your own non-secret observations. Keep real audience research out of Git, issues and shared prompts. The file has these parts (schema label reachweaver.editorial-plan.v1, informational only):
- Brand: name plus concrete
voice_doandvoice_avoidrules. Start from your existing brand card (for exampleexamples/brand.reachweaver.json) rather than re-describing it. - One goal, using the same values as a campaign
objective:awareness,qualified_visits,contributors,discussionorsignups. Decide up front which first-party metric will show it. - 1 to 3 audiences, each with a concrete
job, apainand anevidence_basis:owner_observation,public_researchorhypothesis. A persona or audience quote you have not observed stays ahypothesis. - 1 to 5 content pillars, each tied to one audience.
- Channels, each with
weekly_slots,reactive_slots(space you keep free for timely news; leave it empty if nothing relevant happens) and the formats you can actually produce there. - Ideas, each with an angle, a reader payoff, an effort estimate in
minutes, apriorityyou set, an optional CTA and anevidence_status:owner_checked_public_source(you opened the public source and record its URL and date),needs_source_checkoreditorial_opinion. An owner check is your own statement, not independent verification. - Capacity:
week_start(the Monday of the editorial week, not a publish time),weeksandweekly_budget_minutes.
Allocation rule, done by hand or with Claude Code: fill each channel’s weekly slots with the highest-priority ideas for that channel until the weekly minutes run out. Write down what did not fit (unfilled slots, ideas left over, reserved reactive slots) instead of dropping it silently. If time is short, plan fewer posts; do not plan more posts than you can write well.
From brief to post
Section titled “From brief to post”- Review each brief for accuracy, audience, language, voice and permission to use the source. Facts marked
needs_source_checkare checked before any copy is written. - Write original, platform-native drafts, one at a time, with the skill’s creative and platform playbooks and your brand card. A script or storyboard is not a finished video; real media needs assets you have the rights to, plus alt text (
media-check,media-storyboard). - Check before review: put the drafts in a campaign file and run
campaign-check --file CAMPAIGN --brand BRAND,claims-check CAMPAIGN --brand BRANDandcampaign-preview --file CAMPAIGN --brand BRAND, thenrepeat-checkagainst what you already posted.discovery-plancan check proposed hashtags and topic labels against the post text. - Choose the route: for a network ReachWeaver cannot send to, use
shareormanual-exportand post by hand. For a supported text adapter, the normal draft,show,approvepath applies. - Approval is separate and per post. No worksheet, brief, calendar or conversation is consent to publish. The owner approves the exact text, media and account; dry run stays the default,
reachweaver pausestops everything, and an uncertain send is reconciled by a person, never resent. - Measure with first-party numbers at comparable post ages:
post-auditwith your own exported metrics, orexperiment-preregisterbefore andexperiment-readoutafter a planned test (growth experiments). Change one thing at a time and keep negative results. A metric you did not record is unknown, not zero.
Limits and rules that still apply
Section titled “Limits and rules that still apply”- Offline only: no scraping, no account connection, no network request, no paid model or API call.
- No hashtag stuffing, engagement bait, mass outreach, unsolicited replies or “best hour for everyone” claims.
- Do not plan slots for Hacker News (human-only: a person writes and submits) or Reddit (only where moderators allow it;
sharegives talking points, not text). On DEV Community, no AI-generated comments or promotional articles (DEV authority playbook). - A source URL starting with
https://does not prove the source is public, accurate or yours to use. - A format label such as
reel_scriptis an editorial outline, not a claim that ReachWeaver can upload that format to the platform (platform matrix).
Provenance
Section titled “Provenance”The worksheet and this method were written for ReachWeaver. The planning ideas (a durable brand profile, audience jobs and pains, a calendar sized to real capacity, goal-first reporting) were informed by the public, MIT-licensed social-media-skills/skills collection, already listed in upstream research. No code, prompts or text were copied from it.
