Skip to content
Back to skills

Social Plan

ASecurity

Plans a week of social content per channel — what to post, where, when, and which posts need a picture — as a calendar in PLAN-<topic>.md that /social-post writes and posts from. Plans only; nothing is posted. (localstack)

  • 2 stars
  • 0 votes
  • 0 copies
  • 1 view
  • Added October 2, 2026
content-marketingbashaws

Security analysis

A100/100

Pro scans all 2 files and shows the line behind each finding

Scanned October 2, 2026

npx -y skills add localoy-ai/localstack --skill social-plan --agent claude-code

Installs into .claude/skills of the current project.

Are you the author of Social Plan?

Add the live security badge to your README. It updates with every re-scan.

Security grade badge for Social Plan
[![Security: A — Skills Directory](https://www.skillsdirectory.com/api/skills/localoy-ai-social-plan/badge)](https://www.skillsdirectory.com/skills/localoy-ai-social-plan)

More formats (shields.io, HTML) on the badges page. Keep it an A: scan every change in CI with Pro.

Download with Pro
SKILL.md
---
# GENERATED from SKILL.md.tmpl — edit the .tmpl, then run scripts/build.sh.
name: social-plan
version: 0.1.0
publisher: localoy
capabilities: [files, web]
description: >-
  Plans a week of social content per channel — what to post, where, when, and
  which posts need a picture — as a calendar in PLAN-<topic>.md that
  /social-post writes and posts from. Plans only; nothing is posted.
  (localstack)
author: localoy
license: MIT
platforms: [linux, macos, windows]
metadata:
  hermes:
    tags: [social, content, calendar, localstack]
    related_skills: [social-post, vinci]
allowed-tools:
  - Bash
  - Read
  - Write
  - Edit
  - WebFetch
  - WebSearch
  - AskUserQuestion
triggers:
  - plan our social posts
  - content calendar
  - what should we post this week
  - social media plan
  - plan next week's posts
tags: [social, content-calendar, planning]
---

## When to invoke this skill

Writes next week's content calendar, one row per post per channel, into the
topic's plan, `PLAN-<topic>.md`. Use when asked to "plan our social posts",
"make a content calendar", "what should we post this week". Fizz's skill;
`/social-post` writes the captions and posts from this calendar.

## The hard boundary

- **Plans, never posts.** This skill writes a calendar. Posting is
  `/social-post`, one post at a time, after the person's yes.
- **Ideas from real material.** A post idea comes from something the
  business actually has or did — a product page, a review, a launch, a
  CHANGELOG line, a photo the person shared — and the row names it. No
  invented testimonials, numbers or events.
- **Channels the person uses.** Only channels they name or DESIGN.md lists.
  A channel's rules (length, picture size, posting rhythm) come from what
  the person says or the platform's own help pages, cited; not from memory.

## What you need first

- **Which channels** (Instagram, LinkedIn, X, Facebook, TikTok…) and the
  account each is for.
- **The week** — default: next Monday to Sunday.
- **How many posts per channel** — default: three a week.
- **What to push this week** — a launch, an offer, a season, or "nothing
  special".

Check DESIGN.md and any existing `PLAN-social*.md` first. Ask for what is
still missing in a SINGLE message, then wait.

## What you read first

- **DESIGN.md** — voice, content pillars, channels, words to avoid.
- **The last plan** for these channels, if one exists — what was posted
  (`Status: posted`) and anything that went unposted, so this week does not
  repeat it.
- **Source material** — the site, recent CHANGELOG lines, files the person
  points at.

## Procedure

**1. Load** the inputs above. Topic: `social-<yyyy>-w<week>` unless the
person names one (`social-launch-oct`).

Scratch for this run lives in `.localstack/work/{date}-{slug}/` — hidden, one directory per run, so a new run never clobbers an earlier one and the folder's top level stays the standard files. Scratch is disposable; old run directories may be deleted freely.

**2. Gather material.** List what the week can draw on, each with its
source (URL, file, or "the person said"). Thin material → fewer posts, said
plainly, not filler.

**3. Plan.** Spread the posts across the week per channel. Each row: the
idea in one line, the pillar (from DESIGN.md if it has them), the source it
draws on, and whether it needs a picture.

**4. Write `PLAN-<topic>.md`** (update in place if it exists; never drop a
row already posted):

```
# Social — <week or campaign>
Channels: <channel — account>, …
Push this week: <what, or "nothing special">

## Steps
- [x] plan YYYY-MM-DD
- [ ] write captions (/social-post)
- [ ] post (/social-post, one yes per post)

## Calendar — week of YYYY-MM-DD
| Day | Channel | Idea | Pillar | Source | Picture | Status |
|---|---|---|---|---|---|---|
| Mon | LinkedIn | <idea> | <pillar> | <URL/file> | needs picture | planned |
```

`Picture` is `needs picture`, `have: <file>` or `none`. `Status` starts at
`planned`; `/social-post` moves it to `written`, then `posted YYYY-MM-DD`.

**Standard files.** This folder is kept in files any agent already reads. Update them in place; never scatter output into new folders.
- **AGENTS.md** — create it if missing. localstack owns only the block between `<!-- localstack:start -->` and `<!-- localstack:end -->`; rewrite that block, never anything outside it. The block says what this folder is for, the rules (drafts only; nothing is sent without the user's explicit yes, one message at a time; no invented facts), a map of the files below, and one line per topic (its PLAN, its lead count, the next unticked step) and per report (its file and date).
- **PLAN-<topic>.md** — in `## Steps`, tick `- [x] plan` (add today's date after it) once this step is done; leave it unticked if you stopped partway, and say why in CHANGELOG.md.
- **CHANGELOG.md** — create it if missing (`# Changelog`). Add one bullet for this run under today's `## YYYY-MM-DD` heading, newest date first: the skill, the topic, and the counts or outcome (e.g. `- lead-search austin-dentists: 18 found, 3 skipped as already contacted`).
- **TODOS.md** — create it if missing (`# TODOs`). Add each open next action as `- [ ] <action> (<topic>)`; tick items this run finished; never delete lines.
- **DESIGN.md** — decisions meant to last (positioning, tone, channels to use or avoid). Read it before writing anything a person will see; add to it only when the user states or approves a decision.

For this step: the CHANGELOG line gives posts planned per channel. TODOs: `-
[ ] write captions with /social-post (<topic>)`, and one per post that needs
a picture (`- [ ] picture for <day> <channel> — ask Nova with /vinci
(<topic>)`).

**5. Report and hand off.** The calendar in a few lines, the posts that need
pictures. Offer "Write the captions with `/social-post`?" as a structured
question where the runtime has one; on yes invoke it if this runtime can,
else tell the person to type it.

**Completion status.** End the chat report with one of:
- **DONE** — completed, with the evidence named (files written, counts, URLs).
- **DONE_WITH_CONCERNS** — completed, and list each concern.
- **BLOCKED** — cannot proceed; say what blocked it and what was tried.
- **NEEDS_CONTEXT** — missing information; say exactly what is needed.

## Quality bar

- Every row names the real material it draws on.
- Nothing is posted, scheduled on a platform, or published by this skill.
- Three posts a week the business can stand behind beat seven of filler.

Files in this skill

  • SKILL.md6.4 KB
  • SKILL.md.tmpl4.4 KB

Attribution

Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.

Comments

Loading comments…